I propose we replace semantic versioning with pride versioning
@nikitonsky love it, is this post the canonical URL for quoting? :)
@nikitonsky
Isn't this how it's always been?
@j_j @nikitonsky yeah, looks very much like how I number releases at work. Still on v2.x.x :(
@j_j the proud version also jumps up to a large round number significantly different from the previous one when the marketing team gets involved, even if there's nothing to be proud of.
@nikitonsky isn't this how it already works for most things
@hazelnot @nikitonsky I honestly have no idea how versioning works and just assumed this is how it works lmfao
@ivy @nikitonsky @hazelnot it shouldn't be how semantic versioning is done but a lot of developers just do whatever the fuck they want lol
i also may have been guilty of doing this in the past :3
@nikitonsky @ivy @hazelnot in theory it should be major.minor.patch where major is only incremented for breaking changes
@hazelnot Yes. The most devastating breaking changes are typically in a "patch" release.
@nikitonsky And compatible versioning with eaks versioning:
x.0 - [0] versions since API breakage, x breaks so far
1.y - [y] versions since API breakage

@nikitonsky how about the metric versioning system?

X.Y.Z

Rules:
- Start at 0.0.0
- Increment Z when you tag a release
- When Z reaches 9, the next version is X.(Y+1).0
- When Y and Z both reach 9, the next version is (X+1).0.0

That's it! Always 10 releases between minor versions and 100 releases between major versions. None of the confusing counting methods of imperial versioning. What could be simpler?

@aburka @nikitonsky

Year and build number. That's what infinite kind uses iirc.

Your metric proposal is bad. I'm sorry, I don't like to say that on a non work discussion. It means there will be huge pressure against doing patch releases from marketing folks. The resulting conversations can be... High energy.

Which is why I boosted the spot-on original post

@aburka @nikitonsky Nah, most system work on the assumption that a major version is incompatible. So while it's more or less safe to update to latest minor and patch, major version upgrades don't happen that often.
@nikitonsky
This is a really good way to explain it outside of "major addition"."minor feature"."bugfix"

@nikitonsky Exciting news everyone!

Release 0.0.6853 is out. Upgrade today (or don't).

@jack @nikitonsky “Update if you enjoy my shame I guess”
@nikitonsky insta-coding this into my current project's version class. i'll use this post as a credit url until you get a better one ;-)
@nikitonsky Oh, that's why all my projects are still 0 as the first segment!
@deepbluev7 @nikitonsky Well, some of my projects are version 0.0.x, so...

@nikitonsky

Or this interpretation

- Enough changes/upgrades that you can justify it being a paid upgrade
- Significant things that should have been included/fixed in the current version, free upgrade
- Changes that 99% of users won't notice

@nikitonsky Current #XeTeX is 0.999992. That is 999992 shameful releases.
@owiecc @nikitonsky … or the 2nd version of the 5th really-final-I-mean-it-this-time pre v1 release?
@nikitonsky "My faith! For more than forty years I have been speaking prose while knowing nothing of it, and I am the most obliged person in the world to you for telling me so."

@nikitonsky all my software will be versioned the way it was when i was in university, though

0.0.0.52317

@nikitonsky That's too true to be published.
@nikitonsky might unironically start using this
@nikitonsky This needs the fourth digit of marketing.
@nikitonsky Context: The definition of semantic versioning https://semver.org/
Semantic Versioning 2.0.0

Semantic Versioning spec and website

Semantic Versioning
@nikitonsky that’s not how it’s done?
@nikitonsky The version number should be a single integer that gets bumped by one on every change 
GitHub - zegl/extremely-linear: Extremely Linear Git History // git-linearize

Extremely Linear Git History // git-linearize. Contribute to zegl/extremely-linear development by creating an account on GitHub.

GitHub
@nikitonsky With the invisible fourth number, the "this was so embarrassing you need to diff the code to discover the fix" element. Also useful for fixing typos in comments.

@nikitonsky a git-repo will come soon ^^" https://pridever.org/
also: can I use your image?

UPDATE: git repo: https://github.com/bison--/pridever

Pride Versioning - Pride Versioning 🏳️‍🌈 0.3.0

Forget semantic versioning, use PRIDE VERSIONING 🏳️‍🌈

@bison @nikitonsky can you add pride flags to this website? for reasons
@cybertailor @nikitonsky oh I absolutely will!
@cybertailor @nikitonsky did, the page is still temporary / just to have something for today ^^
@nikitonsky no shame in fixing things…
@nikitonsky I'd work on that RFC!
@nikitonsky I just assumed we already did this 
@nikitonsky Semantic versioning is essential for libraries exposing APIs. But apps can use any versioning and this is what usually happens anyway.
@nikitonsky Nanoversions be like: uwu we're rly sowwy 🥹👉🏾👈🏾
@nikitonsky nah automatically generate the version number based on total commits since the last build,
@nikitonsky This is a scheme I can get behind
@nikitonsky What do you mean replace, this is already how it works

@nikitonsky we used to have letters

x.y[l]

x - major new feature(s)

y - minor new feature(s) (or refinement of major(s))

l - fuckups, which unofficially were:

a: again
b: bloody hell
c: crap
d: godt-DAMMIT
f: fucking hell
g: GODT-dammit
h: holy shit this release
i: (unused)
j: just kill me

pretty sure j was as far as we ever got xD

@nikitonsky 2.7.123b - where the "b" means "please forget the previous release ever happened and pretend this is the one i gave you instead"
@nikitonsky looks like SHAMantic versioning
@nikitonsky Today and ever will be my default version semantic. Thanks.
@nikitonsky This is what I'm often tempted to use, but I always have to stop myself.
@nikitonsky for libraries, : "Proud version" with lot of breaking changes 
@nikitonsky It occurs to me that depending on your feelings about backwards compatibility it could actually be SHAME.pride.shame
@nikitonsky I'm like 95% sure that is the current system. "Minor fixes" "Fixes"