-
Notifications
You must be signed in to change notification settings - Fork 27
Description
With release of STL2019 (and hopefully more to come), we now should keep track of which release corresponds to which commit/branch in the Github repository.
From a GIT perspective a release is just a commit that is tagged (see https://git-scm.com/book/en/v2/Git-Basics-Tagging) and thus is easy to find.
Situation pre-STL2019:
So, far we used the dev
branch to develop new features while the master
branch has the accepted features.
So, far master
was always behind dev
residing on the same commit history.
The STL2009 commit was tagged (see https://github.com/openitu/STL/releases) and it is still in the master
.
Situation with STL2019
With the release of the STL2019, we have now the situation that there is an accepted release from ITU-T.
In fact, this release did not exactly correspond to our master
/dev
as it contains changes in the documentation.
So, we added these changes into dev
and master
.
The actual issue is now that in meantime additional changes were merged into master
...
Options:
-
For a new release: freeze (i.e., do not make any changes)
master
anddev
until all requested changes are integrated into firstdev
and then merged intomaster
.
During this time, we could use a separate branch for additional development (e.g., devWhileInRelease [Best name ever!]).
When all changes are integrated, we tag the corresponding commit inmaster
. -
For a new release: we branch from
master
on submission to ITU-T and integrate requested changes into this branch.
When finally accepted, we tag this commit.
During this time,master
anddev
can be used as usual.
After tagging the commit on the release branch, we cherry-pick the changes todev
and merge it intomaster
.
With regard to personal preference, I opt for Option 1 as we will then only have one commit path and it is far cleaner afterwards (on a long run).
This also assumes that we have no changes anymore to released version.
If not, we would need to go with Option 2 - but maintaining completely separated branches is quite some additional work.
For the STL2019: we could revert the added changes that are not in accepted release by ITU-T, then add the release tag, and finally add the reverted commits again.