Skip to content

Release Workflow

Sara Gaudon edited this page Nov 12, 2019 · 1 revision

Feature Freeze (Release - ~1w)

All features (and their corresponding issues) in progress are locked in around 1 week before release; no new features may be added after this point. This gives us a period to finish, test, and fine-tune the new feature branch.

Git Flow

1. git checkout develop / g dv
2. git pull --rebase / g plr
3. git branch release-vX.X.X / g b release-vX.X.X
4. git checkout release-vX.X.X / g co release-vX.X.X
5. git push -u origin release-vX.X.X (pushes new branch to remote)

Development for release continues on this release branch. If you accidentally commit release code to develop branch, cherry-pick it over to release-x-x-x And make sure to create your migration files / release notes

Code Freeze (Release - ~2d)

Feature development halts, all hands on deck to run final thorough testing

Version Release

New features are stable and ready for release, all parties have signed off on testing. We merge our release branch to master, tag it, and delete the release branch. When all is done, we merge master back into develop.

Git Flow

1. git checkout master / g co master
2. git pull --rebase / g plr
3. git merge --no-ff release-vX.X.X / g m release-vX.X.X
4. npm version X.X.X (updates package.json version, commits and tags)
5. git push
6. git push --tags (pushes all tags to remote)
7. git branch -d release-vX.X.X / g b -d release-vX.X.X
8. git push origin :release-vX.X.X (deletes branch from remote)
9. git checkout develop / g dv
10. git merge --no-ff master / g m master
11. git push (push everything else)

Celebrate!

Clone this wiki locally