Skip to content

Latest commit

 

History

History
81 lines (57 loc) · 3.25 KB

release.md

File metadata and controls

81 lines (57 loc) · 3.25 KB

Release Documentation

Release npm packages

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 is 1.0.0, and you choose patch, the version will be increased to 1.0.1.

Warning

If the version of one package is 1.0.0-beta.0, and you choose alpha, the cli will panic and exit. Because the beta < 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.

Release Turborepo

We have a multi step release process for Turborepo right now.

NOTE: The steps below must be run serially, in the order specified.

  1. Create a release branch by triggering the 1. Turborepo Release (release branch) workflow

    • Specify the semver increment using the SemVer Increment field (start with prerelease)
  2. Build the Go Binary by triggering the 2. Turborepo Release (go binary) workflow.

    1. Specify the release branch (example: staging-1.7.0-canary.1) in both the "use workflow from", and "Staging branch to release from" fields.
  3. Build the Rust Wrapper by triggering the 3. Turborepo Release (rust binary & publish) workflow.

    1. Specify the release branch (example: staging-1.7.0-canary.1) in both the "use workflow from", and "Staging branch to release from" fields. (this should match step 2.1 above)
  4. A PR is automatically opened to merge the release branch created in step 1 back into main

    1. ⚠️ 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 succesful

  5. turbo-orchestrator.yml polls npm every 5 mins. When a new version is detected, [turborepo-smoke-published.yml][4] runs against @latest and @canary tags.

Notes

  • Github Release Notes are published on their own using config from turborepo-release.yml, triggered by the turbo-orchestrator bot.
  • eslint-plugin-turbo and eslint-config-turbo need to be published separately.