Skip to content

Release Management (draft)

Sara Cope edited this page Jul 6, 2020 · 1 revision

This is our official process for releasing new versions of digital.gov.

Principles

  1. Follow well-established versioning practices
  2. Provide detailed notes for each release
  3. Encourage contributions and thank contributors for their hard work

Versioning

⚠️ In these docs, {{ version }} should always be replaced with the semantic version number, i.e. 1.2.1 ⚠️

Create the release branch

  • Determine if the version is a patch (#.#.#), minor (#.#.0), or major (#.0.0) version

  • Branch off master and use the branch name format release-{{ version }}:

           git pull origin master
           git checkout -b release-{{ version }} origin/master
    

Example > git checkout -b release-0.0.7 origin/master

Version the release with npm

npm version will increment the version number semantically in package.json and commit the changes to git. Versions will be tagged on the master branch. See the npm publish documentation for additional options.

  • For prerelease releases: Run npm version prerelease --no-tag.
  • For patch releases: Run npm version patch --no-tag.
  • For minor releases: Run npm version minor --no-tag.
  • For major releases: Run npm version major --no-tag.

This bumps the version number in package.json and commits that change. It should echo back the new version number to your terminal command line. git log should show that new commit.

Deploy the release

  • Push the version branch up to GitHub
  • Submit a Pull Request and Merge release-{{ version }} back into the master branch
  • Run git checkout master and git pull origin master to update your local repository
  • From master, execute git tag -a v{{ version }} -m "Releasing version v{{ version }}"
  • Push the tag to GitHub by running git push origin v{{ version }}
  • Check that GitHub releases shows the new tag more info on git tags
Clone this wiki locally