-
Notifications
You must be signed in to change notification settings - Fork 8
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
Periodically bump version, perform GitHub release, maintain news/changelog #177
Comments
I suggest a simple and common approach to version numbering (h/t @krivard): |
Credit: https://semver.org/ |
We're "at" version 1.0.0 for a while already but are still cleaning up some interface issues. With current pull-into-main + semver we will reach ridiculous version numbers quickly. It feels like we are more in < 1.0.0 by semver standards, so I'm thinking of doing something a little semver-incompatible until we stabilize more --- maybe just call the current version 0.x.y.z or 1.x.y.z with x.y.z semver-like (I think this might be sort of like 1.0.0-alpha-x.y.z, but in an R numeric_version-compatible way). When we switch to semver proper we should consider moving to pull-into-dev, at least for breaking changes. |
What do you think about not making major version numbers be sacred? TL;DR: Just let the version number get really large. One negative consequence I can think of is that it will give a false impression of package maturity to some people. Doesn't seem like a big issue though (personally, if I see package-42.1.2 out in the wild, the bigger number doesn't give me much more confidence). |
Regarding the non-sacred major version numbers:
Random points:
Potential routes forward:
[The differences between the above have shrunk and continue to shrink the more we've stayed in experimental 1.0.0 without doing version bumps. But we do have some PRs now where we want to be able to refer back to an old version in case it breaks epipredict things, although we could just do this by pointing to a particular commit.] |
I'm really just in favor of simple solutions. The reason I prefer sticking with the original SemVer is because adding epochal version numbers is
I feel like you haven't really addressed my suggestion of just bumping the version numbers up and letting them get large. The benefits are:
But if you really don't want to have large version numbers, we could also delete the 1.0.0 release, since that was just a test and I don't think any one is using it. And revert back to 0.z.w to get us back to alpha. Maybe that's what you're suggesting in your route 3. I think that would also be fine. |
Also, it seems to me that the test release of |
Rereading your comments about eventually getting back to SemVer, I think that's a good eventual goal. So maybe if you want to have something like: But again, I think this is all a workaround us really wanting to have |
Ok, final thought: a time-saving approach would be to just stay in |
Clarifications/notes:
Why not just have huge version numbers?
Why consider epochs at this point?
If we decide to move to use epochs, it should be done fairly early on, so we don't start with a epoch number that's too high to look like an epoch number. If we decide to move away from epochs, this can probably be done at any time without too much strangeness.
Sounds solid; previously, I was reluctant to do this since we already had 1.0.0 in the DESCRIPTION on |
Thanks for the clarifications Logan. And point taken on large version numbers sending a bad message about backwards compatibility. Agree that DESCRIPTION file labeling isn't enough to constitute a release (it's not attached to hosting, for one). Personally vote for Also vote in favor of developing on a |
Made releases for the past few versions. Next steps:
|
closed by #398 and related changes |
Raised by @dshemetov a while back: we should periodically bump the package version and perform a GitHub release. Maintaining a news/changelog file would also be helpful. Version numbers help with lifecycle deprecation messaging. We should think about how backwards-compatible we want to be, and how much we want to catch with deprecation messages.
The text was updated successfully, but these errors were encountered: