Skip to content

Commit 54bf74d

Browse files
authored
chore: make release-please exclude-paths repo-root-relative (#5125)
* chore: make release-please exclude-paths repo-root-relative release-please resolves exclude-paths relative to the repository root and matches them by prefix (file must start with `${excludePath}/`). The config listed them package-relative (e.g. "src/components/next"), so they never matched the actual paths ("packages/eds-core-react/src/components/next/...") and excluded nothing. As a result, next-only commits (e.g. Dialog EDS 2.0, already released as eds-core-react-next beta) were wrongly attributed to eds-core-react and triggered spurious version bumps in every release PR, requiring manual cleanup each time. Prefix every exclude-path with its package path so the intended storybook/test/config/next paths are actually excluded. No behaviour change for legitimate source commits. * docs: correct exclude-paths example to repo-root-relative form The documented example used the old package-relative path "src/components/next", which matches nothing and would reintroduce the bug fixed in this PR. Use the full repo-root-relative path and note that exclude-paths resolve from the repository root.
1 parent 13b1812 commit 54bf74d

2 files changed

Lines changed: 67 additions & 65 deletions

File tree

.github/release-please-config.json

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,24 @@
77
"package-name": "@equinor/eds-core-react",
88
"component": "eds-core-react",
99
"exclude-paths": [
10-
"src/components/next",
11-
".storybook",
12-
"stories",
13-
"tests",
14-
".gitignore",
15-
".cachebust",
16-
"rollup.config.js",
17-
"jest.config.cjs",
18-
"jest.setup.ts",
19-
"tsconfig.json",
20-
"tsconfig.build.json",
21-
"tsconfig.test.json",
22-
"playwright.config.ts",
23-
"Dockerfile.storybook",
24-
"nginx.conf",
25-
"README.md",
26-
"FIGMA_CODE_CONNECT.md",
27-
"figma.config.json"
10+
"packages/eds-core-react/src/components/next",
11+
"packages/eds-core-react/.storybook",
12+
"packages/eds-core-react/stories",
13+
"packages/eds-core-react/tests",
14+
"packages/eds-core-react/.gitignore",
15+
"packages/eds-core-react/.cachebust",
16+
"packages/eds-core-react/rollup.config.js",
17+
"packages/eds-core-react/jest.config.cjs",
18+
"packages/eds-core-react/jest.setup.ts",
19+
"packages/eds-core-react/tsconfig.json",
20+
"packages/eds-core-react/tsconfig.build.json",
21+
"packages/eds-core-react/tsconfig.test.json",
22+
"packages/eds-core-react/playwright.config.ts",
23+
"packages/eds-core-react/Dockerfile.storybook",
24+
"packages/eds-core-react/nginx.conf",
25+
"packages/eds-core-react/README.md",
26+
"packages/eds-core-react/FIGMA_CODE_CONNECT.md",
27+
"packages/eds-core-react/figma.config.json"
2828
]
2929
},
3030
"packages/eds-core-react/src/components/next": {
@@ -37,80 +37,80 @@
3737
"package-name": "@equinor/eds-data-grid-react",
3838
"component": "eds-data-grid-react",
3939
"exclude-paths": [
40-
".storybook",
41-
"src/tests",
42-
"src/stories",
43-
"src/EdsDataGrid.stories.tsx",
44-
"jest.config.ts",
45-
"jest.setup.ts",
46-
"rollup.config.js",
47-
"tsconfig.json",
48-
"tsconfig.build.json",
49-
"tsconfig.test.json",
50-
"README.md"
40+
"packages/eds-data-grid-react/.storybook",
41+
"packages/eds-data-grid-react/src/tests",
42+
"packages/eds-data-grid-react/src/stories",
43+
"packages/eds-data-grid-react/src/EdsDataGrid.stories.tsx",
44+
"packages/eds-data-grid-react/jest.config.ts",
45+
"packages/eds-data-grid-react/jest.setup.ts",
46+
"packages/eds-data-grid-react/rollup.config.js",
47+
"packages/eds-data-grid-react/tsconfig.json",
48+
"packages/eds-data-grid-react/tsconfig.build.json",
49+
"packages/eds-data-grid-react/tsconfig.test.json",
50+
"packages/eds-data-grid-react/README.md"
5151
]
5252
},
5353
"packages/eds-icons": {
5454
"release-type": "node",
5555
"package-name": "@equinor/eds-icons",
5656
"component": "eds-icons",
5757
"exclude-paths": [
58-
"rollup.config.js",
59-
"tsconfig.json",
60-
"README.md"
58+
"packages/eds-icons/rollup.config.js",
59+
"packages/eds-icons/tsconfig.json",
60+
"packages/eds-icons/README.md"
6161
]
6262
},
6363
"packages/eds-lab-react": {
6464
"release-type": "node",
6565
"package-name": "@equinor/eds-lab-react",
6666
"component": "eds-lab-react",
6767
"exclude-paths": [
68-
".storybook",
69-
"stories",
70-
"src/stories",
71-
"babel.config.cjs",
72-
"jest.config.cjs",
73-
"jest.setup.ts",
74-
"rollup.config.js",
75-
"tsconfig.json",
76-
"tsconfig.build.json",
77-
"tsconfig.test.json",
78-
"Dockerfile.storybook",
79-
"nginx.conf",
80-
"README.md"
68+
"packages/eds-lab-react/.storybook",
69+
"packages/eds-lab-react/stories",
70+
"packages/eds-lab-react/src/stories",
71+
"packages/eds-lab-react/babel.config.cjs",
72+
"packages/eds-lab-react/jest.config.cjs",
73+
"packages/eds-lab-react/jest.setup.ts",
74+
"packages/eds-lab-react/rollup.config.js",
75+
"packages/eds-lab-react/tsconfig.json",
76+
"packages/eds-lab-react/tsconfig.build.json",
77+
"packages/eds-lab-react/tsconfig.test.json",
78+
"packages/eds-lab-react/Dockerfile.storybook",
79+
"packages/eds-lab-react/nginx.conf",
80+
"packages/eds-lab-react/README.md"
8181
]
8282
},
8383
"packages/eds-tokens": {
8484
"release-type": "node",
8585
"package-name": "@equinor/eds-tokens",
8686
"component": "eds-tokens",
8787
"exclude-paths": [
88-
"tokens",
89-
"build-generate-variables",
90-
"scripts",
91-
".vscode",
92-
".gitignore",
93-
"rollup.config.js",
94-
"tsconfig.json",
95-
"vite.generate-variables.config.ts",
96-
"palette-config.json",
97-
"token-config.json",
98-
"tokens.json",
99-
"README.md",
100-
"CLAUDE.md"
88+
"packages/eds-tokens/tokens",
89+
"packages/eds-tokens/build-generate-variables",
90+
"packages/eds-tokens/scripts",
91+
"packages/eds-tokens/.vscode",
92+
"packages/eds-tokens/.gitignore",
93+
"packages/eds-tokens/rollup.config.js",
94+
"packages/eds-tokens/tsconfig.json",
95+
"packages/eds-tokens/vite.generate-variables.config.ts",
96+
"packages/eds-tokens/palette-config.json",
97+
"packages/eds-tokens/token-config.json",
98+
"packages/eds-tokens/tokens.json",
99+
"packages/eds-tokens/README.md",
100+
"packages/eds-tokens/CLAUDE.md"
101101
]
102102
},
103103
"packages/eds-utils": {
104104
"release-type": "node",
105105
"package-name": "@equinor/eds-utils",
106106
"component": "eds-utils",
107107
"exclude-paths": [
108-
"rollup.config.js",
109-
"tsconfig.json",
110-
"tsconfig.build.json",
111-
"vitest.config.ts",
112-
"vitest.setup.ts",
113-
"README.md"
108+
"packages/eds-utils/rollup.config.js",
109+
"packages/eds-utils/tsconfig.json",
110+
"packages/eds-utils/tsconfig.build.json",
111+
"packages/eds-utils/vitest.config.ts",
112+
"packages/eds-utils/vitest.setup.ts",
113+
"packages/eds-utils/README.md"
114114
]
115115
}
116116
},

.github/release-please-config.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ The `eds-core-react` package uses a **dual release strategy** to support both st
6868
"release-type": "node",
6969
"package-name": "@equinor/eds-core-react",
7070
"component": "eds-core-react",
71-
"exclude-paths": ["src/components/next"]
71+
"exclude-paths": ["packages/eds-core-react/src/components/next"]
7272
}
7373
```
7474

@@ -101,6 +101,8 @@ The `eds-core-react` package uses a **dual release strategy** to support both st
101101

102102
All packages use `exclude-paths` to prevent non-publishable files from triggering version bumps. This includes config files, test files, Storybook, documentation, and build tooling.
103103

104+
**Paths are resolved relative to the repository root**, not to the package directory, and matched as directory prefixes (release-please checks that a file path starts with `<exclude-path>/`). Always write the full path including the package prefix — e.g. `packages/eds-core-react/src/components/next`, **not** `src/components/next`. A package-relative entry silently matches nothing, which previously let `/next`-only commits leak into the stable `eds-core-react` release.
105+
104106
**Important limitation:** `exclude-paths` only filters file-path-based detection. If a commit has a **scope that matches a package's `component` name** (e.g. `feat(eds-core-react): ...`), it will trigger a release for that package regardless of `exclude-paths`. To avoid this, use non-release-triggering types (`chore`, `build`, `ci`, `test`) for commits that only touch excluded files. See `documentation/how-to/CONVENTIONAL_COMMITS.md` for guidance.
105107

106108
## Pull Request Configuration

0 commit comments

Comments
 (0)