Skip to content

[pull] main from dfinity:main#553

Merged
pull[bot] merged 1 commit intomikeyhodl:mainfrom
dfinity:main
Apr 25, 2026
Merged

[pull] main from dfinity:main#553
pull[bot] merged 1 commit intomikeyhodl:mainfrom
dfinity:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 25, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

## Summary

DFX has been superseded by ICP-CLI
([`dfinity/icp-cli`](https://github.com/dfinity/icp-cli), binary `icp`,
config `icp.yaml`, v0.2.0 as of March 2026). This PR migrates the entire
repository off DFX so that it builds, tests, deploys, and runs locally
via `icp` only.

Migration guide:
https://cli.internetcomputer.org/0.2/migration/from-dfx.md

## Changes

**Configuration**
- `dfx.json` → `icp.yaml` (YAML manifest format required by icp-cli)
- `demos/using-dev-build/dfx.json` → `demos/using-dev-build/icp.yaml`
- Version tracking: `.icp-cli-version` file (replaces `"dfx"` field in
`dfx.json`)
- `dfx.example.json` files → `icp.yaml.example`
- `.dfx/` cache directory → `.icp/` in all ignore files

**CI Workflows**
- Replace `dfinity/setup-dfx` action with `npm install -g
@icp-sdk/icp-cli@$(cat .icp-cli-version)`
- `canister-tests.yml`: all `dfx` commands → `icp` equivalents
- `deploy-rc.yml`: all `dfx` commands → `icp` equivalents
- Rename `update-dfx.yml` → `update-icp-cli.yml`, re-point at
`dfinity/icp-cli` releases
- `DFX_DEPLOY_KEY` local env var → `ICP_DEPLOY_KEY` (still reads
`secrets.DFX_DEPLOY_KEY`)

**Scripts**
- `scripts/build`: metadata key `dfx` → `icp-cli`
- `scripts/deploy-archive`: `dfx canister` → `icp canister`
- `scripts/deploy-common.bash`: `dfx canister` → `icp canister`,
`--network` → `-e`
- `scripts/deploy-local-to-beta`, `scripts/deploy-pr-to-beta`: updated
references
- `scripts/make-upgrade-proposal`: all `dfx` commands → `icp`
equivalents
- `demos/vc_issuer/provision`: `dfx` → `icp`, `--dfx-network` →
`--icp-network`

**Source Code**
- `src/vite-plugins/src/utils.ts`: `dfx info/canister` → `icp
info/canister`
- `src/frontend/src/hooks.server.ts`: `dfx canister id` → `icp canister
status --id-only`
- `demos/using-dev-build/test.ts`: same command updates
- `demos/using-dev-build/vite.plugins.ts`: `DFX_NETWORK` →
`ICP_NETWORK`, `.dfx/` → `.icp/`
- `src/try-ii/src/try-ii-frontend/package.json`: `dfx` → `icp` in npm
scripts

**Documentation**
- `HACKING.md`: all dfx commands → icp-cli equivalents, updated
prerequisites
- `README.md`: updated config example with array-based canisters format
- All demo and stable-memory READMEs updated

## Key command mapping

| dfx | icp-cli |
|-----|---------|
| `dfx start --background` | `icp network start -d` |
| `dfx stop` | `icp network stop` |
| `dfx deploy` | `icp deploy` |
| `dfx build` | `icp build` |
| `dfx canister call` | `icp canister call` |
| `dfx canister id <name>` | `icp canister status <name> --id-only` |
| `dfx canister create --all` | individual `icp canister create <name>`
per canister |
| `--network ic` | `-e ic` |
| `--argument` | `--args` |
| `--argument-type` | `--args-format` |
| `--argument-file` | `--args-file` |
| `--wallet <id>` | `--proxy <id>` |

## Test plan

- [ ] CI passes (canister tests, e2e tests, deploy job)
- [ ] Local development works: `icp network start -d && icp deploy`
- [ ] No remaining active `dfx` references (only historical code
comments preserved)

---------

Co-authored-by: Tim Aterton <timothyaterton@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Apr 25, 2026
@pull pull Bot added the ⤵️ pull label Apr 25, 2026
@pull pull Bot merged commit 98443f6 into mikeyhodl:main Apr 25, 2026
1 of 2 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant