Skip to content

Plan the complete Rust dependency upgrade - #166

Open
aram356 wants to merge 2 commits into
mainfrom
prfection/165-rust-dependencies-plan
Open

aram356 wants to merge 2 commits into
mainfrom
prfection/165-rust-dependencies-plan

Conversation

@aram356

@aram356 aram356 commented Nov 12, 2026

Copy link
Copy Markdown
Collaborator

PRfection phase: plan

Purpose

Plan the complete Rust dependency upgrade for #165 under #12. This PR contains only the reviewed specification and ordered implementation plan; it changes no dependency, production behavior, test selection, resource limit or readiness claim.

The maintainer approved the written spec, Unicode 16 matching-policy proposal and a separate coordinated EdgeZero upgrade first. Implementation and merging remain separate decisions.

Documents

Sequence And Boundaries

  1. Deliver the reviewed SDK prerequisite in EdgeZero #467, then adopt its immutable official-repository revision. Upgrade the complete Rust dependency graph #165 records a native blocked-by relationship. Do not edit the active PR #275 checkout or switch to unrelated main and lose its retained-outbound contract.
  2. Inventory every resolved package ID, then upgrade all project-owned stable requirements, compatible transitive dependencies and relevant Git SDKs. The dated audit found 23 requirement changes and 147 compatible lockfile changes; these are discovery results, not upgraded-build evidence.
  3. Preserve vendor patch replay and independent resource/codec/cookie controls. Migrate Unicode folding with the official Unicode 16 C/S oracle across all 1,112,064 scalars, keeping historical captures unchanged.
  4. Execute the complete native/feature/compiler/producer/guest/provider acceptance matrix before calling the implementation complete. Existing qualification gaps, workload limits, resource ceilings and packaging budgets remain unchanged.

The separate SDK task includes the provider interfaces, shared HTTP/JSON types, native HTTP and codec tuple. Spin 8 is a candidate subject to ABI, progress and ownership verification, not a replacement justified by a tag alone. PR #275 advanced during planning; its observed shared pins remained unchanged. Freeze the reviewed carrying revision rather than chasing its tip during acceptance.

Review And Validation

Author-side spec and plan reviews approved planning publication. Their review is not a formal GitHub approval, implementation authorization or merge exception. The plan incorporates the explicit executable SDK-pin sweep in the CI locator and provider harness.

Local baseline ran against bc2193096920752cf3b149a1496f9deee1432f8f, SDK 598f0a2a490eb83dd31c06c024a0cefa8e049628, with only these planning documents added. No upgraded graph was tested. Formatting and strict workspace Clippy exited 0.

Local scope Passed Failed Existing ignored
Default workspace 6,565 0 19
Secure bidder/exchange/core graph 3,888 0 11
Insecure workspace 6,362 0 19
Feature-enabled config data 184 0 0
Standalone CLI 932 0 3

Counts are aggregated within each scope, not unique tests across feature graphs. The existing two heavy-producer filters remain owned by the mandatory separate producer lane; no exclusion, assertion or ignore changed here.

Executed native commands, all exit 0:

cargo fmt --all --check
cargo clippy --locked --offline --workspace --all-targets -- -D warnings
cargo test --locked --offline --workspace --all-targets --no-fail-fast -- --skip tests::selected_schema_source_producer_records_exact_real_dispatch_without_qualification --skip tests::controlled_native_acceptance_requires_all_producers_but_never_completes_the_full_catalog
cargo test --locked --offline -p auctioneer-bidder -p auctioneer-exchange -p auctioneer-core --all-targets --no-fail-fast
cargo test --locked --offline --workspace --all-targets --features insecure-bidders --exclude auctioneer-config-data --no-fail-fast -- --skip tests::selected_schema_source_producer_records_exact_real_dispatch_without_qualification --skip tests::controlled_native_acceptance_requires_all_producers_but_never_completes_the_full_catalog
cargo test --locked --offline -p auctioneer-config-data --features 'insecure-bidders test-harness-override' --lib --test codegen --test gvl_archive --test smoke --test url_safety --test bidder_bindings --test bidder_storage
cargo test --locked --offline -p auctioneer-cli --all-targets --no-fail-fast -- --skip tests::selected_schema_source_producer_records_exact_real_dispatch_without_qualification --skip tests::controlled_native_acceptance_requires_all_producers_but_never_completes_the_full_catalog

Representative real result lines, one final summary from each of those five test scopes respectively:

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.83s
test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.31s
test result: ok. 87 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.47s

The earlier parity attempt was interrupted before its final summary and is not counted as passing. Its fresh resumed invocation cargo test --locked --offline -p auctioneer-cli --test resource_boot_parity exited 0:

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 229.59s

Raw-JSON fixture/rejection controls, batch-rebase and roster/rejection controls exited 0. Representative actual gate output:

ok: 203 raw JSON fixture(s) across 56 file(s), all budgeted
batch-API rebase clean
roster arithmetic consistent; 139 members enumerated, uniquely owned, every counted label discharged
all roster-gate fixture cases behaved

bash scripts/check-secure-usersync.sh and git diff --check exited 0. The secure production callback control reported:

test tests::secure_production_binary_rejects_loopback_callback_config ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 12 filtered out; finished in 0.98s

Full hosted compiler/producer/guest/provider checks remain pending and mandatory. They must be read independently from local ordinary scopes; this planning PR does not certify any proposed dependency tuple or claim that the full current-head matrix has already passed.

Handoff

Head: 71f5b639419837e21354b07d428bf1b50c9c670e. Current-head staged/committed diff checks passed, and the diff contains exactly the two documents above. Account mode: one-account; acting login and PR author aram356. Branch prfection/165-rust-dependencies-plan, owned worktree .worktrees/prfection/165-rust-dependencies-plan. User Fastly/local configuration and unrelated worktrees are preserved. No resources removed; the open planning worktree, branch and local verification logs are retained. No cleanup or merge is part of this handoff.

Next actor: REVIEWER for this planning PR, with separately reviewed upstream delivery tracked in EdgeZero #467 before Auctioneer implementation.

@aram356

aram356 commented Nov 12, 2026

Copy link
Copy Markdown
Collaborator Author

CREATOR: Spec and plan published for planning review at 71f5b639419837e21354b07d428bf1b50c9c670e.

The diff contains exactly the two documents linked in the PR body. Author-side document reviews approved planning publication; they are not formal GitHub approval. The unchanged native baseline and resumed boot-parity/repository gates passed, with commands, counts and real result lines in the description. All hosted matrix checks are currently running, not reported as passed.

Implementation remains gated on separately reviewed EdgeZero #467 delivery and approval of this plan. No dependency version, production behavior, test selection or resource limit changed, and no merge is authorized. Account mode is one-account; acting login and PR author are aram356.

@aram356 aram356 self-assigned this Nov 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant