From 2e5748afa6a7e20159513840af7a74749b717e4f Mon Sep 17 00:00:00 2001 From: Marco Walz Date: Tue, 9 Jun 2026 17:51:28 +0200 Subject: [PATCH 1/5] chore: bump icp-dev-env to 0.3.1 and asset-canister recipe to v2.2.1 Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/hello_world.yml | 4 ++-- .github/workflows/vetkeys-basic-bls-signing.yml | 4 ++-- .github/workflows/vetkeys-basic-ibe.yml | 4 ++-- .github/workflows/vetkeys-basic-timelock-ibe.yml | 2 +- .github/workflows/vetkeys-encrypted-notes-app-vetkd.yml | 4 ++-- .../workflows/vetkeys-password-manager-with-metadata.yml | 4 ++-- .github/workflows/vetkeys-password-manager.yml | 4 ++-- .github/workflows/who_am_i.yml | 4 ++-- AGENTS.md | 6 +++--- motoko/hello_world/icp.yaml | 2 +- motoko/who_am_i/icp.yaml | 2 +- rust/hello_world/icp.yaml | 2 +- rust/vetkeys/basic_bls_signing/motoko/icp.yaml | 2 +- rust/vetkeys/basic_bls_signing/rust/icp.yaml | 2 +- rust/vetkeys/basic_ibe/motoko/icp.yaml | 2 +- rust/vetkeys/basic_ibe/rust/icp.yaml | 2 +- rust/vetkeys/basic_timelock_ibe/icp.yaml | 2 +- rust/vetkeys/encrypted_notes_app_vetkd/motoko/icp.yaml | 2 +- rust/vetkeys/encrypted_notes_app_vetkd/rust/icp.yaml | 2 +- rust/vetkeys/password_manager/motoko/icp.yaml | 2 +- rust/vetkeys/password_manager/rust/icp.yaml | 2 +- rust/vetkeys/password_manager_with_metadata/motoko/icp.yaml | 2 +- rust/vetkeys/password_manager_with_metadata/rust/icp.yaml | 2 +- rust/who_am_i/icp.yaml | 2 +- 24 files changed, 33 insertions(+), 33 deletions(-) diff --git a/.github/workflows/hello_world.yml b/.github/workflows/hello_world.yml index b2988c222..4cb0402c5 100644 --- a/.github/workflows/hello_world.yml +++ b/.github/workflows/hello_world.yml @@ -17,7 +17,7 @@ concurrency: jobs: motoko-hello_world: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-motoko:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-motoko:0.3.1 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - name: Deploy and test @@ -29,7 +29,7 @@ jobs: rust-hello_world: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-rust:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-rust:0.3.1 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - name: Deploy and test diff --git a/.github/workflows/vetkeys-basic-bls-signing.yml b/.github/workflows/vetkeys-basic-bls-signing.yml index 20b140f9e..a3e850047 100644 --- a/.github/workflows/vetkeys-basic-bls-signing.yml +++ b/.github/workflows/vetkeys-basic-bls-signing.yml @@ -16,7 +16,7 @@ concurrency: jobs: rust: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-rust:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-rust:0.3.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: @@ -26,7 +26,7 @@ jobs: run: icp network start -d && icp deploy motoko: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-motoko:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-motoko:0.3.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: diff --git a/.github/workflows/vetkeys-basic-ibe.yml b/.github/workflows/vetkeys-basic-ibe.yml index a64308380..da55075fe 100644 --- a/.github/workflows/vetkeys-basic-ibe.yml +++ b/.github/workflows/vetkeys-basic-ibe.yml @@ -16,7 +16,7 @@ concurrency: jobs: rust: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-rust:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-rust:0.3.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: @@ -26,7 +26,7 @@ jobs: run: icp network start -d && icp deploy motoko: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-motoko:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-motoko:0.3.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: diff --git a/.github/workflows/vetkeys-basic-timelock-ibe.yml b/.github/workflows/vetkeys-basic-timelock-ibe.yml index 941cd3606..16a419b15 100644 --- a/.github/workflows/vetkeys-basic-timelock-ibe.yml +++ b/.github/workflows/vetkeys-basic-timelock-ibe.yml @@ -16,7 +16,7 @@ concurrency: jobs: rust: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-rust:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-rust:0.3.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: diff --git a/.github/workflows/vetkeys-encrypted-notes-app-vetkd.yml b/.github/workflows/vetkeys-encrypted-notes-app-vetkd.yml index 8751b25d9..ad8aded29 100644 --- a/.github/workflows/vetkeys-encrypted-notes-app-vetkd.yml +++ b/.github/workflows/vetkeys-encrypted-notes-app-vetkd.yml @@ -16,7 +16,7 @@ concurrency: jobs: rust: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-rust:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-rust:0.3.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: @@ -26,7 +26,7 @@ jobs: run: icp network start -d && icp deploy motoko: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-motoko:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-motoko:0.3.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: diff --git a/.github/workflows/vetkeys-password-manager-with-metadata.yml b/.github/workflows/vetkeys-password-manager-with-metadata.yml index 95dfa5679..c08a4713a 100644 --- a/.github/workflows/vetkeys-password-manager-with-metadata.yml +++ b/.github/workflows/vetkeys-password-manager-with-metadata.yml @@ -16,7 +16,7 @@ concurrency: jobs: rust: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-rust:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-rust:0.3.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: @@ -26,7 +26,7 @@ jobs: run: icp network start -d && icp deploy motoko: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-motoko:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-motoko:0.3.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: diff --git a/.github/workflows/vetkeys-password-manager.yml b/.github/workflows/vetkeys-password-manager.yml index 791677e07..19d88e0d7 100644 --- a/.github/workflows/vetkeys-password-manager.yml +++ b/.github/workflows/vetkeys-password-manager.yml @@ -16,7 +16,7 @@ concurrency: jobs: rust: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-rust:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-rust:0.3.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: @@ -26,7 +26,7 @@ jobs: run: icp network start -d && icp deploy motoko: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-motoko:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-motoko:0.3.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: diff --git a/.github/workflows/who_am_i.yml b/.github/workflows/who_am_i.yml index fbcfffe2e..ec3b0eb5a 100644 --- a/.github/workflows/who_am_i.yml +++ b/.github/workflows/who_am_i.yml @@ -17,7 +17,7 @@ concurrency: jobs: motoko-who_am_i: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-motoko:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-motoko:0.3.1 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - name: Deploy and test @@ -29,7 +29,7 @@ jobs: rust-who_am_i: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-rust:0.1.0 + container: ghcr.io/dfinity/icp-dev-env-rust:0.3.1 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - name: Deploy and test diff --git a/AGENTS.md b/AGENTS.md index f3c8281e5..fa8b0e983 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -108,7 +108,7 @@ canisters: - name: frontend recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: frontend/dist build: @@ -129,7 +129,7 @@ canisters: - name: frontend recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: frontend/dist build: @@ -314,7 +314,7 @@ Rust: `icp build backend && candid-extractor target/wasm32-unknown-unknown/relea ## Pending items (do not resolve prematurely) ### Container images -Images are published at `ghcr.io/dfinity/icp-dev-env-{motoko,rust,all}`. All devcontainer configs and CI workflows reference the pinned tag (e.g. `0.1.0`). When a new release is cut, update the tag in: +Images are published at `ghcr.io/dfinity/icp-dev-env-{motoko,rust,all}`. All devcontainer configs and CI workflows reference the pinned tag (e.g. `0.3.1`). When a new release is cut, update the tag in: - `.devcontainer/devcontainer.json` - `.github/workflows/*.yml` diff --git a/motoko/hello_world/icp.yaml b/motoko/hello_world/icp.yaml index 3c1670447..757f68466 100644 --- a/motoko/hello_world/icp.yaml +++ b/motoko/hello_world/icp.yaml @@ -7,7 +7,7 @@ canisters: - name: frontend recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: frontend/dist build: diff --git a/motoko/who_am_i/icp.yaml b/motoko/who_am_i/icp.yaml index 4cd8aef9c..6ba649b67 100644 --- a/motoko/who_am_i/icp.yaml +++ b/motoko/who_am_i/icp.yaml @@ -12,7 +12,7 @@ canisters: - name: frontend recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: src/frontend/dist build: diff --git a/rust/hello_world/icp.yaml b/rust/hello_world/icp.yaml index da0587413..4d63b8094 100644 --- a/rust/hello_world/icp.yaml +++ b/rust/hello_world/icp.yaml @@ -8,7 +8,7 @@ canisters: - name: frontend recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: frontend/dist build: diff --git a/rust/vetkeys/basic_bls_signing/motoko/icp.yaml b/rust/vetkeys/basic_bls_signing/motoko/icp.yaml index d2f7ab3b5..6246daa4a 100644 --- a/rust/vetkeys/basic_bls_signing/motoko/icp.yaml +++ b/rust/vetkeys/basic_bls_signing/motoko/icp.yaml @@ -10,7 +10,7 @@ canisters: - name: www recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: dist build: diff --git a/rust/vetkeys/basic_bls_signing/rust/icp.yaml b/rust/vetkeys/basic_bls_signing/rust/icp.yaml index c70b4d26a..11ca10756 100644 --- a/rust/vetkeys/basic_bls_signing/rust/icp.yaml +++ b/rust/vetkeys/basic_bls_signing/rust/icp.yaml @@ -11,7 +11,7 @@ canisters: - name: www recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: dist build: diff --git a/rust/vetkeys/basic_ibe/motoko/icp.yaml b/rust/vetkeys/basic_ibe/motoko/icp.yaml index f299d64ab..a25b897d0 100644 --- a/rust/vetkeys/basic_ibe/motoko/icp.yaml +++ b/rust/vetkeys/basic_ibe/motoko/icp.yaml @@ -10,7 +10,7 @@ canisters: - name: www recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: dist build: diff --git a/rust/vetkeys/basic_ibe/rust/icp.yaml b/rust/vetkeys/basic_ibe/rust/icp.yaml index 898769bf2..a0e57efd8 100644 --- a/rust/vetkeys/basic_ibe/rust/icp.yaml +++ b/rust/vetkeys/basic_ibe/rust/icp.yaml @@ -11,7 +11,7 @@ canisters: - name: www recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: dist build: diff --git a/rust/vetkeys/basic_timelock_ibe/icp.yaml b/rust/vetkeys/basic_timelock_ibe/icp.yaml index 405af4419..88178cb9f 100644 --- a/rust/vetkeys/basic_timelock_ibe/icp.yaml +++ b/rust/vetkeys/basic_timelock_ibe/icp.yaml @@ -11,7 +11,7 @@ canisters: - name: www recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: dist build: diff --git a/rust/vetkeys/encrypted_notes_app_vetkd/motoko/icp.yaml b/rust/vetkeys/encrypted_notes_app_vetkd/motoko/icp.yaml index 8b496303e..19114ae05 100644 --- a/rust/vetkeys/encrypted_notes_app_vetkd/motoko/icp.yaml +++ b/rust/vetkeys/encrypted_notes_app_vetkd/motoko/icp.yaml @@ -10,7 +10,7 @@ canisters: - name: www recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: dist build: diff --git a/rust/vetkeys/encrypted_notes_app_vetkd/rust/icp.yaml b/rust/vetkeys/encrypted_notes_app_vetkd/rust/icp.yaml index cf25e37b4..bd77e42f5 100644 --- a/rust/vetkeys/encrypted_notes_app_vetkd/rust/icp.yaml +++ b/rust/vetkeys/encrypted_notes_app_vetkd/rust/icp.yaml @@ -11,7 +11,7 @@ canisters: - name: www recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: dist build: diff --git a/rust/vetkeys/password_manager/motoko/icp.yaml b/rust/vetkeys/password_manager/motoko/icp.yaml index 6630f604d..a589e1960 100644 --- a/rust/vetkeys/password_manager/motoko/icp.yaml +++ b/rust/vetkeys/password_manager/motoko/icp.yaml @@ -10,7 +10,7 @@ canisters: - name: www recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: dist build: diff --git a/rust/vetkeys/password_manager/rust/icp.yaml b/rust/vetkeys/password_manager/rust/icp.yaml index b9c298ad1..2f3c18726 100644 --- a/rust/vetkeys/password_manager/rust/icp.yaml +++ b/rust/vetkeys/password_manager/rust/icp.yaml @@ -11,7 +11,7 @@ canisters: - name: www recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: dist build: diff --git a/rust/vetkeys/password_manager_with_metadata/motoko/icp.yaml b/rust/vetkeys/password_manager_with_metadata/motoko/icp.yaml index c19cfbed6..fb1414232 100644 --- a/rust/vetkeys/password_manager_with_metadata/motoko/icp.yaml +++ b/rust/vetkeys/password_manager_with_metadata/motoko/icp.yaml @@ -10,7 +10,7 @@ canisters: - name: www recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: dist build: diff --git a/rust/vetkeys/password_manager_with_metadata/rust/icp.yaml b/rust/vetkeys/password_manager_with_metadata/rust/icp.yaml index 9d753e1a4..332199d44 100644 --- a/rust/vetkeys/password_manager_with_metadata/rust/icp.yaml +++ b/rust/vetkeys/password_manager_with_metadata/rust/icp.yaml @@ -11,7 +11,7 @@ canisters: - name: www recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: dist build: diff --git a/rust/who_am_i/icp.yaml b/rust/who_am_i/icp.yaml index bae2f48bc..d856ac88f 100644 --- a/rust/who_am_i/icp.yaml +++ b/rust/who_am_i/icp.yaml @@ -13,7 +13,7 @@ canisters: - name: frontend recipe: - type: "@dfinity/asset-canister@v2.1.0" + type: "@dfinity/asset-canister@v2.2.1" configuration: dir: src/frontend/dist build: From 7e44a44bf93938738089bb53c1eaa94a4dc2c062 Mon Sep 17 00:00:00 2001 From: Marco Walz Date: Tue, 9 Jun 2026 21:21:58 +0200 Subject: [PATCH 2/5] chore: use @dfinity/motoko@v5.0.0 recipe, move main path to mops.toml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the pinned SHA recipe URL (hello_world, who_am_i) and @dfinity/motoko@v4.1.0 (vetkeys examples) with @dfinity/motoko@v5.0.0. The configuration.main field previously passed in icp.yaml is now declared in mops.toml under [canisters.], which the new recipe reads directly — no configuration block needed in icp.yaml. Co-Authored-By: Claude Sonnet 4.6 --- motoko/hello_world/icp.yaml | 4 +--- motoko/who_am_i/icp.yaml | 4 +--- rust/vetkeys/basic_bls_signing/motoko/icp.yaml | 4 +--- rust/vetkeys/basic_bls_signing/motoko/mops.toml | 3 +++ rust/vetkeys/basic_ibe/motoko/icp.yaml | 4 +--- rust/vetkeys/basic_ibe/motoko/mops.toml | 3 +++ rust/vetkeys/encrypted_notes_app_vetkd/motoko/icp.yaml | 4 +--- rust/vetkeys/encrypted_notes_app_vetkd/motoko/mops.toml | 3 +++ rust/vetkeys/password_manager/motoko/icp.yaml | 4 +--- rust/vetkeys/password_manager/motoko/mops.toml | 3 +++ rust/vetkeys/password_manager_with_metadata/motoko/icp.yaml | 4 +--- rust/vetkeys/password_manager_with_metadata/motoko/mops.toml | 4 +++- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/motoko/hello_world/icp.yaml b/motoko/hello_world/icp.yaml index 757f68466..bd053999d 100644 --- a/motoko/hello_world/icp.yaml +++ b/motoko/hello_world/icp.yaml @@ -1,9 +1,7 @@ canisters: - name: backend recipe: - type: https://raw.githubusercontent.com/dfinity/icp-cli-recipes/bc9581d9258d2d7feb15ab4ae8d04baf923b985f/recipes/motoko/recipe.hbs - configuration: - name: backend + type: "@dfinity/motoko@v5.0.0" - name: frontend recipe: diff --git a/motoko/who_am_i/icp.yaml b/motoko/who_am_i/icp.yaml index 6ba649b67..cd3dcd481 100644 --- a/motoko/who_am_i/icp.yaml +++ b/motoko/who_am_i/icp.yaml @@ -6,9 +6,7 @@ networks: canisters: - name: backend recipe: - type: https://raw.githubusercontent.com/dfinity/icp-cli-recipes/bc9581d9258d2d7feb15ab4ae8d04baf923b985f/recipes/motoko/recipe.hbs - configuration: - name: backend + type: "@dfinity/motoko@v5.0.0" - name: frontend recipe: diff --git a/rust/vetkeys/basic_bls_signing/motoko/icp.yaml b/rust/vetkeys/basic_bls_signing/motoko/icp.yaml index 6246daa4a..a68c4b5ea 100644 --- a/rust/vetkeys/basic_bls_signing/motoko/icp.yaml +++ b/rust/vetkeys/basic_bls_signing/motoko/icp.yaml @@ -1,9 +1,7 @@ canisters: - name: basic_bls_signing recipe: - type: "@dfinity/motoko@v4.1.0" - configuration: - main: backend/src/Main.mo + type: "@dfinity/motoko@v5.0.0" init_args: type: text value: "(\"test_key_1\")" diff --git a/rust/vetkeys/basic_bls_signing/motoko/mops.toml b/rust/vetkeys/basic_bls_signing/motoko/mops.toml index 948e1d22e..a29d5213f 100644 --- a/rust/vetkeys/basic_bls_signing/motoko/mops.toml +++ b/rust/vetkeys/basic_bls_signing/motoko/mops.toml @@ -5,3 +5,6 @@ moc = "1.9.0" core = "2.5.0" ic-vetkeys = "0.5.0" sha2 = "0.1.14" + +[canisters.basic_bls_signing] +main = "backend/src/Main.mo" diff --git a/rust/vetkeys/basic_ibe/motoko/icp.yaml b/rust/vetkeys/basic_ibe/motoko/icp.yaml index a25b897d0..425afe996 100644 --- a/rust/vetkeys/basic_ibe/motoko/icp.yaml +++ b/rust/vetkeys/basic_ibe/motoko/icp.yaml @@ -1,9 +1,7 @@ canisters: - name: basic_ibe recipe: - type: "@dfinity/motoko@v4.1.0" - configuration: - main: backend/src/Main.mo + type: "@dfinity/motoko@v5.0.0" init_args: type: text value: "(\"test_key_1\")" diff --git a/rust/vetkeys/basic_ibe/motoko/mops.toml b/rust/vetkeys/basic_ibe/motoko/mops.toml index 948e1d22e..c81b0cdc5 100644 --- a/rust/vetkeys/basic_ibe/motoko/mops.toml +++ b/rust/vetkeys/basic_ibe/motoko/mops.toml @@ -5,3 +5,6 @@ moc = "1.9.0" core = "2.5.0" ic-vetkeys = "0.5.0" sha2 = "0.1.14" + +[canisters.basic_ibe] +main = "backend/src/Main.mo" diff --git a/rust/vetkeys/encrypted_notes_app_vetkd/motoko/icp.yaml b/rust/vetkeys/encrypted_notes_app_vetkd/motoko/icp.yaml index 19114ae05..ef936cb21 100644 --- a/rust/vetkeys/encrypted_notes_app_vetkd/motoko/icp.yaml +++ b/rust/vetkeys/encrypted_notes_app_vetkd/motoko/icp.yaml @@ -1,9 +1,7 @@ canisters: - name: encrypted_notes recipe: - type: "@dfinity/motoko@v4.1.0" - configuration: - main: backend/main.mo + type: "@dfinity/motoko@v5.0.0" init_args: type: text value: "(\"test_key_1\")" diff --git a/rust/vetkeys/encrypted_notes_app_vetkd/motoko/mops.toml b/rust/vetkeys/encrypted_notes_app_vetkd/motoko/mops.toml index 1172ef015..99f601ef1 100644 --- a/rust/vetkeys/encrypted_notes_app_vetkd/motoko/mops.toml +++ b/rust/vetkeys/encrypted_notes_app_vetkd/motoko/mops.toml @@ -3,3 +3,6 @@ moc = "1.9.0" [dependencies] core = "2.5.0" + +[canisters.encrypted_notes] +main = "backend/main.mo" diff --git a/rust/vetkeys/password_manager/motoko/icp.yaml b/rust/vetkeys/password_manager/motoko/icp.yaml index a589e1960..457ba76c1 100644 --- a/rust/vetkeys/password_manager/motoko/icp.yaml +++ b/rust/vetkeys/password_manager/motoko/icp.yaml @@ -1,9 +1,7 @@ canisters: - name: ic_vetkeys_encrypted_maps_canister recipe: - type: "@dfinity/motoko@v4.1.0" - configuration: - main: backend/src/Main.mo + type: "@dfinity/motoko@v5.0.0" init_args: type: text value: "(\"test_key_1\")" diff --git a/rust/vetkeys/password_manager/motoko/mops.toml b/rust/vetkeys/password_manager/motoko/mops.toml index 0d53ffde3..45b392e37 100644 --- a/rust/vetkeys/password_manager/motoko/mops.toml +++ b/rust/vetkeys/password_manager/motoko/mops.toml @@ -4,3 +4,6 @@ moc = "1.9.0" [dependencies] core = "2.5.0" ic-vetkeys = "0.5.0" + +[canisters.ic_vetkeys_encrypted_maps_canister] +main = "backend/src/Main.mo" diff --git a/rust/vetkeys/password_manager_with_metadata/motoko/icp.yaml b/rust/vetkeys/password_manager_with_metadata/motoko/icp.yaml index fb1414232..09bb4252c 100644 --- a/rust/vetkeys/password_manager_with_metadata/motoko/icp.yaml +++ b/rust/vetkeys/password_manager_with_metadata/motoko/icp.yaml @@ -1,9 +1,7 @@ canisters: - name: password_manager_with_metadata recipe: - type: "@dfinity/motoko@v4.1.0" - configuration: - main: backend/src/Main.mo + type: "@dfinity/motoko@v5.0.0" init_args: type: text value: "(\"test_key_1\")" diff --git a/rust/vetkeys/password_manager_with_metadata/motoko/mops.toml b/rust/vetkeys/password_manager_with_metadata/motoko/mops.toml index 670c65a28..dff61c875 100644 --- a/rust/vetkeys/password_manager_with_metadata/motoko/mops.toml +++ b/rust/vetkeys/password_manager_with_metadata/motoko/mops.toml @@ -3,4 +3,6 @@ moc = "1.9.0" [dependencies] core = "2.5.0" -ic-vetkeys = "0.5.0" \ No newline at end of file +ic-vetkeys = "0.5.0" +[canisters.password_manager_with_metadata] +main = "backend/src/Main.mo" From c05eac8c8b42c4e492059748bf73ef9cf2d2dc5b Mon Sep 17 00:00:00 2001 From: Marco Walz Date: Tue, 9 Jun 2026 23:57:36 +0200 Subject: [PATCH 3/5] chore: bump devcontainer image to icp-dev-env-all:0.3.1 Co-Authored-By: Claude Sonnet 4.6 --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 33928abb3..b2a5681d8 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "ICP Examples (Motoko + Rust)", - "image": "ghcr.io/dfinity/icp-dev-env-all:0.1.0", + "image": "ghcr.io/dfinity/icp-dev-env-all:0.3.1", "forwardPorts": [8000, 5173], "portsAttributes": { "8000": { From 36ae9157a9d51fe94052a71ea119dc8266934bdd Mon Sep 17 00:00:00 2001 From: Marco Walz Date: Wed, 10 Jun 2026 11:36:16 +0200 Subject: [PATCH 4/5] docs(AGENTS): use @dfinity/motoko@v5.0.0, drop temporary recipe pending item The SHA-pinned Motoko recipe and its tracking note are no longer needed now that v5.0.0 is released and reads the entry point from mops.toml. Co-Authored-By: Claude Sonnet 4.6 --- AGENTS.md | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index fa8b0e983..eb41cd3be 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -101,10 +101,7 @@ networks: # omit if no Internet Identity needed canisters: - name: backend recipe: - type: https://raw.githubusercontent.com/dfinity/icp-cli-recipes/bc9581d9258d2d7feb15ab4ae8d04baf923b985f/recipes/motoko/recipe.hbs - # TODO: replace with @dfinity/motoko@vX.Y.Z once https://github.com/dfinity/icp-cli-recipes/pull/26 merges - configuration: - name: backend # must match [canisters.backend] key in mops.toml + type: "@dfinity/motoko@v5.0.0" - name: frontend recipe: @@ -161,7 +158,7 @@ main = "backend/app.mo" candid = "backend/backend.did" ``` -`[canisters.]` replaces the `main`, `candid`, and `args` fields that were previously in `icp.yaml`. The `name` key must match the `name` in the recipe configuration. `--default-persistent-actors` makes all actors persistent by default, so the `persistent` keyword is not needed in source files. +`[canisters.]` replaces the `main`, `candid`, and `args` fields that were previously in `icp.yaml`. The `@dfinity/motoko@v5.0.0` recipe reads this section directly, so the Motoko canister needs no `configuration:` block in `icp.yaml` — the `` must match the canister `name` in `icp.yaml`. `--default-persistent-actors` makes all actors persistent by default, so the `persistent` keyword is not needed in source files. --- @@ -320,17 +317,6 @@ Images are published at `ghcr.io/dfinity/icp-dev-env-{motoko,rust,all}`. All dev Source: https://github.com/dfinity/icp-dev-env -### Motoko recipe version -Both `motoko/who_am_i/icp.yaml` and `motoko/hello_world/icp.yaml` pin a specific commit SHA of the Motoko recipe to pick up `[moc] args` support from `mops.toml` before it ships in a stable release: - -```yaml -type: https://raw.githubusercontent.com/dfinity/icp-cli-recipes/bc9581d9258d2d7feb15ab4ae8d04baf923b985f/recipes/motoko/recipe.hbs -``` - -Tracked in: https://github.com/dfinity/icp-cli-recipes/pull/26 - -Once that PR merges and a new `@dfinity/motoko` version is released, replace the raw URL in both files with the versioned tag (e.g. `@dfinity/motoko@vX.Y.Z`). - --- ## dfx → icp-cli migration checklist From e86bba13ae2ae6b866457dd1365e878af194ddbf Mon Sep 17 00:00:00 2001 From: Marco Walz Date: Wed, 10 Jun 2026 11:45:36 +0200 Subject: [PATCH 5/5] docs(AGENTS): bump canonical moc version to 1.9.0 Co-Authored-By: Claude Sonnet 4.6 --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index eb41cd3be..0501cb4c7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -142,7 +142,7 @@ canisters: ```toml [toolchain] -moc = "1.8.2" +moc = "1.9.0" [dependencies] core = "2.5.0"