chore: bump ic-management-canister-types to 0.8.0 and agent-rs to 0.49.0#10756
chore: bump ic-management-canister-types to 0.8.0 and agent-rs to 0.49.0#10756mraszyk wants to merge 8 commits into
Conversation
Bump `ic-management-canister-types` 0.7.1 -> 0.8.0 and the agent-rs crates (`ic-agent`, `ic-utils`, `ic-transport-types`, `ic-identity-hsm`) 0.47.3 -> 0.48.1, and fix the resulting build breakages: - ic-pub-key: `ic-vetkeys` 0.7.0 is still built against `ic-management-canister-types` 0.7.1, so `for_mainnet_key` expects the 0.7.1 `VetKDKeyId`. Bridge the two by rebuilding the key id from its fields via `ic-cdk-management-canister` (added as an optional dependency gated behind the `vetkeys` feature). - canister_test: add the new `snapshot_visibility` field to `CanisterSettings`. - system-test driver: add the new `permissions` field to `ic_agent::identity::Delegation`. - consensus upgrade test: `ic_utils` still depends on the older `ic-management-canister-types`, so call the management canister directly via the agent instead of its typed `take_canister_snapshot` helper. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…aces The ic-management-canister-types 0.8.0 bump added a new snapshot_visibility field to CanisterSettings and DefiniteCanisterSettings. Sync the affected .did files to fix the candid interface compatibility tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ister directly The previous comment said `ic_utils` depends on an *older* `ic-management-canister-types`. It actually depends on the same 0.8.0 version from crates.io, which Cargo treats as a distinct crate from this workspace's local path copy, so the `TakeCanisterSnapshotArgs` types don't unify. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nister-types-and-agent-rs # Conflicts: # Cargo.Bazel.json.lock # Cargo.lock
| ); | ||
| assert_http_submit_fails( | ||
| mgr.canister_status(&canister_c).call().await, | ||
| assert_reject( |
There was a problem hiding this comment.
this change does not force rejection by the node receiving the HTTP request, but this is fine since what matters that the call is rejected, not whether the reject is uncertified (by a single node -- this is what we asserted before) or certified (this is what we also allow now).
There was a problem hiding this comment.
Pull request overview
Updates core IC/agent dependencies (ic-management-canister-types and agent-rs crates) and adapts system tests, canister interfaces, and helper utilities to the updated APIs/types to restore successful builds.
Changes:
- Bump
ic-management-canister-typesto0.8.0and agent-rs crates (ic-agent,ic-utils,ic-transport-types,ic-identity-hsm) to0.49.0, updating Cargo + Bazel lockfiles accordingly. - Update management canister call sites to the newer
ic_utilscalling style (notablycanister_statusvia.as_update().call()). - Add/propagate newly introduced fields/types (
snapshot_visibilityin settings,permissionsin delegations) and bridge VetKD key-id type incompatibilities inic-pub-key.
Reviewed changes
Copilot reviewed 16 out of 19 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| rs/tests/query_stats/lib/src/aggregation.rs | Updates management canister status call to new ic_utils call style. |
| rs/tests/execution/general_execution_tests/canister_lifecycle.rs | Adjusts canister status calls and rejection assertions for updated agent/utils behavior. |
| rs/tests/execution/canister_migration_test.rs | Updates canister_status invocation to new update-call pattern. |
| rs/tests/driver/src/util/delegations.rs | Populates new Delegation.permissions field (set to None). |
| rs/tests/driver/src/util.rs | Updates canister_status usage and removes now-unneeded AsyncCall import in this file. |
| rs/tests/consensus/upgrade/common.rs | Calls management canister snapshot API directly via ic-agent to avoid type-crate mismatch. |
| rs/tests/ckbtc/src/adapter.rs | Updates management canister status call to explicit update + call pattern. |
| rs/rust_canisters/canister_test/src/canister.rs | Adds new snapshot_visibility field to settings construction. |
| rs/pocket_ic_server/tests/test.rs | Updates canister status calls to explicit update + call pattern. |
| rs/nns/cmc/cmc.did | Adds snapshot_visibility type and field to CanisterSettings. |
| rs/dogecoin/ckdoge/minter/ckdoge_minter.did | Adds snapshot_visibility type and field to canister settings record. |
| packages/ic-pub-key/src/lib.rs | Bridges incompatible VetKDKeyId types by rebuilding via ic-cdk-management-canister. |
| packages/ic-pub-key/Cargo.toml | Adds optional ic-cdk-management-canister dependency under vetkeys feature. |
| packages/ic-pub-key/BUILD.bazel | Adds Bazel dependency for ic-cdk-management-canister. |
| Cargo.toml | Bumps workspace dependency versions; adds ic-cdk-management-canister. |
| Cargo.lock | Updates resolved versions/graphs for bumped crates. |
| Cargo.Bazel.toml.lock | Updates Bazel Cargo lock metadata for bumped crates. |
| Cargo.Bazel.json.lock | Updates Bazel JSON lock content for bumped crates. |
| bazel/rust.MODULE.bazel | Updates Bazel crate specs to bumped versions and adds ic-cdk-management-canister. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…nister-types-and-agent-rs # Conflicts: # Cargo.Bazel.json.lock
…nister-types-and-agent-rs # Conflicts: # Cargo.Bazel.json.lock
Bump
ic-management-canister-types0.7.1 -> 0.8.0 and the agent-rs crates (ic-agent,ic-utils,ic-transport-types,ic-identity-hsm) 0.47.3 -> 0.49.0, and fix the resulting build breakages:ic-vetkeys0.7.0 is still built againstic-management-canister-types0.7.1, sofor_mainnet_keyexpectsVetKDKeyIdfromic-management-canister-types0.7.1. Bridge the two by rebuilding the key id from its fields viaic-cdk-management-canister(added as an optional dependency gated behind thevetkeysfeature).snapshot_visibilityfield toCanisterSettings.permissionsfield toic_agent::identity::Delegation.ic_utilsstill depends on the olderic-management-canister-types, so call the management canister directly via the agent instead of its typedtake_canister_snapshothelper.