Управление сборкой. Расширение для конфигурации СППР

Публикация № 1650163 26.08.22

Разработка - DevOps и автоматизация разработки

EDT СППР Gitlab CI/CD

Подсистема «Управление сборкой GLI» предназначена для динамического формирования сборочных линий Gitlab и отслеживания процесса доработок систем на базе1С:Предприятия Позволяет упростить выпуск новых релизов системы, подготовить описание доработок системы. Интегрируется с GitLab API по событиям Push, Merge-request, Pipeline. Уведомляет пользователей о результатах сборки/тестирования сборочных конвейеров через СВ, либо при её недоступности или отсутствию по E-Mail. Поможет при отправке исправлений ошибок в общую базу тестирования, сформирует запросы на слияние в ветку версии только по протестированному и подтверждённому функционалу. Подсистема рассчитана исключительно на клиент - серверную архитектуру тестовых ИБ. Поддерживаемая версии СППР 2.0.4.15, платформа не ниже 8.3.17.1549, 2.0.6.10 / не ниже 8.3.21.1664

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

Подсистема позволяет:

  • Вести список информационных баз (ИБ) в нескольких кластерах и СУБД. Справочник "Информационные базы"
    • Для каждой ИБ допустимо указание имени пользователя и пароля, сохраняемые в настройках пользователя.
    • Информационные базы представлены в виде иерархического списка, где не первом уровне это исходные (эталонные) ИБ, а остальные уровни это клоны эталонных баз для тестирования функционала разрабатываемой системы.
    • Для каждой ИБ возможно исполнение различных командных файлов, из которых четыре предопределены (копирование из родителя, удаление, получение параметров и получения списка ИБ). Остальные могут добавляться по усмотрению. Командные файлы хранятся в виде шаблонов, для каждого шаблона предусмотрены алгоритмы подготовки (заполнения) переменных шаблона и алгоритмы обработки результата на встроенном языке.
    • Каждая информационная база может быть связана с некоторым объектом разработки:
      • Ветки версий, основная ветка проекта, ветка тестирования
      • Технические проекты
      • Ошибки
  • Вести справочник "Сборочных линий", представляющих собой динамически формируемый шаблон сборочной линии проекта, подключаемый в конвейере Gitlab одной строкой и не требующих модификации корневого файла проекта .gitlab-ci.yml. 
  • Поддерживать консистентность ветки версии, в которой содержится только проверенный код, и позволяющий выпустить релиз в любой момент согласно требованиям Разработка плановой версии п. 3.2 за счёт использования ветки тестирования
    • Автоматически формировать запросы на слияние в ветку тестирования ошибок, исправляемых в выделенных ветках, не имеющих связи с ИБ и отмеченных как "Исправлено". (Подробнее см. дополнение к справке в справочнике "Ошибки")
    • Автоматически формировать запросы на слияние в ветку версии подтверждённых ошибок
  • Максимально облегчить подготовку описания релиза. (в том виде, в котором это предусмотрено в БСП)
  • Автоматически создавать элементы в справочнике ветки, созданные в при помещении в гит из локального репозитория гит для технических проектов и исправляемых ошибок. 
  • Уведомлять пользователей об окончании сборочного конвейера и функционале, включённом в него через систему взаимодействия, или при её недоступности или отсутствию по электронной почте. Электронная почта используется по умолчанию в качестве резервного канала уведомлений.
  • Уведомлять администраторов сборок обо всех событиях сборочного конвейера, не только об успешных.
  • Уведомлять разработчика о проблемах при принятии запроса на слияние его кода в ветку тестирования.
  • Уведомлять разработчика о создании ветки технического проекта или исправления ошибки в Git и привязывать созданную ветку к техпроекту или ошибке.
  • Загружать результаты тестирования VA из артефактов сборочной линии (доработка к загрузке результатов тестирования из CI)

Ограничения:

  • Предполагается, что имя базы в кластере и сервере СУБД совпадает.
  • Не допускается одновременная работа с двумя и более клонами Gitlab хранилищ, но допускается быстрое переключение между ними изменением настроек. Например, когда в публичное хранилище результаты работы могут выкладываться не сразу, а отладка некоторого функционала проводится в защищённом тестовом контуре, обособленным от публичного. В этом случае будут корректно обрабатываться входящие запросы через API, этого будет достаточно для обработки событий pipeline, push, merge-request, но чтобы заработала исходящая интеграция, необходимо в проекте указать новую строку подключения к хранилищу Git.
  • Не поддерживается интеграция по issue Gitlab
  • Если с сервера СППР доступа к СУБД нет, скорее всего использовать функционал не получится, либо будут ограничены операции с копированием эталонных баз. Для элемента справочника СУБД, к которым доступа с сервера СППР нет нужно включить флаг "Не опрашивать доступность СУБД"
  • Предопределённые и произвольные пакетные задания доступны только пользователю, имеющему "Полные права", либо "Администратору сборок" в будущем планируется снять это ограничение, разрешив разработчикам в некоторых случаях исполнять некоторые пакетные задания.

Детально возможности описаны в разделе "Подробное описание коммерческого продукта"

 
 Документация, повторяющая справку
 
Инструкция по установке и настройке интеграции (вариант для Windows/MS-SQL) когда для тестового контура 1С:Предприятия используется СУБД MS-SQL, скрипты конвейера и обслуживания приведены на командном языке CMD.

 

 
Инструкция по установке и настройке интеграции (вариант для Linux/Postgres) когда для тестового контура 1С:Предприятия используется СУБД Postgres SQL, скрипты конвейера и обслуживания приведены на командном языке BASH.

Можно создавать гибридные варианты конвейеров, когда ИБ тестируются сразу на нескольких СУБД, сборочный конвейер может состоять из разных этапов, написанных на разных скриптах, которые будут исполняться на бегунах Gitlab в разных ОС, однако скрипты обслуживания баз и кластера должны быть на том командном процессоре, на котором установлен сервер 1С:Предприятия содержащий ИБ СППР.

Адрес демосервера для Windows/MSSQL
Адрес демосервера для Linux/Postgres

Пользователь "Только на просмотр" без пароля на демосерверах - Аудитор
Подсистема «Управление сборкой GLI» зарегистрирована в Роспатенте и реестре Российского ПО

Ссылка на страницу ПП на сайте автора: «Управление сборкой GLI»
Что нового? Описание обновлений системы.

Причины купить

Эта разработка уникальна в своём роде. Создавалась и тестировалась на протяжении более 2 лет. 
Основной предпосылкой к её созданию послужило реализация требований, описанных ранее в статье: Технология разветвлённой разработки, использующая git, ci/cd. Т.е. требования были описаны раньше, но реализовать их только с помощью СППР не получалось, либо было неудобно. Не было какой то единой структуры.

В расширении есть много интересных решений и примеров по интеграции с Gitlab API, код присутствующий в ней поможет сэкономить не одну неделю разработчику, который задумал сделать свою собственную интеграцию с Gitlab. Расширение содержит некоторые исправления проблем типового функционала СППР, в частности работа с ошибками, загрузка изменений из Git в технические проекты. Для подсистему управления сборкой есть встроенная справка с примерами использования. Фактически это готовый продукт - бери и работай. 3 месяца бесплатной техподдержки помогут быстрее осуществить запуск подсистемы в эксплуатацию.

Благодарность автору статьи, которая сильно помогла 3 года назад с освоением gitlab'a: Сборка приложения, разработанного на EDT, с помощью gitlab-ci (infostart.ru)

Достоинства

Ключевые моменты реализованные в подсистеме.

Реализация требования ведения эталонных и тестовых информационных баз. 
Театр начинается с вешалки, а моделирование процессов предприятия в проекте начинается с создания эталонных тестовых баз. Из которых минимум одна, рано или поздно станет прототипом системы, переживёт миграцию и уйдёт в продуктивный контур проекта. Но от этого, она не перестанет быть эталонной. Количество эталонных баз в разных ситуациях может быть разное, но как правило две создаются всегда - это пустая, в которой проводится начальное заполнение и демонстрационная база, та же конфигурация, но заполненная какими то тестовыми данными типа ООО "Ромашка", на которых можно освоить работу функционала системы и продемонстрировать заказчику. Очень часто используют термин "база моделирования" процессов предприятия. Этот набор баз является исходной точкой для всех остальных тестовых ИБ, которые могут присутствовать в процессе разработки системы. Т.е. все остальные ИБ, по сути являются теми или иными клонами эталонных ИБ.
Меня как архитектора, всегда раздражала ситуация: "Кто в лес, кто по дрова" Когда каждый член проектной команды (методолог, консультант, архитектор, разработчик) присоединяясь в определённый момент времени использует непонятно какие базы для моделирования процессов, непонятно какие платформы. "Что стояло на том и развернул". Очень часто члены команды разворачивают разные релизы исходной системы, что приводит совсем к анекдотичным случаям. Но, в итоге, это ни к чему хорошему, кроме как пустая трата времени на выяснение разницы в релизах не приводит. Так быть не должно. 
Тестовый контур должен быть доступен всем членам проектной команды, либо это ВПН, либо непосредственно локальная сеть, и все ИБ должны открываться из одного места. В предлагаемом расширении это справочник "Информационные базы":
Информационные базы
Для режиме толстого клиента доступны ещё несколько информационных колонок, однако на практике получение данных для них требует авторизации и отнимает много времени, если базы большие. Удалять функционал не стал, вдруг в будущем что то изменится? На любителя.

Таким образом есть единое место, откуда производится открытие тестовых и эталонных баз для всей проектной команды. Есть возможность задать свой персональный пароль для ИБ, чтобы не проходить авторизацию каждый раз (на случай отсутствия аутентификации ОС), все остальные настройки доступны администратору сборок. Именно он создаёт или клонирует информационные базы в процессе выдачи в работу технических проектов и исправлений ошибок. Остальные могут их только запускать и работать с ними. При этом список ИБ 1С не используется, и ничто не мешает пользователю "по старинке" зарегистрировать ИБ у себя в списке обычным образом. Предполагается, что клиентская часть платформы должна стоять у члена проектной команды и работает он с тестовыми ИБ по протоколу тонкого клиента.

Реализация требования сборки эталонных и тестовых ИБ.
Если посмотреть на список ИБ то в колонке есть ссылка на "Основной объект сборки", это очень важный момент, так как в предлагаемом решении шаблон сборочной линии создаётся один раз (ну хорошо, буду честен :), добавлю: "и правится в течении проекта постоянно, так как требования могут меняться" у меня так и было, пока не родилось это расширение). Однако с учётом предложенного функционала в действительности так может и быть: один раз создали шаблон и он работает самостоятельно. 
Как это работает?
В колонке СУБД (см. картинку выше) есть маленькая зелёная пиктограмма, означающая что ИБ с указанным "Наименованием" присутствует физически на сервере СУБД из колонки. В процессе формирования запроса динамического списка происходит реальное опрашивание доступности баз на СУБД. Текст сборочной линии генерируется только для тех веток, которые связаны с "Основным объектом сборки" у информационных баз, которые реально присутствуют на сервере. Здесь нужно отметить, что GitLab пытается отработать сборочную линию, которая указана в ключевом файле .gitlab-ci.yml при наступлении вариантов событий для определённой ветки или тэга:

  • Push (Фиксирование) 
  • Принятие merge-request (запроса на слияние) (только ветки)
  • Запуск сборочного конвейера по расписанию.
  • Запуск сборочного конвейера вручную через веб интерфейс
  • Запуск сборочного конвейера посредством gitlab API, например: 
    curl --request POST --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/projects/1/pipeline?ref=main"

Для каждого из указанных вариантов производится попытка получить версию текста сборочной линии из файла .gitlab-ci.yml для указанной ветки, и при случае, если в нём будут найдены задания для указанной ветки/тэга сборочный конвейер начнёт отработку заданий. Если же ни одного задания для указанной ветки не будет найдено то не произойдёт ничего. Запущенные сборочные линии по 5 представленным выше вариантам будут отличаться лишь в значении одной переменной окружения: "CI_PIPELINE_SOURCE" выставленной в одно из значений: push, merge_request_event, schedule, web, api. (на самом деле вариантов чуть больше, подробнее об этом здесь)

В ключевом файле .gitlab-ci.yml нашего проекта необходимо указать ссылку на публикацию http сервиса СППР GetPipeline (ссылка работает) следующим образом:

include: 
    - 'http://xn--e1agfaq7azal4a.xn--p1ai/sppr_copy/hs/GetPipeline/CI_YML_TEST/ci-module.yml'

Где "https://xn--e1agfaq7azal4a.xn--p1ai/sppr_copy/hs/GetPipeline/" ваш веб сервер с публикацией СППР, а вот CI_YML_TESTссылка на элемент другого важного справочника "Сборочные линии":
Другими словами, каждый раз когда происходит одно из 5 событий инициирующего запуск сборочного конвейера (pipeline) происходит следующее:

  1. Gitlab CI считывает файл .gitlab-ci.yml из корня проекта и в нём пытается загрузить вложение директивой include, которая содержит ссылку на внешний ресурс с файлом ci-module.yml
  2. Происходит попытка получить из веб сервиса СППР подключаемый файл ci-module.yml, по крайней мере gitlab именно так и думает, что он получает этот файл.
  3. СППР опрашивает доступные ИБ в тестовом контуре и на каждую из них генерирует один общий файл сборочного конвейера (очень жаль, что в подключаемый файл нельзя передать никакие параметры, например имя ветки для которой наступает событие pipeline start, тогда бы механизм мог быть ещё эффективнее)
  4. Gitlab CI выбирает из этого файла задания, подходящие для ветки, по которой наступило событие сборки, после чего gitlab-runners (бегуны гитлаба) начинают последовательно их исполнять, в том порядке, в котором указаны в списке stages (этапы) при этом для каждого задания проверяются условия указанные в нём, например наличие изменений в определённом каталоге ветки, по отношению к предыдущей фиксации (commit), либо соответствие значения переменных окружения ожидаемым в задании, если все условия выполнены, то задание будет передано бегуну.
  5. Бегун загружает (при необходимости) артефакты сборки от предыдущих этапов, отрабатывает пакетный файл, указанный в разделе script и результаты, при необходимости сохраняет так же в артефактах сборки. Артефактом сборки может являться, например файл CF или CFU для обновления тестовой или эталонной базы, или лог файл с ошибкой сборки.
  6. Если последнее задание сборочной линии отрабатывает успешно завершается (success) тогда Gitlab генерирует webhook который отрабатывает СППР, оповещая консультантов, методологов, разработчиков через СВ о том, что проведена успешная сборка:
    В противном случае, если произошла ошибка будут уведомлены только администраторы сборок. Для диагностики нужно будет открыть сборочную линию в веб интерфейсе Gitlab и проанализировать файлы логов заданий и разобраться в причинах.
    Как это происходит можно посмотреть на видео:
     
     Ещё аналогичное видео с техническим проектом 

     

     

Вариант уведомления, для ветки версии, когда собирается ветка в которую было несколько запросов на слияние, СППР отслеживает запросы на слияние в ветку версии и при сборке сообщает, что тот или иной функционал теперь доступен в тестовой ИБ. Круг лиц для уведомлений выбирается по разному. Для справочника "Ошибки" это все кто присутствует на закладке протокол. Если протокол ещё пуст, то автору (кто зарегистрировал) ошибки. Для технических проектов это закладка "Участники". Для элемента справочника "Ветки" дополнительное поле "Получатели уведомлений"
У читающего этот текст может сложиться вопрос: если для каждой ветки можно сделать свою сборочную линию, включая вариант её полного отсутствия то зачем всё это (расширение, генерация текста сборочной линии на лету) понадобилось?
Вот на это несколько причин:

  • Разработчики 1С, даже перейдя на EDT с конфигуратора далеки от языка пакетных файлов (CMD/PowerShell/Bash), и уж тем более язык YML которым описывается сборочная линия GitLab для них и вовсе как китайская грамота.
  • При слиянии веток разработки возникали конфликты, которые EDT в процессе слияния веток не мог разрешить. В итоге это заканчивалось тем, что очень часто после слияния мне приходилось текст конвейера править. Не могу отметить что я был рад этой "балдовой" работе.
  • Написать универсальный текст сборочного конвейера тоже не получалось из-за различного количества тестовых баз под фичу. В 90% было достаточно одной эталонной копии для тестирования, но для 10% случаев нужны были дополнительные, либо они должны были при сборке копироваться с эталонной и это приводило к тому, что опять же приходилось тратить время на правку YML текста. Сейчас, конечно же я знаю как можно написать универсальный текст сборочного конвейера, но использовать механизм справочника "Сборочных линий" удобнее.
  • Хотя бы потому, что при исправлении ошибок в текстах скриптов не нужно ничего пушить в хранилище (знатоки сейчас подумали: "А кто мешал разместить подключаемый файл так же на сервере?"). Да лень, гораздо проще открыть справочник и поправить несколько строк, получить текст сборочной линии по кнопке "Получить текст сборочной линии" и проверить её с CI Lint:
  • Есть ещё одна причина, достаточно веская. Gitlab не умеет прерывать ранее запущенные сборочные линии, если линия отрабатывает в этот момент задание, у которого переменная GIT_STRATEGY = none. Из всех вариантов сборочных линий, которые мне удалось построить за несколько лет с учётом различных факторов я пришёл к тому, что этапы должны располагаться примерно так:
    • Lock - блокировка и выгонка пользователей информационных баз по таймауту, начиная с 3.1.5 в БСП уже всё включено. До 3.1.5 мы все БСП патчили. Зачем? Подробнее описано здесь.
    • GetCF - получение предыдущей конфигурации для получения CFU (зачем нужна CFU и почему без неё - "труба" расскажу чуть позже)
    • Fetch&Convert - получение из гит и конвертация в формат XML 1С
    • Build - получение CF/CFU новой версии
    • Update - обновление тестовых баз новой CF или CFU
    • UnLock - отработка обработчиков обновления и разблокировка

Это минимум, на самом деле в силу различных причин их придётся сделать ещё больше, и из всех этапов выше только третий: Fetch&Convert будет прерван автоматически CI/CD если будет запушена новая версия в Git. Во всех остальных случаях задания будут продолжаться исполняться и, естественно будут между собой конфликтовать за ИБ. Чем может закончиться этот конфликт в самом худшем случае: потерей тестовой базы. СППР отслеживает запуск новых линий через pipeline webhook, и, при необходимости, если уже есть для этой ветки запущенные аккуратно их прервёт, вне зависимости от значения GIT_STRATEGY в задании. которое сейчас исполняется. GIT_STRATEGY:none необходим, так как самый простой способ передачи данных от предыдущих этапов хранить их в подкаталогах каталога сборки, чтобы не тратить время на загрузку/выгрузку артефактов. Т.е. есть при регистрации бегун в gitlab CI создаст каталог, например: D:\CI_Runner\builds\5gjGWpxd\0\check300373\ci_ymp_test, где ci_ymp_test это рутовый каталог вашего EDT проекта: в нем же можно создать временные каталоги конвертированных файлов, которые при следующем Fetch будут автоматически удалены.

  • Есть конечно же соблазн все этапы положить в единый пакетный файл, однако имейте в виду, что если на этапе разблокировки, например, у вас не будет доступна лицензия 1С:Предприятия и эта часть пакетника не отработает (куда пропадают лицензии - это предмет отдельного разговора), при полном перезапуске или будет обидно за потерянное время: мой рекорд сборки и обновления 120 Гб базы по всем этапам выше с 1й минутой ожидания завершения работы пользователей для конфигурации УХ 3.1.16.2 - 32 минуты (при использовании новой утилиты сборки из XML ibcmd и с ней пока не все хорошо), обычным конфигуратором и того медленнее: 58 минут, или Вам придётся завершать сборку вручную, минусы здесь очевидны:
    • Пользователи не получат обычного уведомления о сборке, к которому они уже привыкли (см. выше пример), Вам придётся их уведомлять самостоятельно
    • Вы потратите своё драгоценнейшее время.
  • Есть ещё одно требование - ПАРАЛЛЕЛЬНОСТЬ, т.е. возможность собирать несколько веток практически одновременно на одних и тех же процессорных мощностях. Задача эта, как оказалось, далеко не из простых. Конфигуратор работает в один поток, а утилита ring использует все имеющиеся процессоры. Конфигуратор работает долго, утилиту ring, как оказалось, можно заставить конвертировать целиком проект УХ в формат XML за 4 минуты на 12 процессорах с частотой 4 ГГц. Возможно, для некоторых это не открытие, но надо лишь просто не удалять папку workspace от предыдущей конвертации. Это сократит минимум 20 минут на создание новой папки workspace утилитой ring. Сделать кэш параллельным для нескольких потоков конвертирования можно, но хранить его нужно для каждого процесса бегуна гитлаба отдельно. В демо базе в примере сборочной линии это именно так и делается в папке --workspace-location %CI_BUILDS_DIR%/%CI_RUNNER_SHORT_TOKEN%/workspace%CI_CONCURRENT_ID%, где CI_BUILDS_DIR - папка которая используется бегуном для сборок, CI_RUNNER_SHORT_TOKEN - токен привязки выбранного бегуна к хранилищу(Один бегун может быть привязан, и обслуживать параллельно несколько хранилищ Git), CI_CONCURRENT_ID - номер параллельного процесса бегуна, исполняющего то или иное задание. При этом нужно понимать, что если в одном пайпе на одном бегуне задание начало исполняться с одним значением CI_CONCURRENT_ID, не факт, что следующее из этого же пайпа будет исполняться с тем же значением. Передавать же 20 с лишним гигабайт конвертированных XML через артефакту - полное безумие. Поэтому пришлось помудрить с такими каталогами. На замену "тугодумному" конфигуратору с релиза 1С:Предприятия 8.3.20 подоспела утилита ibcmd, пример её использования есть так же в демо базе, он закоментирован, отмечал её возможность использования чуть ранее. Её фантастичность в том, что она умеет собирать из XML CF в несколько потоков за три минуты, в отличии от конфигуратора, который тратит на это 30 минут... Однако, не знаю, в чем реально проблема, но интерфейс (только интерфейс, остальное всё собирается на ура) она собирает некорректно. Толи дело в том, что версия XML у меня была для платформы 8.3.17, но в интерфейсе отображались все объекты, которые входили в подсистему, включая вложенные подсистемы, даже если флаг отображения у них был сброшен. Возможно, если собирать XML для платформы 8.3.20 такой проблемы не будет, но мне от её использования пришлось отказаться... 

 

Реализация требования консистентной ветки версии, согласно требованиям п 3.2.
Немного пояснений. Начиная с версии 2.0.3.9 в СППР появился функционал веток - справочник ветки. Для меня это было очень неожиданным шагом, что отложило публикацию этой статьи почти на 1,5 года, и возможно, к лучшему. Я долго ждал, когда же описание нового функционала появится на https://its.1c.ru но на момент начала подготовки публикации 26.04.2022 года оно там так и не появилось, в партнёрской конференции тоже все отмолчались на вопросы - когда же будет описание? Т.е. сейчас описание на ИТС соответствует версии 2.0.1.61. Пришлось разбираться с новым функционалом самостоятельно, методом проб и ошибок.

Эмпирическим путём было выяснено, что справочник "Ветки" хоть и отражает иерархическую структуру, но иерархическим не является. Расширением здесь не поможешь, это важно: включить иерархию в справочнике "Ветки" необходимо, на это опирается логика расширения, и это придётся сделать в основной конфигурации.

Каждый элемент справочника "Ветки" должен иметь определённый тип ветки:

  • Основная ветка проекта
  • Ветка версии
  • Ветка технического проекта
  • Ветка для исправления ошибок

Для двух последних вариантов предназначение очевидно, на первый взгляд, это ветки где будут разрабатываться технические проекты и будут исправляться ошибки. Однако и в них могут быть различные вариации. 

Первые два типа предназначены: 

  • "Основная ветка проекта" - эта ветка системы, либо её прототипа. Конечный продукт, в Git для неё обычно существует ветка master. 
  • "Ветки версии". Их может быть несколько, стартуют от "Основная ветка проекта". Очень важные ветки, их аналог в Git - ветка develop или, правильнее отметить подмножество веток c префиксом dev/*. Например так: dev/1.0.1 - ветка разработки версии 1.0.1 может быть сделана в начале проекта на базе типового релиза поставщика, например на базе типового релиза 3.0.1.12. От этой ветки будет старт большинства веток технических проектов и исправлений ошибок, хотя с ошибками могут быть и другие варианты. Со временем, поставщик выпустит новый релиз 3.0.2.7 и вам потребуется обновить вашу систему в проекте до нового релиза. Вот тогда то вам и потребуется создать новую ветку версии, например dev/1.0.2 и в ней вы будете проводить обновление до нового релиза поставщика. При этом вы сможете не прерывать поддержку существующей версии dev/1.0.1 и вести работы параллельно, все зависит от количества ресурсов. Однако, на момент поддержки двух версий масштабные доработки лучше не проводить (заморозить), в особенности тех блоков. которые претерпели изменения у поставщика. В некоторых случаях зарегистрированные ошибки придётся исправлять и в новой и в старой версии дважды, если они критичные, а исходные механизмы поставщиком были изменены. Но чаще такие исправления откладываются и исправляются только в новой версии, в старой версии в лучшем случае "костыль".  В большинстве случаев, все критичные исправления старой версии можно будет перенести кумулятивно из ветки старой версии dev/1.0.1 простым слиянием в ветку dev/1.0.2. После чего ветка новой версии обычно сливается в ветку master и выходит уже новый релиз в прототип или продуктивную среду с новой версией поставщика. В обычном случае, ошибки, зарегистрированные в старой версии исправляются уже только в новой версии, механизм справочника ошибок на текущий момент имеет такую возможность, плюсом мы его немного "облагородили". Конечно же Вы можете стартовать новую версию и без перехода на новую версию поставщика. Например, если у вас разработка с нуля на базе БСП. Но ведь и новую БСП, и другие библиотеки тоже нужно периодически в систему встраивать. Создание новой ветки версии, как мне кажется, самое удачное применение для этих целей. Кроме этого, допускается исправлять ошибки и вести разработку технических проектов прямо в ветке версии. Мы так делали только при исправлении ошибок рефакторинга сразу после обновления на новый релиз поставщика, например:

О ветках ошибок и технических проектов:

  • "Ветка технического проекта" в большинстве случаев исходная ветка - это ветка текущей версии, возможно новой но только не старой. Изначальная техническая реализация ветки предполагает что в ней может быть несколько технических проектов, мы сочли это слишком запутанным, и ограничили возможность разработки разных технических проектов только для тех случаев, когда предыдущий технический проект завершён, либо полностью отменён. Однако отмечу сразу, в СППР есть загрузка изменений метаданных из Git в технический проект, она не рассчитана на случаи, когда технический проект сливался в ветку разработки более одного раза. Соответственно, если вы вели два техпроекта в одной ветке последовательно (один завершили загрузили изменения ОМД, затем так же со вторым) у Вас возможность извлечь изменения по метаданным будет (нужно будет лишь поменять базовый UID фиксации), а вот если два одновременно - то точно нет. Да, и ошибки, как ни странно. тоже можно исправлять в ветках технических проектов. В этом случае их желательно дополнительно включать в те технические проекты. в рамках которых они исправляются. Естественно "выдернуть" исправление из ветки технического проекта в ветку версии Вы сможете только при условии обособленности изменений и только через "cherry-pick", более того в изменениях ОМД будут изменения по исправлению ошибки тоже.
  • "Ветка исправления ошибок" техническая реализация в СППР этого типа веток предполагает исправление одной или нескольких ошибок в ветке одновременно, но ветка должна принадлежать одной ветке версии. Исправлять ошибки разных версий в одной ветки будет сложно. В теории это возможно. за счёт последующего слияния в ветку другой версии, но будет очень сложно отделить доработки. Каждую фиксацию в ветке правильно оформлять получая описание изменений как на картинке ниже, пример, когда для исправления ошибки выделена индивидуальная ветка, тестирование которой проводилось в общей ветке тестирования: 
    Порядок отражения в ветке версии предыдущего примера, отфильтрованы ветки develop109, master, BF/00-00001604
  • "Ветка тестирования" - важный элемент, добавленный в расширение для поддержки готовности ветки версии к сборке нового релиза в любой момент времени: 
  1. Может быть создана для каждой ветки версии, и только одна. По сути представляет собой тоже ветку версии, но с особым признаком:
  2. К ветке тестирования могут быть присоединены несколько баз тестирования, все они как правило при сборке замещаются из ИБ ветки версии, так как ИБ ветки версии постоянно обновляется из прототипа системы или продукционной ИБ, привязанных к ветке master. Таким образом постоянно пополняется список тестовых примеров для воспроизведения ошибок, зарегистрированных в СППР.
  3. Ветка тестирования должна пересоздаваться после каждого релиза, но можно и пропустить. Пересоздание доступно средствами СППР:
  4. В ветку тестирования сливаются автоматически все ветки исправления ошибок, отмеченные в СППР как "Исправленные", а запросы на слияние в ветку версии только те, которые были переведены в состояние "Проверена, исправлена". Таким образом, в релиз не подтверждённые ошибки не включаются.
  5. После релиза ветка тестирования пересоздаётся и туда "реквестятся" повторно все не подтверждённые, но числящиеся как исправленные ошибки. Если они будут подтверждены, то включатся уже в следующий релиз.
  6. Механизм работает только если каждая ошибка исправляется в отдельной ветке, стартованной от ветки версии, в которой ошибка была обнаружена и для которой была зарегистрирована. В случае, если в одной ветке исправляются несколько ошибок, да и ещё коммиты их будут перепутаны, вытащить в ветку версии реально подтверждённые ошибки очень сложно.
  7. Иногда, бывает, что регистрируются ошибки на один и тот же блок, и тогда при автоматической попытке слить изменения возникает конфликт, ну например разные ошибки исправили внутри одной процедуры. Git автоматом такое не сольёт. В этом случае, если первую ошибку подтвердят - всё просто, ветка исправления ошибки поднимается до ветки версии и слияние в ветку тестирование проходит без конфликтов. Если ни одна ошибка не подтверждена. тогда придётся со второй немного помучится - в EDT извлечь ветку тестирования и слить ветку исправления в неё вручную. Конфликтный MR будет закрыт автоматически. Однако поверьте за 2 года проекта такое было раз 10, не более. В этом случае, возможно и в ветку версии так же придётся сливать изменение через EDT.
  8. В целом механизм позволяет сверить перед сборкой количество запросов на слияние в ветку версии в Git с исправленными ошибками, слить завершённые технические проекты и сформировать описание версии прямо из СППР:

 

Сравнение версий

  Расширение интеграции GitLab 1.0.3.21    
  Исправление ошибок:    
  BF/00-00000022:Ошибки, исправленные в ветке версии появляются повторно в след. сборке с момента подтверждения - TP/00-00000010:Важные задачи по оптимизации сборочной линии и обеспечению соответствия создаваемой ветки коммиту ИБ    
  Ошибка связана с тем, что при получении объектов для уведомления работает корректно, однако отметка объектов сборки производится либо по коммитам, либо по объектам, если их нет. В итоге в первом проходе выводятся все объекты, но отмечаются как попавшие в сборку только те что были собраны по коммитам, если отправить повторно событие то при отсутствии объектов сборки по коммитам в уведомлени попадут только те, что в прошлый раз не были отмечены, в итоге если в 3й раз отправить сообщение (наступит сборка) то уже ничего не попадёт в сообщение.
Для проверки нужно внести два исправоения по разным ошибкам. Одну исправить в ветке версии непосредственно, а другую в отдельной ветке, по запросу на слияние в ветку версии. После сборки ветки версии должны быть отмечены как собранные обе ошибки. Сейчас сначала та которая была в индивидуальной, а при повторной сборке, та, которая была собрана в ней непосредственно.
 
Разделено условие. Двойное оповещение устранено.
   
  BF/00-00000076:При переименовании этапа сборочной линии очищаются индивидуальные задания этапа - TP/00-00000010:Важные задачи по оптимизации сборочной линии и обеспечению соответствия создаваемой ветки коммиту ИБ    
  При изменении имени этапа индивидуальные этапы переписываются к новому этапу, но не производится переприсвоение текстовых составляющих из старых этапов.
 
При изменении имени, или перемещении этапа вниз или вверх тексты индивидуальных заданий корректно переносятся
   
  BF/00-00000096:При работе любых фоновых операций с ИБ выдается сообщение о копировании - TP/00-00000010:Важные задачи по оптимизации сборочной линии и обеспечению соответствия создаваемой ветки коммиту ИБ    
  При отображании длительного задания должно отображаться наименование задания, а не имя предопределенной задачи "Копирование"
 
При отображении информации о длительной операции подставляется её имя из справочника "Пакетные задания", за исключением предопределенной операции по копированию ИБ из родителя, при копировании из родителя выводится предопределнное сообщение о выполнении операции копировании из родителя.
   
  BF/00-00000097:В новой версии не загружаются метаданные веток регламентным заданием - TP/00-00000010:Важные задачи по оптимизации сборочной линии и обеспечению соответствия создаваемой ветки коммиту ИБ    
  Вероятная причина - незаконченный рефакторинг модулей, в частности процедуры модуля ОбщегоНазначенияСППР.GLI_ПолучитьФайлыИзGIT
Тексты некоторы командных файлов под Linux не исполняются, если они записаны с спимволом первода строки CRLF
 
Проведён рефакторинг, метаданные загружаются из веток корректно.
   
  BF/00-00000104:После обновления базовой конфигурации нарушены права на ветки, сборки, техпроекты и ошибки - TP/00-00000010:Важные задачи по оптимизации сборочной линии и обеспечению соответствия создаваемой ветки коммиту ИБ    
  У импортированных ролей отсутствовали необходимые разрешения, однако для предыдущей версии БСП 3.1.5 это не было проблемой.
 
Исправлены права доступа по импотированным ролям:
БазовыеПраваСППР
ЧтениеСборокВерсииПроекта
ДобавлениеИзменениеСборокВерсииПроекта
ДобавлениеИзменениеТехническихПроектов
ЧтениеТехническихПроектов
ДобавлениеИзменениеОшибок
ЧтениеОшибок
ЧтениеВеток
ДобавлениеИзменениеВеток
   
  Реализация функционала:    
  №00-00000004:Обеспечить соответствие загружаемой базы коммиту созданной ветки (техпроект/ошибка) для разработки - TP/00-00000010:Важные задачи по оптимизации сборочной линии и обеспечению соответствия создаваемой ветки коммиту ИБ    
  - При успешной сборке идентификатор фиксации помещается в переменную "CommitID" для всех баз, которые собирались в этой сборочной линии. Для баз, у которых сборка отключена, но переменная фиксация сборки (CommitID) присутствует, к значению добавляется префикс "Expired_" это означет, что сборка ИБ не актуальна, однако можно ветку создать и от такого коммита, если именно эта база требуется для разработки.
- При копировании ИБ из родителя переменная "CommitID" прописывается в приёмную ИБ из родителя. При создании ветки из формы элемента справочника "Ветки", при нажатии на кнопку "Создать ветку в Git" появляется меню около кнопки создания, в котором перечисляются варианты создания ветки от фиксаций информационных баз или от указателя ветки, если он не совпадает ни с одной из найденных собранных баз.
- При копировании из родителя производится проверка ветки в Git базы приемника, проверяется соответствие SHA фиксации ветки SHA записанному в базе источнике, если ветка создана и SHA совпадают, предупреждений не выводится. Если не совпадают, то выводится сообщение, о том, что используемая база не соответствует выбранной SHA ветки и что потребуется полная сборка, если ИБ будет использоваться для разработки. Если ветка приемной базы не создана, то она будет создана от фиксации в родительской базе. Тем самым обеспечивается гарантированное соответствие конфигурации загружаемой разработчиком тестовой базы фиксации в хранилище, где последний раз собиралась родительская база.
   
  №00-00000006:Отображение базы связанной с объектом сборки "Ветка исправления ошибки" в списке "Информационные базы" навигационной ссылки - TP/00-00000010:Важные задачи по оптимизации сборочной линии и обеспечению соответствия создаваемой ветки коммиту ИБ    
  Изменен отбор по объекту сборки в динамическом списке "Информационные
базы". Теперь, если объектом сборки является ветка исправления ошибки. а
не сама ошибка, то для ошибок, исправляемых в этой ветке база,
привязанная к ветке будет отображаться в гиперссылке навигационной
панели "Информационная база"
   
  №00-00000007:Добавить возможность создавать ИБ в списке по навигационной ссылке "Информационные базы" с привязкой к объекту сборки - TP/00-00000010:Важные задачи по оптимизации сборочной линии и обеспечению соответствия создаваемой ветки коммиту ИБ    
  - Изменен порядок заполнения элемента справочника ИБ. Поле "Наследуемая ИБ" сделано доступным для изменения. Добавлен дополнительный сценарий заполнения поля, в зависимости от объекта ветки объекта сборки. Для объекта сборки анализируются ветки сборки и определяются исходные ветки, от которых ветки объекта сборки были созданы, в основном ожидается ветка версии. Для каждой родительской ветки определяются ИБ, которые собираются в родительской ветке, если такая база всего одна, то она автоматически используется в качестве родительской, если же таких баз несколько, тогда заполняется список выбора для поля "Наследуемая ИБ" Поле "Наследуемая ИБ" обязательно для заполнения во всех случаях, за исключением, когда объектом сборки является основная ветка проекта (мастер ветка, указанная в проекте). В этом случае предполагается что
создаётся новая эталонная база для мастер ветки. Таким образом, добавляется возможность создавать информационные базы для ошибок и технических проектов непосредственно в навигационной ссылке "Информационные базы". Для этого упразднена табличная часть "Дополнительные объекты сборки" справочника информационные базы, её роль исполняет новый регистр сведений "Объекты сборки ИБ" просмотреть сконвертированные объекты сборки можно по навигационной ссылке "Объекты сборки ИБ" в форме элемента справочника "Информационные базы". Первая запись появляется в регистре при записи элемента справочника с признаком "Основной", остальные при включении доработок в ветку версии / ветку
тестирования по мере принятия запросов на слияние в Git.
   
  №00-00000017:Уменьшение размера файла сборочной линии за счет исключения задач копирования и тестирования на этапе формирования сборочного конвейера - TP/00-00000010:Важные задачи по оптимизации сборочной линии и обеспечению соответствия создаваемой ветки коммиту ИБ    
  Для каждого этапа добавлен текст условия на встроеном языке и размещен закладками с текстом постоянной части шаблона. Для вычисления необходимого условия в структуру Параметры, в поле ИБ передаётся ссылка на текущую информационную базу, имя этапа в поле Этап, и ссылка на объект сборки в поле ОбъектСборки. В поле Результат (по умолчанию = Истина) должен поместиться результат вычисления выражения: нужно ли включать для этой информационной базы задание в сборочную линию или нет. Если не нужно включать для указанной информационной базы то Ложь, в противном случае = Истина. Если для всех объектов сборки результат вычисления выражения будет = Ложь, этап будет полностью исключён из текста сборочного конвейера, включая и шаблон. Лимиты по умолчанию определены в документации https://docs.gitlab.com/ee/administration/instance_limits.html#maximum-size-and-depth-of-cicd-configuration-yaml-files, и могут быть переопределны на самостоятельно установленных серверах.    
 
 
 
 
  Расширение интеграции GitLab 1.0.3.20    
  Исправление ошибок:    
  BF/00-00000101:При загрузке данных тестирования из CI регламентным заданием возникает ошибка в ЖР    
  Проблема возникает, если использовать символьное представление проекта в виде user/project вместо идентификатора проекта
 
Добавлена замена разделителя / на %2F, в процессе тестирования выяснилось, что для сборочных линий, содержащих тесты загружаются прочие задания как тесты - исправлено.
   
 
 
 
 
  Расширение интеграции GitLab 1.0.3.19    
  Исправление ошибок:    
  BF/00-00000099:При загрузке результатов тестирования в ЖР возникает ошибка 429    
  Ошибка 429 сервиса Gitlab сообщает о слишком частых запросах к сервису. При загрузке сборочные линии, не имеющие по факту тестов были исключены из процесса создания документа "Запуск тестирования", тем не менее попытка загрузить результаты предпринималась каждый раз. Необходимо восстановить возможность не загружать уже ранее загруженные линии.
 
Изменена стратегия загрузки заданий из сборочных линий. Ранее документ "Запуск тестирования" загружался только для тех сборочных линий, которые содержали задания с тестами, остальные сборочные линии игнорировались. Новое поведение - загружаются все сборочные линии, однако те сборочные линии, в которых заданий по тестированию нет просто записывают и проводят документ "Запуск тестирования". Регистр "Результаты тестирования" не заполняется, таким образом на результаты отчётов по тестированию это влияние не окажет. Типовой алгоритм содержит вохможность загружать вложенные сборочные линии, которые запускаются отдельным специальным заданием. В текущей редакции управления сборкой такие задания не используются, и пока не поддерживаются, но могут быть. Подобные задания считаются как "Прочие" чтобы выделить такие задания каждый этап задания сверяется с текущим составом этапов по проекту. Если заданий соответствующим этапам, маркированных "Тестирование" в справочнике "Сборочные линии" в конвейере не было, то записывается документ "Запуск тестирования" без загрузки результатов тестов, в противном случае все задания, которые не имеют отношения к тестированию будут рассмотрены как прочие тесты и будут показываться в отчёте по тестированию.
!ВАЖНО! Если переименование этапов конвейера сборочной линии было произведено до момента загрузки всех результатов сборочных линий, то задания с этапами, которые ранее присутствовали в справочнике "Сборочные линии" будут расценены как прочие, и загружены в результаты тестирования. Подобные пустые результаты можно удалить вручную, очистив регистр сведений "Результаты запуска тестов" и удалв лишние элементы в справочнике "Тесты".
   
  BF/00-00000100:Подтверждённые исправления ошибок для неслитого технического проекта попадают в описание релиза.    
  Для ошибок, включенных в технические проверки не работает условие действующее на технический проект, она включается если имеет статус подтверждённой, для обычных ошибок этот статус действует тогда, когда она собрана уже в ветке версии. Ошибки, исправляемые в разных ветках не ссылаются на технический проект совсем.
 
Изменения в отчёте. Ранее ошибки, исправлчемые в разных ветках не маркировались и не связывались с техническим проектом, даже если были размещены в одном из них. Теперь они так же отражаются в составе техническог опроекта, если были включены, а так же не показываются, на равне с обычными ошибками, в описании обновления, если технический проект не был завершён должным образом: слит в ветку версию, завершены все задачи и технический проект публикуется
   
 
 
 
 
  Расширение интеграции GitLab 1.0.3.18    
  Реализация функционала:    
  №00-00000016:Адаптация расширения до версии базовой конфигурации СППР 2.0.6.10 - Dev/103:Обновление расширения под новую конфигурацию СППР 2.0.6.10    
  Расширение адаптировано под новую версию базовой конфигурации 2.0.6.10 и версию платформы 8.3.21, в расширении отключен режим совместимости с ранними версиями платформы.
Упразднено создание ветки в Git из формы элемента справочника "Ветки" средствами расширения, так как подобный функционал реализован средствами базовой конфигурации.
Ветка версии более не переводится в состояние "Помещена" при слиянии её в основную ветку проекта, технические проекты, реализуемые в ветке версии включаются в описание обновления с учётом того, что ветка версии не принимает значение "Помещена". В отчёте "Подготовка описания обновления" так же добавлены условия для отсечения не публикуемых технических проектов и не публикуемых идей.
   
 
 
 
 
  Расширение интеграции GitLab 1.0.2.16    
  Исправление ошибок:    
  BF/00-00000056:При загрузке ошибок из CI не заполняется информационная база, в итоге срабатывает контроль    
  В ошибках автотестов заполнена ветка, а не сборка. Контроль заполения базы нужен для корректного заполнения сборки, которая здесь не нужна.
 
Исправлено условие исключения из контроля заполнения ИБ. Для "Обнаружена" в сборке контрлируется заполнение сборки, для обнаружено в Ветке контролируется заполнение ветки.
Одновременный контроль заполнения и ветки и сборки более не используется.
   
  BF/00-00000069:При создании ветки в Git в объекте сборки не заполняется ветка через СВ    
  При реализации альтернативного способа отправки уведомлений через почту была изменена фраза ключевого сообщения с "Заполнена ветка" на "Подготовлена ветка", если объект был заблокирован пользователем.
 
Заменен поиск ключевой фразы на вхожение "созданная в Git"
   
  BF/00-00000071:Не получается отметить исправление появляется сообщение о несоответствии версии исправления.    
  Из указанной информационной базы извлекается последняя сборка, в ней ссылка на ветку, для публикуемых ошибок требуется заполнять сборку, а не ветку, в итоге ветка от сборки может оказаться либо мастер веткой, либо веткой тестирования, но ни в одной из них нет ссылки на ветку версии, что и приводит к сообщению проверки.
 
Для баз, собиравшихся в ветках master и ветке тестирования возвращается связанная ветка версии, связанная с master или веткой тестирования для корректной проверки соответствия версии исправления версии ветки обнаружения.
   
 
 
 
 
  Расширение интеграции GitLab 1.0.2.15    
  Реализация функционала:    
  №00-00000015:Сделать резервный способ отправки уведомлений от бота вместо СВ - TP/00-00000008:Резервное уведомление о событиях по почте.    
  Реализован резервный механизм отправки сообщений от бота СППР по электронной почте, на случай не доступности системы взаимодействия, а также отсутствия регистрации ИБ в системе взаимодействия
Сообщения отправляются на адреса электронной почты, указанные в справочнике пользователи, в случае, если адрес электронной почты не заполнен - пользователь не получит уведомления.
Для отправки сообщений используется системная учетная запись СППР
В сообщениях используются навигационные ссылки, для открытия их из писем необходимо в реестр Windows прописать (скопировать строки ниже в файл с расширением reg и запустить с повышеными привилегиями, для 32х битных клиентов заменить Program files на Program files (x86)):

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\e1c]
@="URL:e1c"
"URL Protocol"="e1c"
"EditFlags"=hex:02,00,00,00
[HKEY_CLASSES_ROOT\e1c\DefaultIcon]
@="C:\\Program Files\\1cv8\\common\\1ceunt.dll,17"
[HKEY_CLASSES_ROOT\e1c\shell]
[HKEY_CLASSES_ROOT\e1c\shell\open]
[HKEY_CLASSES_ROOT\e1c\shell\open\command]
@="\"C:\\Program Files\\1cv8\\common\\1cestart.exe\" /URL \"%1\""
   
 
 
 
 
  Расширение интеграции GitLab 1.0.2.14    
  Исправление ошибок:    
  BF/00-00000057:Некорректная отметка о сборке ошибки в составе тестовой ИБ    
  Объекты сборки по коммитам в ветке тестирования, время которых позже времени начала сборки, но до её окончания не должны отмечаться как собранные.
 
Добавлена обработка времени создания сборочной линии, объекты сборки включенные в ветку версии или тестирования с коммитами реквестов больше момента начала сборки исключаются из уведомеленияи отметки как собранных в ветке. Дополнительно добавлена обработка момента точного окончания сборки по данным Gitlab, ранее бралась текущая дата сервера СППР.
   
  BF/00-00000064:При недоступности сервера взаимодействия открытие техпроектов и ошибок не доступно    
  При открытии происходит подключение обработчика сообщений СВ, которое заканчивается аварией при недоступности СВ
 
События подключени/отключения обработчиков сообщений помещены в блок попытка - исключение,
дополнительно обработка сообщения конвейера изменена таким образом, чтобы при невозможности разослать сообщения пользователям, остальные действия отрабатывались, даже если нет подключения (регистрации) к СВ совсем.
   
 
 
 
 
  Расширение интеграции GitLab 1.0.2.13    
  Исправление ошибок:    
  BF/00-00000043:Ссылка из элемента справочника Тесты. нав ссылка Результаты тестов открывается не корректно    
  Указание подключения к хранилищу СППР в типовой конфигурации предусмотрено предположительно в формате ssh подключения, для форматов https и http не работает.
 
Пропатчена типовая процедура
   
  BF/00-00000044:Не загружаются результаты тетирования в конвейерах запросов на слияние    
  Алгоритм не ожидает в имени ветки "refs/merge-requests/33/head"
 
Пропатчен типовой код, добавлена проверка на принадлежность сборочной линии к запросу на слияние, добавлено получние ветки источника из данных запроса на слияние
   
  BF/00-00000045:Некоторые базы требуется исключить из тестирования    
  Отсутствуют пользователи, под которыми возможно тестирование, отсутствуют тестовые данные.
 
В справочник ИБ добавлен флаг "Не тестировать", флаг выведен в форму списка.
   
 
 
 
 
  Расширение интеграции GitLab 1.0.2.12    
  Исправление ошибок:    
  BF/00-00000032:Не загружаются данные из контура CI, запуски тестирования создаются, но не более того    
  При попытке загрузить артефакты с ресурса https://gitlab.com возвращается од ошибки 302 и ссылка для скачивания в заголовках Location
 
Добавлен код обработки ошибки 302 при загрузке файла.
   
  BF/00-00000035:В отчет "Подготовка описания версии по техпроектам и ошибкам" работает некорректно.    
  После рефакторинга имена секций оказались с лишними кавычками, что приводило к некорректной отработке условия фильтра
 
Исправлены значениея предопределенных параметров
   
 
 
 
 
  Расширение интеграции GitLab 1.0.2.11    
  Реализация функционала:    
  ЧТЗ №:00-00000011 - Модификация загрузки результатов тестирования из CI TP/00-00000005    
  Добавлен флаг "Тестирование" для этапа конвейера, при загрузке результатов тестирования из CI все этапы заданий не имеющие этого флага будут пропущены.    
  ЧТЗ №:00-00000012 - Загрузка результатов BDD тестирования вместе с загрузкой результатов тестирования из CI TP/00-00000005    
  1. Добавлена возможность загружать (регистрировать ошибки) по данным автотестов в формате СППР вместе с результатами тестирования, для этого каталог с ошибками в формате СППР должен быть сохранён в артефактах сборки, таким образом при регистрации ошибки передаётся ветка, из которой эти ошибки загружались.
2. Исправлена проблема. когда пр ирегистрации ошибки не корректно в ошибке заполнялся служебный реквизит Тест, туда попадал элемент справочика случайным образом.
3. Исправлена проблема порядка загрузки сборочных линий, в типовом функционале они загружаются не последовательно, в результате, если загружается более одной за раз, и есть дублирующие ошибки, то записи в регистре формировались в неверной последовательности из за чего отчёт Результаты регистрации ошибок не работал должным образом.
   
 
 
 
 
  Расширение интеграции GitLab 1.0.2.10    
  Исправление ошибок:    
  BF/00-00000025:При помещении новой ветки в Git не заполняется ветка исправления/ техпроекта    
  Ветка создаётся, но не заполняется, в случае если объект (Ошибка или Техпроект) заблокирован, так как не отправляется сообщение в СВ.
Сообщение не отправляестя в случае, если указан один единственный объект и ветка сборки = Пусто
 
Исправлена логика отправки сообщения, когда указан только объект
   
  BF/00-00000026:При открытии ветки из списка ИБ ошибка    
  Дублирующее поле было скрыто по результатам рефакторига, однако именно с него получалась ссылка на ветку. Скрытые поля дин список оптимизировал.
 
Для реквизита ВеткаСсылка установлена обязательность, поле выведено в список и скрыта польовательская видимость
Дополнительно исправлено: для ветки вместо открытия ветки открывалось создание новой ветки.
Дополнительно: формы открытия ИБ, объектов веток, техпроектов, ошибок теперь открываются в режиме независимо.
   
 
 
 
 
  Расширение интеграции GitLab 1.0.2.9    
  Исправление ошибок:    
  BF/00-00000010:При вызове алгоритма из ИБ с отработкой в фоновом режиме алгоритм не стартует с ошибкой    
  Ошибка рефакторинга по стандартам разработки. После переименования модуля в строке вызова осталось наименование по старому
 
Указано корректное наименование GLI_РаботаСПакетнымиФайламиВызовСервера
   
  BF/00-00000011:При попытке создать ИБ в новом проекте возникает ошибка    
  В процедуру ПолучитьСписокБазСУБД передаётся список с пустой СУБД, так как у единственной ИБ поле СУБД не было заполнено.
 
Добавлена проверка на заполненость СУБД, пустые СУБД, если попали в запрос игнорируются, и по ним не производится попытки определеить доступность.
   
  BF/00-00000012:В ошибке, при выборе информационной базы , у которой заполнено только наименование возникает ошибка.    
  Ошибка связана с попыткой определить связанную с ИБ ветку, а она не заполнена.
 
Добавлена проверка на заполненность объекта сборки, добавлено сообщение, что выбранная ИБ не связана с объектом сборки, поэтому номер сборки и ветка определны быть немогут, и их необходимо заполнить вручную.
   
  BF/00-00000013:При выборе кластера в информационной базе не производится отбор в форме списка по проекту    
  Отсутствуют отборы по Проекту в формах
 
Добавлены отборы по владельцу в реквизиты СУБД, Кластер и Размещение
   
  BF/00-00000014:При заполнении дополнительных параметров в ИБ возникает ошибка    
  Ошибка рефакторинга, изменилось имя модуля
 
Исправлена в рамказ ошибки 00-000000012
   
  BF/00-00000016:Статус модификации ИБ после запуска алгоритмов содержащих только алгоритм подготовки переменных.    
  Запись элемента (формы) производилась только по окончании процесса, запущенного в фоне.
 
Добавлена запись после исполнения сценариев не в фоновом режиме.
   
  BF/00-00000019:Отозванные и неплан. к исправ. ошибки при пересоздании тестирования вновь реквестятся в тестирование    
  При пересоздании ветки тестирования не анализировались статусы и состояние ошибок
 
Автоматические коммиты на слияние формируются по ошибкам в статусе "Исправлена". Остальные - пропускаются.
   
  BF/00-00000021:При попытке сформировать описание версии возникает ошибка: Ошибка в схеме компоновки данных    
  В СКД задублировался параметр.
 
Удалён задублированный параметр
   
  Реализация функционала:    
  ЧТЗ №:00-00000009 - Создание сценариев и обработок тестирования TP/00-00000003    
  1. Пропатчены методы СППР по подключению к хранилищу
2. Создана обработка эмуляции событий Gitlab API
3. Доработана обработка сборки сценариев
4. Написан тестовый конвеер сборки со скриптом тестирования.
   
 
 
 
 
  Расширение интеграции GitLab 1.0.2.7    
  Реализация функционала:    
  1. Регистр настройка увдомлений администраторов расширен реквизитом
уведомлять о всех сборках
2. При выборе информационной базы заполняются автоматически номер сборки
обнаружения и ветка обнаружения
3. Сняты ограничения для веток техпроектов и ошибок по пользователям для
уведомлений, ранее пользователей можно было указать только для веток
версий и основной ветки. При формировании запроса на слияние из ветки
проверяется наличие объектов сборки и при их наличии выдаётся
уведомление о том, что лучше делать это из объектов сборки. Запрос на
слияние можно сделать из любой ветки, но в всегда в ветку источник.
4. При установке задачи процесса по техническому проекту в состояние
"Выполнена" и при установке идеи в состояние "Реализована" сбрасывается
номер сборки технического проекта.
   
  Исправление ошибок    
  Исправлены выявленные ошибки    

Правила работы магазина

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


Заказать подбор решения


Скачать файлы

Наименование Файл Версия Размер

1.0.3.21 3 7000 руб.

0 3000 руб.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. roman72 334 26.08.22 11:42 Сейчас в теме
Грандиозно! Это расширение СППР превосходит саму СППР! :)
Раньше я отбивался изо всех сил, чтобы разработчика не тянуть в СППР, только чтобы читать ТЗ, а теперь придётся рассматривать вариант с разработкой (мёрджингом) на СППР как рабочий.
2. Техподдержка 26.08.22 11:46
(1)
превосходит саму СППР! :)

Спасибо, :) но в СППР сейчас много белых пятен: нового функционала, который не задокументирован. Это тестирование и запуск тестов по расписанию. планирование и многое другое, что добавилось в версии 2.0.2 и версии 2.0.3. Очень хочется верить, что коллеги в 1С всё же поднатужатся и выложат документацию на новые свои фичи на ИТС.
3. Ndochp 103 30.08.22 08:59 Сейчас в теме
А что закрыто? или все открыто, защита чисто по юридической линии?
Вопрос связан с тем, что это инструмент для разработчика, а не бизнеса. Подпилить может захотеться в любом месте, хочется сразу понять ограничения.
4. Техподдержка 30.08.22 09:01
(3) Добрый день. Код открыт. Это правила и Инфостарта, и 1С
5. Ndochp 103 30.08.22 09:16 Сейчас в теме
(4) Отлично.
Просто насколько я помню, по правилам ИС открыт код за СМ, так как это не готовые решения, а за деньги может быть по разному. Да и за СМ то без модуля обработка проскочит, то EXE без исходников.
Оставьте свое сообщение

См. также

Подсценарии для заполнения форм типовых справочников и документов конфигураций ERP 2.5 и КА 2.5 (для vanessa automation)

Тестирование QA DevOps и автоматизация разработки Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Набор универсальных подсценариев для заполнения форм типовых объектов справочников и документов конфигураций ERP 2.5 и КА 2.5. Сценарии представляют собой feature-файлы для vanessa-automation с тегом @exportscenarios. Используются для разработки функциональных сценариев.

1500 руб.

26.01.2023    1282    0    0    

1

Автотесты для типовых конфигураций ERP Управление предприятием 2 и Комплексная автоматизация 2 (для vanessa automation)

Тестирование QA DevOps и автоматизация разработки Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.8.321.

2004 руб.

04.07.2022    3110    3    0    

12

Автотесты для типовых конфигураций Бухгалтерия предприятия КОРП 3.0 и Бухгалтерия предприятия 3.0 (vanessa automation)

Тестирование QA DevOps и автоматизация разработки Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.126.18, 3.0.129.13.

1728 руб.

20.01.2022    4041    1    0    

4

Технология разветвлённой разработки, использующая git, ci/cd

Групповая разработка (Git, хранилище) 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

Адаптация и расширение требований к разветвлённой разработке с использованием git и ci/cd, основанное на стандартах 1С

24.02.2020    9365    check2    10    

74

Автоматическое подтверждение легальности обновления базы или как обновить 100 типовых баз 1С за 5 часов

DevOps и автоматизация разработки Обновление 1С Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Расширение для конфигураций 1С для автоматического подтверждения легальности обновления и выполнения обработчиков обновления при пакетном автоматическом обновлении большого числа баз 1С. А также сам модуль обработки по автоматическому обновлению баз.

2400 руб.

08.05.2019    19656    53    26    

22

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Сборка приложения, разработанного на EDT, с помощью gitlab-ci

EDT Платформа 1С v8.3 Абонемент ($m)

В статье описан пример сборки .cf файла при помощи штатных средств EDT, Конфигуратор.

1 стартмани

29.05.2018    20325    5    fenixnow    26    

72