canic-installer 0.22.10

Published installer and release-set tooling for Canic downstream workspaces
Documentation

canic-installer

Published installer and release-set tooling for downstream Canic workspaces.

This crate owns the public thin-root build and staging path:

  • build visible canister artifacts through canic-build-canister-artifact
  • build the hidden bootstrap store through canic-build-wasm-store-artifact
  • emit .dfx/<network>/canisters/root/root.release-set.json
  • stage the ordinary release set into root
  • resume root bootstrap
  • drive the local root install flow against an already running dfx replica

Typical installed binaries:

  • canic-build-canister-artifact
  • canic-build-wasm-store-artifact
  • canic-emit-root-release-set-manifest
  • canic-stage-root-release-set
  • canic-install-root
  • canic-install-reference-topology

Build-profile selection is explicit:

  • CANIC_WASM_PROFILE=debug builds raw debug wasm
  • CANIC_WASM_PROFILE=fast builds the middle shrunk local/test/demo lane
  • CANIC_WASM_PROFILE=release builds the shipping/install lane

If unset, installer/build binaries default to release.

When the Rust workspace root and the DFX/project root differ, set both:

  • CANIC_WORKSPACE_ROOT for Cargo, canic.toml, and canister manifests
  • CANIC_DFX_ROOT for dfx.json, .dfx, and emitted artifacts

If canister crates live somewhere other than the default canisters/ directory, the installer first tries to discover them from Cargo workspace metadata. Zero extra config is needed when package names still follow the normal canister_<role> convention, even if manifests live in nested paths.

If you need to override discovery explicitly, set:

  • CANIC_CANISTERS_ROOT for the canister crate root relative to CANIC_WORKSPACE_ROOT

or point CANIC_CONFIG_PATH at the real canic.toml path and the installer will infer the canister-manifest root from that config location.

If a package name does not follow canister_<role>, declare the role mapping in Cargo.toml:

[package.metadata.canic]
role = "project_ledger"