Что такое рабочий процесс на основе выпуска?

Завершено

Здесь мы обсудим, как можно создать рабочий процесс на основе выпуска с помощью GitHub.

Что такое рабочий процесс на основе выпуска?

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

Планирование работы с помощью досок проектов GitHub

С точки зрения планирования, рабочий процесс на основе выпуска означает, что проблемы делятся на отдельные итерации, создающие новую версию. Эти итерации часто называются спринтами и ограничены по времени равными по продолжительности периодами для создания инкрементных изменений. Другие команды предпочитают делать целые версии выпуска едиными итерациями, которые могут занимать по нескольку месяцев или дольше. В GitHub эти итерации управляются как проекты.

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

Снимок экрана трекера версии 1.0.

По умолчанию каждая карточка начинается в столбце "Сделать" и переходит в "В процессе" после начала работы, а затем в "Сделано". Вы можете настроить эти столбцы, добавить дополнительные столбцы или применить автоматизацию к перемещению этих карточек и их свойств, чтобы соответствовать процессу вашей команды.

Дополнительные сведения об управлении советами проектов.

Состояние проекта карточки является интегрированным для всего репозитория. Например, перетаскивание карточки из Список дел в В процессе изменяет её статус и обновляет индикатор рядом с заголовком проекта. Зеленый раздел указывает часть карточек, помеченных как Готово, в то время как фиолетовый используется для карт в процессе выполнения. Оставшееся пространство представляет собой карточки, которые еще не были начаты. Помимо перетаскивания карточек по доске, их можно обновить в основном представлении.

Снимок экрана: перемещение карточки проекта.

При использовании доска проекта все заинтересованные лица могут легко понять состояние и скорость проекта. Вы также можете создавать доски, область действия которых ограничена отдельными пользователями или коллекцией репозиториев, принадлежащих организации.

Узнайте больше об отслеживании прогресса вашей работы с досками проектов.

Отслеживание конкретных вех

Для команд или, возможно, их подмножеств 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 упрощает процесс ее упаковки и уведомления потребителей.

Снимок экрана: создание релиза на GitHub.

Создание версии сводится к простому заполнению формы:

  • Введите тег Git, который должен соответствовать семантической версии, например v1.0.2. GitHub управляет процессом создания указанного тега Git.
  • Введите имя своего выпуска. Ниже приведены некоторые распространенные методики.
    • используйте описательное имя;
    • используйте версию Git;
    • С помощью краткой сводки по изменению выпуска с момента предыдущего
    • используйте кодовое имя или случайную фразу.
  • предоставьте заметки о выпуске. Эту задачу можно автоматизировать с использованием приложения Release Drafter, которое анализирует изменения с предыдущей версии и включает названия связанных pull requests.
  • Если вы хотите предоставить файлы в рамках выпуска, например предварительно созданные установщики, можно перетащить их в форму. Вам не нужно упаковывать исходный код, поскольку GitHub делает это за вас автоматически.
  • Укажите, является ли версия предварительной, установите этот флажок. Это означает, что клиенты могут избежать предварительной версии, если они хотят.

Скриншот просмотра релиза на GitHub.

После публикации выпуска все пользователи, просматривающие репозиторий, получают уведомление.

Дополнительные сведения о выпусках GitHub.