The steps vary slightly depending on the type of release you are pushing (major, minor or patch)
-stable
branch (eg. 0.28-stable
for 0.28).-stable
branch locally.npm version patch
to bump the version number, and create the Git commit and taggit push origin 0.xx-stable --follow-tags
(replace 0.xx-stable
with the right branch name)master
and your local copy of Yarn is up-to-date./scripts/release-branch.sh
. This will:
0.xx-stable
branch and 0.xx.0
tagmaster
to the next minor version (eg. after releasing 0.29.0
, master will be bumped to 0.30.0
)origin
Once an RC has been tested by the community for a while and all major bugs have been ironed out, it can be marked as stable. To do this, go to https://release.yarnpkg.com/ and click the "Promote RC to stable" button.
Note: There is a whitelist for the users that are able to access this page. If a maintainer is missing from the whitelist, you can modify it here.
Sometimes things go wrong. Here's how to debug some common issues:
Check the GitHub release for any missing artifacts. The release scripts do not bump the version number on the site until both the Linux and the Windows artifacts have been attached to the release.
.tar.gz
, .deb
, etc.) are missing Check the CircleCI build and re-run it if it has failed. If the build succeeded, check the webhook logs for any errors.
.msi
) are missing Check the AppVeyor build and re-run it if it has failed. If the build succeeded, check the webhook logs for any errors.
Check the yarn-version Jenkins build job and see whether it has failed.
Most of the release has been automated and is fairly straightforward. Normally, you can just stop reading here. However, if the release tooling ever breaks (or if you like doing things the hard way), you can manually perform the release steps.
yarn build-dist && yarn build-deb
to build the release tarball, Debian package, and RPM packageyarn build-dist && yarn build-win-installer
on Windows to build the Windows installer.tar.gz
and .js
artifacts:
gpg -u 9D41F3C3 --armor --detach-sign yarn-0.xx.xx.tar.gz
This will generate .asc
files that you should also attach to the release.msi
artifacts:
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
npm publish ./artifacts/yarn-v0.xx.xx.tar.gz
npm dist-tag add yarn@0.xx.xx latest
(where 0.xx.xx
is the version number being released)./scripts/build-chocolatey.ps1
to push to Chocolatey./scripts/update-homebrew.sh
to push to Homebrew