Skip to content

chore: upgrade Rust agent crates to 0.46 and bump ic-asset to 0.28.0#4492

Merged
lwshang merged 5 commits intomasterfrom
lwshang/ic_asset_agent_update
Mar 6, 2026
Merged

chore: upgrade Rust agent crates to 0.46 and bump ic-asset to 0.28.0#4492
lwshang merged 5 commits intomasterfrom
lwshang/ic_asset_agent_update

Conversation

@lwshang
Copy link
Copy Markdown
Contributor

@lwshang lwshang commented Mar 5, 2026

Summary

This PR upgrades the Rust agent crates (ic-agent, ic-utils, ic-identity-hsm, ic-management-canister-types) from 0.45/0.5 to 0.46/0.7.1, bumps ic-asset and icx-asset to version 0.28.0, and updates the pocket-ic server/client to IC rev 142182f2.

Why this is needed: icp-cli depends on both ic-asset and the Rust agent crates. To upgrade the Rust agent crates in icp-cli, it needs an ic-asset release that is built against the same agent version. This PR produces that release (ic-asset 0.28.0) so icp-cli can consume it.

Changes

  • Bump ic-agent, ic-utils, ic-identity-hsm to 0.46.0 and ic-management-canister-types to 0.7.1
  • Bump ic-asset and icx-asset to 0.28.0
  • Fix compilation errors from the new crate versions:
    • Add log_memory_limit: None to CanisterSettings struct literals (new field in ic-management-canister-types 0.7.1)
    • Replace removed with_optional_* builder methods in create_canister.rs with conditional with_* calls
    • Add MgmtMethod::CanisterMetadata to the exhaustive match in canister/call.rs (new variant in ic-utils 0.46.0)
  • Allow OpenSSL license in deny.toml: ic-agent 0.46 upgraded reqwest to 0.13, which brought in rustls 0.23. That version of rustls uses aws-lc-rs as its default crypto backend (instead of ring), which requires aws-lc-sys — a crate licensed under ISC AND (Apache-2.0 OR ISC) AND OpenSSL.
  • Update pocket-ic server and client library to IC rev 142182f2: ic-management-canister-types 0.7.1 added log_memory_store_size to MemoryMetrics and log_memory_limit to DefiniteCanisterSettings in the canister_status response. The previous pocket-ic rev (b0a37d) predates these fields, causing e2e test failures due to Candid decode errors on required-but-absent fields. The new rev includes both fields.

Test plan

  • cargo check passes
  • cargo deny check licenses passes
  • e2e tests for canister_status pass with the updated pocket-ic

lwshang and others added 5 commits March 5, 2026 16:30
- Add `log_memory_limit: None` to `CanisterSettings` struct literals
  in migrate.rs, cmc.rs, and ic_attributes/mod.rs
- Replace removed `with_optional_*` builder methods in create_canister.rs
  with conditional `with_*` calls
- Add `MgmtMethod::CanisterMetadata` to the match arm in call.rs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
aws-lc-sys (pulled in via ic-agent 0.46 → reqwest 0.13 → rustls 0.23
→ aws-lc-rs → aws-lc-sys) uses the OpenSSL license.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@lwshang lwshang marked this pull request as ready for review March 6, 2026 02:07
@lwshang lwshang requested a review from a team as a code owner March 6, 2026 02:07
@lwshang lwshang merged commit 60301a9 into master Mar 6, 2026
144 of 146 checks passed
@lwshang lwshang deleted the lwshang/ic_asset_agent_update branch March 6, 2026 16:15
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.

2 participants