Skip to content
This repository has been archived by the owner on Dec 7, 2022. It is now read-only.

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!


Releasing accessibility-developer-tools

We have a two-phase release process:

  1. prerelease
  2. release

Start ssh-agent

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

prerelease

  • 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 from master:
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

Bumping the RC version

  • If you've already created a release candidate, always run the prerelease task to bump the RC version. For example, to go from 2.10.0-rc.0 to 2.10.0-rc.1, update your master branch as above, and then run
a11y-devtools % grunt release:prerelease

release

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 for 2.8.0 and there are tags v2.8.0-rc.0 and v2.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 with release (to keep dist/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.