# Confused about versionning in post v1.0 world

**URL:** <https://discourse.julialang.org/t/confused-about-versionning-in-post-v1-0-world/59118>\
**Category:** General Usage\
**Created:** [April 12, 2021, 3:23pm UTC](https://discourse.julialang.org/t/confused-about-versionning-in-post-v1-0-world/59118 "2021-04-12T15:23:25Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![MA\_Laforge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ma_laforge/32/385_2.png) [@MA\_Laforge](https://discourse.julialang.org/u/MA_Laforge)\
**Post date:** [April 12, 2021, 3:23pm UTC](https://discourse.julialang.org/t/confused-about-versionning-in-post-v1-0-world/59118/1 "2021-04-12T15:23:26Z")

</div>

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

> [@PSA: If your package's version is of the form \`0.y.z\`, please do NOT bump the minor version for new features](https://discourse.julialang.org/t/psa-if-your-packages-version-is-of-the-form-0-y-z-please-do-not-bump-the-minor-version-for-new-features/46570):
>
> The Julia package manager implements semantic versioning differently for packages that are pre-1.0 versus packages that are post-1.0. For packages that are pre-1.0 (i.e. the package’s version is of the form 0.y.z), we implement the following: For breaking changes only, bump the MINOR version number. Example: 0.1.1 to 0.2.0. For new features, bump the PATCH version number. Example: 0.1.1 to 0.1.2. For bug fixes, bump the PATCH version number. Example: 0.1.1 to 0.1.2. For packages that are p…

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:

- [HDF5.jl](https://github.com/JuliaIO/HDF5.jl)
- [Images.jl](https://github.com/JuliaImages/Images.jl)
- [Interpolations.jl](https://github.com/JuliaMath/Interpolations.jl)
- [Colors.jl](https://github.com/JuliaGraphics/Colors.jl)
- [Gtk.jl](https://github.com/JuliaGraphics/Gtk.jl)
- …

### 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](https://github.com/JuliaMath/Interpolations.jl/blob/master/NEWS.md) 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 😕 (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 🤨.

---

<div class="post-metadata">

**Author:** ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)\
**Post date:** [April 12, 2021, 3:42pm UTC](https://discourse.julialang.org/t/confused-about-versionning-in-post-v1-0-world/59118/2 "2021-04-12T15:42:33Z")

</div>

> [@MA\_Laforge](#):
>
> I was still using the pre-1.0 system where I would only bump the minor version number for breaking changes.

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.

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [April 12, 2021, 10:21pm UTC](https://discourse.julialang.org/t/confused-about-versionning-in-post-v1-0-world/59118/3 "2021-04-12T22:21:19Z")

</div>

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:

> [@PSA: If your package's version is of the form \`0.y.z\`, please do NOT bump the minor version for new features](https://discourse.julialang.org/t/psa-if-your-packages-version-is-of-the-form-0-y-z-please-do-not-bump-the-minor-version-for-new-features/46570/1):
>
> For packages that are pre-1.0 (i.e. the package’s version is of the form `0.y.z` )

> [@PSA: If your package's version is of the form \`0.y.z\`, please do NOT bump the minor version for new features](https://discourse.julialang.org/t/psa-if-your-packages-version-is-of-the-form-0-y-z-please-do-not-bump-the-minor-version-for-new-features/46570/1):
>
> For packages that are post-1.0 (i.e. the package’s version is of the form `x.y.z` where `x ≥ 1` )

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

---

<div class="post-metadata">

**Author:** ![MA\_Laforge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ma_laforge/32/385_2.png) [@MA\_Laforge](https://discourse.julialang.org/u/MA_Laforge)\
**Post date:** [April 13, 2021, 4:30pm UTC](https://discourse.julialang.org/t/confused-about-versionning-in-post-v1-0-world/59118/4 "2021-04-13T16:30:25Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![rikh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rikh/32/204104_2.png) [@rikh](https://discourse.julialang.org/u/rikh)\
**Post date:** [April 13, 2021, 6:28pm UTC](https://discourse.julialang.org/t/confused-about-versionning-in-post-v1-0-world/59118/5 "2021-04-13T18:28:14Z")

</div>

@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.
