-
Notifications
You must be signed in to change notification settings - Fork 27
Repo management and Releasing
zzolo edited this page Aug 16, 2011
·
6 revisions
The following is the (proposed, but yet implemented) model for our git-based repository management (branching and tagging). Overall the goal is to follow the model laid out by Vincent Driessen's post on a git branching model at nvie.com. Please refer to that post for more details and commands on the process.
Git Flow will help in maintaining the management style described here.
-
git flow init
- Given the information below, make sure to choose master-cfa and develop-cfa respectively.
The following are the main branches of the application. Note because this code is influx with LP's NYS project, this is a bit off for now.
- master-cfa: This is main branch that holds the production-ready code. Code from the develop branch should be merged into this branch when ready to be tagged as a release.
- develop-cfa: This is the branch where all stable development code gets merged into. This can be thought of as the staging branch.
-
Feature branches: Each new feature should be managed in its own branch. When tested and ready, the branch should be merged into the develop branch.
- Branch from develop.
- Merge back to develop.
- Naming: anything besides other naming.
-
Release branches: Release branches support preparation of a new production release. This is for some final fixes and allows for development for next release to proceed more smoothly.
- Branch from develop.
- Merge back to develop and master.
- Naming:
release-*
-
Hotfix branches: For emergency fixes to released code.
- Branch from master.
- Merge back to develop and master
- Naming:
hotfix-*
After having developed and tested enough features for a release, use the following to create a release.
- Determine release number. Currently something like 2.0.X.
- Create new release branch:
git flow release start 2.0.x
. - Run build:
./scripts/build.sh
(see Build process) - Update the following, following conventions already started:
CHANGELOG.txt
UPGRADE.txt
INSTALL.txt
README.txt
- Test!
- Finish and merge branch:
git flow release finish 2.0.X
- This will merge changes into master-cfa and develop-cfa and create tag at 2.0.X.