-
-
Notifications
You must be signed in to change notification settings - Fork 10.4k
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
Update Changesets and experimental release flow #11442
Conversation
|
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.
A few minor questions but I think this looks good. Probably not a ton we can do to fully validate until we're ready to do the first prerelease since it doens't look like changesets has a dry-run option yet (changesets/changesets#614)
"publish": "node scripts/publish.js", | ||
"version:experimental": "node ./scripts/version experimental", | ||
"version": "node ./scripts/version", |
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 it true we only use this for experimental releases now via pnpm run version 0.0.0-experimental-[sha] --skip-prompt
?
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.
Currently, but this update is to match the structure in Remix where it's also used for nightly releases.
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.
Oh, and it's also referenced in contributing.md
.
scripts/version.js
Outdated
@@ -76,59 +68,34 @@ async function run() { | |||
|
|||
if (answer === false) return 0; |
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.
If it's true we only use this for experimentals now, we might be able to shed some more stuff in here:
- This prompt stuff (step 2) isn't necessary since we're using
--skip-prompt
, so we could remove that CLI flag and this code - The manual version bump above (
if (version == null)
) I think is no longer needed since we'll always provide a version as a CLI arg? - I think all the
isSnapshotVersion
conditionals could go away since it'll only be used for those
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.
Good call. I've simplified the script now so that the version specifier is required.
In the current package structure, the isSnapshotVersion
is still required because it's used to detect experimental/nightly releases and ensure that @remix-run/router
also gets a version update.
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.
it's probably a moot point too since the router will be collapsing into react-router too so everything will be versioned identically moving forward. We can tackle that when we remove the router package 👍
This adds the new packages to the Changesets config, reimplements the Changesets patch from Remix, and updates the experimental flow to be manually triggered via GitHub, just like Remix.
As part of this, the
version
script has been updated to handle the new packages, and has been streamlined a bit due to the use of workspace dependencies which means we no longer need to manually bump our dependency versions.Note that this will need a
NIGHTLY_PAT
value to work correctly.