Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .agents/upstream-tracking.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Read the file at the **pinned** ref, not at `main`:

```bash
# The pinned ref for each repo is in .sources/upstream.json
curl -sL https://raw.githubusercontent.com/dfinity/icp-cli/v1.5.0/docs/reference/cli.md
curl -sL https://raw.githubusercontent.com/dfinity/icp-cli/v1.6.0/docs/reference/cli.md
```

Use `raw.githubusercontent.com`, not `gh api .../contents/...`: the API returns
Expand Down Expand Up @@ -133,10 +133,10 @@ is not a ref git can resolve.

### `icp-cli`: link slug adaptation

All CLI docs links use a versioned slug (`https://cli.internetcomputer.org/1.5/...`).
All CLI docs links use a versioned slug (`https://cli.internetcomputer.org/1.6/...`).
When `icp-cli` moves to a new minor:

1. The slug is the `major.minor` of the release (`v1.5.0` → `1.5`). Confirm it is
1. The slug is the `major.minor` of the release (`v1.6.0` → `1.6`). Confirm it is
live in the published version list, where the entry marked `latest: true` is
the slug the docs site serves at its root:
```bash
Expand All @@ -160,7 +160,7 @@ When `icp-cli` moves to a new minor:
3. Replace the slug across all files (per-file loop, because GNU and BSD `sed`
disagree on `-i`):
```bash
old=1.4; new=1.5
old=1.5; new=1.6
grep -rl "cli.internetcomputer.org/${old}/" docs/ | while IFS= read -r f; do
sed -i.bak "s|cli.internetcomputer.org/${old}/|cli.internetcomputer.org/${new}/|g" "$f" && rm -f "$f.bak"
done
Expand Down
8 changes: 4 additions & 4 deletions .sources/upstream.json
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
"watched": [
{
"repo": "dfinity/icp-cli",
"pinned": "v1.5.0",
"pinned": "v1.6.0",
"track": "release",
"tagPattern": "^v\\d+\\.\\d+\\.\\d+$",
"verify": "docs/reference/cli.md",
Expand All @@ -98,7 +98,7 @@
},
{
"repo": "dfinity/motoko-core",
"pinned": "v2.6.1",
"pinned": "v2.6.2",
"track": "release",
"tagPattern": "^v\\d+\\.\\d+\\.\\d+$",
"affects": "Every `mo:core` import and API signature in Motoko code blocks.",
Expand Down Expand Up @@ -133,7 +133,7 @@
},
{
"repo": "dfinity/icp-js-canisters",
"pinned": "3.6.0",
"pinned": "4.0.0",
"track": "npm",
"package": "@icp-sdk/canisters",
"affects": "`@icp-sdk/canisters` APIs, notably `AssetManager` in references/application-canisters.md and guides/frontends/asset-canister.md, which states a minimum of 3.5.0. This repo's semver tags lag its published versions, so npm is the release signal. Changelog: https://github.com/dfinity/icp-js-canisters/blob/main/CHANGELOG.md",
Expand All @@ -151,7 +151,7 @@
{
"repo": "dfinity/icp-cli-recipes",
"name": "static-site",
"pinned": "static-site-v0.3.3",
"pinned": "static-site-v0.4.0",
"track": "release",
"tagPattern": "^static-site-v\\d+\\.\\d+\\.\\d+$",
"affects": "The canister's own pages are synced from dfinity/certified-assets into docs/guides/frontends/static-site/ and follow that repo's releases, not this one, so a recipe release mainly moves the version readers pin: check the `@dfinity/static-site@` examples in guides/frontends/, getting-started/ and references/application-canisters.md. This repo's own icp.yaml deploys with it, so a release also affects the docs site itself. Each recipe in this repo tags and releases on its own prefix, so it gets its own entry: a single pattern across prefixes would compare `rust-` against `static-site-` textually and only ever surface one of them.",
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ EOF
- Link to `internetcomputer.org/docs/` (retired) or `learn.internetcomputer.org` (content is now in this repo under `docs/concepts/`)
- Link to internal pages that don't exist — run `ls <target>` before linking. Links to `.mdx` files use `.md` extension.
- Link to an internal page without checking for a relevant section anchor — read the target page to find the most specific section that fits, then derive the anchor slug from its heading (lowercase, spaces → `-`, special chars stripped).
- Link to `https://cli.internetcomputer.org/` bare root — use the versioned path. Current slug: `1.5`. It is the `major.minor` of the latest icp-cli release, and the docs always track the latest. Do not read it from the repo's `docs-site/versions.json`: at a release tag that file still lists the *previous* slug, because the docs-site version bump lands as a follow-up commit after the tag. Confirm the live slug against the published `https://cli.internetcomputer.org/versions.json`, whose `latest: true` entry names it (the docs-site root reaches it through a meta refresh, which `curl -L` does not follow), and see `.agents/upstream-tracking.md` for the full slug-bump procedure.
- Link to `https://cli.internetcomputer.org/` bare root — use the versioned path. Current slug: `1.6`. It is the `major.minor` of the latest icp-cli release, and the docs always track the latest. Do not read it from the repo's `docs-site/versions.json`: at a release tag that file still lists the *previous* slug, because the docs-site version bump lands as a follow-up commit after the tag. Confirm the live slug against the published `https://cli.internetcomputer.org/versions.json`, whose `latest: true` entry names it (the docs-site root reaches it through a meta refresh, which `curl -L` does not follow), and see `.agents/upstream-tracking.md` for the full slug-bump procedure.
- Link externally when an internal page exists — check `docs/` first
- Write em-dashes (`—`) or use `--` as prose punctuation — use colon, semicolon, or parentheses instead. (`--` is fine inside code blocks as a CLI flag or comment.)
- Rename Candid field names, management canister API identifiers, or example repo names — these are protocol-level identifiers
Expand Down
8 changes: 4 additions & 4 deletions docs/developer-tools/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ Key features:
- **Environments**: named deployment targets that combine a network, canister set, and settings (e.g., local, staging, production)
- **Project scaffolding**: `icp new` bootstraps new projects from official templates

For installation, see the [Quickstart](../getting-started/quickstart.md) or the [full CLI documentation](https://cli.internetcomputer.org/1.5/). To complete `icp` commands in your shell, `icp completions <shell>` prints a script for bash, zsh, fish, elvish, or PowerShell; see [shell completions](https://cli.internetcomputer.org/1.5/guides/installation#shell-completions) for where to put it.
For installation, see the [Quickstart](../getting-started/quickstart.md) or the [full CLI documentation](https://cli.internetcomputer.org/1.6/). To complete `icp` commands in your shell, `icp completions <shell>` prints a script for bash, zsh, fish, elvish, or PowerShell; see [shell completions](https://cli.internetcomputer.org/1.6/guides/installation#shell-completions) for where to put it.

Advanced: [creating recipes](https://cli.internetcomputer.org/1.5/guides/creating-recipes) and [creating templates](https://cli.internetcomputer.org/1.5/guides/creating-templates) are documented on the CLI docs site.
Advanced: [creating recipes](https://cli.internetcomputer.org/1.6/guides/creating-recipes) and [creating templates](https://cli.internetcomputer.org/1.6/guides/creating-templates) are documented on the CLI docs site.

icp-cli collects anonymous usage telemetry. Opt out with `icp settings telemetry false` or `DO_NOT_TRACK=1`.

Coming from dfx? See the [migration guide](https://cli.internetcomputer.org/1.5/migration/from-dfx).
Coming from dfx? See the [migration guide](https://cli.internetcomputer.org/1.6/migration/from-dfx).

### ic-wasm

Expand All @@ -35,7 +35,7 @@ Resources:

### Quill

Quill is a minimalistic, offline-first CLI for signing and sending governance messages (NNS and SNS proposals, neuron management) from air-gapped machines. Its focus is governance: for canister calls, icp-cli covers the same split with [`icp canister call --sign-only`](https://cli.internetcomputer.org/1.5/reference/cli#icp-canister-call), which writes a signed message on the offline device, and [`icp message send`](https://cli.internetcomputer.org/1.5/reference/cli#icp-message-send), which submits it from a networked one. That pair is experimental, so it can change between icp-cli releases.
Quill is a minimalistic, offline-first CLI for signing and sending governance messages (NNS and SNS proposals, neuron management) from air-gapped machines. Its focus is governance: for canister calls, icp-cli covers the same split with [`icp canister call --sign-only`](https://cli.internetcomputer.org/1.6/reference/cli#icp-canister-call), which writes a signed message on the offline device, and [`icp message send`](https://cli.internetcomputer.org/1.6/reference/cli#icp-message-send), which submits it from a networked one. That pair is experimental, so it can change between icp-cli releases.

Quill is suited for:
- Submitting NNS governance proposals
Expand Down
8 changes: 4 additions & 4 deletions docs/getting-started/project-structure.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Beyond canisters, `icp.yaml` can also define **networks** (where to deploy) and
| `local` | `local` (managed, localhost:8000) | Local development |
| `ic` | `ic` (connected, https://icp-api.io) | Mainnet production |

You only need to add custom networks or environments when you have staging environments, testnets, or other deployment targets. See the [icp-cli configuration reference](https://cli.internetcomputer.org/1.5/reference/configuration#networks) for the full schema.
You only need to add custom networks or environments when you have staging environments, testnets, or other deployment targets. See the [icp-cli configuration reference](https://cli.internetcomputer.org/1.6/reference/configuration#networks) for the full schema.

## Canister configuration (canister.yaml)

Expand Down Expand Up @@ -123,7 +123,7 @@ The frontend uses the `@dfinity/static-site` recipe, which builds the frontend a
```yaml
name: frontend
recipe:
type: "@dfinity/static-site@v0.3.3"
type: "@dfinity/static-site@v0.4.0"
configuration:
build:
- npm install
Expand Down Expand Up @@ -158,7 +158,7 @@ icp project show

This outputs the effective configuration, including all expanded recipe steps and implicit defaults.

Recipes are Handlebars templates hosted at [dfinity/icp-cli-recipes](https://github.com/dfinity/icp-cli-recipes). You can also create local or remote recipes for custom build patterns. See the [icp-cli recipes documentation](https://cli.internetcomputer.org/1.5/guides/creating-recipes) for details.
Recipes are Handlebars templates hosted at [dfinity/icp-cli-recipes](https://github.com/dfinity/icp-cli-recipes). You can also create local or remote recipes for custom build patterns. See the [icp-cli recipes documentation](https://cli.internetcomputer.org/1.6/guides/creating-recipes) for details.

## The .icp/ directory

Expand Down Expand Up @@ -257,6 +257,6 @@ For a deep dive on binding generation, see [Binding generation](../guides/canist
- [Binding generation](../guides/canister-calls/candid.md#binding-generation): deep dive on generating type-safe client code
- [Hosting a static site](../guides/frontends/static-site/overview.md): how the frontend recipe and asset upload work
- [Canister lifecycle](../guides/canister-management/lifecycle.md): build, deploy, upgrade, and manage canisters
- [icp-cli reference](https://cli.internetcomputer.org/1.5/reference/cli): full CLI and configuration documentation
- [icp-cli reference](https://cli.internetcomputer.org/1.6/reference/cli): full CLI and configuration documentation

{/* Upstream: informed by dfinity/icp-cli docs/concepts/project-model.md, docs/concepts/recipes.md, docs/concepts/binding-generation.md, docs/concepts/canister-discovery.md */}
4 changes: 2 additions & 2 deletions docs/getting-started/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ icp --version
ic-wasm --version
```

> **Alternative methods:** [Homebrew, shell scripts, and other options](https://cli.internetcomputer.org/1.5/guides/installation) are also available.
> **Alternative methods:** [Homebrew, shell scripts, and other options](https://cli.internetcomputer.org/1.6/guides/installation) are also available.

## Create a project

Expand Down Expand Up @@ -127,6 +127,6 @@ Each canister name maps to a directory containing its own `canister.yaml` with b
- [Choose your path](choose-your-path.md): pick a development path based on what you want to build
- [Concepts: Canisters](../concepts/canisters.md): learn what canisters are and how they work
- [AI coding agents](../guides/ai-coding-agents.md): use ICP skills to build on the Internet Computer with AI
- [icp-cli documentation](https://cli.internetcomputer.org/1.5/): full CLI reference and guides
- [icp-cli documentation](https://cli.internetcomputer.org/1.6/): full CLI reference and guides

<!-- Upstream: informed by dfinity/icp-cli docs/quickstart.md, docs/tutorial.md -->
2 changes: 1 addition & 1 deletion docs/guides/canister-calls/calling-from-clients.md
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ export default defineConfig({
headers: {
"Set-Cookie": `ic_env=${encodeURIComponent(
`ic_root_key=${IC_ROOT_KEY_HEX}&PUBLIC_CANISTER_ID:backend=${BACKEND_CANISTER_ID}`
)}; SameSite=Lax;`,
)}; Path=/; SameSite=Lax;`,
},
},
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ Parallel calls are most beneficial when the caller and callee are on **different
<Tabs syncKey="lang">
<TabItem label="Motoko">

- [icp-cli](https://cli.internetcomputer.org/1.5/guides/installation) installed
- [icp-cli](https://cli.internetcomputer.org/1.6/guides/installation) installed
- `mops` package manager with `core = "2.0.0"` in `mops.toml`

</TabItem>
<TabItem label="Rust">

- [icp-cli](https://cli.internetcomputer.org/1.5/guides/installation) installed
- [icp-cli](https://cli.internetcomputer.org/1.6/guides/installation) installed
- `ic-cdk = "0.19"` and `futures = "0.3"` in `Cargo.toml`

</TabItem>
Expand Down
4 changes: 2 additions & 2 deletions docs/guides/canister-management/cycles-management.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@ icp deploy -e staging
icp deploy -e production
```

Each environment maintains separate canister IDs. Mainnet IDs are stored in `.icp/data/mappings/<environment>.ids.json` and should be committed to version control. See [Managing environments](https://cli.internetcomputer.org/1.5/guides/managing-environments) for full configuration options.
Each environment maintains separate canister IDs. Mainnet IDs are stored in `.icp/data/mappings/<environment>.ids.json` and should be committed to version control. See [Managing environments](https://cli.internetcomputer.org/1.6/guides/managing-environments) for full configuration options.

## Production deployment checklist

Expand Down Expand Up @@ -399,6 +399,6 @@ icp canister top-up backend --amount 1T -n ic
- [Cycles ledger reference](../../references/system-canisters.md#cycles-ledger): Canister IDs and interface specification
- [Calls with attached cycles](../canister-calls/inter-canister-calls.md#calls-with-attached-cycles): attach cycles to an inter-canister call and accept them in the callee
- [Reproducible builds](reproducible-builds.md): Verify your WASM is trustworthy before deploying
- [icp-cli docs](https://cli.internetcomputer.org/1.5/reference/cli#icp-cycles): Full command reference for `icp cycles` and `icp canister top-up`
- [icp-cli docs](https://cli.internetcomputer.org/1.6/reference/cli#icp-cycles): Full command reference for `icp cycles` and `icp canister top-up`

{/* Upstream: informed by dfinity/portal (docs/building-apps/canister-management/topping-up.mdx, docs/building-apps/getting-started/tokens-and-cycles.mdx; dfinity/icp-cli) docs/guides/deploying-to-mainnet.md, docs/guides/tokens-and-cycles.md, docs/guides/managing-environments.md; dfinity/icskills: skills/cycles-management/SKILL.md */}
2 changes: 1 addition & 1 deletion docs/guides/canister-management/lifecycle.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ This is useful during development when you want a clean slate. The canister ID i

Deleting permanently removes a canister from the network. The canister ID cannot be reused.

> **Note:** Canisters are like real estate on the IC. Creating them costs cycles. Instead of deleting a canister, consider reusing it in a different project. Check the [cli reference](https://cli.internetcomputer.org/1.5/concepts/project-model/#canister-ids) for more information.
> **Note:** Canisters are like real estate on the IC. Creating them costs cycles. Instead of deleting a canister, consider reusing it in a different project. Check the [cli reference](https://cli.internetcomputer.org/1.6/concepts/project-model/#canister-ids) for more information.

1. Stop the canister first:

Expand Down
4 changes: 2 additions & 2 deletions docs/guides/canister-management/logs.md
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ async fn main() -> Result<()> {

- [Canister lifecycle](lifecycle.md): configure log visibility and memory limits when creating or deploying a canister
- [Testing strategies](../testing/strategies.md): use canister logs as part of your debugging workflow
- [CLI reference: `icp canister logs`](https://cli.internetcomputer.org/1.5/reference/cli#icp-canister-logs): full command flags and options
- [CLI reference: `icp canister settings update`](https://cli.internetcomputer.org/1.5/reference/cli#icp-canister-settings-update): full command flags and options
- [CLI reference: `icp canister logs`](https://cli.internetcomputer.org/1.6/reference/cli#icp-canister-logs): full command flags and options
- [CLI reference: `icp canister settings update`](https://cli.internetcomputer.org/1.6/reference/cli#icp-canister-settings-update): full command flags and options

<!-- Upstream: informed by dfinity/portal — docs/building-apps/canister-management/logs.mdx, docs/building-apps/canister-management/backtraces.mdx, docs/building-apps/advanced/canister-access-logs.mdx; dfinity/examples — rust/canister_logs, motoko/canister_logs, rust/query_stats, motoko/query_stats; dfinity/cdk-rs — ic-cdk/src/api.rs, ic-cdk/src/management_canister.rs, ic-management-canister-types/src/lib.rs; dfinity/icp-cli — docs/reference/cli.md, docs/reference/canister-settings.md -->
2 changes: 1 addition & 1 deletion docs/guides/canister-management/settings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ A viewer list is also relative to an existing one, so `--add-<kind>-viewer` and

Additional flags: `--reserved-cycles-limit`, `--wasm-memory-threshold`, `--log-memory-limit`, `--add-environment-variable`. Run `icp canister settings update --help` for the full list.

For the full list of CLI flags, see the [icp-cli reference](https://cli.internetcomputer.org/1.5/reference/cli#icp-canister-settings-update).
For the full list of CLI flags, see the [icp-cli reference](https://cli.internetcomputer.org/1.6/reference/cli#icp-canister-settings-update).

## Updating settings programmatically

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/canister-management/snapshots.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,6 @@ icp canister status my-canister -e ic
- [Canister lifecycle](lifecycle.md): Understand how snapshots fit into the upgrade workflow
- [Canister migration](canister-migration.md): Complete guide for moving a canister to a different subnet using the snapshot transfer workflow
- [Canister upgrades security](../security/canister-upgrades.md): Security considerations when using snapshot-based rollbacks
- [icp-cli canister snapshot reference](https://cli.internetcomputer.org/1.5/guides/canister-snapshots): Full command reference for all snapshot subcommands
- [icp-cli canister snapshot reference](https://cli.internetcomputer.org/1.6/guides/canister-snapshots): Full command reference for all snapshot subcommands

<!-- Upstream: informed by dfinity/icp-cli docs/guides/canister-snapshots.md; dfinity/portal docs/building-apps/canister-management/snapshots.mdx -->
4 changes: 2 additions & 2 deletions docs/guides/chain-fusion/bitcoin.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -935,7 +935,7 @@ type Utxo = { outpoint : { txid : Blob; vout : Nat32 }; value : Nat64; height :
func selectUtxosGreedy(utxos : [Utxo], amount : Nat64, fee : Nat64) : [Utxo] {
var selected : [Utxo] = [];
var total : Nat64 = 0;
label done for (utxo in Array.reverse(utxos).vals()) {
label done for (utxo in Array.reverse(utxos).values()) {
selected := Array.concat(selected, [utxo]);
total += utxo.value;
if (total >= amount + fee) break done;
Expand All @@ -947,7 +947,7 @@ func selectUtxosGreedy(utxos : [Utxo], amount : Nat64, fee : Nat64) : [Utxo] {
// Single UTXO: find one that alone covers amount + fee.
// Use for Ordinals, Runes, and BRC-20 where the asset is tied to a specific satoshi.
func selectOneUtxo(utxos : [Utxo], amount : Nat64, fee : Nat64) : Utxo {
for (utxo in Array.reverse(utxos).vals()) {
for (utxo in Array.reverse(utxos).values()) {
if (utxo.value >= amount + fee) return utxo;
};
Runtime.trap("No single UTXO covers amount + fee")
Expand Down
Loading
Loading