JetBrains анонсирует Space Git Flow
Хотите обеспечить плавную и непрерывную доставку качественного кода?
Для команд разработки, которые используют непрерывный цикл выпуска, создание потока доставки может потребовать значительных усилий при согласовании участников команды, настройке процессов и интеграции нескольких инструментов.
Чтобы снизить эту нагрузку, мы представляем JetBrains Space Git flow – полный процесс, который поможет вам достичь лучшего качества кода и поддерживать главную ветку в актуальном состоянии. С его помощью вы можете сосредоточиться на разработке, одновременно обеспечивая стабильность основной ветки при внесении изменений.
Space предоставляет вам хостинг Git, обзоры кода, контроль качества и CI/CD-сервис на одной платформе. Внедрение Space Git flow в ваши проекты легко, позволяя автоматически контролировать изменения и готовность вашего кодовой базы к производству.
В этом материале показаны стратегии ветвления, представлен Space Git flow и показано, как его можно использовать в проекте.
Выбор стратегии ветвления
Выбранная вами стратегия ветвления влияет на безопасность вашего кода, частоту выпуска функциональности и скорость доставки, делая этот выбор важным для вашего процесса разработки.
Существует несколько распространенных стратегий ветвления, включая Git flow, ветки функций и ветвление на основе ствола. Среди этих стратегий самыми популярными подходами являются Git flow или его варианты. Вот краткий обзор наиболее популярных стратегий ветвления.
Git flow
Git flow – это стратегия ветвления, которая полезна для команд, имеющих четкие процессы выпуска и необходимость поддерживать стабильность производственных окружений. Однако зависимость от нескольких ветвей и правил добавляет много сложностей в процесс. Это может быть ошеломляющим для новых участников команды и может приводить к конфликтам из-за несоблюдения принципов непрерывной интеграции.
GitHub flow
Trunk-based development (TBD)
Trunk-based development (TBD) — это модель ветвления, в которой разработчики сотрудничают над кодом в единственной ветке, называемой "транк". Эта стратегия предполагает прямые изменения кода в транке и сотрудничество разработчиков для поддержания стабильности основной ветки. Поскольку изменения непрерывно интегрируются в транк, существует повышенный риск внесения изменений, которые могут повлиять на стабильность всей системы
Как выбрать стратегию ветвления
Каждая стратегия имеет свои преимущества и недостатки, и лучший выбор зависит от конкретных потребностей вашей команды, а также таких факторов, как размер команды, процесс разработки, частота развертывания и требования к качеству кода.
Понимание плюсов и минусов каждой стратегии поможет вашей команде принять обоснованные решения относительно выбора подхода. Хотя в Space вы можете реализовать практически любой поток работы, мы рекомендуем рассмотреть применение стратегии, встроенной в сам Space - Space Git Flow.
Что такое Space Git Flow?
Space Git Flow - это стратегия ветвления, которая похожа на GitHub flow, но с большим уклоном в безопасность при внесении изменений в основную ветку и способностью масштабироваться для больших проектов и команд. В JetBrains мы используем этот поток для многих из наших продуктов, включая сам Space.
Основные элементы Space Git Flow обозначены ниже. Хотя большинство из них являются опциональными, чем больше вы реализуете, тем ближе будете к лучшему и безопасному потоку работы.
Основная ветка
Единственная основная ветка всегда готова к продакшну: тесты проходят успешно, и все изменения проверены. Основная ветка защищена, что означает, что непосредственные коммиты в нее запрещены.
Ветки функциональных возможностей
Изменения в коде вносятся в отдельной ветке функциональности. Всегда создавайте ваши ветки функциональности от основной ветки.
Запросы на слияние и ворота качества
Чтобы внести изменения из ветки функциональности в основную, вы создаете запрос на слияние, который должен пройти через ворота качества. Ворота качества могут быть настроены под ваш рабочий процесс команды и представляют собой набор условий, которые должны быть выполнены для слияния:
- Утверждение в очереди кодового ревью. Рецензент оставляет комментарии к коду и передает очередь автору для внесения изменений, пока изменения не будут окончательно утверждены рецензентом.
- Успешно завершенная задача Space Automation.
- Внешняя проверка, которая проходит, если внешний CI/CD-сервис, такой как TeamCity, сообщает об успешной сборке.
Safe Merge
Safe Merge (Безопасное слияние) - это дополнительный этап безопасности перед окончательным слиянием изменений из ветки функциональности в основную ветку. Space создает временный коммит слияния с последними изменениями из обеих веток и использует его для выполнения проверок качества с помощью задачи Automation или сборки TeamCity. Если проверки проходят успешно, изменения из ветки функциональности окончательно сливаются в основную ветку.
Ветки релизов
Если ваш проект включает публичные релизы, вам следует использовать ветки релизов, созданные от основной ветки. При необходимости, ветки релизов могут включать последние изменения, выбранные из основной ветки.
Почему использовать Space Git Flow?
Space Git Flow приносит множество преимуществ вашей команде и процессу разработки. Вы можете даже почувствовать эти преимущества, не полностью вовлекаясь в процесс, поскольку JetBrains Space может отражать ваш существующий репозиторий Git без необходимости миграции. Вы всегда можете вернуться назад при необходимости.
Использование Space Git Flow позволяет вам:
- Настроить ворота качества для достижения высококачественного кода и стабильной защищенной основной ветки с помощью:
- Безопасного слияния для веток функциональностей.
- Владельцев кода для обязательных ревью в критических областях кода.
- Статуса задачи Space Automation или сборки TeamCity в качестве критериев ворот качества для запросов на слияние.
- Внедрение процесса кодового ревью, который понравится вашей команде:
- Ревью кода из IntelliJ IDEA с использованием встроенной интеграции с Space.
- Выполнение кодовых ревью на ходу с помощью мобильных приложений Space для iOS и Android.
- Поддержание порядка и актуальности кодовых ревью с помощью ясной модели очереди ревью.
Хостинг или отражение репозитория Git в Space
Вы можете использовать Space для хостинга своего исходного кода или отражения репозитория из GitHub или другой Git-сервиса всего в несколько кликов.
Защита основной ветки от случайных коммитов
Чтобы предотвратить случайные коммиты в основную ветку, настройте защиту веток в Space и включите ворота качества.
Из вашей IDE вы можете вносить изменения в код в отдельной ветке, добавлять сообщение к коммиту, а затем отправлять эту ветку обратно в Space.
Перед слиянием в основную ветку вам потребуется запросить кодовое ревью у своих командных коллег.
Создание запроса на слияние
Создайте запрос на слияние, чтобы начать процесс перемещения вашего нового кода в основную ветку. Вы можете сделать это прямо из вашей JetBrains IDE, используя встроенную интеграцию, или вы можете найти вашу ветку в Space и создать запрос на слияние оттуда.
Вы можете установить заголовок и описание для вашего запроса на слияние и просмотреть коммиты, которые будут включены в него. Для выполнения ворот качества требуется, чтобы хотя бы один человек произвел ревью этих изменений.
Space будет требовать ревью на основе владения кодом
В вашем репозитории вы можете создать специальный файл с названием CODEOWNERS, который указывает, кто несет ответственность за определенные папки и файлы. Позднее вы и ваши коллеги сможете выбрать владельца кода для ревью ваших изменений в рамках ворот качества.
Ожидайте ревью от вашей команды
Теперь вы можете ожидать ревью от ваших коллег. Они могут добавлять комментарии и предложения или просто утвердить запрос. После достижения согласия по изменениям вы можете продолжить слияние.
Убедитесь, что ваша сборка успешна
В Space есть несколько вариантов, которые вы можете использовать, чтобы убедиться, что ваша сборка успешна. Вы можете использовать оба варианта для дополнительной безопасности.
Выполнение проверок CI/CD
После создания запроса на слияние запускаются Space Automation и/или задачи CI, чтобы проверить изменения, выполнив сборку кода и запустив тесты. В рамках ворот качества изменения будут сливаться в основную ветку только в том случае, если CI/CD-сервер успешно собирает ветку функциональности.
Проверки могут быть настроены и выполнены как с помощью Space Automation, так и с помощью внешнего CI/CD-сервиса, такого как TeamCity.
Однако, эти проверки гарантируют только, что новый код является действительным и хорошо интегрируется с основной веткой на момент создания ветки. С помощью Safe Merge проверка выполняется путем попытки интегрировать новый код с самым последним кодом из основной ветки.
Выполните Safe Merge
Вы можете использовать Safe Merge перед слиянием изменений непосредственно в основную ветку. Safe Merge работает как машина времени - он выполняет предварительный просмотр того, как будет выглядеть ваша основная ветка с изменениями.
Это особенно полезно для больших проектов, потому что в то время, когда вы работали в ветке функциональности, в основную ветку могли быть внесены изменения, конфликтующие с вашей работой. Safe Merge позволяет обнаружить эти конфликты перед фактическим слиянием веток.
Space создает временный коммит и запускает сборку CI/CD в Space Automation или TeamCity. Изменения сливаются в основную ветку только в случае успешной сборки. В противном случае слияние отклоняется.
Использование хостинга Git, кодовых ревью и CI/CD вместе в рамках Space Git Flow гарантирует, что изменения в кодовой базе вашего приложения всегда проходят кодовое ревью. И благодаря Safe Merge у вас всегда будет основная ветка, которая компилируется и может быть успешно развернута.
Как начать работу со Space Git Flow
Начать работу со Space Git Flow очень просто, поскольку не требуется миграция. Просто отразите свой репозиторий всего в несколько кликов. Вы всегда можете вернуться назад в любое время.
- Создайте организацию в Space, если у вас еще ее нет.
- Ознакомьтесь с этим пошаговым руководством по настройке Space Git Flow с использованием SpaceAutomation или TeamCity.
- Запросите демоверсию, чтобы задать вопросы или получить помощь в настройке потока под ваш процесс.
Попробовать бесплатно: https://www.jetbrains.com/space/app/login
Процесс приобретения
Шаг 1. Отправьте запрос через форму справа
Шаг 2. Получите бесплатную консультацию и коммерческое предложение
Шаг 3. Заключите договор (также работаем в ЭДО) и оплатите счет
Шаг 4. Получите ПО в электронном виде
Телефон: +7 (495) 123-4518
Email: mse@quarta.ru
Мы отвечаем в рабочие дни с 9.30 до 18.30