diff --git a/.github/workflows/release-esign.yml b/.github/workflows/release-esign.yml index 481a070389..b25794b9c5 100644 --- a/.github/workflows/release-esign.yml +++ b/.github/workflows/release-esign.yml @@ -8,6 +8,12 @@ on: - main paths: - 'packages/esign/**' + - 'packages/superdoc/**' + - 'packages/layout-engine/**' + - 'packages/super-editor/**' + - 'packages/ai/**' + - 'packages/word-layout/**' + - 'packages/preset-geometry/**' - 'pnpm-workspace.yaml' - '!**/*.md' workflow_dispatch: diff --git a/.github/workflows/release-template-builder.yml b/.github/workflows/release-template-builder.yml index 1e1988f9e9..282d1ea439 100644 --- a/.github/workflows/release-template-builder.yml +++ b/.github/workflows/release-template-builder.yml @@ -8,6 +8,12 @@ on: - main paths: - 'packages/template-builder/**' + - 'packages/superdoc/**' + - 'packages/layout-engine/**' + - 'packages/super-editor/**' + - 'packages/ai/**' + - 'packages/word-layout/**' + - 'packages/preset-geometry/**' - 'pnpm-workspace.yaml' - '!**/*.md' workflow_dispatch: diff --git a/.github/workflows/sync-patches.yml b/.github/workflows/sync-patches.yml index 2d5cfa5732..171259938f 100644 --- a/.github/workflows/sync-patches.yml +++ b/.github/workflows/sync-patches.yml @@ -76,9 +76,9 @@ jobs: else echo "Merge conflict — attempting auto-resolution of release artifacts..." - # Auto-resolve expected conflicts: package.json version and CHANGELOG.md. + # Auto-resolve expected conflicts: package.json versions. # For these files, keep main's version (semantic-release manages them per-branch). - for f in packages/superdoc/package.json packages/superdoc/CHANGELOG.md; do + for f in packages/superdoc/package.json packages/esign/package.json packages/template-builder/package.json apps/vscode-ext/package.json; do if git diff --name-only --diff-filter=U | grep -qF "$f"; then echo " Auto-resolving $f (keeping main's version)" git checkout --ours "$f" diff --git a/packages/esign/.releaserc.cjs b/packages/esign/.releaserc.cjs index 949caefcaf..4eb28dc71d 100644 --- a/packages/esign/.releaserc.cjs +++ b/packages/esign/.releaserc.cjs @@ -1,4 +1,24 @@ /* eslint-env node */ +/* + * Commit filter: esign depends on superdoc, so git log must include + * commits touching superdoc's sub-packages. This shared helper patches + * git-log-parser to expand path coverage. It REPLACES + * semantic-release-commit-filter — do not use both (the filter restricts + * to CWD, which undoes the expansion). + * + * Keep in sync with .github/workflows/release-esign.yml paths: trigger. + */ +require('../../scripts/semantic-release/patch-commit-filter.cjs')([ + 'packages/esign', + 'packages/superdoc', + 'packages/super-editor', + 'packages/layout-engine', + 'packages/ai', + 'packages/word-layout', + 'packages/preset-geometry', + 'pnpm-workspace.yaml', +]); + const branch = process.env.GITHUB_REF_NAME || process.env.CI_COMMIT_BRANCH; const branches = [ @@ -19,8 +39,21 @@ const config = { branches, tagFormat: 'esign-v${version}', plugins: [ - 'semantic-release-commit-filter', - '@semantic-release/commit-analyzer', + [ + '@semantic-release/commit-analyzer', + { + // Cap at minor — esign depends on superdoc, so upstream breaking + // changes don't break esign's own public API. + // Prevents accidental major bumps from superdoc feat!/BREAKING CHANGE commits. + releaseRules: [ + { breaking: true, release: 'minor' }, + { type: 'feat', release: 'minor' }, + { type: 'fix', release: 'patch' }, + { type: 'perf', release: 'patch' }, + { type: 'revert', release: 'patch' }, + ], + }, + ], notesPlugin, ['@semantic-release/npm', { npmPublish: true }], ], diff --git a/packages/template-builder/.releaserc.cjs b/packages/template-builder/.releaserc.cjs index 9baa28f383..bd468610cd 100644 --- a/packages/template-builder/.releaserc.cjs +++ b/packages/template-builder/.releaserc.cjs @@ -1,4 +1,24 @@ /* eslint-env node */ +/* + * Commit filter: template-builder depends on superdoc, so git log must include + * commits touching superdoc's sub-packages. This shared helper patches + * git-log-parser to expand path coverage. It REPLACES + * semantic-release-commit-filter — do not use both (the filter restricts + * to CWD, which undoes the expansion). + * + * Keep in sync with .github/workflows/release-template-builder.yml paths: trigger. + */ +require('../../scripts/semantic-release/patch-commit-filter.cjs')([ + 'packages/template-builder', + 'packages/superdoc', + 'packages/super-editor', + 'packages/layout-engine', + 'packages/ai', + 'packages/word-layout', + 'packages/preset-geometry', + 'pnpm-workspace.yaml', +]); + const branch = process.env.GITHUB_REF_NAME || process.env.CI_COMMIT_BRANCH; const branches = [ @@ -19,8 +39,21 @@ const config = { branches, tagFormat: 'template-builder-v${version}', plugins: [ - 'semantic-release-commit-filter', - '@semantic-release/commit-analyzer', + [ + '@semantic-release/commit-analyzer', + { + // Cap at minor — template-builder depends on superdoc, so upstream breaking + // changes don't break template-builder's own public API. + // Prevents accidental major bumps from superdoc feat!/BREAKING CHANGE commits. + releaseRules: [ + { breaking: true, release: 'minor' }, + { type: 'feat', release: 'minor' }, + { type: 'fix', release: 'patch' }, + { type: 'perf', release: 'patch' }, + { type: 'revert', release: 'patch' }, + ], + }, + ], notesPlugin, ['@semantic-release/npm', { npmPublish: true }], ],