Fix/pnpm version -r --json prints human-readable text to stdout when there are no pending changes#13222
Fix/pnpm version -r --json prints human-readable text to stdout when there are no pending changes#13222Ayush442842q wants to merge 4 commits into
Conversation
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe version command now emits ChangesRecursive version JSON output
Sequence Diagram(s)sequenceDiagram
participant CLI as version command
participant Plan as release plan
participant Output as JSON output
CLI->>Plan: evaluate pending releases
Plan-->>CLI: empty or applied releases
CLI->>Output: emit [] or serialized release entries
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: Suggested reviewers: ✨ Finishing Touches🧪 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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
pnpm11/installing/linking/hoist/src/index.ts (1)
269-276: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueDeclare
getModulesDirafter its caller.Line 269 introduces the helper before
symlinkHoistedDependencies, contrary to the repository’s function-ordering convention. As per coding guidelines, “declare functions after use.”🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@pnpm11/installing/linking/hoist/src/index.ts` around lines 269 - 276, Move the getModulesDir function declaration below its caller, symlinkHoistedDependencies, while preserving its implementation and behavior unchanged.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@pnpm11/installing/deps-installer/test/install/globalVirtualStore.ts`:
- Around line 730-747: The existing TypeScript assertion only verifies that a
dependency path exists; replace it with a regression covering phantom/implicit
fallback-hoist resolution through the symlinked GVS package, using a fixture
whose imported fallback-hoisted dependency is absent from the package graph
children. Add equivalent Rust integration coverage in
pnpm11/installing/deps-installer/test/install/globalVirtualStore.ts (lines
730-747) and pnpm/crates/package-manager/src/hoist.rs (lines 579-602), ensuring
both stacks exercise the same GVS layout and resolution contract and fail
without the fix.
---
Nitpick comments:
In `@pnpm11/installing/linking/hoist/src/index.ts`:
- Around line 269-276: Move the getModulesDir function declaration below its
caller, symlinkHoistedDependencies, while preserving its implementation and
behavior unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 98904848-d4d2-487c-8c84-653b9f4774d7
📒 Files selected for processing (11)
.changeset/fix-gvs-hoisted-resolution.md.changeset/version-json-empty-output.mdpnpm/crates/cli/src/cli_args/version.rspnpm/crates/cli/tests/version.rspnpm/crates/package-manager/src/hoist.rspnpm/crates/versioning/src/apply.rspnpm11/installing/deps-installer/src/install/link.tspnpm11/installing/deps-installer/test/install/globalVirtualStore.tspnpm11/installing/linking/hoist/src/index.tspnpm11/releasing/commands/src/version/index.tspnpm11/releasing/commands/test/version/index.test.ts
Confidence Score: 5/5Safe to merge — the changes are narrowly scoped to the --json output path, touching no install or resolution logic. Both the TypeScript and Rust implementations are correct and symmetric. The AppliedRelease Serialize derive with camelCase matches the existing TypeScript interface exactly. The no-pending-changes branch now returns a valid JSON value in both runtimes, and tests cover all three scenarios. No files require special attention. Reviews (6): Last reviewed commit: "test: fix perfectionist macro-trailing-c..." | Re-trigger Greptile |
9c96a76 to
e71e064
Compare
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
e71e064 to
9201f42
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #13222 +/- ##
==========================================
+ Coverage 86.90% 86.92% +0.02%
==========================================
Files 526 528 +2
Lines 90011 90465 +454
==========================================
+ Hits 78221 78638 +417
- Misses 11790 11827 +37 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
9201f42 to
69b2ace
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@pnpm/crates/cli/tests/version.rs`:
- Around line 650-656: Update the JSON output assertions in the version test to
verify that the parsed array contains exactly one release before inspecting its
first entry. Preserve the existing field assertions for pkg-a while making the
test fail if additional releases are emitted.
In `@pnpm11/releasing/commands/test/version/index.test.ts`:
- Around line 483-503: Add an equivalent regression case to the real CLI test
suite, invoking the bundled CLI with recursive --json against a workspace
containing no pending changes and asserting the exact output is []. Retain the
existing handler-level test if useful, but ensure the CLI scenario exercises
project selection, argument parsing, and output wiring without a hand-built
selectedProjectsGraph.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 4b45f62c-ba78-4053-b926-f1adb5f98ad7
📒 Files selected for processing (6)
.changeset/version-json-empty-output.mdpnpm/crates/cli/src/cli_args/version.rspnpm/crates/cli/tests/version.rspnpm/crates/versioning/src/apply.rspnpm11/releasing/commands/src/version/index.tspnpm11/releasing/commands/test/version/index.test.ts
🚧 Files skipped from review as they are similar to previous changes (4)
- pnpm11/releasing/commands/src/version/index.ts
- .changeset/version-json-empty-output.md
- pnpm/crates/versioning/src/apply.rs
- pnpm/crates/cli/src/cli_args/version.rs
- In pnpm/crates/cli/tests/version.rs:
- Add version_json_outputs_release_details_in_json: exercises
the npm-style pnpm version patch --json path (lines 197-210 of
cli_args/version.rs that were missing coverage per Codecov)
- Strengthen version_recursive_json_prints_applied_releases_when_
pending_changes: assert arr.len() == 1 before indexing so the
test fails when extra releases are emitted (CodeRabbit suggestion)
- In pnpm11/releasing/commands/test/version/index.test.ts:
- Add 'should return JSON array with release details when json mode
and pending changes exist': covers the non-empty applied-releases
JSON path (the if (opts.json) branch at version/index.ts:276)
flagged by both Codecov and Greptile as untested
- Pass checkVersionPublished stub to skip network calls in the test
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@pnpm11/releasing/commands/test/version/index.test.ts`:
- Around line 537-540: Update the assertion in the parsed release test around
JSON.parse so it verifies the exact expected release count of one instead of
merely requiring a positive length; keep the existing array validation and
parsed[0] checks unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 44582890-8e22-451c-a450-9ac0b5557a8a
📒 Files selected for processing (2)
pnpm/crates/cli/tests/version.rspnpm11/releasing/commands/test/version/index.test.ts
Integrated-Benchmark Report (Linux)Commit: Each scenario reports direct installs and pnpr installs. Bencher consumes pacquet@HEAD and pnpr@HEAD. The tables below show mean ± σ; Bencher thresholds on the minimum latency, which is far less perturbed by shared-runner contention (noise only adds time). Scenario: Isolated linker: fresh restore, cold cache + cold store
BENCHMARK_REPORT.json{
"results": [
{
"command": "pacquet@HEAD",
"mean": 2.6903833811199998,
"stddev": 0.1997551740727163,
"median": 2.59483954432,
"user": 2.5289489599999997,
"system": 2.0088925800000004,
"min": 2.48125439932,
"max": 3.03617629832,
"times": [
2.56344094132,
2.5064449793200003,
2.48125439932,
3.03617629832,
2.52761762232,
2.62623814732,
2.87005513232,
2.8242619073200004,
2.9091238333200002,
2.55922055032
]
},
{
"command": "pacquet@main",
"mean": 2.77241437402,
"stddev": 0.18631135871416463,
"median": 2.75642330982,
"user": 2.7751180599999996,
"system": 2.15504888,
"min": 2.55019908432,
"max": 3.13489693732,
"times": [
2.7294641213200004,
2.6694809263200003,
2.80316498532,
3.01731737832,
2.61131024632,
2.78338249832,
2.60064256132,
2.8242850013200003,
3.13489693732,
2.55019908432
]
},
{
"command": "pnpr@HEAD",
"mean": 1.62102869122,
"stddev": 0.17083849272613033,
"median": 1.53119293382,
"user": 1.88237816,
"system": 1.7245800800000002,
"min": 1.46499107132,
"max": 1.8544197913200002,
"times": [
1.56229665432,
1.77333787332,
1.8544197913200002,
1.8228605633200001,
1.4678982473200002,
1.46499107132,
1.46748643932,
1.8117241183200001,
1.5000892133200001,
1.48518294032
]
},
{
"command": "pnpr@main",
"mean": 1.64906216392,
"stddev": 0.16829331809164183,
"median": 1.59343428532,
"user": 1.9255840599999998,
"system": 1.81341268,
"min": 1.47328982932,
"max": 1.92603874432,
"times": [
1.8614908153200003,
1.64836538132,
1.8240764203200002,
1.5384559643200002,
1.47328982932,
1.4774332553200002,
1.53850318932,
1.92603874432,
1.68239928732,
1.52056875232
]
}
]
}Scenario: Isolated linker: fresh restore, hot cache + hot store
BENCHMARK_REPORT.json{
"results": [
{
"command": "pacquet@HEAD",
"mean": 0.42751584024000006,
"stddev": 0.028617606592057778,
"median": 0.42404478774000004,
"user": 0.35294672,
"system": 0.7917620599999999,
"min": 0.39609791774,
"max": 0.47708756574000005,
"times": [
0.42753621374000006,
0.41433132574000003,
0.47206892074000006,
0.39767323174,
0.42055336174,
0.43845541674000005,
0.39609791774,
0.47708756574000005,
0.40104133274000003,
0.43031311574000003
]
},
{
"command": "pacquet@main",
"mean": 0.41168236474000003,
"stddev": 0.01544701936918176,
"median": 0.41120454724000005,
"user": 0.35601921999999997,
"system": 0.77067806,
"min": 0.38895685574000005,
"max": 0.43578106674000006,
"times": [
0.42835057074000005,
0.38895685574000005,
0.41024230274000006,
0.41216679174000004,
0.40454607574000007,
0.42435365674000003,
0.39435524674000005,
0.39798042174000003,
0.42009065874000007,
0.43578106674000006
]
},
{
"command": "pnpr@HEAD",
"mean": 0.43307646194,
"stddev": 0.030264555030452726,
"median": 0.44024144674000004,
"user": 0.36609132,
"system": 0.7832351599999999,
"min": 0.39633374774,
"max": 0.48176107874000007,
"times": [
0.45414120874,
0.46547099974000006,
0.40793666374000004,
0.40082096574000003,
0.48176107874000007,
0.44302498174000005,
0.39633374774,
0.39965882274000003,
0.43745791174000004,
0.44415823874000004
]
},
{
"command": "pnpr@main",
"mean": 0.4503258921400001,
"stddev": 0.029193369842814083,
"median": 0.44770268224000004,
"user": 0.37519362,
"system": 0.79321876,
"min": 0.41554203374000004,
"max": 0.51858818874,
"times": [
0.44602176774,
0.43373831874,
0.47038326374000006,
0.44938359674000006,
0.45841282874000006,
0.42202062874000007,
0.41554203374000004,
0.45383716674,
0.51858818874,
0.43533112774000005
]
}
]
}Scenario: Isolated linker: fresh install, cold cache + cold store
BENCHMARK_REPORT.json{
"results": [
{
"command": "pacquet@HEAD",
"mean": 3.2997118497000004,
"stddev": 0.09009421868748038,
"median": 3.3063737641,
"user": 3.2405707599999993,
"system": 2.33883602,
"min": 3.1430078841,
"max": 3.4566114881,
"times": [
3.3555815811,
3.3090038541,
3.4566114881,
3.3398715231,
3.2698068031,
3.3037436741,
3.3532496271,
3.2897469171,
3.1430078841,
3.1764951451
]
},
{
"command": "pacquet@main",
"mean": 3.3247563169000003,
"stddev": 0.0831514719225498,
"median": 3.3110298211,
"user": 3.377400759999999,
"system": 2.2925985199999994,
"min": 3.2199862101,
"max": 3.4683469801,
"times": [
3.2539200981,
3.4621940971,
3.2199862101,
3.3345124651,
3.3062369261,
3.3158227161,
3.4683469801,
3.2966382301,
3.2522886651,
3.3376167811
]
},
{
"command": "pnpr@HEAD",
"mean": 1.8164009677,
"stddev": 0.1718879676068243,
"median": 1.8410079401000001,
"user": 1.9172583599999995,
"system": 1.8303849200000002,
"min": 1.5528024771000002,
"max": 2.0774381401,
"times": [
1.7281054031,
2.0774381401,
1.8448677061,
1.6120698011,
2.0244156061,
1.9212229351,
1.8854478251,
1.8371481741000002,
1.5528024771000002,
1.6804916091000002
]
},
{
"command": "pnpr@main",
"mean": 1.6881432783,
"stddev": 0.19068008161285965,
"median": 1.6578849861,
"user": 1.63876916,
"system": 1.6114227199999998,
"min": 1.4731196731,
"max": 2.0063096661,
"times": [
1.9310525881,
1.6018539371,
2.0063096661,
1.5875490061000002,
1.5015829901000002,
1.8374049921000002,
1.7139160351,
1.4828916681,
1.7457522271,
1.4731196731
]
}
]
}Scenario: Isolated linker: fresh install, hot cache + hot store
BENCHMARK_REPORT.json{
"results": [
{
"command": "pacquet@HEAD",
"mean": 0.6489289206200001,
"stddev": 0.018759492400647063,
"median": 0.6533006906200001,
"user": 0.7973140200000001,
"system": 0.76538164,
"min": 0.61942907512,
"max": 0.67634507012,
"times": [
0.64494676612,
0.61942907512,
0.65567786512,
0.65391998912,
0.65704617212,
0.67222705212,
0.6526813921200001,
0.6295698361200001,
0.6274459881200001,
0.67634507012
]
},
{
"command": "pacquet@main",
"mean": 0.69698779372,
"stddev": 0.0688889376583153,
"median": 0.6752881206200001,
"user": 0.9019453199999999,
"system": 0.80834384,
"min": 0.6058946191200001,
"max": 0.82110334612,
"times": [
0.80559709012,
0.82110334612,
0.72485592012,
0.6513206181200001,
0.69866514412,
0.6571069431200001,
0.67929002912,
0.6058946191200001,
0.6547580151200001,
0.6712862121200001
]
},
{
"command": "pnpr@HEAD",
"mean": 0.34484942512000005,
"stddev": 0.016378514698948365,
"median": 0.34503016062,
"user": 0.22626981999999995,
"system": 0.6049888400000001,
"min": 0.32309455112,
"max": 0.36703068112000004,
"times": [
0.36663794312000003,
0.36703068112000004,
0.34706138412000004,
0.33953652312000004,
0.33071172412,
0.36116698712,
0.34329731112,
0.34676301012,
0.32319413612000003,
0.32309455112
]
},
{
"command": "pnpr@main",
"mean": 0.31664762782,
"stddev": 0.020643944398218855,
"median": 0.30794862162000003,
"user": 0.20346592000000002,
"system": 0.5412595400000001,
"min": 0.30018448312,
"max": 0.36969917912,
"times": [
0.31956802612,
0.30018448312,
0.36969917912,
0.30899219312000004,
0.30454191712,
0.33017824912000004,
0.31579980312,
0.30567974912,
0.30492762812,
0.30690505012
]
}
]
}Scenario: Isolated linker: fresh install, cold cache + hot store
BENCHMARK_REPORT.json{
"results": [
{
"command": "pacquet@HEAD",
"mean": 2.2655398033,
"stddev": 0.26542990705253594,
"median": 2.3212062326,
"user": 1.5686126999999999,
"system": 1.0852230600000001,
"min": 1.9348358121,
"max": 2.6154798411,
"times": [
1.9794416401,
1.9348358121,
1.9384774991,
2.5212631521,
2.6154798411,
2.4417727921,
2.3529845491,
2.5226769191,
2.2894279160999997,
2.0590379121
]
},
{
"command": "pacquet@main",
"mean": 2.2060401442,
"stddev": 0.15096464674083185,
"median": 2.1606055431,
"user": 1.5285519,
"system": 1.0910730599999998,
"min": 2.0491314250999997,
"max": 2.5044699411,
"times": [
2.0594745591,
2.1038747221,
2.3928462731,
2.1096708560999997,
2.2223620030999998,
2.2973605761,
2.0491314250999997,
2.1966262821,
2.1245848041,
2.5044699411
]
},
{
"command": "pnpr@HEAD",
"mean": 0.3953473081,
"stddev": 0.030459740194810046,
"median": 0.3909393096,
"user": 0.2840908,
"system": 0.66336406,
"min": 0.3591908561,
"max": 0.44683428210000004,
"times": [
0.3803985561,
0.3656084291,
0.40112028110000003,
0.36247306310000005,
0.39157959210000004,
0.3591908561,
0.42801684710000004,
0.44683428210000004,
0.39029902710000003,
0.4279521471
]
},
{
"command": "pnpr@main",
"mean": 0.4531896111,
"stddev": 0.041328330091165585,
"median": 0.4486515391,
"user": 0.3076784,
"system": 0.7549783600000001,
"min": 0.38538879810000004,
"max": 0.5149453501000001,
"times": [
0.4861642681,
0.4966275431,
0.47722656710000005,
0.45309493310000004,
0.4442081451,
0.4414334851,
0.5149453501000001,
0.40084262210000005,
0.38538879810000004,
0.4319643991
]
}
]
}Scenario: Isolated linker: fresh resolve, hot cache, offline
BENCHMARK_REPORT.json{
"results": [
{
"command": "pacquet@HEAD",
"mean": 0.70056756578,
"stddev": 0.1277264527522932,
"median": 0.68024834098,
"user": 0.6773700199999999,
"system": 0.13979037999999996,
"min": 0.5619488114800001,
"max": 0.9804901304800001,
"times": [
0.7010751524800001,
0.84670817348,
0.7207455984800001,
0.60843048048,
0.62625879348,
0.7083163354800001,
0.65942152948,
0.5619488114800001,
0.5922806524800001,
0.9804901304800001
]
},
{
"command": "pacquet@main",
"mean": 0.77305092858,
"stddev": 0.16699228905346752,
"median": 0.72233231298,
"user": 0.74443762,
"system": 0.15272228,
"min": 0.5871034954800001,
"max": 0.97485450248,
"times": [
0.6665552864800001,
0.58720247748,
0.72827152748,
0.9622054224800001,
0.9698325924800001,
0.97485450248,
0.92723185748,
0.61085902548,
0.71639309848,
0.5871034954800001
]
},
{
"command": "pnpr@HEAD",
"mean": 0.12482712678434785,
"stddev": 0.008843131838743088,
"median": 0.12296824348,
"user": 0.042268250434782606,
"system": 0.02144921478260869,
"min": 0.11211503348,
"max": 0.13927231948000002,
"times": [
0.11885171348000001,
0.13927231948000002,
0.13631535448,
0.11326240948,
0.12296824348,
0.11211503348,
0.13270694348,
0.11490242748,
0.13075372948,
0.13925066348,
0.11611638348,
0.12071452048,
0.12087951448,
0.13338476948,
0.12539642548000002,
0.12132352748000001,
0.12786641648,
0.13337862848,
0.11280732348,
0.11358468048,
0.13312167848,
0.12937303648,
0.12267817348
]
},
{
"command": "pnpr@main",
"mean": 0.12880580386095236,
"stddev": 0.008264472238303792,
"median": 0.13067014548,
"user": 0.04254412,
"system": 0.023580684761904763,
"min": 0.11623147448,
"max": 0.14568340248,
"times": [
0.12742617748,
0.11858420748000001,
0.12396379448,
0.13067014548,
0.13244119648,
0.13129126748,
0.12970986748000002,
0.13600467948,
0.13819333148000001,
0.13356229148,
0.11668794348,
0.13236802848,
0.13429621448,
0.12039745448,
0.11623147448,
0.11925019248,
0.12544669448,
0.13557880248,
0.13851762448000002,
0.14568340248,
0.11861709048
]
}
]
}Scenario: Isolated linker: fresh restore, cold cache + cold store + cold pnpr
BENCHMARK_REPORT.json{
"results": [
{
"command": "pacquet@HEAD",
"mean": 5.03557449158,
"stddev": 0.21468328811150614,
"median": 4.92604553108,
"user": 3.4882429999999993,
"system": 2.51982238,
"min": 4.87819027108,
"max": 5.43703480808,
"times": [
4.90545717908,
4.88804974408,
4.91251275508,
4.87819027108,
4.90392215908,
5.43703480808,
4.93957830708,
4.95028978708,
5.14594237808,
5.39476752708
]
},
{
"command": "pacquet@main",
"mean": 4.698396729680001,
"stddev": 0.16819963927441445,
"median": 4.63607147308,
"user": 2.3245303999999996,
"system": 1.79222638,
"min": 4.49114595308,
"max": 4.98130946008,
"times": [
4.7256570700800005,
4.62947655708,
4.98130946008,
4.91495752208,
4.49114595308,
4.64266638908,
4.53806825208,
4.61406826908,
4.86834729108,
4.5782705330799995
]
},
{
"command": "pnpr@HEAD",
"mean": 3.58412142328,
"stddev": 0.10796247212690237,
"median": 3.5722226515799997,
"user": 1.4547029000000002,
"system": 1.3754511799999996,
"min": 3.46838235508,
"max": 3.78528856408,
"times": [
3.51372286008,
3.6911372780800003,
3.46838235508,
3.78528856408,
3.47974540008,
3.4742092640799997,
3.6519651460800002,
3.63231806208,
3.61937703608,
3.52506826708
]
},
{
"command": "pnpr@main",
"mean": 3.55042775648,
"stddev": 0.08633701376444136,
"median": 3.52561130358,
"user": 1.5628194999999998,
"system": 1.5129952799999997,
"min": 3.46942601708,
"max": 3.77952879108,
"times": [
3.57521802608,
3.50002958908,
3.54847825108,
3.5167956930799997,
3.53442691408,
3.50581459108,
3.46942601708,
3.77952879108,
3.56132779908,
3.51323189308
]
}
]
} |
|
| Branch | pr/13222 |
| Testbed | pnpr |
⚠️ WARNING: No Threshold found!Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | Latency | milliseconds (ms) |
|---|---|---|
| isolated-linker.fresh-install.cold-cache.cold-store | 📈 view plot | 1,422.01 ms |
| isolated-linker.fresh-install.cold-cache.hot-store | 📈 view plot | 326.45 ms |
| isolated-linker.fresh-install.hot-cache.hot-store | 📈 view plot | 292.71 ms |
| isolated-linker.fresh-resolve.hot-cache.offline | 📈 view plot | 92.43 ms |
| isolated-linker.fresh-restore.cold-cache.cold-store | 📈 view plot | 1,350.88 ms |
| isolated-linker.fresh-restore.cold-cache.cold-store.cold-pnpr | 📈 view plot | 3,445.44 ms |
| isolated-linker.fresh-restore.hot-cache.hot-store | 📈 view plot | 265.69 ms |
Tighten parsed.length assertion from toBeGreaterThan(0) to toBe(1), matching the Rust side's assert_eq!(arr.len(), 1) pattern so the test fails when extra releases are unexpectedly emitted.
|
@coderabbitai review |
Action performedReview triggered.
|
|
@coderabbitai resume |
✅ Action performedReviews resumed. |
Remove the trailing comma from the single-line assert_eq! call. cargo fmt collapses multi-line assert_eq! into a form with a trailing comma, but the project's Dylint perfectionist lint forbids trailing commas in single-line macro invocations.
Summary
Fixes #13210.
With
enableGlobalVirtualStore: true, packages located in the global virtual store (<store-path>/links/...) could not resolve implicit/phantom devDependencies installed in the project's local fallback-hoist folder (node_modules/.pnpm/node_modules/) because Node.js module resolution resolves symlinks to their real path outside the project directory.This PR ensures that fallback-hoisted dependencies are properly linked into global virtual store package directories when
enableGlobalVirtualStoreis active.Squash Commit Body