fix(deps): keep js-yaml on 4.x so the release job can load it - #1125
Merged
Conversation
The release job dies before publishing anything:
SyntaxError: The requested module 'js-yaml' does not provide an export
named 'default'
@anolilab/multi-semantic-release does `import yaml from "js-yaml"` in its topo
module. js-yaml 5 dropped the default export from its ESM build, so the import
throws. Confirmed directly: importing 4.3.1's js-yaml.mjs yields a default
object, importing 5.3.0's throws.
The overrides that forced v5 came in with the combined dependency update. The
`js-yaml@>=4.0.0 <4.3.0` entry carries a comment immediately above it saying not
to raise it to v5 for exactly this reason, and the update went in regardless.
Restore both ranges to the versions that were in place before, and note the same
constraint on the 3.x entry so the next update does not silently repeat it.
`^3.15.1` and `^4.3.1` both still patch the advisories the overrides exist for;
`pnpm audit --audit-level=moderate` reports no known vulnerabilities.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FP75FgnREe4L45kZtsa9a
Contributor
|
Thank you for following the naming conventions! 🙏 |
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
✨ Finishing Touches 💡 1⚔️ Resolve merge conflicts 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
The release job on
maindies before publishing anything:Cause
@anolilab/multi-semantic-releasedoesimport yaml from "js-yaml"in its bundled topo module. js-yaml 5 dropped the default export from its ESM build, so the import throws at load time.Verified directly rather than inferred:
pnpm exec multi-semantic-release --helpexits 0 on this branch; onmainit is the command that fails.How it got in
#1117 raised both
js-yamloverrides to^5.3.0. Thejs-yaml@>=4.0.0 <4.3.0entry has this comment sitting immediately above it:I merged Renovate's bump straight past it. The failure mode was already documented in the file, one line above the change.
Fix
Restore both ranges to their previous values, and add the same constraint to the 3.x entry so the next update does not silently repeat it:
js-yaml@>=3.0.0 <3.15.1^5.3.0^3.15.1js-yaml@>=4.0.0 <4.3.0^5.3.0^4.3.1Both still patch the advisories the overrides exist for —
pnpm audit --audit-level=moderatereports no known vulnerabilities.Verification
pnpm exec multi-semantic-release --help— exit 0 (this is what fails onmain)pnpm install --frozen-lockfile— exit 0Follow-up worth considering
This is the second ESM-only major to slip through a dependency update today; the nanoid one was caught before merging only because it was checked by hand. A Renovate rule that holds majors for packages consumed via a default import, or simply treating an adjacent "stay on Nx" comment as blocking, would catch the next one.
🤖 Generated with Claude Code
https://claude.ai/code/session_014FP75FgnREe4L45kZtsa9a
Summary by CodeRabbit
js-yamldependencies.