News for hackers. Stuff that matters.
Re:A strong commitment to backwards compatibility means keep... by account42 on Tuesday June 15, 2021 @09:44AM (#27515439)
I think GPs main point is not covered by semver at all - namely to not break anything out of the blue but have a transition period where API consumers can upgrade at their own leisure.
Re:A strong commitment to backwards compatibility means keep... by okamiueru on Tuesday June 15, 2021 @02:19PM (#27519389)
I do not know what GP is short for, apologies if I'm missing your point in my reply.

One, if not the most important part of semver is communicating the nature of the changes, and in particular, how that change affects the use.

I once used a library/tool that would detect vulnerabilities. The maintainers thought it would be a good idea to turn it in to a paid service, and a minor version upgrade caused it to fail silently due to lack of a token. When I noticed it by coincidence, I raised the issue of it not being communicated properly, and they said they had made every effort at raising awareness about the change through blog posts, twitter, etc. However, few people really subscribe or follow this kind of feeds. The change that came as an increment in minor version had IMO broken semantic versioning. If it instead had been followed, it would have communicated exactly that some care when upgrading was necessary, and allowed the API consumers to upgrade at their own leisure.

Re:A strong commitment to backwards compatibility means keep... by account42 on Wednesday June 16, 2021 @04:05AM (#27526088)
> One, if not the most important part of semver is communicating the nature of the changes, and in particular, how that change affects the use.

Yes, SemVer communicates breaking changes, but only after they have happened. The point is that you should have a migration path ready long before the old API is no longer available.

Re:A strong commitment to backwards compatibility means keep... by okamiueru on Wednesday June 16, 2021 @06:56AM (#27527051)
What do you mean by "after they have happened"?

The changes to an updated library don't affect you until you have upgraded to that version. The whole point of semantic versioning is to allow you or package managers you use to limit which libraries to update. So, semver is to let you know of braking changes exactly before they would happen, because until you actually upgrade the library, the change hasn't happened. Surely this makes sense? Maybe we are talking past each other.