Skip to content

Conversation

khorevaa
Copy link
Member

@khorevaa khorevaa commented Nov 17, 2017

ЧТО СДЕЛАНО:

  1. Класс - менеджер плагинов
  2. Глобальный рефакторинг для подсистемы плагинов (ура уменьшено количество параметрах в процедурах)
  3. Реализована вся текущая функциональность на плагинах:
  • push - отвчает за отправку изменний на удаленный узел
  • pull - отчает за получение изменений с удаленного узла
  • limit - ограничивает выгрузку из хранилища, по количеству, номеру начальной и конечной версии
  • process-fatform-modules - конвертирует модулю форм в .bsl
  • increment - обеспечивает икрементальную выгрузку конфигурации из хранилища
  • check-commits - проверяет хранилища на заполненность комментариев к версиям
  • check-authors - проверяет авторов хранилища на наличие в файле AUTHORS
  • vendorUpload - использование получение конфигурации из хранилища средствами 1С Предприятие. В том числе получение Таблицы версий
  • smart-tags - расставляет теги, в коммиты, при изменении версии конфигурации в конфигураторе
  1. Обратная совместимость. РАБОТАЕТ. (но необходимо подключить нужные плагины)
    Например,
  • Для того чтобы команда "sync", отправляла и получала изменения с удаленного узла надо добавить флаги "-plugins pull -plugins push"
  1. РАБОТАЕТ ПакетнаяСинхронизация (ну почти работает) только для файлов JSON (пример, файле config-example.json)
  2. help sync
oscript ./src/gitsync.os help sync
GitSync v2.3.0
sync - Выполняет синхронизацию хранилища 1С с git-репозиторием (указание имени команды необязательно)
Параметры:
 <ПутьКХранилищу> - Файловый путь к каталогу хранилища конфигурации 1С.
 <URLРепозитория> - Адрес удаленного репозитория GIT.
 <ЛокальныйКаталогГит> - Каталог исходников внутри локальной копии git-репозитария.
 -email - <домен почты для пользователей git>
 -v8version - <Маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.)>
 -debug - <on|off>
 -verbose - <on|off>
 -branch - <имя ветки git>
 -format - <hierarchical|plain>
 -tempdir - <Путь к каталогу временных файлов>
 -plugins - Плагины к загрузке и исполнения
 -call-error - [PLUGIN] [check-comments] флаг вызова ошибки при отсутствии теста комментария
 -send-email - [PLUGIN] [check-comments] флаг отправки почты автору коммита  и на дополнительные адреса
 -add-emails - [PLUGIN] [check-comments] дополнительные адреса для отправки сообщения
 -limit - [PLUGIN] [limit] выгрузить не более <Количества> версий от текущей выгруженной
 -minversion - [PLUGIN] [limit] <номер> минимальной версии для выгрузки
 -maxversion - [PLUGIN] [limit] <номер> максимальной версии для выгрузки
 -push-every-n-commits - [PLUGIN] [push] <число> количество коммитов до промежуточной отправки на удаленный сервер
 -push-tags - [PLUGIN] [push] Флаг отправки установленных меток
 --storage-user - [PLUGIN] [vendorUpload] <пользователь хранилища конфигурации
 --storage-pwd - [PLUGIN] [vendorUpload] <пароль пользователя хранилища конфигурации>

Обработчики к которым можно подключаться:

// Вызывается в процедуре АктивизироватьПлагины
МассивОбработчиков.Добавить(НовыйОбработчик("ПриАктивизацииПлагина", 1)); // 

// Подписки на регистрацию команд приложения
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеРегистрацииКомандПриложения", 1)); // 
МассивОбработчиков.Добавить(НовыйОбработчик("ПриРегистрацииКомандыПриложения", 3)); // 
МассивОбработчиков.Добавить(НовыйОбработчик("ПриВыполненииКоманды", 2)); // 
МассивОбработчиков.Добавить(НовыйОбработчик("ПередВыполнениемКоманды", 3)); // 
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеВыполненияКоманды", 3)); // 

// Подписки на начало и окончания выполнения
МассивОбработчиков.Добавить(НовыйОбработчик("ПередНачаломВыполнения", 4)); // 
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеОкончанияВыполнения", 4));

// Подписки на получение таблицы версий
МассивОбработчиков.Добавить(НовыйОбработчик("ПриПолученииТаблицыВерсий", 4));
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеПолученияТаблицыВерсий", 3));

// Подписки на обработки строки версии
МассивОбработчиков.Добавить(НовыйОбработчик("ПередНачаломЦиклаОбработкиВерсий", 4));
МассивОбработчиков.Добавить(НовыйОбработчик("ПередОбработкойВерсииХранилища", 2));
МассивОбработчиков.Добавить(НовыйОбработчик("ПриОбработкеВерсииХранилища", 2));
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеОбработкиВерсииХранилища", 3));
	
// Подписки на выполнение коммита
МассивОбработчиков.Добавить(НовыйОбработчик("ПередКоммитом", 4));
МассивОбработчиков.Добавить(НовыйОбработчик("ПриКоммите", 7));
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеКоммита", 2));

