chore(cd): prepare the 10.0.0-rc.1 release - #2599
Conversation
Move the release train from beta to a release candidate. release-please's prerelease strategy only increments the trailing number of the current prerelease, so `prerelease-type` alone would still cut 10.0.0-beta.33. Set `release-as: 10.0.0-rc.1` in the manifest config so the next release PR proposes rc.1 for every linked package while the changelog range still starts at the beta.32 tags. The March alpha-to-beta switch instead reset the manifest and package versions to beta.0, which made release-please replay history into the beta.1 changelog because no beta.0 tag existed. Remove `release-as` once rc.1 has shipped, or every later release PR will propose rc.1 again. cd.yml has been invalid YAML since #2446: the release checkout guard's `? 0 : 1` sat in a plain scalar, so no Deployment run on main has reached release-please since 2026-08-28 and the release PR froze at beta.33. Put the command in a block scalar. `pnpm publish` only sets `latest`, so npm's `next` tag still pointed at 10.0.0-alpha.11. Add an npm dist-tag workflow that moves a tag onto a published version of every public package, run it from cd.yml after each release for `next`, and expose it through workflow_dispatch so `next` can be repointed by hand today. Swap the beta labels in the READMEs, installation guide, browser support page, and site pill for release candidate wording. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
✅ Deploy Preview for vjs10-site ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
@videojs/core
@videojs/element
@videojs/html
@videojs/media
@videojs/react
@videojs/spf
@videojs/store
@videojs/utils
commit: |
📦 Bundle Size Report🎨 @videojs/html — no changesPresets (7)
Media (18)
Players (5)
Skins (29)
UI Components (62)
⚛️ @videojs/react — no changesPresets (7)
Media (22)
Extensions (2)
Players (5)
Skins (18)
UI Components (39)
🧩 @videojs/core — no changesEntries (76)
🏷️ @videojs/element — no changesEntries (2)
📦 @videojs/store — no changesEntries (3)
🔧 @videojs/utils — no changesEntries (13)
📦 @videojs/cdn — no changes📦 @videojs/cloudflare-video — no changes📦 @videojs/dash-video — no changes📦 @videojs/google-cast — no changes📦 @videojs/hlsjs-video — no changes📦 @videojs/media — no changesEntries (3)
📦 @videojs/mux — no changes📦 @videojs/mux-audio — no changesEntries (2)
📦 @videojs/mux-data — no changes📦 @videojs/mux-video — no changesEntries (2)
📦 @videojs/native-hls-video — no changes📦 @videojs/shaka-video — no changes📦 @videojs/spf — no changesEntries (7)
📦 @videojs/spotify-audio — no changes📦 @videojs/tiktok-video — no changes📦 @videojs/twitch-video — no changes📦 @videojs/vimeo-video — no changes📦 @videojs/wistia-video — no changesEntries (2)
📦 @videojs/youtube-video — no changesℹ️ How to interpretEach entry is independently bundled, minified, and brotli-compressed. Initial size includes its static import graph; lazy dynamic chunks are reported separately. Entries are not additive because their dependency graphs overlap. Preset rows represent realistic combined bundles. Changes of 300 B or less across initial, lazy, and total size are collapsed, not discarded. Run |
Add a September 2026 release candidate milestone to the homepage roadmap, README timeline, and roadmap doc, and move the GA target to fall 2026. Let cd.yml mint a GitHub App installation token for release-please when the RELEASE_APP_ID variable is set, so release PRs and tags are attributed to the app's bot user instead of a maintainer's personal token. The personal token remains the fallback until the app is configured. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Match the cli and spf README banners to the other packages, drop the browser-support aside, and point the installation aside at the release candidate announcement. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
The 88% figure came from the beta comparison. Measured the same way today, the default HTML player is 62.8% smaller than the Video.js 8 default bundle (gzip), so the post now says over 60%. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
The GitHub App token step for release-please now lands separately in #2616 so it can merge and be tested ahead of the release candidate. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Resolve the release-please config against the new package list, keeping every package on the rc prerelease type, and keep the block scalar for the release checkout verification that main lost again in #2598. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
|
The failing publish check (Preview Releases / pkg-pr-new) is not this PR's. It fails identically on Generated by Claude Code |
Moves the release train from beta to a release candidate.
📝 Blog post preview: https://deploy-preview-2599--vjs10-site.netlify.app/blog/videojs-v10-release-candidate
What this does
1. Cuts the next release as
10.0.0-rc.1instead of10.0.0-beta.33.release-please's
prereleasestrategy only increments the trailing number of the existing prerelease, so switchingprerelease-typetorcalone would still produce beta.33. This PR sets a top-level"release-as": "10.0.0-rc.1"; with thelinked-versionsplugin every package (27, including the new@videojs/cdnand adapter packages) lands on rc.1, and the changelog range stays anchored to the beta.32 tags.The March alpha→beta switch (#846, #850) instead reset the manifest and package versions to
beta.0. That works, but because nobeta.0tag existed release-please replayed history into the beta.1 changelog and emitted a brokenbeta.0...beta.1compare link, so I avoided repeating it.prerelease-typeis also flipped torcon every package so the config reads truthfully; it has no effect while a prerelease version is already current.2. Fixes the npm
nextdist-tag.pnpm publishonly setslatest, sonexthas pointed at10.0.0-alpha.11for the whole beta channel (and@videojs/cli/@videojs/mediahave nonextat all). New.github/workflows/npm-dist-tag.ymlmoves a dist-tag onto a published version of every public workspace package.cd.ymlcalls it after each release fornext, and it is alsoworkflow_dispatch-able.3. Swaps "Beta" labels for release-candidate wording in the root and package READMEs, the installation guide aside (which now links to the blog post), and the site pill (component name
BetaPillunchanged). The browser-support aside is removed.4. Adds the release candidate to the roadmap. The homepage
Roadmap.astromilestones, the README timeline, andv10-roadmap.mdxgain a completed "Sep 2026: Release Candidate" entry, and the GA target moves from "Mid 2026" to "Fall 2026" (a placeholder; adjust as needed).5. Publishes the RC announcement post at
site/src/content/blog/2026-09-03-videojs-v10-release-candidate.mdx(/blog/videojs-v10-release-candidate, preview), authored by Darius. The filename date sets the publish date, so rename it if rc.1 lands on a different day. NoogImageyet; the beta post has one undersite/src/assets/blog/.The cd.yml YAML fix and the GitHub App attribution that used to be part of this PR landed separately in #2616 and #2632.
After merging
chore: release mainproposing 10.0.0-rc.1 across all packages. Check that its diff is only version bumps and changelogs before merging it (see fix: resolve stale html lockfile from #2617 #2629 for what a stale regeneration looked like).release-asfrom.github/release-please/release-please-config.jsonright after rc.1 ships. While it remains, every later release PR will propose rc.1 again.nexttoday rather than waiting for rc.1: run the npm dist-tag workflow withversion=10.0.0-beta.32,tag=next.Not done here
site/src/consts.tsstill carries the beta.32→beta.31 archive override, which is unrelated and self-expires at rc.1.Verification
actionlintoncd.ymlandnpm-dist-tag.yml: clean.astro syncvalidates the new blog post against the collection schema.release-as+linked-versionsconfirmed against release-please v17 source (strategies/base.tsbuildNewVersion,plugins/linked-versions.tspreconfigure).🤖 Generated with Claude Code
https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj