[release] Exit changeset pre mode for v5, tie core and world-vercel versions together - #3090
[release] Exit changeset pre mode for v5, tie core and world-vercel versions together#3090VaguelySerious wants to merge 1 commit into
Conversation
Take `main` out of changesets pre-release mode so the next "Version Packages" PR publishes 5.0.0 to the `latest` dist-tag instead of another `5.0.0-beta.N`. Also add `@workflow/world-vercel` to the `workflow` / `@workflow/core` fixed group, so the Vercel adapter carries the same version as the SDK from 5.0.0 onward, and derive the GitHub Release prerelease/latest flags from the published version rather than the branch name. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: f051d75 The changes in this PR will be included in the next version bump. This PR includes changesets to release 46 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
🧪 E2E Test Results✅ All tests passed E2E Test SummarySummary
Details by Category✅ ▲ Vercel Production
✅ 💻 Local Development
✅ 📦 Local Production
✅ 🐘 Local Postgres
✅ 🪟 Windows
✅ 📋 Other
✅ vercel-multi-region
|
📊 Workflow Benchmarkscommit Backend:
ℹ️ Metric definitions & methodologyBest/P75/P90/P99 deltas compare against the most recent benchmark run on Metrics — TTFS: time to first step body (in-deployment start() → first step body, deployment clocks) · STSO: step-to-step overhead (gap between consecutive step bodies) · WO: workflow overhead (whole-run time outside step bodies, in-deployment anchored) · SL: stream latency (in-deployment write → read propagation, readAt - writtenAt) · SO: stream overhead (end-to-end write+consume time beyond the modelled generation window) Scenarios — step: one trivial no-op step, no stream; no hooks, so the run stays in turbo mode (in-process fast path) · stream: one streaming step; no hooks, so the run stays in turbo mode (in-process fast path) · hook + stream: registers a hook before one step, which exits turbo mode (dispatch path) · 1020 steps: 1020 trivial sequential steps; STSO is measured between consecutive steps in the given step ranges, and WO is the whole-run overhead outside step bodies · stream latency: parallel reader/writer steps on a dedicated stream; SL is the in-deployment write->read propagation (readAt - writtenAt) · stream overhead (text): writer streams 300 variable-length text token deltas paced at 100/s for 3s (a haiku-size LLM's token throughput) while a parallel reader drains the whole stream; SO is the end-to-end write+consume time beyond the 3s generation window (overhead/backpressure) · stream overhead (structured): same workload as stream overhead (text), but each delta is an AI-SDK-style structured object ({ type: 'text-delta', id, text }) instead of a raw string, so the SO gap vs the text scenario is the added serialization cost 🔴 marks a percentile over its target (within target is left unmarked). Targets (p75/p90/p99, ms) — TTFS 200/300/600 · SL 50/60/125 · SO 250/500/1000 · STSO (1-20) 20/30/60 · STSO (101-120) 30/45/90 · STSO (1001-1020) 40/60/120 All metrics are measured from deployment-side timestamps only. Runs are triggered by an in-deployment route that stamps the anchor ( Cold starts are kept in the numbers on purpose — they are part of real bursty-workload latency. The workbench deployment cold-starts the |
Prep for the 5.0.0 GA release. Draft on purpose — merging this arms the GA publish.
.changeset/pre.json→"mode": "exit"). The next Release run onmainopens a plain "Version Packages" PR; merging that one publishes 5.0.0 to thelatestdist-tag.@workflow/world-vercelto thefixedgroup withworkflowand@workflow/core.@workflow/world-verceldoes not depend on@workflow/core, so nothing kept them aligned before — the Vercel adapter drifted to5.0.0-beta.32while core was at5.0.0-beta.36. From 5.0.0 on, the adapter version is the SDK version.mainwas hardcoded to--prerelease=true --latest=false, which would have marked the 5.0.0 release as a prerelease. Now any version with a prerelease identifier is a prerelease on any branch, and the "Latest" marker follows the GA line onmain.AGENTS.mdto match.Verification
Dry-ran the whole thing in a scratch worktree off
origin/main(changeset pre exit+changeset versionover all 439 pending changesets):5.0.0— including@workflow/ai,@workflow/serde,@workflow/utils, and the worlds, which were on trailing beta numbers. Thecheck-release-major.jsguard (RELEASE_VERSION: 5) passes.@workflow/corebumps@workflow/core,workflowand@workflow/world-vercelto5.0.1together.workflow@5.0.0onmain(--prerelease=false --latest),workflow@4.2.1onstable(--prerelease=false --latest=false), andworkflow@5.1.0-beta.1/workflow@6.0.0-rc.2onmain(--prerelease=true --latest=false).Required companion change on
stablestableis not in pre mode and no package setspublishConfig.tag, so oncemainleaves pre mode both branches publish tolatest— the next 4.x patch would movelatestback to 4.x. Companion PR againststablepinsci:publishtochangeset publish --tag previous(and mirrors the release-flag change); it needs to land before or alongside this one. The tag ispreviousrather thanv4because npm rejects tag names that parse as a semver range.Trade-off worth knowing
The fixed group means a
@workflow/world-vercel-only fix now also republishesworkflowand@workflow/core(and their dependents), and a core-only fix produces an empty## X.Y.Zsection in the world-vercel changelog. That's the cost of guaranteed alignment.