-
Notifications
You must be signed in to change notification settings - Fork 240
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
RFC: No implicit tagging for non-latest release versions #776
base: main
Are you sure you want to change the base?
Conversation
I am a big plus 1 on this change, but I dont think this repo is the best place to discuss anymore. |
Added a link to this in the v11 roadmap. This would be a breaking change. I also like that it suggests just erroring instead of trying to come up with some alternate default tag or guessing one for the user. |
I will be very ecstatic if npm v11 obsoletes https://npmjs.com/safe-publish-latest :-D |
Agree that it's a better default to avoid instability 👍 Expanding on use cases of marking prereleases as Packages are recommended to start at In that scenario, how can we first get some feedback from users before actually releasing I think in that scenario it makes sense the default of Otherwise, I guess one could also use I think for first pre-releases, users could be instructed to do WDYT? In rest of scenarios (a first stable release |
I think there is a big difference between 'unstable' and 'pre-release', and I personally think that this RFC should only tackle the latter.
This is unfortunate. This is something I didn't know and haven't considered. I must say that I myself do not use Semantic Release, and I have always been using 0.x versions for unstable APIs.
I personally am rather against this. This adds just way too much complexity to what should be a bare-bones setup. The logic behind I'm interested what the others think, though :) |
100% agree here. This is currently solving one valid problem in a very straightforward way. Let's keep it on task. |
I agree keeping it focused on prerelease for stable lines is a good decision, but just to be clear this means we are agreeing on "no carve out for special behavior on pre-1.0.0" right? I just felt like the above comments might have been a bit unclear as to what specifically folks were agreeing to. |
To be clear, pre-v1.0, a breaking change increments the first or second number when the first number is zero, and any of the three numbers when the first two are zero, so “special behavior” would be anything that deviates from that - ie, from the way carat works. |
Yes. We are only looking for pre-release tags here. They are a VERY clear signal that this is not a release. It's what it says on the tin. |
The OP includes:
I think both are valuable to solve together. |
I'd summarize it like this: This RFC tackles a big footgun of Special behaviour for 0.x versions (vs. 1.x) is not a footgun, but a preference, so it should not be addressed by this RFC (or probably any npm RFC, for that matter) |
Great summary @kytta |
Firstly, agree with everyone that this RFC cleanly solves a well-scoped problem (it's in the excellent PR title!). Why this RFC is goodGoodness@wraithgar put it succinctly that pre-release semantic versions are clearly, "pre-release", as it says on the tin. This implies a clean separation of concerns from the rest of the package lifecycle:
Evil goodnessAnother "virtue" of this RFC is that this RFC:
In my opinion, it is good and righteous moral punishment for the software ecosystem for such workflows to break unsafely. Why
|
v0 is absolutely real software, ftr. For it not to be real software, it would have to not exist (or be published). Enterprises or their norms simply don’t dictate how open source works in any way whatsoever :-) |
Please don't do this. Consider this your final code of conduct warning |
First reported in npm/npm#13248 and npm/cli#7553, this RFC proposes changing the behavior of
npm publish
by disallowing publishing pre-release versions under thelatest
tag (implicitly). This RFC also tackles the not-yet-implemented behavior for the non-latest release versions (e.g. backports).References
Related to #26 and RFC 7
Directly relates to npm/cli#7553