Процес релізу

Як випустити новий реліз

Ці кроки трошки відрізняються, в залежності від типу релізу, який ви хочете випустити (нова версія, невеличкі зніни, патч)

Щоб випустити нову патч-версію (наприклад з 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.х)

  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 був перевірений спільнотою, і всі вагомі помилки були полагоджені, тоді RC може бути поміченим як стабільний. Щоб це зробити, перейдіть на https://release.yarnpkg.com/ і натисніть кнопку “Promote RC to stable”.

Примітка: існує білий список користувачів, які мають права доступу до цієї сторінки. Якщо автор відстутній в білому списку, то ви можете додати його тут.

Відлагодження випуску

Інколи все іде не так. Ось приклади для відладки найбільш популярних проблем:

Я закомітив мітку, але сайт досі вказує на стару версію

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

Linux артефакти (.tar.gz, .deb, etc.) пропущені

Перевірте CircleCI build і перезапустіть його, якщо він упав. Якщо збірка пройшла, перевірте помилки в webhook.

Відсутні артефакти Windows (.msi)

Перевірте AppVeyor збірку і перезапустіть, якщо вона була невдалою. Якщо збірка була вдалою, то перевірте помилки в webhook журналі .

Всі артефакти додані до релізу, але сайт досі вказує на стару версію

Перевірте, де відбулася помилка в yarn-version Jenkins build job.


Як зробити це вручну

Більшість кроків щодо випуску нової версії уже автоматизовано. Зазвичай, ви просто можете перестати читати уже тут. Але ж бо, якщо інструментарій створення випуску зламався (або вам подобається страждати), ви можете вручну виконати ці кроки.

Створення нового випуску

  1. Запустіть yarn build-dist && yarn build-deb, щоб створити архів з випуском, 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. Опублікуйте архів до npm: npm publish ./artifacts/yarn-v0.xx.xx.tar.gz
  7. Виконайте після-релізні кроки, зазначені нижче

Як підвищити кандидат-збірку до стабільної

  1. Змінити збірка на GitHub, позначивши її як стабільну
  2. Виконати npm dist-tag add yarn@0.xx.xx latest (де 0.xx.xx це версія: яку треба випустити)
  3. Запустити кроки, наведені далі

Після випуску

  1. Оновіть номер версії в _config.yml on the website
  2. Запустіть ./scripts/build-chocolatey.ps1, щоб опублікувати збірку до Chocolatey
  3. Запустіть ./scripts/update-homebrew.sh, щоб опублікувати збірку до Homebrew
  4. Debian та CentOS репозиторії мають бути автоматично оновлені з останнім випуском через 5 хвилин (підглядайте на коміти)