| | 1 | = Proposed Git Workflow = |
| | 2 | |
| | 3 | == Goals == |
| | 4 | |
| | 5 | 1. Improve stability of both the server and client software. |
| | 6 | 2. Lay the foundation for feature branches should we ever decide to use them. |
| | 7 | |
| | 8 | == Branches == |
| | 9 | |
| | 10 | dev = server development |
| | 11 | master = server stable |
| | 12 | dev_client = client development |
| | 13 | master_client = client stable |
| | 14 | |
| | 15 | == Initial state after migration == |
| | 16 | |
| | 17 | master forked to dev |
| | 18 | master forked to dev_client |
| | 19 | |
| | 20 | dev_client forked to master_client |
| | 21 | |
| | 22 | == Client Development == |
| | 23 | |
| | 24 | Bug fixes and new simple features start out in dev_client and are merged to master_client when needed. |
| | 25 | |
| | 26 | (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. |
| | 27 | |
| | 28 | === Release Process === |
| | 29 | |
| | 30 | Dev builds (odd minor version) are built out of the dev_client branch. Tags are created when the build number is incremented. |
| | 31 | |
| | 32 | 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. |
| | 33 | |
| | 34 | Mass merge of outstading commits from dev_client to master_client. Increment minor version number. |
| | 35 | |
| | 36 | == Current Unknowns == |
| | 37 | |
| | 38 | Can git merge a 'lib' change from dev to dev_client? How about the other way? |