Процесс создания релизов

Выпуская новый релиз

Эти шаги немного различаются в зависимости от типа релиза, который вы хотите выпустить (новая версия, мелкие измения или патч)

Чтобы выпустить новую версию патча (например с 0.28.1 до 0.28.2)

  1. Cherry-pick все изменения в ветку -stable (например 0.28-stable для 0.28).
  2. Убедитесь, что вы на локальной ветке -stable.
  3. Запустите npm version patch, чтоб поднять номер версии и создать Git коммит и метку
  4. Выполните git push origin 0.xx-stable --follow-tags (замените 0.xx-stable на правильное название ветки)

Чтобы выпустить новую версию или мелкие изменения (например с 0.28.х до 0.29.0)

  1. Убедиться, что текущая главная ветка имеет зеленый статус на Circle, Travis и AppVeyor
  2. Убедитесь, что вы на ветке master и локальная версия Yarn обновлена до последней версии
  3. Выполните ./scripts/release-branch.sh. Произойдёт следующее:
    • Будет создана ветка 0.xx-stable и метка 0.xx.0
    • Обновит master до следующей минорной версии (например, после релиза 0.29.0, master будет обновлён до 0.30.0)
    • Выгрузит всё в origin

Для перевода RC в стабильный релиз

После того как RC некоторое время проверялся сообществом и все основные ошибки были устранены, релиз можно пометить как стабильный. Чтобы это сделать, перейдите на https://release.yarnpkg.com/ и нажмите кнопку “Promote RC to stable”.

Примечание: Существует определённый список пользователей, которые имеют доступ к этой странице. Если автор отсутствует, то вы можете добавить его здесь.

Отладка релиза

Иногда всё идёт не так. Вот как отлаживать некоторые распространенные проблемы:

Я закоммитил метку, но сайт до сих пор указывает на старую версию

Проверьте релиз на GitHub на пропущенные артефакты. Скрипты релиза не обновляют номер версии на сайте пока в релизе не будут добавлены оба артефакта: для Linux и для Windows.

Linux артефакты (. tar.gz, .deb и т.д.) отсутствуют

Проверьте CircleCI build и повторно запустите его, если он остановился. Если сборка успешна, то проверьте ошибки в журнале webhook.

Артефакты Windows (.msi) отсутствуют

Проверьте AppVeyor build и повторно запустите его, если он остановился. Если сборка успешна, то проверьте ошибки в журнале webhook.

Все артефакты прикреплены к релизу, но сайт все еще указывает на старую версию

Проверьте какие ошибки выдал yarn-version Jenkins build job.


Как это сделать вручную

Большинство шагов по выпуску новой версии уже автоматизировано. Как правило, вы можете перестать читать уже здесь. Но если инструмент создания релиза сломался (или если вам нравится сложности), можно вручную выполнить эти шаги.

Создание нового релиза

  1. Запустите yarn build-dist && yarn build-deb для создания tarball релиза, Debian пакета, и RPM пакета
  2. Выполните yarn build-dist && yarn build-win-installer на Windows для создания Windows установщика
  3. С помощью GPG подпишите .tar.gz и .js артефакты: sh gpg -u 9D41F3C3 –armor –detach-sign yarn-0.xx.xx.tar.gz Это сгенерирует

    .asc файлы, которые вы также должны приложить к релизу

  4. Authenticode подписывает .msi артефакты: sh osslsigncode sign -t http://timestamp.digicert.com -n “Yarn Installer” -i https://yarnpkg.com/ -pkcs12 yarn-20161122.pfx -readpass yarn-20161122.key -h sha1 -in yarn-0.xx.xx-unsigned.msi -out yarn-0.xx.xx.msi osslsigncode sign -t http://timestamp.digicert.com -n “Yarn Installer” -i https://yarnpkg.com/ -pkcs12 yarn-20161122.pfx -readpass yarn-20161122.key -nest -h sha2 -in yarn-0.xx.xx.msi -out yarn-0.xx.xx.msi

  5. Создайте новый релиз на GitHub и приложите все артефакты. Для MSI-файла убедитесь, что вы приложите подписанную версию!
  6. Опубликуйте tarball в npm: npm publish ./artifacts/yarn-v0.xx.xx.tar.gz
  7. Выполните post-release шаги

Перевод с ветки RC на стабильную

  1. Пометьте релиз на GitHub как стабильный
  2. Выполните npm dist-tag add yarn@0.xx.xx latest (где 0.xx.xx номер версии релиза)
  3. Выполните post-release шаги

Post-release

  1. Поменяйте номер версии в _config.yml на веб сайте
  2. Запустите ./scripts/build-chocolatey.ps1, чтобы толкнуть релиз в Chocolatey
  3. Выполнитк ./scripts/update-homebrew.sh для передачи в Homebrew
  4. Debian и CentOS repo должны будут автоматически обновиться с последнего релиза в течение 5 минут (следите за коммитами)