-
-
Notifications
You must be signed in to change notification settings - Fork 200
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
Release/182.0.0 #4600
Release/182.0.0 #4600
Conversation
Removed dependencies detected. Learn more about Socket for GitHub ↗︎ 🚮 Removed packages: npm/@metamask/[email protected] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved!
@@ -68,7 +68,7 @@ | |||
}, | |||
"peerDependencies": { | |||
"@metamask/keyring-controller": "^17.0.0", | |||
"@metamask/profile-sync-controller": "^0.2.0" | |||
"@metamask/profile-sync-controller": "^0.2.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a breaking change. This should have resulted in a minor version bump (since this package is pre-v1), but it looks like it wasn't even referenced in the changelog
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True, this should've been a minor instead of a patch.
How critical is this to revert?
Our only client consuming this is mobile.
I can update the changelog in a following PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this diff necessary in the first place? "^0.2.0"
should be compatible with "0.2.1"
so there is no need to update to "^0.2.1"
unless we're specifically trying to prevent "0.2.0"
from being used.
If avoiding "0.2.0"
is the intention, having a Fixed entry in the changelog to explain why would be helpful. Also, since updating a peerDep is a breaking change, it's probably high-priority enough to need to be communicated in the v182.0.0
release notes, not just the @metamask/[email protected]
changelog. This will only be possible through a revert, not a changelog backport.
On a more general note, we should probably be using the tilde (~) operator e.g. "~0.2.0"
instead of the carat (^) for versioning pre-v1 packages, since we don't want "minor" releases to be compatible with each other.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With the carat operator, "^0.x.y" will all resolve as the same version, which makes it meaningless and contrary to our intentions here. With tilde, "~0.2.0" and "~0.2.1" will both resolve to "0.2.0", while "~0.3.1" will resolve to "0.3.0".
^
actually works differently with 0.x.y
ranges: ^0.3
will not be satisfied by 0.4.0
, for example.
https://github.com/npm/node-semver?tab=readme-ov-file#caret-ranges-123-025-004
Allows changes that do not modify the left-most non-zero element in the [major, minor, patch] tuple. In other words, this allows patch and minor updates for versions 1.0.0 and above, patch updates for versions 0.X >=0.1.0, and no updates for versions 0.0.X.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah yes I deleted that part because I realized it contradicts the entire point of my comment😂 (e.g. ^0.3.1
and ~0.3.1
both shouldn't resolve to 0.3.0
).
But I wasn't aware of the subtlety around leading zeros and missing patch or minor values. Guess the carat should work here as is. TIL!
Explanation
Release Candidate v182. Includes patch updates & fixes to
@metamask/profile-sync-controller
and@metamask/notification-services-controller
References
N/A
Changelog
See diffs
Checklist