We have a simple script to release npm packages from pnpm workspaces: cargo xtask workspace --bump
.
? Select a package to bump
> [ ] @vercel/node-module-trace
[ ] @vercel/webpack-node-module-trace
[↑↓ to move, space to select one, → to all, ← to none, type to filter]
Press space to select the package you want to publish. Press enter to choose the version type you want to bump:
? Select a package to bump @vercel/node-module-trace, @vercel/webpack-node-module-trace
? Version for @vercel/node-module-trace
patch
minor
> major
alpha
beta
canary
[↑↓ to move, enter to select, type to filter]
Note
This command will always increase the version according to the semver version.
For example, if the current version of one package is1.0.0
, and you choosepatch
, the version will be increased to1.0.1
.
Warning
If the version of one package is
1.0.0-beta.0
, and you choosealpha
, the cli will panic and exit. Because thebeta
<alpha
in semver.
Once you have finished the bump, the script will do the following things:
- bump the version you choose in the corresponding package
- update dependencies in other packages that depend on the package you choose
- update
pnpm-lock.yaml
file - run
git tag -s pkg@version -m "pkg@version"
for each package
You need to run git push --follow-tags
to finish the release.
-
Create a release by triggering the Turborepo Release workflow
- Specify the semver increment using the SemVer Increment field (start with
prerelease
) - Check the "Dry Run" box to run the full release workflow without publishing any packages.
- Specify the semver increment using the SemVer Increment field (start with
-
A PR is automatically opened to merge the release branch created in step 1 back into
main
⚠️ Merge this in! You don't need to wait for tests to pass. It's important to merge this branch soon after the publish is successful
- GitHub Release Notes are published automatically using the config from
turborepo-release.yml
, triggered by theturbo-orchestrator
bot.
-
Run
bump-version.sh
to update the versions of the packages. Merge in the changes tomain
. -
Create a release by triggering the Turborepo Library Release workflow.
- Check the "Dry Run" box to run the full release workflow without publishing any packages.