Version 3 (modified by 12 years ago) (diff) | ,
---|
Proposed Git Workflow
Goals
- Improve stability of both the server and client software.
- Lay the foundation for feature branches should we ever decide to use them.
Branches
dev = server development
master = server stable
dev_client = client development
master_client = client stable
Initial state after migration
master forked to dev
master forked to dev_client
dev_client forked to master_client
Client Development
Bug fixes and new simple features start out in dev_client and are merged to master_client when needed.
(if feature branches are used) fork dev_client to client_XXX where XXX is the feature name. Do work in client_XXX until complete. Merge completed feature into dev_client.
Release Process
Dev builds (odd minor version) are built out of the dev_client branch. Tags (boinc_client_release_X_XX_XX) are created when the build number is incremented.
Release builds (even minor version) are built out of the master_client branch. Tags (boinc_client_release_X_XX_XX) are created when the build number is incremented.
master_client is forked to boinc_client_release_X_XX when a new dev_client release is considered stable. Any future bug fixes for the X_XX release are handled in its branch.
Mass merge of outstading commits from dev_client to master_client. Increment minor version number.
Current Unknowns
Can git merge a 'lib' change from dev to dev_client? How about the other way?