ci: align release and CI triggers with package impact map - #2938
Conversation
Test broad, release narrow. CI gates compatibility (a core change should run dependent CI to catch breakage). Release gates artifact changes (a package should only publish when its own published artifact actually changes). - Shrink release-react, release-template-builder, release-esign and their .releaserc.cjs to own-path-only. These wrappers externalize superdoc in their Vite builds, so republishing on core changes produces near-identical tarballs; consumers pick up core via peerDependencies on their own install. - Expand release-mcp trigger paths and .releaserc.cjs to cover SDK, CLI, document-api, and core. MCP depends on SDK via workspace:* and imports engine/session code directly. Current trigger only watched apps/mcp/**, causing MCP to lag SDK releases. - Strip packages/ai/** from every workflow and .releaserc.cjs include list. @superdoc-dev/ai is being deprecated; npm-side deprecation is a separate operational step. - Add .github/package-impact-map.md as the source of truth for which paths should trigger CI and release per surface. Workflow changes derive from it.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5e36b547f2
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
React declares superdoc in dependencies (">=1.0.0") rather than
peerDependencies, unlike template-builder and esign. That means
existing consumers with pinned lockfiles won't pick up a new core
version until react republishes. Shrinking release-react to own paths
would strand them on old core fixes.
Revert release-react to broad core paths and restore the minor-cap
release rules. The impact-map rationale now distinguishes react from
the peer-dep wrappers and calls out the future peer-dep migration as
the prerequisite for going narrow.
No breaking change to consumers; migration to peerDependencies is
tracked as a separate decision.
Add superdoc to peerDependencies while keeping it in dependencies. Preserves auto-install for every consumer regardless of package manager (no breaking change) and signals the singleton contract that template-builder and esign already express via peer-dep. This is a semantic cleanup, not a release-policy change. release-react stays broad because existing consumers still pick up core versions via the dependencies pin. Removing superdoc from dependencies would unlock release-narrow but is a breaking change tracked separately. Verified with pnpm install --frozen-lockfile — no lockfile changes.
Review found ci-superdoc uses paths-ignore and did not list packages/ai/**, so an AI-only PR still triggered the full SuperDoc CI despite ai being deprecated. Add it to paths-ignore to match the impact-map claim that ai is removed from all release and CI triggers.
|
🎉 This PR is included in superdoc v1.28.0-next.18 The release is available on GitHub release |
|
🎉 This PR is included in superdoc-cli v0.8.0-next.18 The release is available on GitHub release |
|
🎉 This PR is included in superdoc-sdk v1.6.0-next.54 |
|
🎉 This PR is included in @superdoc-dev/mcp v0.3.0-next.1 The release is available on GitHub release |
|
🎉 This PR is included in superdoc v1.30.0-next.1 The release is available on GitHub release |
|
🎉 This PR is included in superdoc-sdk v1.8.0-next.1 |
|
🎉 This PR is included in template-builder v1.7.0-next.1 The release is available on GitHub release |
|
🎉 This PR is included in @superdoc-dev/react v1.2.0-next.49 The release is available on GitHub release |
|
🎉 This PR is included in vscode-ext v2.3.0-next.51 |
|
🎉 This PR is included in superdoc v1.30.0 The release is available on GitHub release |
|
🎉 This PR is included in superdoc-cli v0.8.0 The release is available on GitHub release |
|
🎉 This PR is included in superdoc-sdk v1.8.0 |
|
🎉 This PR is included in @superdoc-dev/mcp v0.3.0 The release is available on GitHub release |
|
🎉 This PR is included in template-builder v1.9.0 The release is available on GitHub release |
|
🎉 This PR is included in vscode-ext v2.3.0 |
|
🎉 This PR is included in @superdoc-dev/react v1.3.0 The release is available on GitHub release |
### Features - install superdoc from wrapper packages ### Changes - Merge branch 'main' into nick/merge-main-stable - Merge branch 'stable' ### Chores - merge stable into main (#2997) - remove accidental breaking change wording from triggering sem rel as breaking ### CI - align release and CI triggers with package impact map (#2938)
|
🎉 This PR is included in esign v2.7.0 The release is available on GitHub release |
|
🎉 This PR is included in esign v2.5.1-next.1 The release is available on GitHub release |
Release and CI triggers had drifted apart from what each package actually needs. React wrappers were auto-publishing on every core change even though they externalize superdoc in their builds (near-identical tarballs). MCP wasn't publishing on SDK/core changes even though it imports engine code directly. The
packages/ai/**path appeared in nine workflows despite being on the way to deprecation.The new
.github/package-impact-map.mdis the source of truth. Principle: test broad, release narrow — CI gates compatibility, releases gate artifact changes. Every workflow change here derives from the map.Shrunk to own paths (peer-dep wrappers; core changes don't alter the tarball):
release-reactrelease-template-builderrelease-esignExpanded to include SDK/core (MCP depends on SDK via
workspace:*and imports engine code; it was previously stuck onapps/mcp/**):release-mcpStripped
packages/ai/**from 6 workflow path filters and 4 releaserc include lists. npm-side deprecation of@superdoc-dev/aiis a separate operational step.Unchanged (already aligned with the map — CLI, SDK, VS Code extension all bundle engine behavior and correctly release on core).
Empirical checks that grounded the classification:
packages/react/vite.config.tslistssuperdocinrollupOptions.external. Same for template-builder and esign.apps/cli/.releaserc.cjsandpackages/sdk/.releaserc.cjsusepatch-commit-filter.cjsto include core paths because their published binaries change when core changes.apps/mcp/package.jsondepends on@superdoc-dev/sdkatworkspace:*.Companion to PR #2937 (unique CI check contexts). That one makes the validation surface enforceable; this one makes the release surface sensible. A follow-up PR will expand CI path filters + add a gate-job pattern + widen the required-check list in the ruleset to all 13 unique contexts.