mozilla-services / common-rs

Common utilities for Mozilla server side apps
Mozilla Public License 2.0
3 stars 9 forks source link

chore(tracing-actix-web-mozlog): v0.4.0 #32

Closed ethowitz closed 2 years ago

mythmon commented 2 years ago

I'd refer to this site, with some modifications: https://semver.org/

To quote

Given a version number MAJOR.MINOR.PATCH, increment the:

MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards compatible manner, and PATCH version when you make backwards compatible bug fixes.

However, I notice that most projects use a slightly modified pattern before 1.0.0. The modification is something like "whenever you make incompatible API changes, the most-significant non-zero version must be incremented."

More generally, it should always be safe and correct to update the version number of a package from X.Y.Z to X.Y.Z+1 without making any other changes. If other changes are required, it should at least be a minor update, if not major.

Though, as a counter point, semver.org says "Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable" and so really there are no rules. Perhaps we should do a 1.0 release soon then.

ethowitz commented 2 years ago

Hm, I guess it probably makes sense to upgrade to 0.4.0 here. I don't see a downside to playing it safe

jrconlin commented 2 years ago

SemVer is a kindness offered by the author to the user. It's a way to indicate "Maybe don't try rolling this update on a Friday before a long weekend" or "It's probably going to require you to do some work here, so maybe plan accordingly".

FWIW, I don't fear v1. Honestly, if something is being used and relied on by something else, v.1 makes sense because you're establishing a trust relationship.

Honestly, how you version things is up to the library author. It's up to them to indicate how they want to communicate changes. They could version things as 0.🤷🏻‍♂️.🎲.

mythmon commented 2 years ago

As an aside, my plan was to tag Merino as 1.0 once we started shipping to release users.