-
-
Notifications
You must be signed in to change notification settings - Fork 8.8k
refactor: remove canary release workflows #13794
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
now using continuous release with pkg.pr.new
WalkthroughRemoves two GitHub Actions canary workflows, deletes canary-related logic from the release script, and updates Rollup config to drop canary package handling. The release flow is simplified to a single path; build and CommonJS plugin behavior no longer special-case canary variants. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Dev as Developer
participant CI as CI Runner
participant RS as Release Script
participant NPM as npm Registry
Dev->>CI: Trigger release (tag/command)
CI->>RS: Run unified release
RS->>RS: Determine target version (standard)
RS->>RS: Update packages and lockfile
RS->>NPM: Publish (with provenance if CI & default registry)
NPM-->>RS: Publish result
RS-->>CI: Exit status
CI-->>Dev: Report outcome
sequenceDiagram
autonumber
actor Sched as (Removed) Scheduler/Manual
participant CI as CI Runner
participant RS as Release Script
participant NPM as npm Registry
note over Sched,CI: Previous canary flow (removed)
Sched--xCI: Run canary workflow (deleted)
CI--xRS: Release with canary flag (deleted)
RS--xNPM: Publish with canary tag/version (deleted)
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Suggested labels
Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ Finishing Touches
🧪 Generate unit tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
Size ReportBundles
Usages
|
@vue/compiler-core
@vue/compiler-dom
@vue/compiler-sfc
@vue/compiler-ssr
@vue/reactivity
@vue/runtime-core
@vue/runtime-dom
@vue/server-renderer
@vue/shared
vue
@vue/compat
commit: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
rollup.config.js (1)
138-146
: No lingering “-canary” references in source code
A sweep confirmed that only the lockfile (pnpm-lock.yaml
) contains “canary” entries (e.g.[email protected]
), which is expected and does not affect your build scripts. There are no hard-coded@vue/...-canary
imports or special-case logic in your source.That said, since you already drive the compat build from
packageOptions.compat
, you can simplify and decouple the export-mode logic from the package name:• In rollup.config.js (around lines 138–146), replace
const isCompatPackage = pkg.name === '@vue/compat'with
// Driven by the compat build flag instead of package name const isCompatPackage = isCompatBuildand update the preceding comment to reflect that exports and ESM entry selection are controlled by the
compat
option.This change makes the config more robust if package names ever shift again—no further code locations require adjustment.
scripts/release.js (2)
191-194
: Drop the now-redundant package-name remapping parameter.With canary removed,
updateVersions
no longer needs agetNewPackageName
callback. PassingkeepThePackageName
everywhere adds noise.Apply this minimal change here:
- updateVersions(targetVersion, keepThePackageName) + updateVersions(targetVersion)Then simplify the helpers (outside this hunk) to remove the callback entirely:
-const keepThePackageName = (/** @type {string} */ pkgName) => pkgName - /** * @param {string} version - * @param {(pkgName: string) => string} getNewPackageName */ -function updateVersions(version, getNewPackageName = keepThePackageName) { +function updateVersions(version) { // 1. update root package.json - updatePackage(path.resolve(__dirname, '..'), version, getNewPackageName) + updatePackage(path.resolve(__dirname, '..'), version) // 2. update all packages packages.forEach(p => - updatePackage(getPkgRoot(p), version, getNewPackageName), + updatePackage(getPkgRoot(p), version), ) } /** * @param {string} pkgRoot * @param {string} version - * @param {(pkgName: string) => string} getNewPackageName */ -function updatePackage(pkgRoot, version, getNewPackageName) { +function updatePackage(pkgRoot, version) { const pkgPath = path.resolve(pkgRoot, 'package.json') /** @type {Package} */ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8')) - pkg.name = getNewPackageName(pkg.name) pkg.version = version fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n') }Optional: also reword the log on Line 192 from “Updating cross dependencies...” to “Updating package versions...” to reflect the simplified behavior.
470-477
: Use the intended version in publishOnly’s code path.
publishOnly()
updates package.jsons totargetVersion
(when provided) but callspublishPackages(currentVersion)
. Whilepnpm publish
reads versions from package.json, this mismatch can produce incorrect logs and tag selection.async function publishOnly() { const targetVersion = positionals[0] if (targetVersion) { updateVersions(targetVersion) } await buildPackages() - await publishPackages(currentVersion) + await publishPackages(targetVersion || currentVersion) }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (4)
.github/workflows/canary-minor.yml
(0 hunks).github/workflows/canary.yml
(0 hunks)rollup.config.js
(2 hunks)scripts/release.js
(5 hunks)
💤 Files with no reviewable changes (2)
- .github/workflows/canary.yml
- .github/workflows/canary-minor.yml
🧰 Additional context used
🧬 Code graph analysis (1)
rollup.config.js (4)
scripts/release.js (2)
pkg
(77-79)pkg
(380-380)scripts/build.js (1)
pkg
(165-165)scripts/dev.js (1)
pkg
(63-63)scripts/utils.js (1)
pkg
(18-18)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Redirect rules
- GitHub Check: Header rules
- GitHub Check: Pages changed
🔇 Additional comments (5)
rollup.config.js (1)
290-301
: No@vue/compiler-sfc-canary
references found
All searches for-canary
in package names and anycompiler-sfc-canary
mentions returned no results, confirming the branch removal is complete and safe to merge.scripts/release.js (4)
69-71
: LGTM: bindings are clear and preserve previous defaults.No behavior change;
skipPrompts
/skipGit
default to falsy when omitted.
174-176
: Unified release message looks good.Simplifies the messaging path under
--skipPrompts
and matches the single non-canary flow.
214-216
: Always updating the lockfile makes sense after version bumps.Running a full
pnpm install
ensures the lockfile reflects the updated versions across all workspaces.
409-413
: CI pnpm version lacks--provenance
support
Our CI uses pnpm 10.15.0 andpnpm help publish
shows no--provenance
flag, so pushing it will break your release pipeline (pnpm.io).To fix, either:
- Upgrade your CI image to a pnpm release that officially ships
--provenance
(confirm viapnpm help publish | rg provenance
).- Or switch to the env-var approach, which pnpm already honors today:
NPM_CONFIG_PROVENANCE=true
.Please update
scripts/release.js
(around lines 409–413) accordingly:- if (process.env.CI && !args.registry) { - additionalPublishFlags.push('--provenance') - } + // add provenance metadata when releasing from CI and targeting the npm registry + const effectiveRegistry = + args.registry || + process.env.npm_config_registry || + process.env.NPM_CONFIG_REGISTRY || + '' + if ( + process.env.CI && + (!effectiveRegistry || + /^https?:\/\/registry\.npmjs\.org\/?$/i.test(effectiveRegistry)) + ) { + // use environment variable since pnpm 10.15.0 doesn’t support --provenance + process.env.NPM_CONFIG_PROVENANCE = 'true' + }Likely an incorrect or invalid review comment.
now using continuous release with pkg.pr.new
Summary by CodeRabbit
Impact: The canary release channel is no longer available. Users will receive only standard stable releases going forward.