-
-
Notifications
You must be signed in to change notification settings - Fork 3
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
Are we happy with CalVer? Is there any easy way to move past it? #372
Comments
Thanks for raising this @fjetter. I'm glad you liked my blog post! For folks interested in thinking more about the challenges of CalVer I also wrote this blog post a while ago. I generally have the same feelings about epochs. In theory they sound like a good way to change scheme, but I'm not quite sure how it would work in practice. I know @minrk was exploring how it works in this repo after having a similar conversation last year, so that ay be a useful resource.
What I don't know is how Conda Forge handles this. Maybe @jakirkham has some thoughts? If we do want to go down this road we could choose a less prominent project like |
Thinking more about Dask changing scheme I would be tempted to suggest that we review it on a repo-by-repo basis. For most library style projects ( For |
using a different versioning scheme for docs only projects makes sense. I'm less convinced about the decoupling of schemes for |
I went back over the You can find the full results here https://github.com/jacobtomlinson/epochexperiments. The key things I've learned from playing around with it are:
These quirks are enough for me to say that we shouldn't go down the road of using epochs, they will add too much burden and confusion for users. Which pretty much means we are stuck with CalVer, unless we want to go to Dask 3000! |
I agree. Thanks for checking |
A while ago I read an excellent blog post about version schemes that is introducing a version scheme called "Intended Effort Versioning" (EffVer) that I quite like.
I'm not particularly happy with CalVer since it just hides way too much information. As an example, recently we changed the default DataFrame backend to use dask-expr which by any kind of measure should be considered a major change. It has a vast potential for improvement for many users and if we are honest will likely break stuff for some users.
Who knows, by heart, which version this was released in? Guess what, I was the release manager on that one and even got the version number wrong when I tested myself just now. For the record, it was 2024.3.0. This was possibly one of the most important releases dask ever had, definitely one of the most meaningful in months if not years but there is nothing to set it apart from a mere maintenance fix.
I don't care that much about semantics but I would like to use the version number to communicate awesomeness and/or risk and the EffVer scheme sounds like it's addressing most concerns (about compatibility and ambiguity) that led dask to adopt CalVer in the first place. We've been using CalVer for about three and a half years and I think it's enough time to collect some experience to talk about it.
How happy are folks generally with CalVer?
And most importantly... If we were to adopt another versioning scheme (even if it's not EffVer), how would that look like? There are Version epochs but I would hate it if users had to specify a version like
1!1.4.2
since the epoch identifier is pretty rare. Are there other possibilities?The text was updated successfully, but these errors were encountered: