Skip to content

0.17.0

Compare
Choose a tag to compare
@github-actions github-actions released this 14 Feb 21:27
· 316 commits to master since this release
d37f112

feat: new starter templates

dfx new now has a new set of customizable project templates and an interactive menu for selecting them. Supports the Svelte, Vue, and React frameworks, and Azle and Kybra backends.

fix: --no-frontend no longer creates a frontend

Previously dfx new --no-frontend still created a frontend canister. This behavior is now accessed via --frontend simple-assets.

feat: dfx cycles redeem-faucet-coupon

It is now possible to redeem faucet coupons to cycles ledger accounts.

feat: specified_id in dfx.json

In addition to passing --specified-id in dfx deploy and dfx canister create, specified_id can be set in dfx.json.

If it is set in both places, the specified ID from the command line takes precedence over the one in dfx.json.

feat: create canister on same subnet as other canisters

dfx deploy, dfx canister create, and dfx ledger create-canister now support the option --next-to <canister principal> to create canisters on the same subnet as other canisters.
The registry canister is used as the source of truth to figure out the subnet id.

feat: init_arg in dfx.json

In addition to passing --argument or --argument-file in dfx deploy and dfx canister install, init_arg can be set in dfx.json.

If it is set in both places, the argument from the command line takes precedence over the one in dfx.json.

feat(deps): init_arg in pullable metadata

Providers can set an optional init_arg field in pullable metadata.

When consumers run dfx deps init without --argument, the value in init_arg will be used automatically.

Consumers won't have to figure out the init argument by themselves. It can be overwritten by dfx deps init --argument.

fix(deps): dfx deps init will try to set "(null)" init argument

For pulled canisters which have no init_arg in pullable metadata, dfx deps init without --argument will try to set "(null)" automatically.

This works for canisters with top-level opt in init argument. This behavior is consistent with dfx deploy and dfx canister install.

The init argument can be overwritten by dfx deps init --argument.

fix(deps): content of wasm_hash_url can have extra fields than the hash

It is natural to point wasm_hash_url to the <FILE>.sha256 file generated by shasum or sha256sum which consists of the hash and the file name.

Now when dfx deps pull, such content will be accept properly.

feat: dfx upgrade will direct the user to install dfxvm if it has been released.

If the latest release of https://github.com/dfinity/dfxvm is >= 1.0, dfx upgrade will
direct the user to install dfxvm and then exit.

feat: fetch did file from canister metadata when making canister calls

dfx canister call will always fetch the .did file from the canister metadata. If the canister doesn't have the candid:service metadata, dfx will fallback to the current behavior of reading the .did file from the local build artifact. This fallback behavior is deprecated and we will remove it in a future release. This should not affect Motoko and Rust canisters built from dfx, as dfx build automatically writes the Candid metadata into the canister.

If you build with custom canister type, add the following into dfx.json:

"metadata": [
  { 
    "name": "candid:service"
  }
]

If you build the canister without using dfx, you can use ic-wasm to store the metadata:

ic-wasm canister.wasm -o canister.wasm metadata candid:service -f service.did -v public

fix: removed the dfx toolchain command

Please use the dfx version manager instead.

feat: allow dfxvm install script to bypass confirmation

The dfxvm install script now accepts DFXVM_INIT_YES=<non empty string> to skip confirmation.

chore: bump ic-agent, ic-utils and ic-identity-hsm to 0.32.0