Angus Hollands
agoose77.bsky.social
Angus Hollands
@agoose77.bsky.social
🌍 Open Source Applications Engineer @ 2i2c!
📚 Jupyter Book core team member.
🎓 PhD in Nuclear Physics from the University of Birmingham.
I believe this was the following keynote: jupytercon2025.sched.com/event/28U0G/...

I don't know where the data were from, but I know that Jason will!
jupytercon2025.sched.com
November 5, 2025 at 8:43 PM
Yeah, I think we're pretty aligned on the nature of the problem! I don't feel confident that I have the golden bullet either, but I am enthused that more of us are talking about it in general -- that's definitely an improvement.
August 31, 2025 at 7:32 PM
This is harder in semver - how do you encode/schedule N breaking changes ahead of time, whilst also making room for an undefined number of new features etc.?

I think that's a nuanced point that won't come across clearly here!
August 31, 2025 at 8:25 AM
Yes you could do that! And we used to do that in awkward array.

The benefit to use calver is that you lose the misplaced assumption and force people to refer to the document that you would author in both cases. Additionally, in awkward we used time-based compatibility, so calver would have helped!
August 31, 2025 at 8:24 AM
In theory each month could be a breaking change, but by defining a schedule you can allow people to predict the calver numbers that these correspond to. With semver, you lose some of the segments to semver semantics.
August 31, 2025 at 8:17 AM
I agree in part, and I don't think calver is perfect either. The point is more nuanced though - the idea is that you can make breaking changes for different parts of the code base at different times.
August 31, 2025 at 8:16 AM
So, I reckon you might want to identify the persona of the package author that would use effver, and ALSO speak to how consumers of effver-sioned packages should reason and use this (contrasting with semver, probably)

You might also wish to reference examples of where semver failed in practice?
August 30, 2025 at 7:28 PM
What I don't love about effver is that it surfaces the hand-waviness of this, but doesn't make it easier to trust a constraint.

That's why I tend to like calver on the basis that you can literally pre-define what a breaking change is, and when you'll make it. But, it's more work.
August 30, 2025 at 7:26 PM
That means semver is really there to help people apply upper AND lower bounds to version constraints.
August 30, 2025 at 7:25 PM
My suggestion for introducing people to effver is perhaps to center this point earlier on:

The whole point of ascribing meaning to version numbers is to permit someone to say "I'll use a range of versions, so long as they work".

The "whether they work" part is doing a lot of heavy lifting.
August 30, 2025 at 7:23 PM
- e.g. big projects that have breaking change windows (where they cram together a bunch of breaking changes)
August 30, 2025 at 7:22 PM
- at this point, it's fair to compare semver with other schemes that also require additional context to interpret version numbers, e.g. calver, effver, zerover, etc.
August 30, 2025 at 7:17 PM
- good semver usage *requires* that you author some additional document that defines the bounds and intention of compatibility
August 30, 2025 at 7:16 PM
- it really suffers for big projects (as the number N of distinct pieces grows, the likelihood that successive versions are "breaking changes" grows), i.e. as N→∞ you end up with something equivalent to monotonic incrementing numbers
August 30, 2025 at 7:16 PM
- it gets worse with languages like Python where APIs can be tested far more deeply (e.g. introspection)
August 30, 2025 at 7:15 PM
The way I've been thinking about versioning is as follows:
- semver is fundamentally a lie that we tell ourselves. It presupposes a lot of ill-defined notions of compatibility.
August 30, 2025 at 7:15 PM
Lol, listing my blueksy in my bio and not logging in for a week!

I'd love to give this some more thought to articulate my feelings on this more clearly. Let me get back to you!
August 26, 2025 at 5:35 PM
Ugh this was so useful. Time for a new extension...
July 18, 2025 at 6:15 PM