Skip to content

Commit

Permalink
Merge branch 'release/21.05'
Browse files Browse the repository at this point in the history
  • Loading branch information
theshadowco committed May 24, 2021
2 parents d1a1f8c + 28e4de7 commit 034e595
Show file tree
Hide file tree
Showing 118 changed files with 3,348 additions and 966 deletions.
42 changes: 23 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,27 +27,31 @@
Перед использованием необходима установка precommit-hook'а в репозиторий:

- для выполнения установки в конкретный репозиторий необходимо выполнить команду `precommit4onec install repo_name`
- для выполнения установки во все репозитории каталога необходимо выполнить команду`precommit4onec install folder_reps -r`
- для выполнения установки во все репозитории каталога необходимо выполнить команду `precommit4onec install folder_reps -r`
- если каталог исходных файлов в репозитории отличается от стандартного "src" (например, когда исходные файлы в формате EDT), необходимо явно указать его с помощью дополнительного параметра `-source-dir "configuration"`

После этого, при каждом коммите будет выполняться обработка файлов.

В комплекте присутствуют следующие сценарии обработки файлов:

- `РазборОтчетОбработокРасширений` - при выполнении данного сценария, файлы внешних отчетов, обработок и расширений средствами платформы будут разложены на исходные файлы и помещены в каталог исходных файлов репозитория в подкаталоги, соответствующие расширениям. Например внешний отчет `ВнешнийОтчет1.erf` будет разложен в каталог `src\erf\ВнешнийОтчет1`
- `РазборОбычныхФормНаИсходники` - при выполнении данного сценария, файлы обычных форм (`Form.bin`) раскладываются на исходные файлы с помощью инструмента `v8unpack`
- `КорректировкаXMLФорм` - при выполнении данного сценария, файлы описаний форм (`Form.xml`) проверяются на наличие задублировавшихся индексов элементов, которые образуются при объединениях. Если дубли есть, то они исправляются
- `ДобавлениеПробеловПередКлючевымиСловами` - при выполнении данного сценария, в файлах модулей перед ключевыми словами добавляются отсутствующие пробелы. На данный момент обрабатывается только ключевое слово `Экспорт`.
- `УдалениеЛишнихКонцевыхПробелов` - при выполнении данного сценария, в файлах модулей удаляются лишние пробелы и табы в конце не пустой строки.
- `СортировкаДереваМетаданных` - при выполнении данного сценария, выполняется упорядочивание объектов метаданных в дереве за исключением подсистем, они остаются в том порядке, который задал разработчик.
- `СинхронизацияОбъектовМетаданныхИФайлов` - анализирует наличие файлов и объектов конфигурации.
- `УдалениеДублейМетаданных` - удаляет задублированные объекты метаданных (результат кривого мерджа)
- `ЗапретИспользованияПерейти` - проверяет модуль на использование методов `Перейти`
- `УдалениеЛишнихПустыхСтрок` - выполняет очистку модуля от лишних пустых строк (лишними считаются 2 и более идущих подряд пустых строках)
- `ПроверкаКорректностиОбластей` - выполняет проверку на корректность скобок областей: `на парность` и `перед окончание области должно быть ее определение`
- `ПроверкаДублейПроцедурИФункций` - выполняет поиск одинаковых названий процедур и функций в модуле.
- `ОтключениеПолнотекстовогоПоиска` - По умолчанию отключает полнотекстовый поиск в файлах описания метаданных. Имеет настройку для исключения файлов из обработки. Для исключения необходимо указать относительный путь в репозитории до файла описания метаданного. Можно выключать из обработки отдельные реквизиты метаданного, для этого надо задать массив реквизитов в конфигурационном файле.
- `ИсправлениеНеКаноническогоНаписания` - Проверяет модули на каноничность написания ключевых слов и исправляет найденное
- `ОбработкаЮнитТестов` - Обрабатывает каталог расширения с unit тестами, обновляя метод-загручик (по умолчанию отключен)
- `ДобавлениеПробеловПередКлючевымиСловами` - добавляет отсутствующие пробелы перед ключевыми словами в файлах модулей. На данный момент обрабатывается только ключевое слово `Экспорт`.
- `ДобавлениеТестовВРасширение` - добавляет отсутствующие сценарии в расширение с unit-тестами. [См. подробнее](/docs/ДобавлениеТестовВРасширение.md)
- `ЗапретИспользованияПерейти` - проверяет модуль на использование методов `Перейти`.
- `ИсправлениеНеКаноническогоНаписания` - исправляет неканоничное написание ключевых слов в модулях.
- `КорректировкаXMLФорм` - исправляет дубли индексов элементов в файлах описаний форм (могут образоваться при объединениях). Поддерживаются как файлы в формате выгрузки конфигуратора (`Form.xml`), так и в формате EDT (`Form.form`).
- `ОбработкаЮнитТестов` - обновляет метод-загрузчик сценариев в общих модулях расширения с unit-тестами (по умолчанию отключен).
- `ОтключениеПолнотекстовогоПоиска` - отключает полнотекстовый поиск в файлах описаний метаданных. [См. подробнее](/docs/ОтключениеПолнотекстовогоПоиска.md)
- `ПроверкаДублейПроцедурИФункций` - проверяет уникальность названий процедур и функций в модулях.
- `ПроверкаКорректностиДирективКомпиляции` - проверяет корректность написания директив компиляции в модулях.
- `ПроверкаКорректностиОбластей` - проверяет корректность "скобок" областей в модулях (парность и последовательность).
- `ПроверкаНецензурныхСлов` - проверяет наличие нецензурных слов в модулях. [См. подробнее](/docs/ПроверкаНецензурныхСлов.md)
- `РазборОбычныхФормНаИсходники` - раскладывает файлы обычных форм (`Form.bin`) на исходные файлы с помощью инструмента `v8unpack`.
- `РазборОтчетОбработокРасширений` - раскладывает средствами платформы файлы внешних отчетов, обработок и расширений на исходные файлы. [См. подробнее](/docs/РазборОтчетОбработокРасширений.md)
- `СинхронизацияОбъектовМетаданныхИФайлов` - анализирует наличие файлов и объектов конфигурации. Поддерживается только файл описания конфигурации в формате выгрузки конфигуратора (`Configuration.xml`).
- `СортировкаДереваМетаданных` - упорядочивает объекты метаданных верхнего уровня по алфавиту в файле описания конфигурации (кроме подсистем). Поддерживается как файл в формате выгрузки конфигуратора (`Configuration.xml`), так и в формате EDT (`Configuration.mdo`).
- `УдалениеДублейМетаданных` - удаляет дубли объектов метаданных в файле описания конфигурации (могут образоваться при объединениях). Поддерживается как файл в формате выгрузки конфигуратора (`Configuration.xml`), так и в формате EDT (`Configuration.mdo`)..
- `УдалениеЛишнихКонцевыхПробелов` - удаляет лишние пробелы и табы в конце не пустых строк в файлах модулей.
- `УдалениеЛишнихПустыхСтрок` - удаляет лишние пустые строки в модулях (лишними считаются 2 и более идущих подряд пустых строк).

## Изменение настроек

Expand All @@ -62,7 +66,7 @@ precommit4onec может читать настройки своей работ
Предоставляется возможность в репозитории иметь свои, отличные от глобальных, настройки. Для этого необходимо вместо флага `-global` в указанных выше командах передавать параметр `-rep-path` с указанием пути к каталогу репозитория.

Также можно настроить различное поведение для различных каталогов репозитория, для работы с подкаталогами (проектами) используется ключ `-child-path`.
Настройки проектов полностью переопределяют базовые настройки. Например если в основной настройки указаны `ОтключенныеСценарии`,
Настройки проектов полностью переопределяют базовые настройки. Например если в основной настройке указаны `ОтключенныеСценарии`,
а для проекта `configuration\` они не заполнены, то для каталога `configuration` будут выполнены все сценарии.

Конфигурирование дает возможности:
Expand All @@ -78,7 +82,8 @@ precommit4onec может читать настройки своей работ
{
"GLOBAL": { // необязательная секция
"ВерсияПлатформы": "8.3.10.2309", // используемая версия платформы например для разбора на исходники
"version": "2.0" // версия конфигурационного файла (необязательно)
"version": "2.0", // версия конфигурационного файла (необязательно)
"ФорматEDT": true, // признак использования исходных файлов в формате EDT
},
"Precommt4onecСценарии": {
"ИспользоватьСценарииРепозитория": false, // Признак, выполнения проверок из репозитория
Expand All @@ -98,7 +103,6 @@ precommit4onec может читать настройки своей работ
}
```


## Расширение функциональности

Для создания нового сценария обработки файлов необходимо воспользоваться шаблоном, находящимся в каталоге `СценарииОбработки` скрипта.
Expand Down
14 changes: 14 additions & 0 deletions docs/ДобавлениеТестовВРасширение.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Сценарий `ДобавлениеТестовВРасширение`

Добавляет отсутствующие сценарии тестов в расширение с unit-тестами для всех экспортных методов.

Обрабатываются:

- общие модули
- модули менеджеров
- модули объектов
- модули наборов записей

Поддерживаются только исходные файлы в формате EDT.

Публичный репозиторий тестового расширения и документация по нему находятся в разработке.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Сценарий `ОтключениеПолнотекстовогоПоиска`

Отключает полнотекстовый поиск в файлах описаний метаданных.

Имеет настройку в конфигурационном файле `v8config.json` для исключения файлов из обработки. Для этого необходимо указать относительный путь в репозитории до файла описания объекта метаданных. Можно выключить из обработки отдельные реквизиты, перечислив их массивом.

```JSON
{
"Precommt4onecСценарии": {
"НастройкиСценариев": {
"ОтключениеПолнотекстовогоПоиска": {
"МетаданныеДляИсключения": {
"src\\_example.xml": [
"Номер",
"ТабличнаяЧасть1.Реквизит"
],
"src\\_example2.xml": []
}
}
}
}
}
```
20 changes: 20 additions & 0 deletions docs/ПроверкаНецензурныхСлов.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Сценарий `ПроверкаНецензурныхСлов`

Проверяет наличие нецензурных слов в модулях.

Файл-словарь указывается в настройках.

```JSON
{
"Precommt4onecСценарии": {
"НастройкиСценариев": {
"ПроверкаНецензурныхСлов": {
"ФайлСНецензурнымиСловами": "НецензурныеСлова.txt"
}
}
}
```

Слова в нем должны быть расположены по одному в строке, регистр символов не учитывается.

Пример файла [НецензурныеСлова.txt](/НецензурныеСлова.txt).
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Сценарий `РазборОтчетОбработокРасширений`

Раскладывает средствами платформы файлы внешних отчетов, обработок и расширений на исходные файлы.

Полученные исходники и помещаются в каталог исходных файлов репозитория в подкаталоги, соответствующие расширениям этих файлов. Например, внешний отчет `ВнешнийОтчет1.erf` будет разложен в каталог `src\erf\ВнешнийОтчет1`.
1 change: 1 addition & 0 deletions features/ВыполнениеПрекоммита.feature
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
Когда Я копирую файл "tests/fixtures/demo/DemoОбработка.epf" в каталог репозитория "РабочийКаталог"
И я копирую файл "tests/fixtures/demo/DemoОтчет.erf" в каталог репозитория "РабочийКаталог"
И я копирую файл "tests/fixtures/demo/DemoРасширение.cfe" в каталог репозитория "РабочийКаталог"
И Я копирую файл "НецензурныеСлова.txt" в каталог репозитория "РабочийКаталог"
И я фиксирую изменения в репозитории "РабочийКаталог" с комментарием "demo коммит"
Тогда В каталоге "src" репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\FormsсновнаяОФ\Ext\Form\Module.bsl"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\FormsсновнаяОФ\Ext\Form\form"
Expand Down
10 changes: 9 additions & 1 deletion features/ИнтерактивнаяНастройка.feature
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# language: ru

Функциональность: Настройка конфигурации прекоммита
Функциональность: Интерактивная настройка конфигурации прекоммита

Как разработчик
Я хочу иметь возможность изменять настройки precommit4onec
Expand Down Expand Up @@ -36,6 +36,10 @@ y
y
y
y
y
y
y
y
local
n
"""
Expand All @@ -48,12 +52,16 @@ n
"КаталогЛокальныхСценариев": "local",
"ГлобальныеСценарии": [
"ДобавлениеПробеловПередКлючевымиСловами.os",
"ДобавлениеТестовВРасширение.os",
"ЗапретИспользованияПерейти.os",
"ИсправлениеНеКаноническогоНаписания.os",
"КорректировкаXMLФорм.os",
"ОбработкаЮнитТестов.os",
"ОтключениеПолнотекстовогоПоиска.os",
"ПроверкаДублейПроцедурИФункций.os",
"ПроверкаКорректностиДирективКомпиляции.os",
"ПроверкаКорректностиОбластей.os",
"ПроверкаНецензурныхСлов.os",
"РазборОбычныхФормНаИсходники.os",
"РазборОтчетовОбработокРасширений.os",
"СинхронизацияОбъектовМетаданныхИФайлов.os",
Expand Down
Loading

0 comments on commit 034e595

Please sign in to comment.