Skip to content

chore: bump ic-management-canister-types to 0.8.0 and agent-rs to 0.49.0#10756

Draft
mraszyk wants to merge 8 commits into
masterfrom
martin/bump-mgmt-canister-types-and-agent-rs
Draft

chore: bump ic-management-canister-types to 0.8.0 and agent-rs to 0.49.0#10756
mraszyk wants to merge 8 commits into
masterfrom
martin/bump-mgmt-canister-types-and-agent-rs

Conversation

@mraszyk

@mraszyk mraszyk commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

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.49.0, 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 VetKDKeyId from ic-management-canister-types 0.7.1. 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.

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>
@mraszyk mraszyk added the CI_ALL_BAZEL_TARGETS Runs all bazel targets label Jul 13, 2026
@github-actions github-actions Bot added the chore label Jul 13, 2026
mraszyk and others added 5 commits July 13, 2026 14:11
…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(

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

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).

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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-types to 0.8.0 and agent-rs crates (ic-agent, ic-utils, ic-transport-types, ic-identity-hsm) to 0.49.0, updating Cargo + Bazel lockfiles accordingly.
  • Update management canister call sites to the newer ic_utils calling style (notably canister_status via .as_update().call()).
  • Add/propagate newly introduced fields/types (snapshot_visibility in settings, permissions in delegations) and bridge VetKD key-id type incompatibilities in ic-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.

Comment thread Cargo.toml
@mraszyk mraszyk changed the title chore: bump ic-management-canister-types to 0.8.0 and agent-rs to 0.48.1 chore: bump ic-management-canister-types to 0.8.0 and agent-rs to 0.49.0 Jul 14, 2026
mraszyk added 2 commits July 14, 2026 11:18
…nister-types-and-agent-rs

# Conflicts:
#	Cargo.Bazel.json.lock
…nister-types-and-agent-rs

# Conflicts:
#	Cargo.Bazel.json.lock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore CI_ALL_BAZEL_TARGETS Runs all bazel targets

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants