Перейти к содержимому

Выпуск новой версии

Список шагов для выпуска релиза фреймворка со временем вырос и стал сложным для ручного управления, поэтому мы создали консольный инструмент, чтобы ни один шаг не был пропущен.

Эти шаги автоматизированы в консольной команде release, которая включена в репозиторий разработки фреймворка.

Команду release можно вызвать через Yii-приложение в директории build:

./build/build help release # запускать в корне репозитория фреймворка

Info: Команду можно запустить с опцией --dryRun, чтобы посмотреть, что она сделает. С этой опцией никакие изменения не будут внесены, коммиты и теги не будут созданы или отправлены.

Команда release зависит от окружения разработки, описанного в документе по Git Workflow: шаблоны приложений должны находиться в /apps/, а расширения в /extensions/. Эта структура создаётся командами dev/app и dev/ext.

Например, установка расширения:

./build/build dev/ext authclient

или приложения:

./build/build dev/app basic

Такая установка гарантирует, что расширение будет использовать тот же код фреймворка, что и в текущем состоянии репозитория.

Для обзора версий фреймворка и расширений:

./build/build release/info

Можно запустить с --update, чтобы подтянуть теги всех репозиториев и получить актуальную информацию.

Релиз фреймворка включает следующие команды (приложения всегда релизятся вместе с фреймворком):

./build/build release framework
./build/build release app-basic
./build/build release app-advanced

Релиз расширения - одна команда (например, для redis):

./build/build release redis

По умолчанию команда release выпускает новый минорный релиз из текущей ветки. Чтобы выпустить другую версию, укажите её через опцию --version, например --version=2.1.0 или --version=2.1.0-beta.

Релиз новой мажорной версии включает смену ветки, как описано в политике версионирования. Ниже пример выпуска версии 2.1.0, которая разрабатывалась в ветке 2.1, ответвлённой от master. Ветка master до этого содержала версии 2.0.x.

  • создать новую ветку 2.0 из master
  • убедиться, что composer.json в этой ветке больше не содержит branch alias
  • слить необходимые изменения из master в 2.1
  • указать master на последний коммит ветки 2.1
  • обновить branch alias в composer.json для master на 2.1.x-dev
  • удалить ветку 2.1

Теперь переключиться на master и запустить команду release с опцией --version=2.1.0.