Skip to content
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

Adopt Effver #559

Open
almarklein opened this issue Aug 30, 2024 · 2 comments
Open

Adopt Effver #559

almarklein opened this issue Aug 30, 2024 · 2 comments

Comments

@almarklein
Copy link
Member

almarklein commented Aug 30, 2024

This is a proposal to adopt EffVer for versioning. Learned about this on Euroscipy: https://jacobtomlinson.dev/effver/.
We kinda used SemVer until now, except we're still in the 0.x yolo fase, so it doesn't really matter/count.

My short summary

Like SemVer, EffVer adds semantics to the numbers, but in a different way: where SemVer promises something about the kind of changes, depending on what number is bumped, in EffVer it says something about the expected amount of work for downstream devs. The idea is that it gives a more honest signal to downstream devs.

For more details, please follow the link above, and maybe semver-will-not-save-you to understand why SemVer often does not live up to its promise.

A practical comparison

SemVer EffVer
bugfix x.y.Z x.y.Z
new feature (but does not break anything) x.Y.z x.y.Z
small backwards incompatibilty X.y.z x.Y.z
major changes to API X.y.z X.y.z

So downstream libs should typically pin to x.y in EffVer.

My take

  • SemVer is nice for projects that actually support multiple release branches (e.g. Python 2.x and Python 3.x).
  • For projects that release more "linearly", EffVer makes more sense.
  • For applications CalVer makese sens IMO (anything that does not have an API.

Special note for wgpu-py

When we update wgpu-native, I always try to isolate this into a new release, so that users can chose between two versions that are the same except for the version of wgpu-native. With EffVer I can pick whether to bump x, y, or z, depending on e.g. the amount of shader code that people will need to update.

@almarklein
Copy link
Member Author

I extended the notes above. @Korijn what do you think?

@Korijn
Copy link
Collaborator

Korijn commented Oct 3, 2024

I don't really have a strong opinion on this particular distinction. :) I feel like many developers already interpret semver in the effver way, perhaps accidentally. I could be practicing effver without realizing it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants