-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Use exact or ~ deps version in stable releases package.json #1414
Comments
I have no idea why, I didn't create the prepare script and the maintainer who did no longer works on the project. Oh I see, so when we're building the bundle it replaces |
Yes, this is when you install react-spring itself. You install react-spring v9.0.0, it will install its dependencies like |
I agree @CPatchane that this is definitely more approriate, whilst we're trying to avoid breaking changes the library does need some love and situations like 9.1.0 where i've documented I also 100% appreciate how annoying that can be! If you can submit a PR to amend |
Done here #1416 |
I've release v9.0.1 the only change from v9 is that we've included your PR to stop unwanted upgrades. There's a changelog for it too. |
Thanks! |
I get that this might be the simplest way to hide a breaking change without bumping the major version. But maybe retracting the breaking change (releasing a new version where it's reverted) and then releasing a new major version with the breaking change might still be the Right Way to do this. |
🤓 Question
As I can read here, we use to put the exact versions of react-spring dependencies in package.json for beta/canary versions but not for stable releases. Is there a particular reason?
The thing is that not fixing the versions in stable releases make them unusable in the future, if a user doesn't want to use the very last stable release and also breaks lockfile maintenance pushed by some dependencies maintaining bots automatically.
My example
I use the
v9.0.0
version and the lockfile maintenance is breaking because it installs thev9.1.0
dependencies in my lockfile even if I fixed thev9.0.0
version ofreact-spring
in my package.json (which is normal since this is about sub-dependencies here).Proposal
Since you pushed a potential breaking change in
9.1.0
(it seems to break on my side), it shouldn't be pushed automatically to users. But you may want to push patch automatically for security fixes? I would suggest you to use~
instead of^
(see npm docs).In that case it would push automatically versions like
9.0.1
or9.0.5
because there are just patches but wouldn't for9.1.0
since there is a minor risk of breaking changes.What do you think? I can help to do a PR if needed (is it only related to
prepare.js
file?)Current workaround
The workaround to fix this on the user side, which is clearly not ideal, is to pin the versions in the package.json resolutions like:
The text was updated successfully, but these errors were encountered: