release
Installation
SKILL.md
- Kill any
turboprocesses that might be running with SIGKILL - Before beginning the release, verify that gcloud is logged in by running
gcloud auth print-access-token >/dev/null. If it fails, rungcloud auth login, then repeat the check. Do not continue with the release until the check succeeds. - Codex-specific: Before running release commands, make sure rbenv wins over the macOS system Ruby. Codex may start non-interactive shells with
/usr/binbefore~/.rbenv/shims, causing Ruby 2.6 to be used even though the user's terminal uses Ruby 3.3.x. Run release commands that may invoke Ruby/Bundler with:PATH="$HOME/.rbenv/shims:$HOME/.rbenv/bin:$PATH" <command>Verify withPATH="$HOME/.rbenv/shims:$HOME/.rbenv/bin:$PATH" ruby --version; it should use the user's rbenv Ruby, not/usr/bin/ruby. This matters because the lambda Ruby package currently resolves gems such asjsonthat require Ruby >= 2.7. - Check
npm whoami. Only if it fails, runnpm login(I will manually do 2FA in the browser) - Use
op item get "Npmjs" --fields password --reveal --account remotiondev.1password.comto get the password for NPM. - Use
op item get "Npmjs" --otp --account remotiondev.1password.comto get a one-time password for 2FA. - Run
npm token create --name="PublishRemotionXXXXXX" --packages "remotion" --packages "create-video" --packages-and-scopes-permission read-write --bypass-2fa --scopes "@remotion" --otp=<otp>. Replace XXXXXX with a random string so we have a unique name. Useop item get "Npmjs" --otp --account remotiondev.1password.comto get the OTP and pass it via--otp=. It will ask for a password, pipe in the password usingecho "$PASSWORD" |.- Do not pass
--json: npm masks the token asnpm_***in JSON output, making it unusable. Redirect the plain output to a file in the scratchpad and extract the token withgrep -oE 'npm_[A-Za-z0-9]{20,}'into a scratchpad file (e.g.$SP/npm_token). Never print the token. If a token turned out unusable, revoke it withnpm token revoke <id> --otp=<otp>(find the id withnpm token list).
- Do not pass
- Run
bun i - Run
bun run build - Run
npm view remotion versionto get the current version number - Run
bun set-version.ts <version>, where is the current version plus 1. If the exit code is not 0, abort the entire release process immediately. Do not pipe its output (e.g. intotail): the shell is zsh, so$PIPESTATUSis unavailable and the exit code gets lost. Redirect to a log file instead, then confirm thev<version>commit and tag exist. - Run
cd packages/example && sh runlambda.sh && cd ../... If this fails, abort the release. - Publish the public packages under a temporary npm dist-tag, then promote
latestonly after every package is installable.validatingis npm's automatic scan for ordinary publishes, not a reason to usenpm stage. Do not runbun run release: its current script publishes directly tolatestand starts private publishing and Git pushes before the availability gate.- From the repository root, after
set-version.ts, run:
- From the repository root, after