fix(load): only resolve relative formatter paths#4761
Merged
Conversation
resolveFrom() returns an absolute path on success, which leaks the internal package location into the loaded config when the formatter is a package specifier (e.g. "@commitlint/format"). Under yarn's flat node_modules layout the resolution typically failed and the specifier was preserved by accident; under stricter resolution (pnpm, npm with hoisting disabled) it succeeds and the absolute path appears in config output. Skip resolveFrom for non-relative specifiers and let the runtime resolve them via standard module resolution at import time. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ⓘ You've reached your Qodo monthly free-tier limit. Reviews pause until next month — upgrade your plan to continue now, or link your paid account if you already have one. |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates @commitlint/load to avoid resolving formatter package specifiers into absolute filesystem paths, preventing internal package locations from appearing in printed/loaded config output across different package manager layouts (e.g., pnpm/non-hoisted npm).
Changes:
- Skip
resolveFrom()for non-relative formatter specifiers and keep them unchanged. - Continue resolving only relative formatter paths from the config directory.
- Update the inline documentation for the formatter resolution behavior.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Address review feedback: the previous wording "relative/custom" was misleading because absolute paths and package specifiers both skip resolveFrom and pass through unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
pat-s
pushed a commit
to devxygmbh/ansible-data-science-core
that referenced
this pull request
May 14, 2026
…ocker tag to v21 (#88) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [cr.codefloe.com/docker.io/commitlint/commitlint](https://github.com/conventional-changelog/commitlint) | major | `20.5.3` → `21.0.1` | --- ### Release Notes <details> <summary>conventional-changelog/commitlint (cr.codefloe.com/docker.io/commitlint/commitlint)</summary> ### [`v21.0.1`](https://github.com/conventional-changelog/commitlint/blob/HEAD/CHANGELOG.md#2101-2026-05-12) [Compare Source](conventional-changelog/commitlint@v21.0.0...v21.0.1) ##### Bug Fixes - **load:** only resolve relative formatter paths ([#​4761](conventional-changelog/commitlint#4761)) ([f8be069](conventional-changelog/commitlint@f8be069)) - **types:** add presetConfig to ParserPreset interface ([#​4749](conventional-changelog/commitlint#4749)) ([e402cd4](conventional-changelog/commitlint@e402cd4)), closes [#​4748](conventional-changelog/commitlint#4748) ### [`v21.0.0`](https://github.com/conventional-changelog/commitlint/blob/HEAD/CHANGELOG.md#2100-2026-05-08) [Compare Source](conventional-changelog/commitlint@v20.5.3...v21.0.0) ##### Bug Fixes - widen cz-commitlint inquirer peer dep to support v9-v12 [#​4554](conventional-changelog/commitlint#4554) ([#​4682](conventional-changelog/commitlint#4682)) ([341f0c4](conventional-changelog/commitlint@341f0c4)) - chore!: minimum node version v22 ([#​4679](conventional-changelog/commitlint#4679)) ([ac2b3f4](conventional-changelog/commitlint@ac2b3f4)), closes [#​4679](conventional-changelog/commitlint#4679) ##### BREAKING CHANGES - drop node v18 and v20 support * Bump engines to >=v22 in all 39 package.json files * Update [@​types/node](https://github.com/types/node) to ^22.0.0 * Update CI matrix to \[22, 24] * Update Ubuntu baseline job to ubuntu:26.04 * Update Dockerfile.ci, .mise.toml, .codesandbox/ci.json * Update pre-commit hook to use --ignore-engines * Update README and docs Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> #### [20.5.3](conventional-changelog/commitlint@v20.5.2...v20.5.3) (2026-04-30) **Note:** Version bump only for package [@​commitlint/root](https://github.com/commitlint/root) #### [20.5.2](conventional-changelog/commitlint@v20.5.1...v20.5.2) (2026-04-25) ##### Bug Fixes - update dependency global-directory to v5 ([#​4698](conventional-changelog/commitlint#4698)) ([a8b6224](conventional-changelog/commitlint@a8b6224)) #### [20.5.1](conventional-changelog/commitlint@v20.5.0...v20.5.1) (2026-03-31) ##### Bug Fixes - **cz-commitlint:** add VS16 to single character emojis ([#​4666](conventional-changelog/commitlint#4666)) ([9e3e2d3](conventional-changelog/commitlint@9e3e2d3)) - **cz-commitlint:** handle modifiers correctly ([#​4667](conventional-changelog/commitlint#4667)) ([5a3ebf5](conventional-changelog/commitlint@5a3ebf5)) - update dependency global-directory to v5 ([#​4671](conventional-changelog/commitlint#4671)) ([a300d32](conventional-changelog/commitlint@a300d32)) ##### Reverts - Revert "fix: update dependency global-directory to v5 ([#​4671](conventional-changelog/commitlint#4671))" ([#​4677](conventional-changelog/commitlint#4677)) ([0f124c9](conventional-changelog/commitlint@0f124c9)), closes [#​4671](conventional-changelog/commitlint#4671) [#​4677](conventional-changelog/commitlint#4677) </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), Automerge - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: devxy-bot <no-reply@devxy.io> Reviewed-on: https://codefloe.com/devxy/ansible-data-science-core/pulls/88
pat-s
pushed a commit
to devxygmbh/starlight-theme-celestia
that referenced
this pull request
May 26, 2026
…ocker tag to v21 (#16) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [cr.codefloe.com/docker.io/commitlint/commitlint](https://github.com/conventional-changelog/commitlint) | major | `20.5.3` → `21.0.1` | --- ### Release Notes <details> <summary>conventional-changelog/commitlint (cr.codefloe.com/docker.io/commitlint/commitlint)</summary> ### [`v21.0.1`](https://github.com/conventional-changelog/commitlint/blob/HEAD/CHANGELOG.md#2101-2026-05-12) [Compare Source](conventional-changelog/commitlint@v21.0.0...v21.0.1) ##### Bug Fixes - **load:** only resolve relative formatter paths ([#​4761](conventional-changelog/commitlint#4761)) ([f8be069](conventional-changelog/commitlint@f8be069)) - **types:** add presetConfig to ParserPreset interface ([#​4749](conventional-changelog/commitlint#4749)) ([e402cd4](conventional-changelog/commitlint@e402cd4)), closes [#​4748](conventional-changelog/commitlint#4748) ### [`v21.0.0`](https://github.com/conventional-changelog/commitlint/blob/HEAD/CHANGELOG.md#2100-2026-05-08) [Compare Source](conventional-changelog/commitlint@v20.5.3...v21.0.0) ##### Bug Fixes - widen cz-commitlint inquirer peer dep to support v9-v12 [#​4554](conventional-changelog/commitlint#4554) ([#​4682](conventional-changelog/commitlint#4682)) ([341f0c4](conventional-changelog/commitlint@341f0c4)) - chore!: minimum node version v22 ([#​4679](conventional-changelog/commitlint#4679)) ([ac2b3f4](conventional-changelog/commitlint@ac2b3f4)), closes [#​4679](conventional-changelog/commitlint#4679) ##### BREAKING CHANGES - drop node v18 and v20 support * Bump engines to >=v22 in all 39 package.json files * Update [@​types/node](https://github.com/types/node) to ^22.0.0 * Update CI matrix to \[22, 24] * Update Ubuntu baseline job to ubuntu:26.04 * Update Dockerfile.ci, .mise.toml, .codesandbox/ci.json * Update pre-commit hook to use --ignore-engines * Update README and docs Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> #### [20.5.3](conventional-changelog/commitlint@v20.5.2...v20.5.3) (2026-04-30) **Note:** Version bump only for package [@​commitlint/root](https://github.com/commitlint/root) #### [20.5.2](conventional-changelog/commitlint@v20.5.1...v20.5.2) (2026-04-25) ##### Bug Fixes - update dependency global-directory to v5 ([#​4698](conventional-changelog/commitlint#4698)) ([a8b6224](conventional-changelog/commitlint@a8b6224)) #### [20.5.1](conventional-changelog/commitlint@v20.5.0...v20.5.1) (2026-03-31) ##### Bug Fixes - **cz-commitlint:** add VS16 to single character emojis ([#​4666](conventional-changelog/commitlint#4666)) ([9e3e2d3](conventional-changelog/commitlint@9e3e2d3)) - **cz-commitlint:** handle modifiers correctly ([#​4667](conventional-changelog/commitlint#4667)) ([5a3ebf5](conventional-changelog/commitlint@5a3ebf5)) - update dependency global-directory to v5 ([#​4671](conventional-changelog/commitlint#4671)) ([a300d32](conventional-changelog/commitlint@a300d32)) ##### Reverts - Revert "fix: update dependency global-directory to v5 ([#​4671](conventional-changelog/commitlint#4671))" ([#​4677](conventional-changelog/commitlint#4677)) ([0f124c9](conventional-changelog/commitlint@0f124c9)), closes [#​4671](conventional-changelog/commitlint#4671) [#​4677](conventional-changelog/commitlint#4677) </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), Automerge - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: devxy-bot <no-reply@devxy.io> Reviewed-on: https://codefloe.com/devxy/starlight-theme-celestia/pulls/16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
resolveFrom() returns an absolute path on success, which leaks the internal package location into the loaded config when the formatter is a package specifier (e.g. "@commitlint/format"). Under yarn's flat node_modules layout the resolution typically failed and the specifier was preserved by accident; under stricter resolution (pnpm, npm with hoisting disabled) it succeeds and the absolute path appears in config output.
Skip resolveFrom for non-relative specifiers and let the runtime resolve them via standard module resolution at import time.