From ee01471dbe62cff5f3a3e8bc69327c4919c2c505 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 20 Sep 2022 11:06:39 +0200 Subject: [PATCH 1/5] Support different NNS wasm did files --- src/dfx/src/commands/nns/import.rs | 2 +- src/dfx/src/commands/sns/import.rs | 4 +++- src/dfx/src/lib/nns/install_nns.rs | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/dfx/src/commands/nns/import.rs b/src/dfx/src/commands/nns/import.rs index cb966381cb..5ae5e602f9 100644 --- a/src/dfx/src/commands/nns/import.rs +++ b/src/dfx/src/commands/nns/import.rs @@ -24,7 +24,7 @@ pub async fn exec(env: &dyn Environment, opts: ImportOpts) -> DfxResult { let mut config = config.as_ref().clone(); let network_mappings = get_network_mappings(&opts.network_mapping)?; - let ic_commit = replica_rev(); + let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(||replica_rev()); let dfx_url_str = { let ic_project = std::env::var("DFX_IC_SRC").unwrap_or_else(|_| { diff --git a/src/dfx/src/commands/sns/import.rs b/src/dfx/src/commands/sns/import.rs index 7e5d60deb7..60296e5f83 100644 --- a/src/dfx/src/commands/sns/import.rs +++ b/src/dfx/src/commands/sns/import.rs @@ -26,10 +26,12 @@ pub fn exec(env: &dyn Environment, opts: SnsImportOpts) -> DfxResult { let network_mappings = get_network_mappings(&opts.network_mapping)?; let runtime = Runtime::new().expect("Unable to create a runtime"); + let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(||replica_rev()); + let their_dfx_json_location = format!("https://raw.githubusercontent.com/dfinity/ic/{ic_commit}/rs/sns/cli/dfx.json"); runtime.block_on(import_canister_definitions( env.get_logger(), &mut config, - "https://raw.githubusercontent.com/dfinity/ic/master/rs/sns/cli/dfx.json", + &their_dfx_json_location, None, None, &network_mappings, diff --git a/src/dfx/src/lib/nns/install_nns.rs b/src/dfx/src/lib/nns/install_nns.rs index a16ce73ba5..09f66a0c09 100644 --- a/src/dfx/src/lib/nns/install_nns.rs +++ b/src/dfx/src/lib/nns/install_nns.rs @@ -415,7 +415,7 @@ pub async fn download_ic_repo_wasm( /// Downloads all the core NNS wasms, excluding only the front-end wasms II and NNS-dapp. #[context("Failed to download NNS wasm files.")] pub async fn download_nns_wasms(env: &dyn Environment) -> anyhow::Result<()> { - let ic_commit = replica_rev(); + let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(||replica_rev()); let wasm_dir = &nns_wasm_dir(env); for IcNnsInitCanister { wasm_name, From 0af52c0f950f09b5e3fbe568f0f31ab63e6cb0d1 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 20 Sep 2022 11:24:21 +0200 Subject: [PATCH 2/5] fmt --- src/dfx/src/commands/nns/import.rs | 2 +- src/dfx/src/commands/sns/import.rs | 5 +++-- src/dfx/src/lib/nns/install_nns.rs | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/dfx/src/commands/nns/import.rs b/src/dfx/src/commands/nns/import.rs index 5ae5e602f9..ced1885d9d 100644 --- a/src/dfx/src/commands/nns/import.rs +++ b/src/dfx/src/commands/nns/import.rs @@ -24,7 +24,7 @@ pub async fn exec(env: &dyn Environment, opts: ImportOpts) -> DfxResult { let mut config = config.as_ref().clone(); let network_mappings = get_network_mappings(&opts.network_mapping)?; - let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(||replica_rev()); + let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|| replica_rev()); let dfx_url_str = { let ic_project = std::env::var("DFX_IC_SRC").unwrap_or_else(|_| { diff --git a/src/dfx/src/commands/sns/import.rs b/src/dfx/src/commands/sns/import.rs index 60296e5f83..24dabcdd6a 100644 --- a/src/dfx/src/commands/sns/import.rs +++ b/src/dfx/src/commands/sns/import.rs @@ -26,8 +26,9 @@ pub fn exec(env: &dyn Environment, opts: SnsImportOpts) -> DfxResult { let network_mappings = get_network_mappings(&opts.network_mapping)?; let runtime = Runtime::new().expect("Unable to create a runtime"); - let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(||replica_rev()); - let their_dfx_json_location = format!("https://raw.githubusercontent.com/dfinity/ic/{ic_commit}/rs/sns/cli/dfx.json"); + let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|| replica_rev()); + let their_dfx_json_location = + format!("https://raw.githubusercontent.com/dfinity/ic/{ic_commit}/rs/sns/cli/dfx.json"); runtime.block_on(import_canister_definitions( env.get_logger(), &mut config, diff --git a/src/dfx/src/lib/nns/install_nns.rs b/src/dfx/src/lib/nns/install_nns.rs index 09f66a0c09..6cfe143700 100644 --- a/src/dfx/src/lib/nns/install_nns.rs +++ b/src/dfx/src/lib/nns/install_nns.rs @@ -415,7 +415,7 @@ pub async fn download_ic_repo_wasm( /// Downloads all the core NNS wasms, excluding only the front-end wasms II and NNS-dapp. #[context("Failed to download NNS wasm files.")] pub async fn download_nns_wasms(env: &dyn Environment) -> anyhow::Result<()> { - let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(||replica_rev()); + let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|| replica_rev()); let wasm_dir = &nns_wasm_dir(env); for IcNnsInitCanister { wasm_name, From 32b1ee2622b502d2d955f08d095f04b3c6c37d63 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 20 Sep 2022 13:27:40 +0200 Subject: [PATCH 3/5] fmt + clippy --- src/dfx/src/commands/nns/import.rs | 2 +- src/dfx/src/commands/sns/import.rs | 3 ++- src/dfx/src/lib/nns/install_nns.rs | 11 +++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/dfx/src/commands/nns/import.rs b/src/dfx/src/commands/nns/import.rs index ced1885d9d..82440ad98f 100644 --- a/src/dfx/src/commands/nns/import.rs +++ b/src/dfx/src/commands/nns/import.rs @@ -24,7 +24,7 @@ pub async fn exec(env: &dyn Environment, opts: ImportOpts) -> DfxResult { let mut config = config.as_ref().clone(); let network_mappings = get_network_mappings(&opts.network_mapping)?; - let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|| replica_rev()); + let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|_| replica_rev().to_string()); let dfx_url_str = { let ic_project = std::env::var("DFX_IC_SRC").unwrap_or_else(|_| { diff --git a/src/dfx/src/commands/sns/import.rs b/src/dfx/src/commands/sns/import.rs index 24dabcdd6a..e99d3bebc3 100644 --- a/src/dfx/src/commands/sns/import.rs +++ b/src/dfx/src/commands/sns/import.rs @@ -1,4 +1,5 @@ use crate::lib::error::DfxResult; +use crate::lib::info::replica_rev; use crate::lib::project::import::import_canister_definitions; use crate::lib::project::network_mappings::get_network_mappings; use crate::Environment; @@ -26,7 +27,7 @@ pub fn exec(env: &dyn Environment, opts: SnsImportOpts) -> DfxResult { let network_mappings = get_network_mappings(&opts.network_mapping)?; let runtime = Runtime::new().expect("Unable to create a runtime"); - let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|| replica_rev()); + let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|_| replica_rev().to_string()); let their_dfx_json_location = format!("https://raw.githubusercontent.com/dfinity/ic/{ic_commit}/rs/sns/cli/dfx.json"); runtime.block_on(import_canister_definitions( diff --git a/src/dfx/src/lib/nns/install_nns.rs b/src/dfx/src/lib/nns/install_nns.rs index 6cfe143700..ef7d53f48c 100644 --- a/src/dfx/src/lib/nns/install_nns.rs +++ b/src/dfx/src/lib/nns/install_nns.rs @@ -179,6 +179,9 @@ async fn get_subnet_id(agent: &Agent) -> anyhow::Result { /// The NNS canisters use the very first few canister IDs; they must be available. #[context("Failed to verify that the network is empty; dfx nns install must be run just after dfx start --clean")] async fn verify_nns_canister_ids_are_available(agent: &Agent) -> anyhow::Result<()> { + /// Checks that the canister is unused on the given network. + /// + /// The network is queried directly; local state such as canister_ids.json has no effect on this function. async fn verify_canister_id_is_available( agent: &Agent, canister_id: &str, @@ -415,7 +418,7 @@ pub async fn download_ic_repo_wasm( /// Downloads all the core NNS wasms, excluding only the front-end wasms II and NNS-dapp. #[context("Failed to download NNS wasm files.")] pub async fn download_nns_wasms(env: &dyn Environment) -> anyhow::Result<()> { - let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|| replica_rev()); + let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|_| replica_rev().to_string()); let wasm_dir = &nns_wasm_dir(env); for IcNnsInitCanister { wasm_name, @@ -423,16 +426,16 @@ pub async fn download_nns_wasms(env: &dyn Environment) -> anyhow::Result<()> { .. } in NNS_CORE { - download_ic_repo_wasm(wasm_name, ic_commit, wasm_dir).await?; + download_ic_repo_wasm(wasm_name, &ic_commit, wasm_dir).await?; if let Some(test_wasm_name) = test_wasm_name { - download_ic_repo_wasm(test_wasm_name, ic_commit, wasm_dir).await?; + download_ic_repo_wasm(test_wasm_name, &ic_commit, wasm_dir).await?; } } try_join_all( SNS_CANISTERS .iter() .map(|SnsCanisterInstallation { wasm_name, .. }| { - download_ic_repo_wasm(wasm_name, ic_commit, wasm_dir) + download_ic_repo_wasm(wasm_name, &ic_commit, wasm_dir) }), ) .await?; From bee09ee52ff167930275b7aa640e431a4f1c6f61 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 20 Sep 2022 13:34:02 +0200 Subject: [PATCH 4/5] bump From 2696fef22bb32366f9f1af1cd8a3d02f7a56e3a3 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 20 Sep 2022 16:25:46 +0200 Subject: [PATCH 5/5] Rename DFX_IC_REF -> DFX_IC_COMMIT --- src/dfx/src/commands/nns/import.rs | 2 +- src/dfx/src/commands/sns/import.rs | 2 +- src/dfx/src/lib/nns/install_nns.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dfx/src/commands/nns/import.rs b/src/dfx/src/commands/nns/import.rs index 82440ad98f..529a6f6478 100644 --- a/src/dfx/src/commands/nns/import.rs +++ b/src/dfx/src/commands/nns/import.rs @@ -24,7 +24,7 @@ pub async fn exec(env: &dyn Environment, opts: ImportOpts) -> DfxResult { let mut config = config.as_ref().clone(); let network_mappings = get_network_mappings(&opts.network_mapping)?; - let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|_| replica_rev().to_string()); + let ic_commit = std::env::var("DFX_IC_COMMIT").unwrap_or_else(|_| replica_rev().to_string()); let dfx_url_str = { let ic_project = std::env::var("DFX_IC_SRC").unwrap_or_else(|_| { diff --git a/src/dfx/src/commands/sns/import.rs b/src/dfx/src/commands/sns/import.rs index e99d3bebc3..12ea7321d4 100644 --- a/src/dfx/src/commands/sns/import.rs +++ b/src/dfx/src/commands/sns/import.rs @@ -27,7 +27,7 @@ pub fn exec(env: &dyn Environment, opts: SnsImportOpts) -> DfxResult { let network_mappings = get_network_mappings(&opts.network_mapping)?; let runtime = Runtime::new().expect("Unable to create a runtime"); - let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|_| replica_rev().to_string()); + let ic_commit = std::env::var("DFX_IC_COMMIT").unwrap_or_else(|_| replica_rev().to_string()); let their_dfx_json_location = format!("https://raw.githubusercontent.com/dfinity/ic/{ic_commit}/rs/sns/cli/dfx.json"); runtime.block_on(import_canister_definitions( diff --git a/src/dfx/src/lib/nns/install_nns.rs b/src/dfx/src/lib/nns/install_nns.rs index ef7d53f48c..5e05bf5189 100644 --- a/src/dfx/src/lib/nns/install_nns.rs +++ b/src/dfx/src/lib/nns/install_nns.rs @@ -418,7 +418,7 @@ pub async fn download_ic_repo_wasm( /// Downloads all the core NNS wasms, excluding only the front-end wasms II and NNS-dapp. #[context("Failed to download NNS wasm files.")] pub async fn download_nns_wasms(env: &dyn Environment) -> anyhow::Result<()> { - let ic_commit = std::env::var("DFX_IC_REF").unwrap_or_else(|_| replica_rev().to_string()); + let ic_commit = std::env::var("DFX_IC_COMMIT").unwrap_or_else(|_| replica_rev().to_string()); let wasm_dir = &nns_wasm_dir(env); for IcNnsInitCanister { wasm_name,