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

Pull Request & Release Process

Steve Heffernan edited this page Jan 22, 2014 · 1 revision

Branches

This project has two main branches:

  • master - New features, fixes, and other general enhancements should be based on master and merged back into master.
  • stable - Stays in sync with the latest versioned release. Hotfixes (urgent fixes to released code) should be based on stable and merged back into stable (and then merged into master).

(This project follows a process similar to the git-flow model, but the development branch is master and the release branch is stable.)

Pull requests

Pull requests should be fully tested, checked for code consistency and appropriateness, confirmed by at least one other contributor, and totally ready to deploy before the are accepted. The master and stable branches should be ready for production at all times.

Make sure pull requests are accepted into the correct branch.

  • features -> master (most pull requests)
  • hotfixes -> stable

After a hotfix pull request is accepted, a new patch release should be created immediately.

Releases

A grunt task has been created to automate the release process. You can read the steps it performs in the Grunfile.js.

The task includes the following steps:

  • Bump version
  • Build dist
  • Force add dist
  • Commit changes
  • Tag release
  • Publish to npm

As well as a number of git commands needed in the process.

If there are any errors in the process, fix the issue and follow the remaining steps in the release task in the Gruntfile.

Patch release (0.0.x)

Once a hotfix has been accepted into the stable branch, checkout the stable branch and run grunt release:patch.

Minor release (0.x.0)

Run all tests on the master branch again. Then checkout stable, merge master into stable, and run grunt release:minor.

Major release (x.0.0)

Same as minor, but run grunt release:major.