-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix versioning #3
Comments
After discussion with @otizonaizit, we agreed on a Reasoning
Handling
|
hmm, not sure about this point:
why would you want to automatically bump the version number? I mean, each commit has its own SHA, so it is identifiable. The version number should be bumped on release only, which is probably not happening at every push to |
I actually thought so. |
Which means you will have a new release for the contributed fix of a typo in the docs? With push to PyPI? I don't know, but it seems a bit excessive to me. And it makes it impossible to publish alpha or beta releases... To me a release is a message to the world saying: look, we have done something new, fixed some things, improved the speed, whatever. So a release comes with release notes explaining what has been done, highlighting backward incompatible changes and what not. If you release at every merge, what would be the release notes? The message of the merge commit? But that could contain internal details that the users do not need to care about. And it becomes unclear which release is relevant and which is not. Before installing a new version of something I tend to read the release notes so that I can make an informed decision. If there are ten releases a month, with irrelevant release notes, then it is the same as asking to people to just track |
Another situation where automatic release on push to Imagine you are doing a big refactoring, where you introduce a new object hierarchy. This would ideally be done in a series of PRs, where the first one introduces the new objects, the second one migrates part of the code to use the new objects, the third one takes care of backward compatibility and so on and so forth. It is important to split this work in several PRs, because you do not want the refactoring to be a one-shot thing. You may merge the first PR and then wait a bit while you finish the second. You may want to revert the third PR but leave the first two in place. So, while |
Okay, I see that a release on every commit in So instead, I suggest to base the project's version entirely on git tags, meaning to also use |
Yes, that is a very good idea, I think GitHub picks up annotated tags automatically as releases and it uses the tag note as release notes |
That sounds nice! Do I need to configure the repo for this? |
|
Actually that link is not exactly the thing I was talking about. I need to dig deeper. |
As far as I can tell, people use diverse GitHub Actions for this. |
This is the manual way to do it: |
I am tending towards this recipe:
I like the reasoning by the Keep a Changelog project and see why The CI is hosted and maintained by us. I don't want to rely on GitHub Actions for this as we might switch the host at some point. |
In this early stage, the project should do releases with date versioning as the code base is quite unstable.When the project is mature enough, semantic versioning might be used instead.TL;DR: Use the versioning scheme
MAJOR.MINOR
based on git tags. See below for details.setuptools_scm
README.md
The text was updated successfully, but these errors were encountered: