On Thursday, 11 April 2019 17:33:04 UTC+1, dcs3spp  wrote:
> Hi,
> 
> Hoping posting this in the correct place...Apologies if not....
> 
> I am trying to understand how to use semantic versioning with trunk based 
> development for a Python project. Has anyone had any experience of adopting a 
> trunk based development with semantic versioning for packages?
> 
> I store the semantic version in version.py :__version__ which gets included 
> in setup.py
> 
> On the trunk (main) version.py:__version__ would be 1.0.0-SNAPSHOT and on the 
> CI server each build would append the build number, e.g. 1.0.0.1234-SNAPSHOT. 
> A changelog would initially be empty for the semantic version number on the 
> trunk (main).  
> 
> When ready to release a release branch would be created *release-1.0.x* and 
> any fixes, features would be cherry-picked from main. A gitlab CI job would 
> still run tests for commits on branches named *release-*. The release branch 
> may be tagged, e.g. 1.0.1, 1.0.2 etc. until the release stabilises. This 
> would bump the version number in version.py.
> 
> The changelog could be finalised on the release-branch, however this would 
> mean that it would have to be merged back to trunk(main). version.py would 
> also presumably have to be merged back to trunk after it is has been bumped 
> following hotfixes on the release branch. Is a merge from release to 
> trunk(main) acceptable in trunk based development for changelog and version 
> files only?
> 
> The problem would be if a new release, e.g. 1.1.0-SNAPSHOT was then prepared 
> for while release branch 1.0.x was still active then the version number would 
> be out of synch between trunk and release??
> 
> How is this managed with trunk based development approach?
> 
> Kind regards
> 
> dcs3spp

PS, error in my original question where I stated features cherry picked from 
main. Typo. Only fixes can be cherry picked from trunk(main) onto a release 
branch.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to