Что такое рабочий процесс на основе выпуска?
Здесь мы обсудим, как можно создать рабочий процесс на основе выпуска с помощью GitHub.
Что такое рабочий процесс на основе выпуска?
Рабочий процесс на основе выпуска — это набор шаблонов и политик, ориентированных на выпуск программного обеспечения. Хотя это понятие может показаться очевидной целью для команды разработчиков, ценность этой перспективы более нюансов. В этом уроке мы обсудим, как он управляет тремя различными частями цикла выпуска: управление проектом, выбор стратегии ветвления и выпуск для клиентов.
Планирование работы с помощью досок проектов GitHub
С точки зрения планирования, рабочий процесс на основе выпуска означает, что проблемы делятся на отдельные итерации, создающие новую версию. Эти итерации часто называются спринтами и ограничены по времени равными по продолжительности периодами для создания инкрементных изменений. Другие команды предпочитают делать целые версии выпуска едиными итерациями, которые могут занимать по нескольку месяцев или дольше. В GitHub эти итерации управляются как проекты.
Основной чертой проекта является его совет. Доска является основным планом для итерации и содержит все карточки, которые должны быть решены. Карточка может представлять собой вопрос, запрос на вытягивание или даже просто общую заметку.
По умолчанию каждая карточка начинается в столбце "Сделать" и переходит в "В процессе" после начала работы, а затем в "Сделано". Вы можете настроить эти столбцы, добавить дополнительные столбцы или применить автоматизацию к перемещению этих карточек и их свойств, чтобы соответствовать процессу вашей команды.
Дополнительные сведения об управлении советами проектов.
Состояние проекта карточки является интегрированным для всего репозитория. Например, перетаскивание карточки из Список дел в В процессе изменяет её статус и обновляет индикатор рядом с заголовком проекта. Зеленый раздел указывает часть карточек, помеченных как Готово, в то время как фиолетовый используется для карт в процессе выполнения. Оставшееся пространство представляет собой карточки, которые еще не были начаты. Помимо перетаскивания карточек по доске, их можно обновить в основном представлении.
При использовании доска проекта все заинтересованные лица могут легко понять состояние и скорость проекта. Вы также можете создавать доски, область действия которых ограничена отдельными пользователями или коллекцией репозиториев, принадлежащих организации.
Узнайте больше об отслеживании прогресса вашей работы с досками проектов.
Отслеживание конкретных вех
Для команд или, возможно, их подмножеств GitHub предлагает отслеживание этапов.
Вехи похожи на отслеживание проектов в том, что основное внимание уделяется приоритетному завершению проблем и запросам на вытягивание. Тем не менее, где проект может быть сосредоточен на процессе команды, веха сосредоточена на продукте.
Узнайте больше о отслеживании прогресса работы с вехами.
Выбор стратегии ветвления
Для репозиториев, в которых несколько разработчиков работают параллельно, требуется четко определенная стратегия ветвления. Решение об едином подходе в начале проекта экономит путаницу и разочарование в масштабе команды и базы кода.
Поток GitHub
Помимо создания платформы для совместной разработки программного обеспечения, GitHub также предлагает предписанный рабочий процесс, предназначенный для оптимизации использования различных функций. Хотя GitHub может работать практически с любым процессом разработки программного обеспечения, мы рекомендуем рассмотреть поток GitHub, если ваша команда еще не остановилась на процессе.
Работа с долгосрочными ветвями
Долговременная ветвь — это ветвь Git, которая никогда не удаляется. Некоторые команды предпочитают вообще их не использовать, применяя вместо них краткосрочные ветви для новых компонентов и исправления ошибок. Для таких команд целью любых усилий является создание запроса на вытягивание, который объединяет их работу обратно в main. Этот подход может быть эффективным для проектов, которые никогда не нуждаются в обратном просмотре, таких как сторонние веб-приложения, которые не поддерживают предыдущую версию.
Однако существуют определенные сценарии, в которых долгосрочные ветви будут полезнее для команды. Наиболее распространенным случаем использования долгосрочной ветви является ситуация, когда у продукта есть несколько версий, которые требуется поддерживать в течение продолжительного периода времени. Когда планы команды должны учитывать это обязательство, репозиторий должен соответствовать стандартному соглашению, например release-v1.0, release-v2.0 и т. д. Эти ветви также должны быть помечены как защищенные в GitHub, чтобы управление доступом на запись было управляемо, и они не могут быть случайно удалены.
Команды должны по-прежнему оставлять main в качестве корневой ветви и объединять изменения в своих ветвях выпуска выше, если они соответствуют будущему проекта. В нужный момент release-v3.0 должна быть основана на main, чтобы обслуживание release-v2.0 не усложнило репозиторий.
Обслуживание долгосрочных ветвей
Предположим, что исправление ошибки было объединено с ветвью release-v2.0, а затем повторно объединено с main выше. Затем было обнаружено, что эта ошибка также существовала в release-v1.0 ветви, и исправление, необходимое для поддержки клиентов, все еще использующих эту версию. Что лучше всего использовать для поддержки этого исправления?
Объединение main ветви release-v1.0 вниз не будет возможным вариантом, так как он будет содержать значительное количество фиксаций, которые не должны быть частью этой версии. По той же причине перебазирование release-v1.0 на текущую main фиксацию не будет вариантом.
Альтернативный вариант — вручную повторно реализовать исправление в ветви release-v1.0, но такой подход требует значительной повторной работы и плохо масштабируется при наличии нескольких версий. Однако Git предлагает автоматизированное решение этой проблемы в виде команды cherry-pick.
Что такое команда выборочного отбора в Git?
git cherry-pick — это команда, позволяющая применять определенные фиксации из одной ветви к другой ветви. Она просто повторяет выбранные фиксации, применяя их к целевой ветви в качестве новых фиксаций. При необходимости разработчики могут объединить любые конфликты перед завершением этого обратного переноса.
Узнайте больше о вишневом выборе Git.
Выпуск для потребителей
Когда версия продукта готова к выпуску, GitHub упрощает процесс ее упаковки и уведомления потребителей.
Создание версии сводится к простому заполнению формы:
- Введите тег Git, который должен соответствовать семантической версии, например
v1.0.2. GitHub управляет процессом создания указанного тега Git. - Введите имя своего выпуска. Ниже приведены некоторые распространенные методики.
- используйте описательное имя;
- используйте версию Git;
- С помощью краткой сводки по изменению выпуска с момента предыдущего
- используйте кодовое имя или случайную фразу.
- предоставьте заметки о выпуске. Эту задачу можно автоматизировать с использованием приложения Release Drafter, которое анализирует изменения с предыдущей версии и включает названия связанных pull requests.
- Если вы хотите предоставить файлы в рамках выпуска, например предварительно созданные установщики, можно перетащить их в форму. Вам не нужно упаковывать исходный код, поскольку GitHub делает это за вас автоматически.
- Укажите, является ли версия предварительной, установите этот флажок. Это означает, что клиенты могут избежать предварительной версии, если они хотят.
После публикации выпуска все пользователи, просматривающие репозиторий, получают уведомление.
Дополнительные сведения о выпусках GitHub.