-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrectly tagged breaking change #59
Comments
I have to respectfully disagree that tagging a 1.0 release of a package is a "mistake" if there are no breaking changes. 1.0 defines the public API (https://semver.org/) and is good for the Julia ecosystem, see various discussions: Packages that depend on NaNMath should update their compatibility if they want new releases, it's very easy to do. |
It is certainly not a clearcut issue, but I agree with @KristofferC's comments from one of the discussions you linked. The primary purpose of these versions is to support automatic compatibility analysis, not a commitment to maintenance. Documentation defines the public API, not the release of 1.0. And the Julia package manager uses a modified version of SymVer that attributes semantic meaning to pre-1.0 versions as well. The reason I'm bringing this up here is because this package has an out of date version that is widely used while I imagine the latest version is appropriate for the vast majority of users. For example, I could certainly make those 13 PRs, but it feels like a roundabout way of dealing with this. As an aside, It would be lovely if there were a better way to signify "no more breaking changes for a while" without simultaneously saying "here's a breaking change". |
From @StefanKarpinski on discourse
|
I opened PRs on a handful of the packages you listed. About half of the 13 are either unmaintained packages or already have the correct compat bounds and just haven't tagged a release. |
I think that tagging this as a breaking change was a mistake because it is impossible for dropping a Julia version to result in broken code. c.f. https://github.com/SciML/ColPrac#dropping-support-for-earlier-versions-of-julia.
This is a problem because NaNMath has a lot of dependants and they now need to update their compact entries for NaNMath if they wish to receive future updates (e.g. the changes made in v1.0.1).
One possible resolution would be to yank
1.0.0
and1.0.1
from the registry and tag master as0.3.8
, the next breaking change could then be tagged as either0.4.0
or2.0.0
.Another possible resolution would be to update every package that depends on NaNMath to declare compatibility with 1.0.0. Concretely, I am aware of 35 packages that depend on NaN math, 13 of which do not declare compatibility with v1.0.1:
Resolution 1 requires fewer changes (there is no need to change the 22 registered packages that already declared support for NaNMath v1 or the 13 packages that do declare support for v1) and eliminates an erroneous breaking change.
Resolution 2 lets this package keep the visually appealing 1.x version numbers.
cc @mlubin
The text was updated successfully, but these errors were encountered: