본문으로 건너뛰기
cccskills
무료GitHub에 공개

release

Coordinate a new Remotion release, from authentication and builds to npm package verification and release notes. Promote packages to latest only after every package is downloadable, then prepare a GitHub release for approval.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Release a new Remotion version

연동 도구GitHub
설치 방법 보기

이럴 때 유용합니다

  • Building and publishing a new Remotion version
  • Checking all npm packages before updating latest
  • Preparing release notes from commits and pull requests
  • Restoring previous tags after a partial promotion failure

포함된 파일(1)

  • SKILL.md10.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

  • Kill any turbo processes 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, run gcloud 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/bin before ~/.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 with PATH="$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 as json that require Ruby >= 2.7.

  • Check npm whoami. Only if it fails, run npm login (I will manually do 2FA in the browser)

  • Use op item get "Npmjs" --fields password --reveal --account remotiondev.1password.com to get the password for NPM.

  • Use op item get "Npmjs" --otp --account remotiondev.1password.com to 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. Use op item get "Npmjs" --otp --account remotiondev.1password.com to get the OTP and pass it via --otp=. It will ask for a password, pipe in the password using echo "$PASSWORD" |.

    • Do not pass --json: npm masks the token as npm_*** in JSON output, making it unusable. Redirect the plain output to a file in the scratchpad and extract the token with grep -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 with npm token revoke <id> --otp=<otp> (find the id with npm token list).
  • Run bun i

  • Run bun run build

  • Run npm view remotion version to get the current version number

  • Run bun set-version.ts <version>, where <version> 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. into tail): the shell is zsh, so $PIPESTATUS is unavailable and the exit code gets lost. Redirect to a log file instead, then confirm the v<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 latest only after every package is installable. validating is npm's automatic scan for ordinary publishes, not a reason to use npm stage. Do not run bun run release: its current script publishes directly to latest and starts private publishing and Git pushes before the availability gate.

    • From the repository root, after set-version.ts, run:

      releaseVersion=$(node -p "require('./packages/core/package.json').version")
      releaseTag="remotion-release-$(printf '%s' "$releaseVersion" | tr . -)"
      releaseManifest="/tmp/remotion-release-${releaseVersion}-packages.txt"
      bun publish.ts --list > "$releaseManifest"
      

      The manifest is the exact package list to check and promote. Record each package's previous latest tag so a partial promotion can be rolled back.

    • Check whether any package in the manifest is being published to npm for the first time. Bun adds latest to a package's initial publish even with --tag. If there are new packages, stop before the bulk publish and plan their first publication separately; this flow cannot keep their first version off latest.

    • Run NPM_CONFIG_TOKEN=<token> bun publish.ts --tag="$releaseTag" with the token created above. Bun still packs the packages and rewrites workspace: and catalog: dependencies. This tagged path does not tolerate republish errors. A successful upload is not proof that npm's scan is finished: check the manifest, exact package versions, and temporary tags. Do not upload the same version again while its scan is pending. If a publish attempt failed and the version is confirmed absent, resume that package alone with bun publish.ts --tag="$releaseTag" --only=<package> using the same token; never rerun the entire manifest blindly.

    • For each package in the manifest, require npm view <package>@<version> version --json and a successful npm pack <package>@<version> --pack-destination <temporary-directory> before promotion. The pack check confirms the tarball can actually be fetched. Run the per-package checks with a while read -r p; do ( ... ) & done < "$releaseManifest"; wait loop (not xargs -I, which fails with "command line cannot be assembled"). Right after publishing, expect roughly a third of the packages to still be validating; this has taken ~15 minutes. Write the polling loop as a script and run it in the background, and draft the changelog meanwhile. Poll unresolved packages about once per minute; use the npm lifecycle status API where available: GET https://registry.npmjs.org/-/package/<encoded-package-name>/version/<version>/status, authenticated with publish access. URL-encode scoped names, such as @remotion%2Fwhisper-web, and keep credentials out of logs. If a package remains validating after an hour, report the release as pending and leave every latest tag on the prior release. Blocked, rejected, manual-review, missing, and unknown states also stop promotion; investigate them rather than treating them as scanning delays.

    • Once all packages are installable, use the release token to run npm dist-tag add <package>@<version> latest for every package in the manifest. The npm CLI ignores NPM_CONFIG_TOKEN (only bun publish respects it) and falls back to the login session, failing with EOTP. Pass the token like this instead: env "npm_config_//registry.npmjs.org/:_authToken=$TOKEN" npm dist-tag add .... This is one registry operation per package; npm has no atomic multi-package promotion. Verify that npm view <package> dist-tags.latest --prefer-online equals the release version for every package. Parallel checks can return stale cached tags for a few packages; recheck mismatches sequentially before treating them as failures. If promotion fails partway, restore the recorded previous latest tags for packages already changed and report the incomplete release. After a successful promotion, remove the temporary tag from each package and verify the final tags. The release token gets E403 on dist-tag rm, so use the logged-in session with a fresh OTP per call: npm dist-tag rm <package> <releaseTag> --otp=$(op item get "Npmjs" --otp --account remotiondev.1password.com). If a call fails because the OTP rolled over, wait 30 seconds and retry once.

    • If npm explicitly returns E_STAGE_REQUIRED, direct publishing is unavailable for that package. Stop this release and assess a staged workflow separately; staged approval requires a 2FA action per package. Do not silently mix a staged package into this direct-publish flow.

  • Only after all public latest tags are verified, run bunx turbo run publishprivate --concurrency=1, then git push --tags and git push from the repository root. If any step fails, stop and report the affected release state.

  • Run bun run publishtemplates from the repository root to republish every template after the public packages have been promoted. If any template fails to publish, stop the release workflow and report the failure.

  • Generate a changelog in markdown and save it to /tmp/release-<version>.md:

    • Run git log v<previous_version>..v<new_version> --oneline to get all commits
    • Extract PR numbers from merge commits
    • For each PR, run gh pr view <number> --json title,author,number,url --jq '"* \(.title) by @\(.author.login) in \(.url)"'
    • Categorize PRs into sections: "What's Changed", "Templates", "Docs", "Internal"
    • Also use the "Elements" and "Internal and Experimental" sections when previous releases do
    • In "What's Changed", put headline features (especially ones with new docs pages) first, then sort items so that entries for the same package are adjacent (no subheadings, just sorted order). Changes to the remotion core package should appear first
    • Strip redundant prefixes from PR titles (e.g. remove "Docs:" from items in the Docs section)
    • Linkify items whose PR added a new documentation page: run git diff --diff-filter=A --name-only v<previous_version>..v<new_version> -- 'packages/docs/docs/**/*.mdx' 'packages/docs/docs/**/*.md' to list added docs pages, map each added page to the PR that introduced it, and wrap that item's title in a markdown link to the page (e.g. * [<title>](https://remotion.dev/docs/<slug>) by @author in <url>). Determine the URL from the page's slug: frontmatter if present, otherwise from its file path relative to packages/docs/docs/. Leave items without a new docs page unlinked.
    • "Templates" is a separate section for any template-* changes
    • Check for genuinely new contributors by running gh api repos/remotion-dev/remotion/contributors --paginate --jq '.[].login' and comparing against PR authors. Only add a "New Contributors" section for authors not in that list
    • Add **Full Changelog**: https://github.com/remotion-dev/remotion/compare/v<previous_version>...v<new_version> at the bottom
    • Use the same format as previous GitHub releases (check with gh release view v<previous_version>)
    • Don't release until you get approval. Allow me to edit it before. This does not block the npm steps: draft the changelog while npm scans packages, and continue with promotion, private publishing, pushes and templates without waiting.
    • After approval, re-read /tmp/release-<version>.md (I may have edited it) and run gh release create v<version> --title v<version> --notes-file /tmp/release-<version>.md --verify-tag.
  • Finally, delete the local copies of the npm token from the scratchpad. It expires by itself after 7 days.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

add-bug

무료

Add a reported Remotion bug to the bugs API with its affected versions, a short title, and upgrade guidance. Follow the existing entry format and place the new record first so recent bugs appear at the top.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Adding a reported bug to the Remotion bugs API
  • Recording which versions a bug affects
  • Including upgrade guidance in a bug description
remotion-dev/remotion6.5만2026년 10월 18일 업데이트

Add a Remotion command-line or configuration option, or convert a hardcoded flag into a shared option definition. Connect parsing, configuration setters, help entries, and generated documentation so the option is consistently available and documented.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Add a new Remotion command-line flag
  • Convert a hardcoded flag into a shared option
  • Connect an option to Config setters
remotion-dev/remotion6.5만2026년 10월 18일 업데이트

Add a new effect to @remotion/effects, including its implementation, package entry points, documentation, interactive demo, and preview images. Follow the package conventions and verify the changes with tests, formatting checks, and builds.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Implementing a new effect for @remotion/effects
  • Registering effect imports and parameter types
  • Creating documentation and an interactive effect demo
remotion-dev/remotion6.5만2026년 10월 18일 업데이트

Add a person to the Remotion experts page by placing their portrait, entering their profile and contact links, and generating an expert card image. The instructions specify file locations, profile fields, and how to verify card generation.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Add a new person to the Remotion experts page
  • Register a portrait, specialties, and contact links
  • Generate an expert card image
remotion-dev/remotion6.5만2026년 10월 18일 업데이트

Create a new @remotion package within the Remotion monorepo, a repository containing multiple packages. Set up its files, register it across the project, and prepare documentation, usage examples, and build configuration.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Creating a new @remotion package
  • Registering a package across the monorepo
  • Adding documentation and usage examples
remotion-dev/remotion6.5만2026년 10월 18일 업데이트

add-sfx

무료

Add a new sound effect to @remotion/sfx, from registering the audio file to exporting its URL and documenting its use. The workflow covers playback examples, attribution, navigation entries, waveform generation, and the package build.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Add a sound effect to @remotion/sfx
  • Create documentation with playback and usage examples
  • Update sound effect navigation and waveform data
remotion-dev/remotion6.5만2026년 10월 18일 업데이트

remotion-dev의 스킬 모두 보기

이 스킬의 문제 신고