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
dfxreplica
Typical installed binaries:
canic-build-canister-artifactcanic-build-wasm-store-artifactcanic-emit-root-release-set-manifestcanic-stage-root-release-setcanic-install-rootcanic-install-reference-topology
Build-profile selection is explicit:
CANIC_WASM_PROFILE=debugbuilds raw debug wasmCANIC_WASM_PROFILE=fastbuilds the middle shrunk local/test/demo laneCANIC_WASM_PROFILE=releasebuilds 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_ROOTfor Cargo,canic.toml, and canister manifestsCANIC_DFX_ROOTfordfx.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_ROOTfor the canister crate root relative toCANIC_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:
[]
= "project_ledger"