-
-
Notifications
You must be signed in to change notification settings - Fork 3
Description
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?