DamonOehlman / slimver-spec

Lightweight and strict numeric versioning (major.minor.patch) only
http://damonoehlman.github.io/slimver-spec/
16 stars 2 forks source link

Issue: people are dumb about major versions #1

Open TehShrike opened 10 years ago

TehShrike commented 10 years ago

I'm comfortable with bumping major versions on breaking changes, but it's counter-intuitive to a lot of people.

Perhaps it would be better to follow semver's rules for ~ and have both ~ and ^ consider minor version changes breaking, and major changes there for flavor?

It seems wrong, but it also seems to be how people instinctively use version numbers.

Discuss!

TehShrike commented 10 years ago

Given that slimver is targeted at versioning non-software things, and most of people's versioning hangups seem to involve versioning software, this may be a non-issue, but I'll leave this here a bit for discussion anyway.

DamonOehlman commented 10 years ago

Certainly a reasonable point, and I guess all comes down to how much people "trust" package maintainers. My personal opinion is that if you do trust the maintainer, then you should respect their ability to follow the outlined semver guidelines around when to update major versions.

If you don't trust or are deploying an app to production that you want to ensure uses known working versions then I think the solution is to pin versions.

And yes, while I wrote slimver to avoid having to deal with all of the semver edge cases for keg, it doesn't preclude it's use in software so I think we should probably discuss it :)

Raynos commented 10 years ago

We can't actually trust anyone to not break something in a patch version. For production level quality you should consider all changes breaking unless you've tested them.

This is why you --save-exact when working in an application.

You use ranges like ~ and ^ in your modules (not your applications) to express intent and to reduce maintenance overhead.