[GH-ISSUE #366] I think I see an inconsistency of semver. #7247

Closed
opened 2026-06-20 17:10:28 -05:00 by GiteaMirror · 6 comments
Owner

Originally created by @colomet on GitHub (Apr 26, 2017).
Original GitHub issue: https://github.com/semver/semver/issues/366

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.

between the introduction and the summary there are some differences.

Bug fixes not affecting the API increment the patch version,
backwards compatible API additions/changes increment the minor version,
and backwards incompatible API changes increment the major version.

Originally created by @colomet on GitHub (Apr 26, 2017). Original GitHub issue: https://github.com/semver/semver/issues/366 > 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. between the introduction and the summary there are some differences. > Bug fixes not affecting the API increment the patch version, backwards compatible API additions/changes increment the minor version, and backwards incompatible API changes increment the major version.
Author
Owner

@colomet commented on GitHub (Apr 26, 2017):

what if is compatible with the api and not compatible with other code? like addons that use the code as a base and then increment an new functionality

<!-- gh-comment-id:297479795 --> @colomet commented on GitHub (Apr 26, 2017): what if is compatible with the api and not compatible with other code? like addons that use the code as a base and then increment an new functionality
Author
Owner

@krzysiekpiasecki commented on GitHub (Apr 26, 2017):

You cannot break API and expects not to break addons. So if addons are not a part of your API then they must follow this API.

<!-- gh-comment-id:297502585 --> @krzysiekpiasecki commented on GitHub (Apr 26, 2017): You cannot break API and expects not to break addons. So if addons are not a part of your API then they must follow this API.
Author
Owner

@colomet commented on GitHub (Apr 26, 2017):

what is a public API?

<!-- gh-comment-id:297512524 --> @colomet commented on GitHub (Apr 26, 2017): what is a public API?
Author
Owner

@krzysiekpiasecki commented on GitHub (Apr 26, 2017):

Software using Semantic Versioning MUST declare a public API. This API could be declared in the code itself or exist strictly in documentation.

It depends on the software. How could I answer you for your question then?

<!-- gh-comment-id:297514600 --> @krzysiekpiasecki commented on GitHub (Apr 26, 2017): > Software using Semantic Versioning MUST declare a public API. This API could be declared in the code itself or exist strictly in documentation. It depends on the software. How could I answer you for your question then?
Author
Owner

@dret commented on GitHub (Apr 28, 2017):

i think part of the problem here is that APIs do not exist in a vacuum. they exist to be consumed. and they depend on how they are consumed. hence it is critically important that consumption is well-defined, meaning that consumers must follow consumption rules. i call this "processing model" because it refers to how API consumers MUST process things. to me, any API not having a processing model is heading for trouble. here is a brief piece i wrote about this: http://dret.typepad.com/dretblog/2016/04/robust-extensibility.html

<!-- gh-comment-id:297970960 --> @dret commented on GitHub (Apr 28, 2017): i think part of the problem here is that APIs do not exist in a vacuum. they exist to be consumed. and they depend on *how* they are consumed. hence it is critically important that consumption is well-defined, meaning that consumers must follow consumption rules. i call this "processing model" because it refers to how API consumers MUST process things. to me, any API *not* having a processing model is heading for trouble. here is a brief piece i wrote about this: http://dret.typepad.com/dretblog/2016/04/robust-extensibility.html
Author
Owner

@jwdonahue commented on GitHub (Jul 14, 2018):

@colomet, I am not sure what the issue is here. I suspect the crux of it may stem from the diamond point dependency problem, AKA: dependency hell. It's a very common issue with frameworks (plug-in architectures) that do not support side-by-side deployments of transitive dependencies, but the SemVer spec, while a small part of the solution, isn't intended to solve it. The intro/summary texts you referenced in your original post seem perfectly consistent to me.

Please either rephrase your issue or close it at your earliest possible convenience. Thank you.

<!-- gh-comment-id:405055222 --> @jwdonahue commented on GitHub (Jul 14, 2018): @colomet, I am not sure what the issue is here. I suspect the crux of it may stem from the [diamond point dependency problem](https://www.google.com/search?source=hp&ei=UHxKW9XML8LG0PEPl96qaA&q=diamond+point+dependency+problem&oq=diamond+point+dependency+problem&gs_l=psy-ab.3..33i21k1.793.13578.0.14590.44.44.0.0.0.0.136.3681.40j4.44.0..2..0...1.1.64.psy-ab..0.43.3609...0j0i131k1j0i22i30k1j33i160k1j33i22i29i30k1.0.6rowtqwsBUY), AKA: dependency hell. It's a very common issue with frameworks (plug-in architectures) that do not support side-by-side deployments of transitive dependencies, but the SemVer spec, while a small part of the solution, isn't intended to solve it. The intro/summary texts you referenced in your original post seem perfectly consistent to me. Please either rephrase your issue or close it at your earliest possible convenience. Thank you.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/semver#7247