From 47f6b434d3e5a51a520fbd8d973c3a676e518ec4 Mon Sep 17 00:00:00 2001 From: Kaia Peacock Date: Tue, 21 Jan 2025 11:49:39 -0800 Subject: [PATCH 1/3] fix: removes unnecessary tsc step in sveltekit build script (#4070) --- CHANGELOG.md | 2 ++ .../project_templates/svelte/src/__frontend_name__/package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34ef8a43f1..21ccedfbbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ # UNRELEASED +### fix: removes unnecessary tsc step in sveltekit build script + ### feat!: `dfx info pocketic-config-port` Due to the incompatibility between the APIs on the replica port and the PocketIC port, `dfx info replica-port` diff --git a/src/dfx/assets/project_templates/svelte/src/__frontend_name__/package.json b/src/dfx/assets/project_templates/svelte/src/__frontend_name__/package.json index 85cf87751c..43a79c3630 100644 --- a/src/dfx/assets/project_templates/svelte/src/__frontend_name__/package.json +++ b/src/dfx/assets/project_templates/svelte/src/__frontend_name__/package.json @@ -7,7 +7,7 @@ "setup": "npm i && dfx canister create __backend_name__ && dfx generate __backend_name__ && dfx deploy", "start": "vite --port 3000", "prebuild": "dfx generate", - "build": "tsc && vite build", + "build": "vite build", "format": "prettier --write \"src/**/*.{json,js,jsx,ts,tsx,css,scss}\"" }, "dependencies": { From 6d2b777e9487600ddc2196f9c660c55ac1e75c96 Mon Sep 17 00:00:00 2001 From: Adam Spofford <93943719+adamspofford-dfinity@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:00:49 -0800 Subject: [PATCH 2/3] fix: correctly detect hyphenated bin artifact file path (#4069) --- CHANGELOG.md | 2 ++ e2e/assets/hyphenated-project/Cargo.toml | 3 +++ e2e/assets/hyphenated-project/dfx.json | 15 +++++++++++++++ .../hyphenated-project/hyphenated-bin/Cargo.toml | 8 ++++++++ .../hyphenated-project/hyphenated-bin/src/main.rs | 6 ++++++ .../hyphenated-project/hyphenated-lib/Cargo.toml | 11 +++++++++++ .../hyphenated-project/hyphenated-lib/src/lib.rs | 4 ++++ e2e/assets/hyphenated-project/name.did | 3 +++ e2e/tests-dfx/deploy.bash | 11 +++++++++++ src/dfx/src/lib/canister_info/rust.rs | 6 +++++- 10 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 e2e/assets/hyphenated-project/Cargo.toml create mode 100644 e2e/assets/hyphenated-project/dfx.json create mode 100644 e2e/assets/hyphenated-project/hyphenated-bin/Cargo.toml create mode 100644 e2e/assets/hyphenated-project/hyphenated-bin/src/main.rs create mode 100644 e2e/assets/hyphenated-project/hyphenated-lib/Cargo.toml create mode 100644 e2e/assets/hyphenated-project/hyphenated-lib/src/lib.rs create mode 100644 e2e/assets/hyphenated-project/name.did diff --git a/CHANGELOG.md b/CHANGELOG.md index 21ccedfbbc..c025c67788 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ # UNRELEASED +### fix: correctly detects hyphenated Rust bin crates + ### fix: removes unnecessary tsc step in sveltekit build script ### feat!: `dfx info pocketic-config-port` diff --git a/e2e/assets/hyphenated-project/Cargo.toml b/e2e/assets/hyphenated-project/Cargo.toml new file mode 100644 index 0000000000..c2eb118fa9 --- /dev/null +++ b/e2e/assets/hyphenated-project/Cargo.toml @@ -0,0 +1,3 @@ +[workspace] +resolver = "2" +members = ["hyphenated-lib", "hyphenated-bin"] diff --git a/e2e/assets/hyphenated-project/dfx.json b/e2e/assets/hyphenated-project/dfx.json new file mode 100644 index 0000000000..e19dc048d6 --- /dev/null +++ b/e2e/assets/hyphenated-project/dfx.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "canisters": { + "hyphenated-bin": { + "type": "rust", + "candid": "name.did", + "package": "hyphenated-bin" + }, + "hyphenated-lib": { + "type": "rust", + "candid": "name.did", + "package": "hyphenated-lib" + } + } +} diff --git a/e2e/assets/hyphenated-project/hyphenated-bin/Cargo.toml b/e2e/assets/hyphenated-project/hyphenated-bin/Cargo.toml new file mode 100644 index 0000000000..bcac5ead33 --- /dev/null +++ b/e2e/assets/hyphenated-project/hyphenated-bin/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "hyphenated-bin" +version = "0.0.0" +publish = false + +[dependencies] +ic-cdk = "0.17" +candid = "0.10" diff --git a/e2e/assets/hyphenated-project/hyphenated-bin/src/main.rs b/e2e/assets/hyphenated-project/hyphenated-bin/src/main.rs new file mode 100644 index 0000000000..c49d4c31b7 --- /dev/null +++ b/e2e/assets/hyphenated-project/hyphenated-bin/src/main.rs @@ -0,0 +1,6 @@ +#![no_main] + +#[ic_cdk::query] +fn name() -> String { + "bin".into() +} diff --git a/e2e/assets/hyphenated-project/hyphenated-lib/Cargo.toml b/e2e/assets/hyphenated-project/hyphenated-lib/Cargo.toml new file mode 100644 index 0000000000..b5dc0e7fb5 --- /dev/null +++ b/e2e/assets/hyphenated-project/hyphenated-lib/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "hyphenated-lib" +version = "0.0.0" +publish = false + +[lib] +crate-type = ["cdylib"] + +[dependencies] +ic-cdk = "0.17" +candid = "0.10" diff --git a/e2e/assets/hyphenated-project/hyphenated-lib/src/lib.rs b/e2e/assets/hyphenated-project/hyphenated-lib/src/lib.rs new file mode 100644 index 0000000000..17db1b6792 --- /dev/null +++ b/e2e/assets/hyphenated-project/hyphenated-lib/src/lib.rs @@ -0,0 +1,4 @@ +#[ic_cdk::query] +fn name() -> String { + "lib".into() +} diff --git a/e2e/assets/hyphenated-project/name.did b/e2e/assets/hyphenated-project/name.did new file mode 100644 index 0000000000..0c830a16a0 --- /dev/null +++ b/e2e/assets/hyphenated-project/name.did @@ -0,0 +1,3 @@ +service : { + name : () -> (text) query; +} diff --git a/e2e/tests-dfx/deploy.bash b/e2e/tests-dfx/deploy.bash index 709f912f8e..d893de8582 100644 --- a/e2e/tests-dfx/deploy.bash +++ b/e2e/tests-dfx/deploy.bash @@ -280,3 +280,14 @@ teardown() { assert_command_fail dfx deploy --mode reinstall --wasm-memory-persistence keep assert_contains "--skip-pre-upgrade and --wasm-memory-persistence can only be used with mode 'upgrade' or 'auto'." } + +@test "can deploy a hyphenated project" { + setup_rust + install_asset hyphenated-project + dfx_start + assert_command dfx deploy + assert_command dfx canister call hyphenated-bin name + assert_contains bin + assert_command dfx canister call hyphenated-lib name + assert_contains lib +} diff --git a/src/dfx/src/lib/canister_info/rust.rs b/src/dfx/src/lib/canister_info/rust.rs index 22ce219e04..de6cdd01ad 100644 --- a/src/dfx/src/lib/canister_info/rust.rs +++ b/src/dfx/src/lib/canister_info/rust.rs @@ -85,7 +85,11 @@ impl CanisterInfoFactory for RustCanisterInfo { "More than one bin/cdylib {phrasing} found" ); - let wasm_name = target.name.replace('-', "_"); + let wasm_name = if target.kind.iter().any(|t| t == "bin") { + target.name.clone() + } else { + target.name.replace('-', "_") + }; let output_wasm_path = metadata .target_directory .join(format!("wasm32-unknown-unknown/release/{wasm_name}.wasm")) From 2b33821634734f49fe370e929c4e7841c192a639 Mon Sep 17 00:00:00 2001 From: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:57:53 -0800 Subject: [PATCH 3/3] chore: update to agent-rs 0.39.3 (#4072) --- Cargo.lock | 26 +++++++++++++------------- Cargo.toml | 6 +++--- src/dfx/src/commands/canister/call.rs | 1 + 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aec2be11f9..a54c68df8d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1557,7 +1557,7 @@ dependencies = [ "ic-asset", "ic-cdk", "ic-identity-hsm", - "ic-utils 0.39.2", + "ic-utils 0.39.3", "ic-wasm", "icrc-ledger-types", "idl2json", @@ -1632,7 +1632,7 @@ dependencies = [ "humantime-serde", "ic-agent", "ic-identity-hsm", - "ic-utils 0.39.2", + "ic-utils 0.39.3", "itertools 0.10.5", "k256 0.11.6", "keyring", @@ -2651,8 +2651,8 @@ dependencies = [ [[package]] name = "ic-agent" -version = "0.39.2" -source = "git+https://github.com/dfinity/agent-rs?rev=0a51f2a65dde7d9e1790c378bd60e1768e3be257#0a51f2a65dde7d9e1790c378bd60e1768e3be257" +version = "0.39.3" +source = "git+https://github.com/dfinity/agent-rs?rev=a96022bd185e97f52c5cde1c82c7592abddcff86#a96022bd185e97f52c5cde1c82c7592abddcff86" dependencies = [ "arc-swap", "async-channel", @@ -2671,7 +2671,7 @@ dependencies = [ "http 1.2.0", "http-body 1.0.1", "ic-certification 3.0.2", - "ic-transport-types 0.39.2", + "ic-transport-types 0.39.3", "ic-verify-bls-signature", "k256 0.13.4", "leb128", @@ -2711,7 +2711,7 @@ dependencies = [ "globset", "hex", "ic-agent", - "ic-utils 0.39.2", + "ic-utils 0.39.3", "itertools 0.10.5", "json5", "mime", @@ -3110,8 +3110,8 @@ dependencies = [ [[package]] name = "ic-identity-hsm" -version = "0.39.2" -source = "git+https://github.com/dfinity/agent-rs?rev=0a51f2a65dde7d9e1790c378bd60e1768e3be257#0a51f2a65dde7d9e1790c378bd60e1768e3be257" +version = "0.39.3" +source = "git+https://github.com/dfinity/agent-rs?rev=a96022bd185e97f52c5cde1c82c7592abddcff86#a96022bd185e97f52c5cde1c82c7592abddcff86" dependencies = [ "hex", "ic-agent", @@ -3227,8 +3227,8 @@ dependencies = [ [[package]] name = "ic-transport-types" -version = "0.39.2" -source = "git+https://github.com/dfinity/agent-rs?rev=0a51f2a65dde7d9e1790c378bd60e1768e3be257#0a51f2a65dde7d9e1790c378bd60e1768e3be257" +version = "0.39.3" +source = "git+https://github.com/dfinity/agent-rs?rev=a96022bd185e97f52c5cde1c82c7592abddcff86#a96022bd185e97f52c5cde1c82c7592abddcff86" dependencies = [ "candid", "hex", @@ -3297,8 +3297,8 @@ dependencies = [ [[package]] name = "ic-utils" -version = "0.39.2" -source = "git+https://github.com/dfinity/agent-rs?rev=0a51f2a65dde7d9e1790c378bd60e1768e3be257#0a51f2a65dde7d9e1790c378bd60e1768e3be257" +version = "0.39.3" +source = "git+https://github.com/dfinity/agent-rs?rev=a96022bd185e97f52c5cde1c82c7592abddcff86#a96022bd185e97f52c5cde1c82c7592abddcff86" dependencies = [ "async-trait", "candid", @@ -3548,7 +3548,7 @@ dependencies = [ "humantime", "ic-agent", "ic-asset", - "ic-utils 0.39.2", + "ic-utils 0.39.3", "libflate 1.4.0", "num-traits", "pem 1.1.1", diff --git a/Cargo.toml b/Cargo.toml index 6492e7fc50..2a3ebbd8de 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,11 +22,11 @@ license = "Apache-2.0" candid = "0.10.11" candid_parser = "0.1.4" dfx-core = { path = "src/dfx-core", version = "0.1.0" } -ic-agent = { version = "0.39", git = "https://github.com/dfinity/agent-rs", rev = "0a51f2a65dde7d9e1790c378bd60e1768e3be257" } +ic-agent = { version = "0.39", git = "https://github.com/dfinity/agent-rs", rev = "a96022bd185e97f52c5cde1c82c7592abddcff86" } ic-asset = { path = "src/canisters/frontend/ic-asset", version = "0.21.0" } ic-cdk = "0.13.1" -ic-identity-hsm = { version = "0.39", git = "https://github.com/dfinity/agent-rs", rev = "0a51f2a65dde7d9e1790c378bd60e1768e3be257" } -ic-utils = { version = "0.39", git = "https://github.com/dfinity/agent-rs", rev = "0a51f2a65dde7d9e1790c378bd60e1768e3be257" } +ic-identity-hsm = { version = "0.39", git = "https://github.com/dfinity/agent-rs", rev = "a96022bd185e97f52c5cde1c82c7592abddcff86" } +ic-utils = { version = "0.39", git = "https://github.com/dfinity/agent-rs", rev = "a96022bd185e97f52c5cde1c82c7592abddcff86" } aes-gcm = "0.10.3" anyhow = "1.0.56" diff --git a/src/dfx/src/commands/canister/call.rs b/src/dfx/src/commands/canister/call.rs index 8a8249e19f..abb382d764 100644 --- a/src/dfx/src/commands/canister/call.rs +++ b/src/dfx/src/commands/canister/call.rs @@ -176,6 +176,7 @@ pub fn get_effective_canister_id( } MgmtMethod::StartCanister | MgmtMethod::StopCanister + | MgmtMethod::CanisterInfo | MgmtMethod::CanisterStatus | MgmtMethod::DeleteCanister | MgmtMethod::DepositCycles