1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Garden

Клонировать/Скачать
RELEASE_PROCESS.md 7.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.03.2025 12:51 edd0df2

Процесс выпуска

У нас есть отдельная ветка выпусков, latest-release, с которой мы создаем наши выпуски с помощью нашего скрипта выпуска. Как только мы готовы сделать выпуск, мы сбрасываем ветку latest-release до main и создаем предварительный выпуск с помощью скрипта. Если возникают проблемы с предварительным выпуском, мы объединяем исправления в main и применяем их к ветке latest-release. Мы повторяем этот процесс до тех пор, пока все проблемы не будут решены, и мы сможем сделать правильный выпуск.

Этот процесс позволяет нам продолжать объединять новые возможности в main без их включения в выпуск.

При каждом слиянии в main мы также публикуем нестабильный выпуск с версией edge-bonsai, который всегда помечен как предварительный выпуск.

Скрипт выпуска

Скрипт выпуска имеет следующую сигнатуру:

./scripts/release.ts <minor | patch | preminor | prepatch | prerelease> [--force] [--dry-run]

и выполняет следующие действия:

  • Переходит на ветку с названием release-<версия>.
  • Обновляет core/package.json, core/package-lock.json и CHANGELOG.md.
  • Создает коммит изменения, добавляет тэг к коммиту, и отправляет тэг и ветку.
  • Отправка тэга запускает процесс CI, который создает артефакты выпуска и публикует их на GitHub. Если выпуск не является предварительным, мы создаем черновик вместо фактической публикации.## Шаги

Чтобы сделать новый выпуск, установите текущий рабочий каталог в корневой директории garden и следуйте шагам ниже.

1. Подготовка выпуска

Сначала вам нужно подготовить бинарники выпуска и выполнить некоторые ручные тесты:

  1. Перейти в ветку latest-release.
  2. Сбросьте latest-release до main командой git reset --hard origin/main.
  3. Выполните git log, чтобы удостовериться, что последний коммит — это ожидаемый, и нет нежелательных изменений из main, включённых в выпуск.
  4. Выполните ./scripts/release.ts patch. Таким образом, коммиты увеличения версии и записи в CHANGELOG, созданные предварительными выпусками, исключаются из конечной истории.
  5. Подождите завершения сборки CI, которая получает бинарники с страницы GitHub Releases.

2. Публикация и объявлениеКак только завершится задача CI выпуска, черновик выпуска появится на GitHub. Этот черновик выпуска следует опубликовать и объявить.

  1. Перейдите на нашу страницу выпусков в GitHub и нажмите кнопку Редактировать для черновика, созданного автоматически от CI. Обратите внимание, что для черновиков всегда создается новый выпуск вместо замены предыдущего.

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

    • Выполните команду . /scripts/draft-release-notes.ts <previous-tag> <current-tag>. В консоли будет выведен имя файла с заметками к черновику.
    • Откройте файл с заметками (он называется release-notes-${version}-draft.md, например, release-notes-0.12.38-draft.md) и завершите все предложенные пункты TODO.
  3. Нажмите кнопку Опубликовать выпуск.

  4. Создайте запрос на слияние для ветки, которую скрипт отправил, и убедитесь, что он был слит как можно скорее.

  5. Обновите файл CHANGELOG.md, если были необходимы ручные изменения в заметках к выпускам (например, удаление коммитов, которые были отменены).

  6. Выполните команду npm install и сделайте коммит обновленного файла package-lock.json.

  7. Убедитесь, что ветка latest-release содержит выпущенную версию, и отправьте её на удалённый сервер.Эта ветка используется для нашей документации, поэтому этот шаг важен.

  8. Проверьте успешное выполнение действия update-homebrew в GitHub и слейте соответствующий запрос на слияние в репозитории homebrew. Используйте обычное слияние с коммитом слияния.

  9. Установите пакет Homebrew и убедитесь, что он работает правильно:

    • brew tap garden-io/garden && brew install garden-cli || true && brew update && brew upgrade garden-cli
    • Выполните команду $(brew --prefix garden-cli)/bin/garden dev (чтобы убедиться, что вы используете упакованную версию) в примерном проекте и проверьте, всё ли в порядке.
  10. Подготовьте объявление о выпуске и опубликуйте его в наших каналах (Discord и Twitter). Если это невозможно, поручите задачу доступному участнику.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-Garden.git
git@api.gitlife.ru:oschina-mirror/mirrors-Garden.git
oschina-mirror
mirrors-Garden
mirrors-Garden
main