47 | | == Original Proposal by Peter Dimov == |
48 | | |
49 | | To expand on what I said in a previous message, I suggest the following structure for the superproject: |
50 | | |
51 | | * branch "latest": automatically tracks "develop" of submodules (scripted). |
52 | | * branch "develop": automatically tracks "master" of submodules (scripted). |
53 | | * branch "master": contains either the last release or the current release candidate. |
54 | | |
55 | | (This naming reflects a gitflow model. An alternative would be to use the more traditional unstable/stable for latest/develop.) |
56 | | |
57 | | Test runners test all three, in sequence. |
58 | | |
59 | | Release preparation starts with a gitflow release branch from boostorg:develop. The release manager then runs local tests and, if necessary, applies fixes on the branch by downgrading submodules to an earlier version or asking the submodule maintainer to resolve a problem and then upgrading the submodule to the later version. |
60 | | |
61 | | Ideally, this release branch should be tested non-locally. However, in the past switching branches for testing has proved a problem. Therefore, the procedure continues instead with: |
62 | | |
63 | | When the release manager is satisfied with the local test results for the release branch, he merges it to master. This becomes a release candidate. If tests prove satisfactory, the release candidate is tagged as an official release and the release branch is deleted. If not, work continues on the release branch. |
64 | | |