Closed redeboer closed 4 years ago
Regarding the version of setup.py: The current situation is not ideal, but its fairly ok. Not sure if bumpversion is foolproof. Some kind of hook in github would almost be best, that has access to the tag stage and will deny a tag if the version does not match. Don't know what state of the art is here.
Regarding the versioning: Semantic versioning is nice and I would love to do that (to get some hands on experience with this). But for me that would imply that you keep several major version branches that are maintained simultaneously. So I think that will add to much workload.
Lets turn this into an ADR, to keep our decision fixed. I think this should almost be ComPWA global, decision...
If it's global, imho the best place would be https://github.com/ComPWA/PWA-pages For instance, a section with thoughts on linear commit history (particularly its use in a research settings), how that facilitates the release flow (the linear commit messages neatly summarise changes), how to tag and bump a version (as you say, probably best through a git hook), and how to draft a release note.
Yeah exactly. That was my idea. Do you think this decision should be global or project local?
So a description of the conventions can best be placed in some global place and I can only think of the PWA Pages (even if they're experimental). Git hooks and all have to be implemented for each repo, ofc, but the expertsystem can serve as a nice try-out (particularly with the upcoming pre-releases).
I meant if the conventions we decide based on the versioning will apply to all subprojects within ComPWA? Also we should keep in mind that tensorwaves will be closely coupled to AmplitTF and zfit.
Maybe 'guideline' is a better word than 'convention' here. Anyway, main point is: create an ADR under the expertsystem or under the PWA Pages?
Now that #102 is through, I think this issue can be fixed by creating something like a __version__
file at the script
stage of the Travis deploy job. That file can then be used in the setup.cfg
(we have to make sure this doesn't cause errors for users). So the version determination would happen somewhere this stage:
https://github.com/ComPWA/expertsystem/blob/a438784a0e65a5e86e62facd05493936892e1fd1/.travis.yml#L56-L65
And we have to make sure this job is only performed when triggered by a tag.
https://pypi.org/project/setuptools-scm/ this cant help?
Yes good one, looks promising, I'll check it out later.
Problem description
Have had a few times that pushing a tag results in a failed deploy job, e.g. https://travis-ci.com/github/ComPWA/expertsystem/jobs/350476070, because I forgot to bump the version in the
setup.py
file. There are better tools for that, likebumpversion
.Also, we haven't really thought about how to deal with releases. Linear commit history already provides some sort of clean versioning, now it's just a matter of summarising the most important changes for each release. For now, I follow the release style that tensorflow uses. Although we're unclear about Semantic Versioning.
Summary
setup.cfg
,pyproject.toml
, ...)This differs from https://github.com/ComPWA/expertsystem/pull/70 in the sense that in this repository we want to try out and illustrate some tools for a nice release flow. In the PWA Pages we describe that release flow after it turns out to work well. The PWA Pages then serve more as a guideline.
Some resources