Skip to content

v1.8.0

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Oct 10:03
03dcb62

Release Notes

  • fix: icp sync no longer needs controller rights. Its check that each canister is running used canister_status, which only a controller or a listed status viewer may read, so an identity the canister merely authorizes (a developer preparing an SNS-owned frontend for a commit proposal, say) was refused before anything was uploaded. It now probes with a query, as icp deploy already does after starting a canister. A stopped canister is still refused with the same advice, after the probe's 30-second wait rather than at once.
  • fix: icp cycles buy --json and icp cycles buy -q imply --yes: a machine-readable run has nobody to ask, so neither prompts for confirmation on a terminal nor refuses without one, and the quote stays off stderr.
  • fix: icp cycles buy says, with neither --amount nor --cycles, that one of the two is needed; and that a negative --amount or --cycles (-1, -5t) is negative, in the same words and with exit status 2 for both, where clap read -5t as an unknown flag
  • fix: icp cycles buy says in words what is wrong with a --gateway that is not a canister id, a canister that serves no gateway, and one a boundary node cannot route to, where it printed the replica's IC0536 or the HTTP gateway's routing error; CyclePay and Stripe are named only for CyclePay's gateway, any other is "the gateway"
  • fix: icp cycles buy draws the payment QR code black on white on any terminal theme. It used to take the terminal's own colours, which a light theme inverts and a dark theme often renders grey on near-black, and many phone cameras read neither. A terminal without colour support gets the plain drawing as before.

Experimental

  • feat(extension): extensions add third-party commands to icp. An extension is a WebAssembly component that runs sandboxed: it has no filesystem, environment variables, sockets or processes, and reaches the outside only through what icp hands it, namely canister calls as the resolved identity on the resolved network, a yes/no prompt, and showing the user an http(s) URL to visit. On mainnet it may call only the canisters it declares; on other networks this allowlist is not enforced, so it can be tried against a local network. Calls to the management canister are refused on every network.
    • icp extension install <NAME> <SOURCE> installs one from an https URL or a local path as the command icp <NAME>; --sha256 refuses a component with a different hash. Install shows the extension, its sha256 and the mainnet canisters it will call, flagging ledgers, and asks for approval (--yes skips the prompt). The sha256 is recorded and checked before every run. Installing under a name already installed replaces it, and any name works, so a build can be tried beside the installed one (cyclepay-beta beside cyclepay).
    • icp extension list, icp extension show <NAME> (both with --json) and icp extension uninstall <NAME> manage what is installed.
    • An extension declares its commands, and they become ordinary icp subcommands: help, parse errors and shell completion work as for built-ins, and --identity, -e/-n and the like are icp's own, resolved before the extension runs. A built-in command always wins over an extension of the same name.

Install icp-cli 1.8.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/icp-cli/releases/download/v1.8.0/icp-cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/dfinity/icp-cli/releases/download/v1.8.0/icp-cli-installer.ps1 | iex"

Download icp-cli 1.8.0

File Platform Checksum
icp-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
icp-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
icp-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
icp-cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
icp-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum