SlideShare a Scribd company logo
Инструмент ChangelogBuilder
для автоматической подготовки Release Notes
Алексей Буров
CI-инженер
aburov@ptsecurity.com
Содержание
1. Общие понятия
2. Проблемы
3. Решение
4. Побочные положительные эффекты
Общие понятия и определения
Что есть Продукт
• Системный программный продукт (далее просто Продукт) —
набор файлов (к примеру, установщики), который непосредственно
поставляется Заказчику или Покупателю.
• Пакет (компонент) — атомарная единица продукта. Пакет — единица
программного обеспечения, которая может быть независимо
заменена или обновлена. У каждого пакета собственные:
• Команда разработки
• Принятый процесс разработки и баг-трекеры
• Релизные циклы
• Хранилище исходного кода (vcs)
• Система сборки
Что мы имеем
• Коробочная разработка продуктов
• Увеличивающееся количество Продуктов
• Пакеты (внутренней и внешней разработки) — часть многих Продуктов
• Команды что хотят то и творят имеют свободу действий в выборе
нужных им технологий и процессов для разработки Пакетов
• TFVC, GITLAB — Version Control Systems
• YouTrack, TFS, Gitlab, JIRA — баг-трекеры
• Нет единого места хранения исправленных багов и реализованных фич
по Продукту
• Интеграции между системами есть, но не решают все проблемы
• Продукт собирается с нуля
Проблема
Как понять, какие изменения произошли
Проблема
• Сборка MainProductName 14.1.1000 => MainProductName 14.1.1001
Проблемы
• Неясно, какие изменения были внесены в Продукт, с учетом изменений всех его
Пакетов между сборками
• Тестировщикам непонятно, что тестировать, и как определить, что влияет на баги
• Иногда одна фича требует внесение изменений в несколько пакетов (в Backend и UI) —
нужно удостовериться, что оба пакета были обновлены в сборке
• Хочется иметь два разных CHANGELOG:
• внутренний
• для заказчиков
• Нет отображения иерархий Issue — разработчик указывает Task, но не видно какая
User Story частично решается благодаря этому Task
Решение
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Договариваемся с командами
Используемые форматы:
• anytextbefore_290215_anytextafter
• anytextbefore-290215-anytextafter
• :РТ-0000 any text after — Youtrack
• anytextbefore/РТ-0000 any text after — Youtrack
• :TFS-0000 any text after
• #290215: Fixed some problem in logging
• #290215 Fixed some problem in logging
• Bug 123456: done!
• Merge branch 'hotfix/92300' into 'release/v13.0'
• #dev-654321: good fix
Собрать информацию о пакетах
При сборке Продукта в CI-сервере нет информации о Пакетах — какие баг-
трекеры используются, какие URL до VCS
Собираем информацию во время сборки
Давай работай
Commit с TaskID
Сделать сборку
Используемые пакеты
Дай commit-message State
Title,
Assignee
Что там нового в
сборке?
Поддерживаемые системы
Баг-трекеры (допускается использование нескольких баг-трекеров на один
проект):
1. TFS
2. GitLab-issue
3. YouTrack
4. JIRA
5. CustomChangelog — произвольные комментарии в формате MarkDown
VCS:
1. Gitlab
2. TFVC
Решение
Release Notes
Release Notes
Поиск по пакету или номеру багаПереход между сборками
Изменения в одной сборке
Release Notes
Changelog без Task
Новый пакет
Ссылки на commit
CustomChangelog
>>git commit –m “На это нет Task в TFS, поэтому changelog{Начиная с
данной версии мы стали использовать **RabbitMQ 3.6.0** [подробнее про
изменения](https://wiki.example.com/how-to)}”
>>git push origin
Release Notes
Несколько баг-трекеров
Иерархия пакетов
Release Notes
Решение
Дополнительные плюшки
Дополнительные плюшки
1. Проставление полей/комментариев в баг-трекер системы
Дополнительные плюшки
2.Комментарии о задачах и ссылки на сборки в MergeRequest (GitLab)
• В какую высокоуровневую User Store входит этот Bug/Task
• В какой релиз пойдет этот Task
Дальнейшее развитие
1. Сделать Data-Driven Documents (сейчас из yaml генерируется статичный
html и дублируется информация)
2. Экспорт в финальный RELEASE_NOTES.html для заказчика
или CHANGELOG.md для пуша в git-репозиторий
3. Публикация в opensource-сообщество github.com/devopshq/
Итоги
1. Общие понятия
• продукт != Пакет
• свобода действий у команд
2. Проблемы
• непонятно, какие изменения произошли
3. Решение
• главное — договориться
• база знаний
• общая схема работы
4. Побочные положительные эффекты
1. отчитываемся в Task/Bug
2. получаем информацию в MergeRequest
Спасибо!
Вопросы?
Алексей Буров
CI-инженер
aburov@ptsecurity.com

More Related Content

PPTX
Типовая сборка и деплой продуктов в Positive Technologies
PPTX
Развитие сообщества Open DevOps Community
PPTX
Как мы собираем проекты в выделенном окружении в Windows Docker
PPTX
Аналитика в проектах: TFS + Qlik
PPTX
Использование анализатора кода SonarQube
PPTX
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
PDF
Winium — это как Selenium, только под Windows
PPTX
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Типовая сборка и деплой продуктов в Positive Technologies
Развитие сообщества Open DevOps Community
Как мы собираем проекты в выделенном окружении в Windows Docker
Аналитика в проектах: TFS + Qlik
Использование анализатора кода SonarQube
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
Winium — это как Selenium, только под Windows
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев

What's hot (20)

PPTX
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
PPTX
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
PPTX
Автоматическая сборка и развертывание на платформе 1C
PPTX
C#5 What's new?
PPTX
2014 ALM Summit - ALM and 1C
PPTX
Самодиагностика сервисов на базе платформы .NET
PDF
Python Development process in Yandex
PPTX
Python tools for web development (Python meetup Almaty #ALAPY)
PDF
Дефицит ресурсов тестирования... или нет?
PPTX
Адаптация Git flow при коллективной разработке на 1с
PPTX
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
PDF
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
PPTX
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
PDF
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
PPTX
GUI-автоматизация в Telerik Test Studio
PPTX
Повышение качества тестов и автоматическая валидация REST API документации
PPTX
DevOps для 1С
PPTX
Адаптация Jira стэка для 1с продуктов
PDF
Денис Чистяков: Workflow. Работа над проектом в Яндексе
PPTX
От простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Автоматическая сборка и развертывание на платформе 1C
C#5 What's new?
2014 ALM Summit - ALM and 1C
Самодиагностика сервисов на базе платформы .NET
Python Development process in Yandex
Python tools for web development (Python meetup Almaty #ALAPY)
Дефицит ресурсов тестирования... или нет?
Адаптация Git flow при коллективной разработке на 1с
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
GUI-автоматизация в Telerik Test Studio
Повышение качества тестов и автоматическая валидация REST API документации
DevOps для 1С
Адаптация Jira стэка для 1с продуктов
Денис Чистяков: Workflow. Работа над проектом в Яндексе
От простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
Ad

Viewers also liked (20)

PPTX
Один день из жизни специалиста по ИБ: процедура управления инцидентами, выявл...
PDF
Устройство и Сервисы JSOC
PDF
JSOC Inside
PPTX
Solar in code: в поисках уязвимостей
PPTX
10 принципов измерения ИБ
PDF
Security as a Service = JSOC
PPTX
Управление инцидентами информационной безопасности с помощью DLP Solar Dozor
PDF
Как реагировать на инциденты ИБ с помощью DLP?
PDF
Спроси эксперта. 2 сезон 3 серия: Solar Dozor 6.4 - новые инструменты расслед...
PPTX
Несколько слайдов про измерение ИБ
PPTX
Solar inView: Безопасность под контролем
PPTX
Как выбрать правильный IdM управление доступом в крупных компаниях
PDF
Спроси эксперта. 2 сезон 2 серия. Тестирование приложений на уязвимости. Прак...
PPTX
Защита от внутренних угроз
PDF
Эффективные и проблемные SOC-процессы
PPTX
JSOC - кейсы ИБ
PDF
Хронология кибератаки. Точки выявления и контроля. Место SOC
PDF
Практика использования Solar inCode
PPTX
Почему аутсорсинг ИБ становится все более востребованным в России?
PPTX
Solar inCode – система анализа программного кода на наличие уязвимостей ИБ
Один день из жизни специалиста по ИБ: процедура управления инцидентами, выявл...
Устройство и Сервисы JSOC
JSOC Inside
Solar in code: в поисках уязвимостей
10 принципов измерения ИБ
Security as a Service = JSOC
Управление инцидентами информационной безопасности с помощью DLP Solar Dozor
Как реагировать на инциденты ИБ с помощью DLP?
Спроси эксперта. 2 сезон 3 серия: Solar Dozor 6.4 - новые инструменты расслед...
Несколько слайдов про измерение ИБ
Solar inView: Безопасность под контролем
Как выбрать правильный IdM управление доступом в крупных компаниях
Спроси эксперта. 2 сезон 2 серия. Тестирование приложений на уязвимости. Прак...
Защита от внутренних угроз
Эффективные и проблемные SOC-процессы
JSOC - кейсы ИБ
Хронология кибератаки. Точки выявления и контроля. Место SOC
Практика использования Solar inCode
Почему аутсорсинг ИБ становится все более востребованным в России?
Solar inCode – система анализа программного кода на наличие уязвимостей ИБ
Ad

Similar to Инструмент ChangelogBuilder для автоматической подготовки Release Notes (20)

PDF
Тестирование весна 2013 лекция 5
PDF
Тестирование осень 2013 лекция 5
PPTX
Git for you
PDF
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
PPTX
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
PPTX
Automated tests ci
PPT
Семинар по управлению проектами. Часть 3. Рабочие инструменты
PPT
Continuous integration with TeamCity
PDF
Caché github continuous intergration
PDF
Приемы Сontinuous Integration при разработке приложений на Caché
PPTX
Continuous Integration for C++ engineers
PPTX
Continuous Integration для C++ разработчика
PPTX
Gitlab devconf
PPTX
Software craftsmanship 8
PDF
Dev collaboration
PDF
Giflow
PPTX
Shytikov on git Magic
PDF
Continuous integration
PDF
Юрий Василевский "Автоматизация в XCode"
PDF
Юрий Василевский «Автоматизация в XCode»
Тестирование весна 2013 лекция 5
Тестирование осень 2013 лекция 5
Git for you
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Automated tests ci
Семинар по управлению проектами. Часть 3. Рабочие инструменты
Continuous integration with TeamCity
Caché github continuous intergration
Приемы Сontinuous Integration при разработке приложений на Caché
Continuous Integration for C++ engineers
Continuous Integration для C++ разработчика
Gitlab devconf
Software craftsmanship 8
Dev collaboration
Giflow
Shytikov on git Magic
Continuous integration
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский «Автоматизация в XCode»

More from Positive Hack Days (20)

PPTX
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
PPTX
Автоматизация построения правил для Approof
PDF
Мастер-класс «Трущобы Application Security»
PDF
Формальные методы защиты приложений
PDF
Эвристические методы защиты приложений
PDF
Теоретические основы Application Security
PPTX
От экспериментального программирования к промышленному: путь длиной в 10 лет
PDF
Уязвимое Android-приложение: N проверенных способов наступить на грабли
PPTX
Требования по безопасности в архитектуре ПО
PDF
Формальная верификация кода на языке Си
PPTX
Механизмы предотвращения атак в ASP.NET Core
PDF
SOC для КИИ: израильский опыт
PDF
Honeywell Industrial Cyber Security Lab & Services Center
PDF
Credential stuffing и брутфорс-атаки
PDF
Доклад SiteSecure
PDF
Практический опыт защиты финансовых транзакций клиентов Банка
PDF
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
PDF
Эффективный контроль сотрудников
PPTX
Подход к обеспечению безопасности IoT в Enterprise
PDF
DDoS-атаки в 2016–2017: переворот
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Автоматизация построения правил для Approof
Мастер-класс «Трущобы Application Security»
Формальные методы защиты приложений
Эвристические методы защиты приложений
Теоретические основы Application Security
От экспериментального программирования к промышленному: путь длиной в 10 лет
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Требования по безопасности в архитектуре ПО
Формальная верификация кода на языке Си
Механизмы предотвращения атак в ASP.NET Core
SOC для КИИ: израильский опыт
Honeywell Industrial Cyber Security Lab & Services Center
Credential stuffing и брутфорс-атаки
Доклад SiteSecure
Практический опыт защиты финансовых транзакций клиентов Банка
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
Эффективный контроль сотрудников
Подход к обеспечению безопасности IoT в Enterprise
DDoS-атаки в 2016–2017: переворот

Инструмент ChangelogBuilder для автоматической подготовки Release Notes

  • 1. Инструмент ChangelogBuilder для автоматической подготовки Release Notes Алексей Буров CI-инженер aburov@ptsecurity.com
  • 2. Содержание 1. Общие понятия 2. Проблемы 3. Решение 4. Побочные положительные эффекты
  • 3. Общие понятия и определения
  • 4. Что есть Продукт • Системный программный продукт (далее просто Продукт) — набор файлов (к примеру, установщики), который непосредственно поставляется Заказчику или Покупателю. • Пакет (компонент) — атомарная единица продукта. Пакет — единица программного обеспечения, которая может быть независимо заменена или обновлена. У каждого пакета собственные: • Команда разработки • Принятый процесс разработки и баг-трекеры • Релизные циклы • Хранилище исходного кода (vcs) • Система сборки
  • 5. Что мы имеем • Коробочная разработка продуктов • Увеличивающееся количество Продуктов • Пакеты (внутренней и внешней разработки) — часть многих Продуктов • Команды что хотят то и творят имеют свободу действий в выборе нужных им технологий и процессов для разработки Пакетов • TFVC, GITLAB — Version Control Systems • YouTrack, TFS, Gitlab, JIRA — баг-трекеры • Нет единого места хранения исправленных багов и реализованных фич по Продукту • Интеграции между системами есть, но не решают все проблемы • Продукт собирается с нуля
  • 6. Проблема Как понять, какие изменения произошли
  • 7. Проблема • Сборка MainProductName 14.1.1000 => MainProductName 14.1.1001
  • 8. Проблемы • Неясно, какие изменения были внесены в Продукт, с учетом изменений всех его Пакетов между сборками • Тестировщикам непонятно, что тестировать, и как определить, что влияет на баги • Иногда одна фича требует внесение изменений в несколько пакетов (в Backend и UI) — нужно удостовериться, что оба пакета были обновлены в сборке • Хочется иметь два разных CHANGELOG: • внутренний • для заказчиков • Нет отображения иерархий Issue — разработчик указывает Task, но не видно какая User Story частично решается благодаря этому Task
  • 9. Решение Инструмент ChangelogBuilder для автоматической подготовки Release Notes
  • 10. Договариваемся с командами Используемые форматы: • anytextbefore_290215_anytextafter • anytextbefore-290215-anytextafter • :РТ-0000 any text after — Youtrack • anytextbefore/РТ-0000 any text after — Youtrack • :TFS-0000 any text after • #290215: Fixed some problem in logging • #290215 Fixed some problem in logging • Bug 123456: done! • Merge branch 'hotfix/92300' into 'release/v13.0' • #dev-654321: good fix
  • 11. Собрать информацию о пакетах При сборке Продукта в CI-сервере нет информации о Пакетах — какие баг- трекеры используются, какие URL до VCS
  • 12. Собираем информацию во время сборки Давай работай Commit с TaskID Сделать сборку Используемые пакеты Дай commit-message State Title, Assignee Что там нового в сборке?
  • 13. Поддерживаемые системы Баг-трекеры (допускается использование нескольких баг-трекеров на один проект): 1. TFS 2. GitLab-issue 3. YouTrack 4. JIRA 5. CustomChangelog — произвольные комментарии в формате MarkDown VCS: 1. Gitlab 2. TFVC
  • 16. Release Notes Поиск по пакету или номеру багаПереход между сборками Изменения в одной сборке
  • 17. Release Notes Changelog без Task Новый пакет Ссылки на commit
  • 18. CustomChangelog >>git commit –m “На это нет Task в TFS, поэтому changelog{Начиная с данной версии мы стали использовать **RabbitMQ 3.6.0** [подробнее про изменения](https://wiki.example.com/how-to)}” >>git push origin
  • 22. Дополнительные плюшки 1. Проставление полей/комментариев в баг-трекер системы
  • 23. Дополнительные плюшки 2.Комментарии о задачах и ссылки на сборки в MergeRequest (GitLab) • В какую высокоуровневую User Store входит этот Bug/Task • В какой релиз пойдет этот Task
  • 24. Дальнейшее развитие 1. Сделать Data-Driven Documents (сейчас из yaml генерируется статичный html и дублируется информация) 2. Экспорт в финальный RELEASE_NOTES.html для заказчика или CHANGELOG.md для пуша в git-репозиторий 3. Публикация в opensource-сообщество github.com/devopshq/
  • 25. Итоги 1. Общие понятия • продукт != Пакет • свобода действий у команд 2. Проблемы • непонятно, какие изменения произошли 3. Решение • главное — договориться • база знаний • общая схема работы 4. Побочные положительные эффекты 1. отчитываемся в Task/Bug 2. получаем информацию в MergeRequest