// Подписки на начало и окончания выгрузки версии конфигурации
МассивОбработчиков.Добавить(НовыйОбработчик("ПередНачаломВыгрузкиВерсииХранилищаКонфигурации", 5)); // 
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеОкончанияВыгрузкиВерсииХранилищаКонфигурации", 5));

// Подписки на загрузку версии конфигурации из хранилища
МассивОбработчиков.Добавить(НовыйОбработчик("ПередЗагрузкойВерсииХранилищаКонфигурации", 5)); //
МассивОбработчиков.Добавить(НовыйОбработчик("ПриЗагрузкеВерсииХранилищаВКонфигурацию", 5));
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеЗагрузкиВерсииХранилищаВКонфигурацию", 4)); // 

// Подписки на выгрузку конфигурации в исходники
МассивОбработчиков.Добавить(НовыйОбработчик("ПередВыгрузкойКонфигурациюВИсходники", 6)); //
МассивОбработчиков.Добавить(НовыйОбработчик("ПриВыгрузкеКонфигурациюВИсходники", 4));
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеВыгрузкиКонфигурациюВИсходники", 3)); // 
	
// Подписки на очистку каталога рабочей версии
МассивОбработчиков.Добавить(НовыйОбработчик("ПередОчисткойКаталогаРабочейКопии", 6)); //
МассивОбработчиков.Добавить(НовыйОбработчик("ПриОчисткеКаталогаРабочейКопии", 3));
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеОчисткиКаталогаРабочейКопии", 2)); // 
	
// Подписки на перемещение в каталог рабочей копии
МассивОбработчиков.Добавить(НовыйОбработчик("ПередПеремещениемВКаталогРабочейКопии", 6)); //
МассивОбработчиков.Добавить(НовыйОбработчик("ПриПеремещенииВКаталогРабочейКопии", 5));
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеПеремещенияВКаталогРабочейКопии", 4)); // 

// Подписка на распаковку файлов form.bin
МассивОбработчиков.Добавить(НовыйОбработчик("ПриРаспаковкеКонтейнераМетаданных", 3));
МассивОбработчиков.Добавить(НовыйОбработчик("ПослеРаспаковкиКонтейнераМетаданных", 2)); // 

Как запустить самому.

  1. Установить библиотеку cmdline из ветки develop
  2. Запустить

@artbear artbear changed the title Поддержка работы с плагинами (PR для обсуждения) WIP: Поддержка работы с плагинами (PR для обсуждения) Nov 17, 2017
@artbear
Copy link
Member

artbear commented Nov 17, 2017

Напиши, как поправить делегатов, чтобы можно было запустить твой PR.

Для тех, кто не в курсе, т.к. я уже в курсе

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Прикольно, 1скрипт позволяет писать имена областей не в виде идентификаторов в отличие от 1С ? :)
Супер.

Как же меня задолбали имена областей в 1С!

@artbear artbear self-assigned this Nov 17, 2017
@artbear
Copy link
Member

artbear commented Nov 17, 2017

Круто, наконец-то до плагинов добрались.
На выходных посмотрю.

@artbear
Copy link
Member

artbear commented Nov 17, 2017

И номер PR красивый - 100 !


КонецПроцедуры

Процедура ПередОбработкойВерсииХранилища(СтрокаВерсии, СледующаяВерсия, КонтекстПлагина) Экспорт
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nixel2007 Зацени, как методы-обработчики выглядят красиво с делегатами, в отличие от Оповещений 1С :)

@khorevaa
Copy link
Member Author

khorevaa commented Nov 17, 2017

@artbear Написал как поправить делегатов... (п.с. это грубая правка) только чтобы работало.

@khorevaa
Copy link
Member Author

@artbear up up

@artbear
Copy link
Member

artbear commented Nov 20, 2017

В выходные не получилось.
А сегодня некогда, работа горит.

@khorevaa
Copy link
Member Author

Ок. Будем ждать...

…авление параметров к командной строке, и новый пример плагин limit
@artbear
Copy link
Member

artbear commented Nov 26, 2017

@khorevaa Делегат доработан и опубликован.

  • Исправь, плиз, свой код
  • добавь зависимость на версию делегата 0.2.0
  • Убери коммент про делегат в описании этого PR

- check-comments - сделал заготовку для отправики сообщений через библиотеку ИнтернетПочты
- check-comments, limit, push, vendorUpload - убрано слово PLUGIN при добавлении в параметры команды
…льзованием получения отчета из хранилища конфигурации 1С.Предприятие
@artbear
Copy link
Member

artbear commented Nov 30, 2017

Тесты падают и падают :(

@khorevaa
Copy link
Member Author

khorevaa commented Dec 1, 2017

Чтобы тесты прошли надо обновить библиотеку cmdline из девелопа

@khorevaa
Copy link
Member Author

khorevaa commented Feb 9, 2018

Закрыт PR. Полностью переделан механимз плагинов. Сделаю отдельный PR

@khorevaa khorevaa closed this Feb 9, 2018
@khorevaa khorevaa deleted the feature/add-plugns-support branch May 29, 2018 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants