From f3641f9a434f16a7622bc13be42511499b0aedc4 Mon Sep 17 00:00:00 2001 From: Marco Walz Date: Wed, 12 Aug 2026 16:52:47 +0200 Subject: [PATCH 1/2] chore: bump template dependencies, recipes and Motoko compiler Bring every template's dependencies up to their latest versions, along with the icp-cli recipe versions and the Motoko compiler. npm (all pinned with `~` per CONTRIBUTING): @icp-sdk/core 5.2/5.4/6.0 -> 6.1, vite 7.1 -> 8.2, react(-dom) 19.1 -> 19.2, eslint 9.33 -> 10.8, eslint-plugin-react-hooks 5.2 -> 7.1, @vitejs/plugin-react 5 -> 6, svelte -> 5.56, @sveltejs/vite-plugin-svelte 6.2 -> 7.3, vue -> 3.5, pinia 3 -> 4, @types/node 25 -> 26, plus @eslint/js, globals, typescript-eslint, @types/react(-dom), @vitejs/plugin-vue, sass-embedded. Remaining `^` ranges converted to `~`. Recipes: motoko v5.0.0 -> v5.1.0, rust v3.3.0 -> v3.4.0, static-site v0.3.1 -> v0.3.3. Schema URLs unified on icp-cli v1.3.0 (bitcoin-starter's canister.yaml files were still pinned at v0.2.0). Motoko: moc 1.9.0 -> 1.14.0, core 2.3.1 -> 2.6.1. Backends now use bare `actor` instead of `persistent actor`, enabled by the new `[moc] args = ["--default-persistent-actors"]` section in mops.toml. This is purely syntactic: the flag makes the optional `persistent` keyword default to true, so fields remain `stable` by default and the Candid interface is unchanged. Rust: ic-cdk 0.19 -> 0.20. candid stays at "0.10" (0.10.35 is latest). Changes beyond version numbers, required by the above: - ic-cdk 0.20 moved `ic_cdk::bitcoin_canister` into the separate `ic-cdk-bitcoin-canister` crate. bitcoin-starter now depends on it directly; `GetBalanceRequest.network` is a `NetworkInRequest` (`.into()`) and `get_bitcoin_canister_id` takes `Network` by value. - eslint-plugin-react-hooks 7 restructured its config exports: the flat config moved to `configs.flat['recommended-latest']`. The old path is now eslintrc-shaped and hard-errors under flat config. - rolldown-vite is deprecated upstream in favour of Vite 8, so static-website moves to plain vite and drops the `overrides` block. - vue-frontend was missing `"type": "module"`, which Vite 8 warns about when loading an ESM vite.config.ts. - proxy/icp.yaml pointed at a proxy-canister v1.0.0 release that does not exist (404). The wasm at v0.1.0 matches the sha256 already in the file, so the tag is corrected to v0.1.0. Tests now run against icp-dev-env-all:1.2.0 (icp CLI 1.2.0). Verified: all 6 matrix permutations pass on icp CLI 1.2.0. The 6 templates the matrix does not enumerate (hello-world x {motoko,rust} x svelte, bitcoin-starter x {motoko,rust}, static-website, proxy) were additionally run through the same icp new -> build -> deploy -> verify path and all pass; bitcoin-starter returns `network = "regtest"` from get_config on both backends. Co-Authored-By: Claude Opus 5 (1M context) --- Makefile | 2 +- bitcoin-starter/icp.yaml | 2 +- bitcoin-starter/motoko-backend/canister.yaml | 4 +- bitcoin-starter/motoko-backend/mops.toml | 7 +- bitcoin-starter/motoko-backend/src/main.mo | 2 +- bitcoin-starter/rust-backend/Cargo.toml | 3 +- bitcoin-starter/rust-backend/canister.yaml | 4 +- bitcoin-starter/rust-backend/src/lib.rs | 6 +- hello-world/icp.yaml | 2 +- hello-world/motoko-backend/canister.yaml | 4 +- hello-world/motoko-backend/mops.toml | 5 +- hello-world/motoko-backend/src/main.mo | 2 +- hello-world/react-frontend/canister.yaml | 4 +- hello-world/react-frontend/eslint.config.js | 2 +- hello-world/react-frontend/package.json | 32 ++--- hello-world/rust-backend/Cargo.toml | 2 +- hello-world/rust-backend/canister.yaml | 4 +- hello-world/svelte-frontend/canister.yaml | 4 +- hello-world/svelte-frontend/package.json | 14 +-- hello-world/vue-frontend/canister.yaml | 4 +- hello-world/vue-frontend/package.json | 19 +-- motoko/icp.yaml | 4 +- motoko/mops.toml | 5 +- motoko/src/main.mo | 2 +- proxy/icp.yaml | 4 +- rust/Cargo.lock | 118 ++++++++----------- rust/Cargo.toml | 2 +- rust/icp.yaml | 4 +- static-website/icp.yaml | 4 +- static-website/package.json | 7 +- 30 files changed, 133 insertions(+), 145 deletions(-) diff --git a/Makefile b/Makefile index 7d76a57..838f244 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # image; the host only needs Docker. # Official ICP dev environment; the tag pins the icp CLI version under test. -IMAGE ?= ghcr.io/dfinity/icp-dev-env-all:0.3.2 +IMAGE ?= ghcr.io/dfinity/icp-dev-env-all:1.2.0 # Optional permutation filter, e.g. `make test FILTER=hello-world:rust:react` FILTER ?= diff --git a/bitcoin-starter/icp.yaml b/bitcoin-starter/icp.yaml index d7984f0..7b1d293 100644 --- a/bitcoin-starter/icp.yaml +++ b/bitcoin-starter/icp.yaml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.0.0/docs/schemas/icp-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/icp-yaml-schema.json canisters: - backend diff --git a/bitcoin-starter/motoko-backend/canister.yaml b/bitcoin-starter/motoko-backend/canister.yaml index 1c71596..20c8cd2 100644 --- a/bitcoin-starter/motoko-backend/canister.yaml +++ b/bitcoin-starter/motoko-backend/canister.yaml @@ -1,5 +1,5 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v0.2.0/docs/schemas/canister-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/canister-yaml-schema.json name: backend recipe: - type: "@dfinity/motoko@v5.0.0" + type: "@dfinity/motoko@v5.1.0" diff --git a/bitcoin-starter/motoko-backend/mops.toml b/bitcoin-starter/motoko-backend/mops.toml index f4489e0..f614c5a 100644 --- a/bitcoin-starter/motoko-backend/mops.toml +++ b/bitcoin-starter/motoko-backend/mops.toml @@ -1,8 +1,11 @@ [dependencies] -core = "2.3.1" +core = "2.6.1" [toolchain] -moc = "1.9.0" +moc = "1.14.0" + +[moc] +args = ["--default-persistent-actors"] [canisters.backend] main = "src/main.mo" diff --git a/bitcoin-starter/motoko-backend/src/main.mo b/bitcoin-starter/motoko-backend/src/main.mo index 9dd528d..82c0868 100644 --- a/bitcoin-starter/motoko-backend/src/main.mo +++ b/bitcoin-starter/motoko-backend/src/main.mo @@ -5,7 +5,7 @@ import Runtime "mo:core/Runtime"; import Text "mo:core/Text"; -persistent actor Backend { +actor Backend { public type Satoshi = Nat64; public type BitcoinAddress = Text; diff --git a/bitcoin-starter/rust-backend/Cargo.toml b/bitcoin-starter/rust-backend/Cargo.toml index d71393e..2e5a22d 100644 --- a/bitcoin-starter/rust-backend/Cargo.toml +++ b/bitcoin-starter/rust-backend/Cargo.toml @@ -8,4 +8,5 @@ crate-type = ["cdylib"] [dependencies] candid = "0.10" -ic-cdk = "0.19" +ic-cdk = "0.20" +ic-cdk-bitcoin-canister = "0.2" diff --git a/bitcoin-starter/rust-backend/canister.yaml b/bitcoin-starter/rust-backend/canister.yaml index 0903730..de33880 100644 --- a/bitcoin-starter/rust-backend/canister.yaml +++ b/bitcoin-starter/rust-backend/canister.yaml @@ -1,8 +1,8 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v0.2.0/docs/schemas/canister-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/canister-yaml-schema.json name: backend recipe: - type: "@dfinity/rust@v3.3.0" + type: "@dfinity/rust@v3.4.0" configuration: shrink: true candid: backend.did diff --git a/bitcoin-starter/rust-backend/src/lib.rs b/bitcoin-starter/rust-backend/src/lib.rs index 2b9c83f..576af36 100644 --- a/bitcoin-starter/rust-backend/src/lib.rs +++ b/bitcoin-starter/rust-backend/src/lib.rs @@ -3,7 +3,7 @@ //! Demonstrates reading Bitcoin balance via the Bitcoin canister API. use candid::CandidType; -use ic_cdk::bitcoin_canister::{ +use ic_cdk_bitcoin_canister::{ bitcoin_get_balance, get_bitcoin_canister_id, GetBalanceRequest, Network, Satoshi, }; @@ -28,7 +28,7 @@ fn get_network() -> Network { async fn get_balance(address: String) -> Satoshi { bitcoin_get_balance(&GetBalanceRequest { address, - network: get_network(), + network: get_network().into(), min_confirmations: None, }) .await @@ -46,7 +46,7 @@ fn get_config() -> BitcoinConfig { Network::Regtest => "regtest", } .to_string(), - bitcoin_canister_id: get_bitcoin_canister_id(&network).to_string(), + bitcoin_canister_id: get_bitcoin_canister_id(network).to_string(), } } diff --git a/hello-world/icp.yaml b/hello-world/icp.yaml index 046b296..a60cc2d 100644 --- a/hello-world/icp.yaml +++ b/hello-world/icp.yaml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.0.0/docs/schemas/icp-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/icp-yaml-schema.json canisters: - backend diff --git a/hello-world/motoko-backend/canister.yaml b/hello-world/motoko-backend/canister.yaml index 2f29974..867bcae 100644 --- a/hello-world/motoko-backend/canister.yaml +++ b/hello-world/motoko-backend/canister.yaml @@ -1,6 +1,6 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.0.0/docs/schemas/canister-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/canister-yaml-schema.json name: backend recipe: - type: "@dfinity/motoko@v5.0.0" + type: "@dfinity/motoko@v5.1.0" diff --git a/hello-world/motoko-backend/mops.toml b/hello-world/motoko-backend/mops.toml index 671dc63..cc1fa3c 100644 --- a/hello-world/motoko-backend/mops.toml +++ b/hello-world/motoko-backend/mops.toml @@ -1,5 +1,8 @@ [toolchain] -moc = "1.9.0" +moc = "1.14.0" + +[moc] +args = ["--default-persistent-actors"] [canisters.backend] main = "src/main.mo" diff --git a/hello-world/motoko-backend/src/main.mo b/hello-world/motoko-backend/src/main.mo index dedf488..540f30b 100644 --- a/hello-world/motoko-backend/src/main.mo +++ b/hello-world/motoko-backend/src/main.mo @@ -1,4 +1,4 @@ -persistent actor { +actor { public query func greet(name : Text) : async Text { return "Hello, " # name # "!"; }; diff --git a/hello-world/react-frontend/canister.yaml b/hello-world/react-frontend/canister.yaml index b2713ff..10ad75e 100644 --- a/hello-world/react-frontend/canister.yaml +++ b/hello-world/react-frontend/canister.yaml @@ -1,11 +1,11 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.0.0/docs/schemas/canister-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/canister-yaml-schema.json name: frontend recipe: # https://github.com/dfinity/icp-cli-recipes/blob/main/recipes/static-site/README.md # IMPORTANT: This recipe requires icp-cli >= 0.2.7 - type: "@dfinity/static-site@v0.3.1" + type: "@dfinity/static-site@v0.3.3" configuration: build: # Install the dependencies diff --git a/hello-world/react-frontend/eslint.config.js b/hello-world/react-frontend/eslint.config.js index 2e26f3c..099d924 100644 --- a/hello-world/react-frontend/eslint.config.js +++ b/hello-world/react-frontend/eslint.config.js @@ -12,7 +12,7 @@ export default defineConfig([ extends: [ js.configs.recommended, tseslint.configs.recommended, - reactHooks.configs['recommended-latest'], + reactHooks.configs.flat['recommended-latest'], reactRefresh.configs.vite, ], languageOptions: { diff --git a/hello-world/react-frontend/package.json b/hello-world/react-frontend/package.json index a0c9a50..bacae59 100644 --- a/hello-world/react-frontend/package.json +++ b/hello-world/react-frontend/package.json @@ -10,23 +10,23 @@ "preview": "vite preview" }, "dependencies": { - "@icp-sdk/core": "~5.2.0", - "react": "~19.1.1", - "react-dom": "~19.1.1" + "@icp-sdk/core": "~6.1.0", + "react": "~19.2.8", + "react-dom": "~19.2.8" }, "devDependencies": { - "@eslint/js": "~9.33.0", - "@icp-sdk/bindgen": "^0.4.0", - "@types/node": "^25.9.1", - "@types/react": "~19.1.10", - "@types/react-dom": "~19.1.7", - "@vitejs/plugin-react": "~5.0.0", - "eslint": "~9.33.0", - "eslint-plugin-react-hooks": "~5.2.0", - "eslint-plugin-react-refresh": "~0.4.20", - "globals": "~16.3.0", - "typescript": "~5.8.3", - "typescript-eslint": "~8.39.1", - "vite": "~7.1.11" + "@eslint/js": "~10.0.1", + "@icp-sdk/bindgen": "~0.4.0", + "@types/node": "~26.2.0", + "@types/react": "~19.2.18", + "@types/react-dom": "~19.2.4", + "@vitejs/plugin-react": "~6.0.5", + "eslint": "~10.8.1", + "eslint-plugin-react-hooks": "~7.1.1", + "eslint-plugin-react-refresh": "~0.5.4", + "globals": "~17.11.0", + "typescript": "~6.0.3", + "typescript-eslint": "~8.67.0", + "vite": "~8.2.1" } } diff --git a/hello-world/rust-backend/Cargo.toml b/hello-world/rust-backend/Cargo.toml index d71393e..669a663 100644 --- a/hello-world/rust-backend/Cargo.toml +++ b/hello-world/rust-backend/Cargo.toml @@ -8,4 +8,4 @@ crate-type = ["cdylib"] [dependencies] candid = "0.10" -ic-cdk = "0.19" +ic-cdk = "0.20" diff --git a/hello-world/rust-backend/canister.yaml b/hello-world/rust-backend/canister.yaml index 5982a79..19dc84d 100644 --- a/hello-world/rust-backend/canister.yaml +++ b/hello-world/rust-backend/canister.yaml @@ -1,8 +1,8 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.0.0/docs/schemas/canister-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/canister-yaml-schema.json # name: backend recipe: - type: "@dfinity/rust@v3.3.0" + type: "@dfinity/rust@v3.4.0" configuration: shrink: true # optional diff --git a/hello-world/svelte-frontend/canister.yaml b/hello-world/svelte-frontend/canister.yaml index b2713ff..10ad75e 100644 --- a/hello-world/svelte-frontend/canister.yaml +++ b/hello-world/svelte-frontend/canister.yaml @@ -1,11 +1,11 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.0.0/docs/schemas/canister-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/canister-yaml-schema.json name: frontend recipe: # https://github.com/dfinity/icp-cli-recipes/blob/main/recipes/static-site/README.md # IMPORTANT: This recipe requires icp-cli >= 0.2.7 - type: "@dfinity/static-site@v0.3.1" + type: "@dfinity/static-site@v0.3.3" configuration: build: # Install the dependencies diff --git a/hello-world/svelte-frontend/package.json b/hello-world/svelte-frontend/package.json index 013a0b8..e553735 100644 --- a/hello-world/svelte-frontend/package.json +++ b/hello-world/svelte-frontend/package.json @@ -9,14 +9,14 @@ "preview": "vite preview" }, "dependencies": { - "@icp-sdk/core": "^6.0.0", - "svelte": "^5.0.0" + "@icp-sdk/core": "~6.1.0", + "svelte": "~5.56.8" }, "devDependencies": { - "@icp-sdk/bindgen": "^0.4.0", - "@sveltejs/vite-plugin-svelte": "~6.2.4", - "@types/node": "^25.9.1", - "typescript": "~5.8.3", - "vite": "~7.1.11" + "@icp-sdk/bindgen": "~0.4.0", + "@sveltejs/vite-plugin-svelte": "~7.3.0", + "@types/node": "~26.2.0", + "typescript": "~7.0.2", + "vite": "~8.2.1" } } diff --git a/hello-world/vue-frontend/canister.yaml b/hello-world/vue-frontend/canister.yaml index b2713ff..10ad75e 100644 --- a/hello-world/vue-frontend/canister.yaml +++ b/hello-world/vue-frontend/canister.yaml @@ -1,11 +1,11 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.0.0/docs/schemas/canister-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/canister-yaml-schema.json name: frontend recipe: # https://github.com/dfinity/icp-cli-recipes/blob/main/recipes/static-site/README.md # IMPORTANT: This recipe requires icp-cli >= 0.2.7 - type: "@dfinity/static-site@v0.3.1" + type: "@dfinity/static-site@v0.3.3" configuration: build: # Install the dependencies diff --git a/hello-world/vue-frontend/package.json b/hello-world/vue-frontend/package.json index b6bf096..14abeea 100644 --- a/hello-world/vue-frontend/package.json +++ b/hello-world/vue-frontend/package.json @@ -1,22 +1,23 @@ { "name": "frontend", "version": "0.0.0", + "type": "module", "scripts": { "build": "vite build", "dev": "vite", "preview": "vite preview" }, "dependencies": { - "@icp-sdk/core": "^5.4.0", - "pinia": "^3.0.4", - "vue": "^3.0.0" + "@icp-sdk/core": "~6.1.0", + "pinia": "~4.0.3", + "vue": "~3.5.41" }, "devDependencies": { - "@icp-sdk/bindgen": "^0.4.0", - "@types/node": "^25.9.1", - "@vitejs/plugin-vue": "~6.0.7", - "@vue/tsconfig": "^0.9.1", - "sass-embedded": "^1.99.0", - "vite": "~7.1.11" + "@icp-sdk/bindgen": "~0.4.0", + "@types/node": "~26.2.0", + "@vitejs/plugin-vue": "~6.0.8", + "@vue/tsconfig": "~0.9.1", + "sass-embedded": "~1.100.0", + "vite": "~8.2.1" } } diff --git a/motoko/icp.yaml b/motoko/icp.yaml index 7f85bd7..55ced35 100644 --- a/motoko/icp.yaml +++ b/motoko/icp.yaml @@ -1,9 +1,9 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.0.0/docs/schemas/icp-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/icp-yaml-schema.json canisters: - name: {{project-name}} recipe: - type: "@dfinity/motoko@v5.0.0" + type: "@dfinity/motoko@v5.1.0" {% if network_type == "Docker" -%} networks: diff --git a/motoko/mops.toml b/motoko/mops.toml index 13918ae..58928c0 100644 --- a/motoko/mops.toml +++ b/motoko/mops.toml @@ -1,5 +1,8 @@ [toolchain] -moc = "1.9.0" +moc = "1.14.0" + +[moc] +args = ["--default-persistent-actors"] [canisters] {{project-name}} = "src/main.mo" diff --git a/motoko/src/main.mo b/motoko/src/main.mo index dedf488..540f30b 100644 --- a/motoko/src/main.mo +++ b/motoko/src/main.mo @@ -1,4 +1,4 @@ -persistent actor { +actor { public query func greet(name : Text) : async Text { return "Hello, " # name # "!"; }; diff --git a/proxy/icp.yaml b/proxy/icp.yaml index dde5519..354055d 100644 --- a/proxy/icp.yaml +++ b/proxy/icp.yaml @@ -1,9 +1,9 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.0.0/docs/schemas/icp-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/icp-yaml-schema.json canisters: - name: proxy build: steps: - type: pre-built - url: https://github.com/dfinity/proxy-canister/releases/download/v1.0.0/proxy.wasm + url: https://github.com/dfinity/proxy-canister/releases/download/v0.1.0/proxy.wasm sha256: 499dc190e4c0c3b112746f25f993c7a4ca85e0ae73c8987ef87c700da74dc5d3 diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 631fbba..842f75f 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -17,6 +17,12 @@ dependencies = [ "object", ] +[[package]] +name = "array-init" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d62b7694a562cdf5a74227903507c56ab2cc8bdd1f781ed5cb4cf9c9f810bfc" + [[package]] name = "arrayvec" version = "0.5.2" @@ -38,26 +44,26 @@ dependencies = [ ] [[package]] -name = "binread" -version = "2.2.0" +name = "binrw" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16598dfc8e6578e9b597d9910ba2e73618385dc9f4b1d43dd92c349d6be6418f" +checksum = "6ad120d555272286c1017d25165ab8bd74806f13fc85b258484ec7e4ce75458f" dependencies = [ - "binread_derive", - "lazy_static", - "rustversion", + "array-init", + "binrw_derive", + "bytemuck", ] [[package]] -name = "binread_derive" -version = "2.1.0" +name = "binrw_derive" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9672209df1714ee804b1f4d4f68c8eb2a90b1f7a07acf472f88ce198ef1fed" +checksum = "6df92e0e9baae4dc82c7bad7715ca40c0a5c71539057bf2ea04a5c29c980410b" dependencies = [ "either", "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] @@ -69,6 +75,12 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" + [[package]] name = "byteorder" version = "1.5.0" @@ -77,12 +89,12 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "candid" -version = "0.10.21" +version = "0.10.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e49a6e53730e2d41f6fc3ad9ef4d9bc7ad738ddc6aed4ceb30a35a2cd63e9bcb" +checksum = "5cdba86ff862a2cc6b244f273a8713ffdf82b84254470e90bd029ee87c283f25" dependencies = [ "anyhow", - "binread", + "binrw", "byteorder", "candid_derive", "hex", @@ -100,14 +112,14 @@ dependencies = [ [[package]] name = "candid_derive" -version = "0.10.21" +version = "0.10.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab75e3283c7912bb2986dd7033a87e4e5f3f472158816308a04d40f5d697099c" +checksum = "13501edc1f9c9f057d5d84171a13ee1fe4255705f9027a3fac64b5949cbdd170" dependencies = [ "lazy_static", "proc-macro2", "quote", - "syn 2.0.114", + "syn", ] [[package]] @@ -156,9 +168,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.11" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" dependencies = [ "darling_core", "darling_macro", @@ -166,27 +178,26 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.11" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" dependencies = [ - "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.114", + "syn", ] [[package]] name = "darling_macro" -version = "0.20.11" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core", "quote", - "syn 2.0.114", + "syn", ] [[package]] @@ -217,12 +228,6 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - [[package]] name = "generic-array" version = "0.14.7" @@ -247,20 +252,17 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "ic-cdk" -version = "0.19.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818d6d5416a8f0212e1b132703b0da51e36c55f2b96677e96f2bbe7702e1bd85" +checksum = "6a7971f4983db147afbbc4e7f87f60b09fcd60ac707af37ff3d2468dcddbf551" dependencies = [ "candid", "ic-cdk-executor", "ic-cdk-macros", "ic-error-types", - "ic-management-canister-types", "ic0", "pin-project-lite", "serde", - "serde_bytes", - "slotmap", "thiserror 2.0.18", ] @@ -277,15 +279,15 @@ dependencies = [ [[package]] name = "ic-cdk-macros" -version = "0.19.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66dad91a214945cb3605bc9ef6901b87e2ac41e3624284c2cabba49d43aa4f43" +checksum = "a7c20c002200c720958f321bb78b4d4987fc2c380bf9ef69ed4404730810f45f" dependencies = [ "candid", "darling", "proc-macro2", "quote", - "syn 2.0.114", + "syn", ] [[package]] @@ -299,22 +301,11 @@ dependencies = [ "strum_macros", ] -[[package]] -name = "ic-management-canister-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3149217e24186df3f13dc45eee14cdb3e5cad07d0b2b67bd53555c1c55462957" -dependencies = [ - "candid", - "serde", - "serde_bytes", -] - [[package]] name = "ic0" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1499d08fd5be8f790d477e1865d63bab6a8d748300e141270c4296e6d5fdd6bc" +checksum = "c77c8932bff1f09502d0d8c079d5a206a06afe523e35e816162cf4d30b5bf80d" [[package]] name = "ic_principal" @@ -405,9 +396,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pretty" @@ -491,7 +482,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn", ] [[package]] @@ -564,18 +555,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.114", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "syn", ] [[package]] @@ -615,7 +595,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn", ] [[package]] @@ -626,7 +606,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn", ] [[package]] diff --git a/rust/Cargo.toml b/rust/Cargo.toml index d71393e..669a663 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -8,4 +8,4 @@ crate-type = ["cdylib"] [dependencies] candid = "0.10" -ic-cdk = "0.19" +ic-cdk = "0.20" diff --git a/rust/icp.yaml b/rust/icp.yaml index 95a04d0..da3f730 100644 --- a/rust/icp.yaml +++ b/rust/icp.yaml @@ -1,8 +1,8 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.0.0/docs/schemas/icp-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/icp-yaml-schema.json canisters: - name: backend recipe: - type: "@dfinity/rust@v3.3.0" + type: "@dfinity/rust@v3.4.0" configuration: shrink: true # optional diff --git a/static-website/icp.yaml b/static-website/icp.yaml index 02cea99..dbc087d 100644 --- a/static-website/icp.yaml +++ b/static-website/icp.yaml @@ -1,10 +1,10 @@ -# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.0.0/docs/schemas/icp-yaml-schema.json +# yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/icp-yaml-schema.json canisters: - name: frontend recipe: # IMPORTANT: This recipe requires icp-cli >= 0.2.7 - type: "@dfinity/static-site@v0.3.1" + type: "@dfinity/static-site@v0.3.3" configuration: build: # Install the dependencies diff --git a/static-website/package.json b/static-website/package.json index 2b0f900..9988a22 100644 --- a/static-website/package.json +++ b/static-website/package.json @@ -9,10 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "typescript": "~5.9.3", - "vite": "npm:rolldown-vite@7.2.5" - }, - "overrides": { - "vite": "npm:rolldown-vite@7.2.5" + "typescript": "~7.0.2", + "vite": "~8.2.1" } } From cfed01114fb3efdddb091e5bc64ea8d71ffd3e4d Mon Sep 17 00:00:00 2001 From: Marco Walz Date: Wed, 12 Aug 2026 17:44:57 +0200 Subject: [PATCH 2/2] chore: test against icp-dev-env 1.3.0 and trim trailing whitespace MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump the dev-env image used by `make test` to 1.3.0 (icp CLI 1.3.0), which also aligns the CLI under test with the v1.3.0 schema URLs the templates reference. Also trim a pre-existing trailing space after `- name: backend` in rust/icp.yaml. This is cosmetic only — YAML strips trailing whitespace from plain scalars, so the value parses as `backend` either way — but it was the only such line in the repo. Co-Authored-By: Claude Opus 5 (1M context) --- Makefile | 2 +- rust/icp.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 838f244..e463011 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # image; the host only needs Docker. # Official ICP dev environment; the tag pins the icp CLI version under test. -IMAGE ?= ghcr.io/dfinity/icp-dev-env-all:1.2.0 +IMAGE ?= ghcr.io/dfinity/icp-dev-env-all:1.3.0 # Optional permutation filter, e.g. `make test FILTER=hello-world:rust:react` FILTER ?= diff --git a/rust/icp.yaml b/rust/icp.yaml index da3f730..ea26853 100644 --- a/rust/icp.yaml +++ b/rust/icp.yaml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=https://github.com/dfinity/icp-cli/raw/refs/tags/v1.3.0/docs/schemas/icp-yaml-schema.json canisters: - - name: backend + - name: backend recipe: type: "@dfinity/rust@v3.4.0" configuration: