This repository has been archived by the owner on Dec 7, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 363
Release process
Alice edited this page Oct 19, 2015
·
8 revisions
WARNING: This doc is a work in progress. Please DO NOT follow these instructions just yet!
We have a two-phase release process:
prerelease
release
Before running any grunt release
tasks, it's a good idea to make sure you're correctly authenticated using SSH keys and that ssh-agent
is running: https://help.github.com/articles/generating-ssh-keys/
This will avoid getting to the end of the script and then mis-typing your ssh passphrase!
% eval "$(ssh-agent -s)" # start the ssh-agent in the background
Agent pid 59566
% ssh-add ~/.ssh/id_rsa #Add your SSH key to the ssh-agent
- Check that everything is up to date:
a11y-devtools % rm -rf node_modules && npm cache clean && npm install # if closure compiler may be out of date
a11y-devtools % npm update # otherwise
a11y-devtools % git checkout master
a11y-devtools % git fetch
a11y-devtools % export UPSTREAM=upstream # Or whatever you called your upstream remote
a11y-devtools % git reset --hard $UPSTREAM/master # in case your local copy got into a weird state
- Run the
prerelease
grunt task frommaster
:
a11y-devtools % grunt release:prerelease # for a patch release, or
a11y-devtools % grunt release:preminor # for a minor release, or
a11y-devtools % grunt release:premajor # for a major release
- If you've already created a release candidate, always run the
prerelease
task to bump the RC version. For example, to go from2.10.0-rc.0
to2.10.0-rc.1
, update yourmaster
branch as above, and then run
a11y-devtools % grunt release:prerelease
This should happen two weeks after the last prerelease
task was run.
- Bring the
release
branch up to date with the last release candidate. Check the correct release tag by looking at the latest draft release and finding the most recent tag with that version. For example, if the latest draft release is for2.8.0
and there are tagsv2.8.0-rc.0
andv2.8.0-rc.1
, choose the latter.
a11y-devtools % git fetch
a11y-devtools % git checkout -t origin/release # if you don't already have the release branch mapped
a11y-devtools % git checkout release # otherwise
a11y-devtools % git reset --hard origin/release # if you might have gotten into a weird state
a11y-devtools % git pull # otherwise
a11y-devtools % git merge <latest_rc_tag>
- Run the
release
grunt task -
a11y-devtools % grunt release:patch # for a patch release, or
a11y-devtools % grunt release:minor # for a minor release, or
a11y-devtools % grunt release:major # for a major release
- Bring
master
up to date withrelease
(to keepdist/axs_testing.js
up to date).
This can be done either via the interface or via the command line. Note that you will likely need to do a manual merge for the Changelog, assuming there have been commits since the prerelease was cut.