Confused about versionning in post v1.0 world

Thanks to @StefanKarpinski having pinned @dilumaluthge’s excellent post, I must say I am a bit confused now:

I was still using the pre-1.0 system where I would only bump the minor version number for breaking changes. To be fair to myself, I have been modelling most of my decisions off what happens in libraries written (in part) by @tim.holy - since he usually has his finger on Julia’s pulse:

Confirmed breaking changes

  • I noticed HDF5 had breaking changes at v0.15.0 (deprecation of HDF5File, HDF5Group, …).
  • I also noticed an interesting comment in Interpolations/README.md:

NEWS v0.9 was a breaking release. See the news for details on how to update.

Very low version numbers

I am also a bit surprised that, except for Gtk.jl, the version number of the above packages are still sub-v1.0. Of course, it is possible no breaking changes happened in these libraries since pre-Julia v1.0 times, but this is sort of why I figured we were still using the pre-Julia v1.0 versionning system.

Question/Confusion

Am I misreading the above post from @dilumaluthge? Should these libraries (and therefore my own) actually have been incrementing their major versions to work nicely with the package manager?

…Or is this an April Fools’ prank :confused: (see pin date by Stefan)?

EDIT Just want to mention emoji above is “confused” - and not some form of “unhappy”. *Sigh* I guess even emojis can create confusion over the tone of your message :face_with_raised_eyebrow:.

3 Likes

That’s still the right thing to do (until you decide to release 1.0). The pinned post is about updating the patch version for new features pre 1.0, not new breaking changes. This scheme didn’t change when Julia 1.0 was released.

For packages which have not yet released 1.0, you should bump the patch version for new features and the minor version for breaking changes. For packages which have released 1.0 or higher, you should bump the minor version for new features and the major version for breaking changes. This guidance doesn’t change based on what Julia version you’re using.

9 Likes

Yeah, when I say “pre-1.0” and “post-1.0” in that Discourse post, I am referring to the version number of the package. That is, “pre-1.0” refers to a package where the package’s version number is of the form 0.y.z. And “post-1.0” refers to a package where the package’s version number is of the form x.y.z where x is greater than or equal to 1.

Quoting from that post:

Nothing in that Discourse post has anything to do with the Julia version that you are using.

5 Likes

Of course. Reader error. Thanks for the answer @rdeits & @dilumaluthge.

Sorry about that: I re-read the post many times, but every time I did, it looked to me like you were talking about a switch we had to make when the Julia version changed.

My appologies.

1 Like

@MA_Laforge, I also misread it in the same was as you did and was confused as well. So, thank you for opening this topic.