chore(deps): refresh Cargo.lock and re-persist canbench results - #245
Merged
Merged
Conversation
Landing the dependency refresh on its own, ahead of the v0.4.0 release PR. release-plz sets `dependencies_update = true`, so the release PR carries a `cargo update` of 74 crates, which shifts instruction counts and leaves `canbench_results.yml` stale. That baseline cannot be fixed inside the release PR: it is bot-authored, and `canbench_results.yml` is not in `.github/repo_policies/BOT_APPROVED_FILES` — nor can the whitelist itself be widened from a bot PR without self-authorizing. Reverting only Cargo.lock and re-running canbench returns every benchmark to baseline (max +0.19%, noise), so the whole delta is dependency-driven and no canister code regressed. The wasm-path bumps behind it are num-bigint 0.4.6 -> 0.4.8 (candid's Nat/Int backend) and ic_principal 0.1.3 -> 0.1.5 (via candid and ic-stable-structures). Net effect is favourable: 4 improvements against 1 regression, median -0.21%. bench_write_events::Settling rises 4.39% (29.38M instructions) while the order-book queries drop 13-23% and get_my_trades 2.66%. Heap and stable-memory usage are unchanged across all 16 benchmarks. The lockfile is release-plz's resolution verbatim, with only the two workspace-member versions kept at 0.3.0, so merging main into the release PR afterwards is conflict-free. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Separates the v0.4.0 release’s dependency refresh into its own PR by updating the workspace lockfile and re-persisting the canister canbench baseline, so benchmark deltas can be reviewed independently and the release PR can stay focused on version/changelog changes.
Changes:
- Refreshes
Cargo.lockwith the dependency resolution produced by release-plz. - Updates
canister/canbench_results.ymlto match the persistedcanbenchv0.4.1 baseline under the refreshed dependency set.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| Cargo.lock | Updates resolved crate versions/checksums to the refreshed dependency set. |
| canister/canbench_results.yml | Re-persisted benchmark instruction counts/metrics to align with the refreshed lockfile. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
|
mbjorkqvist
marked this pull request as ready for review
August 6, 2026 11:00
|
✅ No security or compliance issues detected. Reviewed everything up to 4ad0ff7. Security Overview
Detected Code Changes
|
gregorydemay
approved these changes
Aug 12, 2026
gregorydemay
left a comment
Contributor
There was a problem hiding this comment.
Thanks @mbjorkqvist !
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.
Purpose
Land the dependency refresh that the v0.4.0 release PR (#244) would otherwise carry, so the benchmark delta is reviewable on its own and the release PR is left touching only version bumps and changelogs.
release-plz.tomlsetsdependencies_update = true, so the release PR includes acargo updateacross 74 crates. That shifts instruction counts and leavescanister/canbench_results.ymlstale, failing the benchmark gate. The baseline cannot be re-persisted inside #244: it is bot-authored, andcanbench_results.ymlis not in.github/repo_policies/BOT_APPROVED_FILES— and the whitelist itself cannot be widened from a bot PR without self-authorizing, which is exactly what that control prevents.The benchmark delta is entirely dependency-driven
Reverting only
Cargo.locktomain's version and re-running canbench on the same tree returns every benchmark to baseline:The lockfile was the only variable, so no canister code regressed. The two bumps in the canister's wasm path are
num-bigint0.4.6 → 0.4.8 (candid'sNat/Intbackend) andic_principal0.1.3 → 0.1.5 (pulled in by bothcandidandic-stable-structures). The rest are host-only build and test dependencies.Net effect is favourable — 4 improvements against 1 regression, median −0.21%:
bench_write_events::Settlingbench_write_eventsbench_get_order_book_depth_maxbench_get_order_book_depth_defaultbench_get_order_book_tickerbench_get_my_tradesHeap and stable-memory usage are unchanged across all 16 benchmarks.
Note on the lockfile
This is release-plz's own resolution verbatim, with only the two workspace-member versions kept at
0.3.0, rather than a freshcargo update. A re-run could resolve different versions and would both conflict with #244'slockfile and invalidate this baseline. Keeping it identical means merging
maininto #244 afterwards is conflict-free, andcanbench_results.ymldrops out of that PR's diff entirely.