Skip to content

perf(pm): require manifest provider for builder#3041

Closed
elrrrrrrr wants to merge 1 commit into
perf/pm-split-resolver-placement-helpersfrom
perf/pm-split-resolver-builder-provider-bound
Closed

perf(pm): require manifest provider for builder#3041
elrrrrrrr wants to merge 1 commit into
perf/pm-split-resolver-placement-helpersfrom
perf/pm-split-resolver-builder-provider-bound

Conversation

@elrrrrrrr
Copy link
Copy Markdown
Contributor

Summary

  • require ManifestProvider for resolver builder entry points
  • keep the current preload and BFS execution path unchanged
  • align public resolver APIs with the upcoming demand mainloop, which schedules provider jobs directly

Validation

  • cargo fmt
  • cargo check -p utoo-ruborist
  • cargo test -p utoo-ruborist resolver::builder::tests::test_build -- --nocapture
  • cargo test -p utoo-ruborist resolver::builder::tests::test_resolve_high_level_api -- --nocapture
  • cargo clippy --all-targets -- -D warnings --no-deps

Split Plan

Part of the resolver stack split from source PR #3028. This PR is the final type-bound preparation before replacing preload+BFS with the demand manifest mainloop.

@elrrrrrrr elrrrrrrr added A-Pkg Manager Area: Package Manager benchmark Run pm-bench on PR labels May 21, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the dependency resolver in crates/ruborist/src/resolver/builder.rs by replacing the RegistryClient trait bound with ManifestProvider and adding a Send requirement for the error type across several public functions, including build_deps and resolve. These changes are implemented using where clauses for improved readability. I have no feedback to provide.

@elrrrrrrr elrrrrrrr force-pushed the perf/pm-split-resolver-placement-helpers branch from b9501b4 to ab1867e Compare May 21, 2026 22:32
@elrrrrrrr elrrrrrrr force-pushed the perf/pm-split-resolver-builder-provider-bound branch from 68f5209 to 845d350 Compare May 21, 2026 22:32
@elrrrrrrr elrrrrrrr force-pushed the perf/pm-split-resolver-placement-helpers branch from ab1867e to e677e3a Compare May 21, 2026 23:09
@elrrrrrrr elrrrrrrr force-pushed the perf/pm-split-resolver-builder-provider-bound branch from 845d350 to 82721ee Compare May 21, 2026 23:09
@elrrrrrrr elrrrrrrr force-pushed the perf/pm-split-resolver-placement-helpers branch from e677e3a to 48257d5 Compare May 21, 2026 23:39
@elrrrrrrr elrrrrrrr force-pushed the perf/pm-split-resolver-builder-provider-bound branch from 82721ee to 0520cea Compare May 21, 2026 23:39
@github-actions
Copy link
Copy Markdown

📊 pm-bench-phases · 7bfeaf9 · linux (ubuntu-latest)

Workflow run — ant-design

PMs: utoo (this branch) · utoo-npm (latest published) · bun (latest)

npmjs.org

p0_full_cold

PM wall ±σ user sys RSS pgMinor
bun 9.98s 0.28s 10.30s 10.17s 577M 312.9K
utoo-next 8.21s 0.13s 10.49s 12.21s 1007M 125.9K
utoo-npm 9.83s 1.48s 11.03s 12.75s 967M 123.5K
utoo 8.78s 0.26s 11.08s 12.54s 1004M 129.8K
PM vCtx iCtx netRX netTX cache node_mod lock
bun 24.3K 17.0K 1.19G 7M 1.86G 1.75G 1M
utoo-next 127.1K 96.9K 1.16G 5M 1.71G 1.70G 2M
utoo-npm 162.3K 118.3K 1.16G 6M 1.71G 1.70G 2M
utoo 141.6K 84.0K 1.17G 6M 1.71G 1.70G 2M

p1_resolve

PM wall ±σ user sys RSS pgMinor
bun 2.88s 0.05s 3.87s 1.15s 502M 167.7K
utoo-next 3.37s 0.04s 5.23s 1.98s 606M 87.0K
utoo-npm 4.56s 1.89s 5.33s 2.37s 618M 80.9K
utoo 3.35s 0.10s 5.77s 2.15s 625M 93.3K
PM vCtx iCtx netRX netTX cache node_mod lock
bun 16.1K 2.9K 202M 3M 108M - 1M
utoo-next 58.9K 79.7K 200M 3M 7M 3M 2M
utoo-npm 85.6K 97.0K 200M 3M 7M 3M 2M
utoo 63.2K 81.7K 202M 3M 7M 3M 2M

p3_cold_install

PM wall ±σ user sys RSS pgMinor
bun 7.10s 0.30s 6.35s 9.79s 549M 196.9K
utoo-next 8.33s 1.86s 5.29s 11.02s 492M 65.0K
utoo-npm 6.74s 0.15s 5.29s 10.83s 470M 59.0K
utoo 8.94s 2.14s 5.24s 10.91s 509M 63.6K
PM vCtx iCtx netRX netTX cache node_mod lock
bun 10.6K 8.2K 1019M 5M 1.76G 1.76G 1M
utoo-next 133.2K 57.0K 990M 4M 1.70G 1.70G 2M
utoo-npm 120.7K 55.6K 990M 3M 1.70G 1.70G 2M
utoo 130.4K 55.9K 990M 4M 1.70G 1.70G 2M

p4_warm_link

PM wall ±σ user sys RSS pgMinor
bun 3.28s 0.14s 0.19s 2.44s 134M 32.6K
utoo-next 2.27s 0.10s 0.48s 3.75s 79M 18.0K
utoo-npm 2.36s 0.15s 0.48s 3.79s 80M 18.4K
utoo 2.18s 0.15s 0.48s 3.75s 79M 18.5K
PM vCtx iCtx netRX netTX cache node_mod lock
bun 298 29 5M 31K 1.91G 1.75G 1M
utoo-next 41.6K 19.0K 11K 29K 1.70G 1.70G 2M
utoo-npm 43.0K 19.4K 11K 11K 1.70G 1.70G 2M
utoo 41.8K 19.8K 12K 9K 1.71G 1.70G 2M

npmmirror.com: no output captured.

@elrrrrrrr
Copy link
Copy Markdown
Contributor Author

Closing this temporary fine-grained draft split. We are replacing it with a smaller 9-PR review stack based on the source PRs.

@elrrrrrrr elrrrrrrr closed this May 25, 2026
@elrrrrrrr elrrrrrrr deleted the perf/pm-split-resolver-builder-provider-bound branch May 25, 2026 07:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Pkg Manager Area: Package Manager benchmark Run pm-bench on PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant