-
Notifications
You must be signed in to change notification settings - Fork 451
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Update release checklist #1412
Merged
Merged
Update release checklist #1412
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov Report
@@ Coverage Diff @@
## master #1412 +/- ##
==========================================
+ Coverage 71.94% 71.98% +0.03%
==========================================
Files 187 187
Lines 5953 5953
==========================================
+ Hits 4283 4285 +2
+ Misses 1670 1668 -2
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
HCastano
reviewed
Sep 23, 2022
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.
Can you also wrap everything to 90ish characters?
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
HCastano
approved these changes
Sep 23, 2022
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
First, a post-mortem of how I messed up the
4.0.0-alpha.2
release:alpha.2
[level]
runningcargo release
, I used the valuealpha
, following the docs ofcargo release --help
which suggests to use the pre release label. Our checklist was not clear as to what this value should be.cargo release
tool to bump all the versions of the crates again toalpha.3
, but crucially not updating the inter-workspace crate dependency versions.alpha.3
, successfully published the "leaf" crates but then the dependent crates failed to publish because they still hadalpha.2
versions which were never published. Note that this is a case where the dry run succeeded but the publish itself failed.alpha.3
release with the remaining crates.This PR updates the release process to try and avoid this mistake, instructing the user to provide the exact version to be deployed. Note that it would be possible to use the publish process to bump inter workspace dependencies with
--dependent-version upgrade
, though this does not work as thoroughly as the existing step to simply find/replace versions.Another important change is that instead of first merging to
master
and then releasing, we should first release from the PR branch and then merge. This is because it is possible (as above) for the dry run to succeed but the actual publish to fail and require changes. This requires "locking" the master branch so no commits happen while the release is happening, which I think is feasible in this project with only a handful of devs and not that often commits. However dependabot might be an issue... This is just to ensure that the code bundled tocrates.io
is the same as the code at the git release tag, so if there is a race condition then a special cherry-picked branch could be created and the release tag made from there.