Skip to content

Releases: dfinity/sdk

0.19.0-beta.0

26 Mar 17:48
72512be
Compare
Choose a tag to compare
0.19.0-beta.0 Pre-release
Pre-release

0.19.0-beta.0

fix: call management canister Bitcoin query API without replica-signed query

dfx canister call --query defaults to use "Replica-signed query" feature.

It doesn't work with bitcoin query calls to the management canister because the Boundary Nodes cannot route the read_state call.

Only for these particular queries, dfx will make the query calls without checking the replica signatures.

If the response reliability is a concern, you can make update calls to the secure alternatives.

feat(beta): enable cycles ledger support

If the environment variable DFX_CYCLES_LEDGER_SUPPORT_ENABLE is set and no cycles wallet is configured, then dfx will try to use the cycles ledger to perform any operation that the cycles wallet usually is used for.

The following commands/options have been unhidden:

  • dfx cycles
  • --from-subaccount for dfx deploy, dfx canister create, dfx canister deposit-cycles to determine which cycles ledger subaccount the used cycles should be used from
  • --created-at-time for dfx deploy, dfx create canister, dfx canister deposit-cycles to control transaction deduplication on the cycles ledger
  • --to-subaccount for dfx canister delete to control into which subaccount cycles are withdrawn before the canister is deleted

The cycles ledger will not be supported by default until the cycles ledger canister is under NNS control.

feat: dfx canister call ... --output json

This is the same as dfx canister call ... | idl2json, for convenience.

See also: https://github.com/dfinity/idl2json

fix: Output of dfx ping is now valid JSON

Added commas in between fields, and newlines to improve formatting.

fix: canister status output to be grep compatible

dfx canister status now outputs to stdout, rather than stderr, so that its output is grep compatible.

fix: fetching canister logs to be grep & tail compatible

dfx canister logs now outputs to stdout, rather than stderr, so that its output is grep and tail compatible.

fix: fetching canister logs

The management canister method fetch_canister_logs can be called only as a query, not as an update call. Therefore, dfx canister logs <canister_id> now uses a query call for this purpose.

dfx wallet set-name now actually sets the name of the wallet

feat: hyphenated project names

DFX no longer forbids hyphens in project names. Anywhere they appear as the name of a variable, e.g. environment variables or generated JS variables, they will be replaced with underscores.

fix: .ic-assets.json configuration entries no longer overwrite the default for allow_raw_access

Previously, any configuration element in .ic-assets.json functioned as if a setting of
"allow_raw_access": true were present in the json object.

For example, given the following configuration, all files would be configured
with allow_raw_access set to true, as if the second entry specified
"allow_raw_access": true (which is the default), even though it does not.

[
  {
    "match": "**/*",
    "allow_raw_access": false
  },
  {
    "match": "**/*",
    "headers": {
      "X-Anything": "Something"
    }
  }
]

Now, given the same configuration, all files would be configured with allow_raw_access set to false, as expected.

Note that the default value of allow_raw_access is still true.

fix: removed version switching logic

Removed the logic for calling a different version of dfx based on DFX_VERSION or the dfx field in
dfx.json. This is now performed by dfxvm.

feat: --always-assist flag for dfx canister call/install/sign and dfx deploy

When all the arguments are optional, dfx automatically provides a null value when no arguments are provided.
--always-assist flag enables the candid assist feature for optional arguments, instead of providing a default null value.

fix(deps): the second pull forget to set wasm_hash_download in pulled.json

When the dependency has been in the cache, dfx deps pull forgot to set correct wasm_hash_download in pulled.json.

It caused the following init/deploy commands to fail.

Dependencies

Replica

Updated replica to elected commit 425a0012aeb40008e2e72d913318bc9dbdf3b4f4.
This incorporates the following executed proposals:

Bitcoin canister

Downgraded Bitcoin canister to release/2023-10-13

0.18.0

06 Mar 16:20
8ce20f3
Compare
Choose a tag to compare

fix!: removed the dfx upgrade command

The dfx upgrade command now prints a message directing the user to install dfxvm.

fix!: Remove fallback .env formats

In dfx 0.14.0, we standardized on CANISTER_ID_<CANISTER_NAME_UPPERCASE> and
CANISTER_CANDID_PATH_<CANISTER_NAME_UPPERCASE> for
environment variables for canister IDs and candid paths respectively,
and deprecated the old formats. This version removes the old formats.

The only variable names now provided are the following,
all uppercase, with any '-' replaced by '_':

  • CANISTER_CANDID_PATH_<CANISTER_NAME>
  • CANISTER_ID_<CANISTER_NAME>

For reference, these formats were removed (any '-' characters were replaced by '_'):

  • CANISTER_CANDID_PATH_<canister_name_case_from_dfx_json>
  • <CANISTER_NAME_UPPERCASE>_CANISTER_ID

feat: add dfx canister logs <canister_id> for fetching canister's logs (preview)

There is a new subcommand logs to fetch canister's logs.
When printing the log entries it tries to guess if the content can be converted to UTF-8 text and prints an array of hex bytes if it fails.

Note

This feature is still in development. Changes may occur in following releases.

feat: display local asset canister URLs in subdomain format

Locally, canisters can either be accessed via <canister_id>.localhost:<port> or localhost:<port>?canisterId=<canister_id>.
The query parameter format is annoying to handle in SPAs, therefore the subdomain format is now displayed alongside the subdomain version after deployments.

The query parameter format is not removed because Safari does not support localhost subdomains.

fix: .env files sometimes missing some canister ids

Made it so dfx deploy and dfx canister install will always write
environment variables for all canisters in the project that have canister ids
to the .env file, even if they aren't being deployed/installed
or a dependency of a canister being deployed/installed.

feat: unify CLI options to specify arguments

There are a few subcommands that take --argument/--argument-file options to set canister call/init arguments.

We unify the related logic to provide consistent user experience.

The notable changes are:

  • dfx deploy now accepts --argument-file.
  • dfx deps init now accepts --argument-file.

feat: candid assist feature

Ask for user input when Candid argument is not provided in dfx canister call, dfx canister install and dfx deploy.
Previously, we cannot call dfx deploy --all when multiple canisters require init args, unless the init args are specified in dfx.json. With the Candid assist feature, dfx now asks for init args in terminal when a canister requires init args.

fix: restored access to URLs like http://localhost:8080/api/v2/status through icx-proxy

Pinned icx-proxy at 69e1408347723dbaa7a6cd2faa9b65c42abbe861, shipped with dfx 0.15.2

This means commands like the following will work again:

curl -v --http2-prior-knowledge "http://localhost:$(dfx info webserver-port)/api/v2/status" --output -

feat: dfx cycles approve and transfer --from

It is now possible to approve other principals to spend cycles on your behalf using dfx cycles approve <spender> <amount>.
dfx cycles transfer now also supports --from, --from-subaccount, and --spender-subaccount.
For detailed explanations on how these fields work please refer to the ICRC-2 specification.

feat: cut over to dfxvm

The script at https://internetcomputer.org/install.sh now installs
the dfxvm version manager instead of the dfx binary.

fix(deps): init/deploy still requires hash check

dfx deps pull was recently changed to allow hash mismatch wasm. But init and deploy weren't change accordingly.

Also the warning of hash mismatch is removed since it scares users and users can't fix it locally.

fix(generate): Rust canister source candid wrongly deleted

Fixed a bug where dfx generate would delete a canister's source candid file if the declarations.bindings in dfx.json did not include "did".

fix: failed to install when specify id without dfx.json

Fixed a bug where dfx canister install would fail when specify a canister id and there is no dfx.json.

fix: failed to call a canister removed from dfx.json

Fixed a bug where dfx canister call would fail when the deployed canister was removed from dfx.json.

chore: bump candid to 0.10.4

Fix the Typescript binding for init args.

Dependencies

Replica

Updated replica to elected commit d966b2737ca75f1bfaa84f21e7f3f7c54b5d7f33.
This incorporates the following executed proposals:

Motoko

Updated Motoko to 0.11.0

Asset canister

Module hash: 32e92f1190d8321e97f8d8f3e793019e4fd2812bfc595345d46d2c23f74c1ab5

bump ic-cdk to 0.13.1

Candid UI

Module hash: 1208093dcc5b31286a073f00f748ac6612dbae17b66c22332762705960a8aaad

bump ic-cdk to 0.13.1

0.18.0-beta.3

06 Mar 01:55
e16aea6
Compare
Choose a tag to compare
0.18.0-beta.3 Pre-release
Pre-release

fix!: removed the dfx upgrade command

The dfx upgrade command now prints a message directing the user to install dfxvm.

fix!: Remove fallback .env formats

In dfx 0.14.0, we standardized on CANISTER_ID_<CANISTER_NAME_UPPERCASE> and
CANISTER_CANDID_PATH_<CANISTER_NAME_UPPERCASE> for
environment variables for canister IDs and candid paths respectively,
and deprecated the old formats. This version removes the old formats.

The only variable names now provided are the following,
all uppercase, with any '-' replaced by '_':

  • CANISTER_CANDID_PATH_<CANISTER_NAME>
  • CANISTER_ID_<CANISTER_NAME>

For reference, these formats were removed (any '-' characters were replaced by '_'):

  • CANISTER_CANDID_PATH_<canister_name_case_from_dfx_json>
  • <CANISTER_NAME_UPPERCASE>_CANISTER_ID

feat: add dfx canister logs <canister_id> for fetching canister's logs (preview)

There is a new subcommand logs to fetch canister's logs.
When printing the log entries it tries to guess if the content can be converted to UTF-8 text and prints an array of hex bytes if it fails.

Note

This feature is still in development. Changes may occur in following releases.

feat: display local asset canister URLs in subdomain format

Locally, canisters can either be accessed via <canister_id>.localhost:<port> or localhost:<port>?canisterId=<canister_id>.
The query parameter format is annoying to handle in SPAs, therefore the subdomain format is now displayed alongside the subdomain version after deployments.

The query parameter format is not removed because Safari does not support localhost subdomains.

fix: .env files sometimes missing some canister ids

Made it so dfx deploy and dfx canister install will always write
environment variables for all canisters in the project that have canister ids
to the .env file, even if they aren't being deployed/installed
or a dependency of a canister being deployed/installed.

feat: unify CLI options to specify arguments

There are a few subcommands that take --argument/--argument-file options to set canister call/init arguments.

We unify the related logic to provide consistent user experience.

The notable changes are:

  • dfx deploy now accepts --argument-file.
  • dfx deps init now accepts --argument-file.

feat: candid assist feature

Ask for user input when Candid argument is not provided in dfx canister call, dfx canister install and dfx deploy.
Previously, we cannot call dfx deploy --all when multiple canisters require init args, unless the init args are specified in dfx.json. With the Candid assist feature, dfx now asks for init args in terminal when a canister requires init args.

fix: restored access to URLs like http://localhost:8080/api/v2/status through icx-proxy

Pinned icx-proxy at 69e1408347723dbaa7a6cd2faa9b65c42abbe861, shipped with dfx 0.15.2

This means commands like the following will work again:

curl -v --http2-prior-knowledge "http://localhost:$(dfx info webserver-port)/api/v2/status" --output -

feat: dfx cycles approve and transfer --from

It is now possible to approve other principals to spend cycles on your behalf using dfx cycles approve <spender> <amount>.
dfx cycles transfer now also supports --from, --from-subaccount, and --spender-subaccount.
For detailed explanations on how these fields work please refer to the ICRC-2 specification.

feat: cut over to dfxvm

The script at https://internetcomputer.org/install.sh now installs
the dfxvm version manager instead of the dfx binary.

fix(deps): init/deploy still requires hash check

dfx deps pull was recently changed to allow hash mismatch wasm. But init and deploy weren't change accordingly.

Also the warning of hash mismatch is removed since it scares users and users can't fix it locally.

fix(generate): Rust canister source candid wrongly deleted

Fixed a bug where dfx generate would delete a canister's source candid file if the declarations.bindings in dfx.json did not include "did".

fix: failed to install when specify id without dfx.json

Fixed a bug where dfx canister install would fail when specify a canister id and there is no dfx.json.

fix: failed to call a canister removed from dfx.json

Fixed a bug where dfx canister call would fail when the deployed canister was removed from dfx.json.

chore: bump candid to 0.10.4

Fix the Typescript binding for init args.

Dependencies

Replica

Updated replica to elected commit d966b2737ca75f1bfaa84f21e7f3f7c54b5d7f33.
This incorporates the following executed proposals:

Motoko

Updated Motoko to 0.11.0

Asset canister

Module hash: 32e92f1190d8321e97f8d8f3e793019e4fd2812bfc595345d46d2c23f74c1ab5

bump ic-cdk to 0.13.1

Candid UI

Module hash: 1208093dcc5b31286a073f00f748ac6612dbae17b66c22332762705960a8aaad

bump ic-cdk to 0.13.1

0.18.0-beta.2

05 Mar 16:09
72f5955
Compare
Choose a tag to compare
0.18.0-beta.2 Pre-release
Pre-release

fix!: removed the dfx upgrade command

The dfx upgrade command now prints a message directing the user to install dfxvm.

fix!: Remove fallback .env formats

In dfx 0.14.0, we standardized on CANISTER_ID_<CANISTER_NAME_UPPERCASE> and
CANISTER_CANDID_PATH_<CANISTER_NAME_UPPERCASE> for
environment variables for canister IDs and candid paths respectively,
and deprecated the old formats. This version removes the old formats.

The only variable names now provided are the following,
all uppercase, with any '-' replaced by '_':

  • CANISTER_CANDID_PATH_<CANISTER_NAME>
  • CANISTER_ID_<CANISTER_NAME>

For reference, these formats were removed (any '-' characters were replaced by '_'):

  • CANISTER_CANDID_PATH_<canister_name_case_from_dfx_json>
  • <CANISTER_NAME_UPPERCASE>_CANISTER_ID

feat: add dfx canister logs <canister_id> for fetching canister's logs (preview)

There is a new subcommand logs to fetch canister's logs.
When printing the log entries it tries to guess if the content can be converted to UTF-8 text and prints an array of hex bytes if it fails.

Note

This feature is still in development. Changes may occur in following releases.

feat: display local asset canister URLs in subdomain format

Locally, canisters can either be accessed via <canister_id>.localhost:<port> or localhost:<port>?canisterId=<canister_id>.
The query parameter format is annoying to handle in SPAs, therefore the subdomain format is now displayed alongside the subdomain version after deployments.

The query parameter format is not removed because Safari does not support localhost subdomains.

fix: .env files sometimes missing some canister ids

Made it so dfx deploy and dfx canister install will always write
environment variables for all canisters in the project that have canister ids
to the .env file, even if they aren't being deployed/installed
or a dependency of a canister being deployed/installed.

feat: unify CLI options to specify arguments

There are a few subcommands that take --argument/--argument-file options to set canister call/init arguments.

We unify the related logic to provide consistent user experience.

The notable changes are:

  • dfx deploy now accepts --argument-file.
  • dfx deps init now accepts --argument-file.

feat: candid assist feature

Ask for user input when Candid argument is not provided in dfx canister call, dfx canister install and dfx deploy.
Previously, we cannot call dfx deploy --all when multiple canisters require init args, unless the init args are specified in dfx.json. With the Candid assist feature, dfx now asks for init args in terminal when a canister requires init args.

fix: restored access to URLs like http://localhost:8080/api/v2/status through icx-proxy

Pinned icx-proxy at 69e1408347723dbaa7a6cd2faa9b65c42abbe861, shipped with dfx 0.15.2

This means commands like the following will work again:

curl -v --http2-prior-knowledge "http://localhost:$(dfx info webserver-port)/api/v2/status" --output -

feat: dfx cycles approve and transfer --from

It is now possible to approve other principals to spend cycles on your behalf using dfx cycles approve <spender> <amount>.
dfx cycles transfer now also supports --from, --from-subaccount, and --spender-subaccount.
For detailed explanations on how these fields work please refer to the ICRC-2 specification.

feat: cut over to dfxvm

The script at https://internetcomputer.org/install.sh now installs
the dfxvm version manager instead of the dfx binary.

fix(deps): init/deploy still requires hash check

dfx deps pull was recently changed to allow hash mismatch wasm. But init and deploy weren't change accordingly.

Also the warning of hash mismatch is removed since it scares users and users can't fix it locally.

fix(generate): Rust canister source candid wrongly deleted

Fixed a bug where dfx generate would delete a canister's source candid file if the declarations.bindings in dfx.json did not include "did".

fix: failed to install when specify id without dfx.json

Fixed a bug where dfx canister install would fail when specify a canister id and there is no dfx.json.

fix: failed to call a canister removed from dfx.json

Fixed a bug where dfx canister call would fail when the deployed canister was removed from dfx.json.

chore: bump candid to 0.10.4

Fix the Typescript binding for init args.

Dependencies

Replica

Updated replica to elected commit d966b2737ca75f1bfaa84f21e7f3f7c54b5d7f33.
This incorporates the following executed proposals:

Asset canister

Module hash: 32e92f1190d8321e97f8d8f3e793019e4fd2812bfc595345d46d2c23f74c1ab5

bump ic-cdk to 0.13.1

Candid UI

Module hash: 1208093dcc5b31286a073f00f748ac6612dbae17b66c22332762705960a8aaad

bump ic-cdk to 0.13.1

0.18.0-beta.1

04 Mar 18:45
c057cab
Compare
Choose a tag to compare
0.18.0-beta.1 Pre-release
Pre-release

fix!: removed the dfx upgrade command

The dfx upgrade command now prints a message directing the user to install dfxvm.

fix!: Remove fallback .env formats

In dfx 0.14.0, we standardized on CANISTER_ID_<CANISTER_NAME_UPPERCASE> and
CANISTER_CANDID_PATH_<CANISTER_NAME_UPPERCASE> for
environment variables for canister IDs and candid paths respectively,
and deprecated the old formats. This version removes the old formats.

The only variable names now provided are the following,
all uppercase, with any '-' replaced by '_':

  • CANISTER_CANDID_PATH_<CANISTER_NAME>
  • CANISTER_ID_<CANISTER_NAME>

For reference, these formats were removed (any '-' characters were replaced by '_'):

  • CANISTER_CANDID_PATH_<canister_name_case_from_dfx_json>
  • <CANISTER_NAME_UPPERCASE>_CANISTER_ID

feat: add dfx canister logs <canister_id> for fetching canister's logs (preview)

There is a new subcommand logs to fetch canister's logs.
When printing the log entries it tries to guess if the content can be converted to UTF-8 text and prints an array of hex bytes if it fails.

Note

This feature is still in development. Changes may occur in following releases.

feat: display local asset canister URLs in subdomain format

Locally, canisters can either be accessed via <canister_id>.localhost:<port> or localhost:<port>?canisterId=<canister_id>.
The query parameter format is annoying to handle in SPAs, therefore the subdomain format is now displayed alongside the subdomain version after deployments.

The query parameter format is not removed because Safari does not support localhost subdomains.

fix: .env files sometimes missing some canister ids

Made it so dfx deploy and dfx canister install will always write
environment variables for all canisters in the project that have canister ids
to the .env file, even if they aren't being deployed/installed
or a dependency of a canister being deployed/installed.

feat: unify CLI options to specify arguments

There are a few subcommands that take --argument/--argument-file options to set canister call/init arguments.

We unify the related logic to provide consistent user experience.

The notable changes are:

  • dfx deploy now accepts --argument-file.
  • dfx deps init now accepts --argument-file.

feat: candid assist feature

Ask for user input when Candid argument is not provided in dfx canister call, dfx canister install and dfx deploy.
Previously, we cannot call dfx deploy --all when multiple canisters require init args, unless the init args are specified in dfx.json. With the Candid assist feature, dfx now asks for init args in terminal when a canister requires init args.

fix: restored access to URLs like http://localhost:8080/api/v2/status through icx-proxy

Pinned icx-proxy at 69e1408347723dbaa7a6cd2faa9b65c42abbe861, shipped with dfx 0.15.2

This means commands like the following will work again:

curl -v --http2-prior-knowledge "http://localhost:$(dfx info webserver-port)/api/v2/status" --output -

feat: dfx cycles approve and transfer --from

It is now possible to approve other principals to spend cycles on your behalf using dfx cycles approve <spender> <amount>.
dfx cycles transfer now also supports --from, --from-subaccount, and --spender-subaccount.
For detailed explanations on how these fields work please refer to the ICRC-2 specification.

feat: cut over to dfxvm

The script at https://internetcomputer.org/install.sh now installs
the dfxvm version manager instead of the dfx binary.

fix(deps): init/deploy still requires hash check

dfx deps pull was recently changed to allow hash mismatch wasm. But init and deploy weren't change accordingly.

Also the warning of hash mismatch is removed since it scares users and users can't fix it locally.

fix(generate): Rust canister source candid wrongly deleted

Fixed a bug where dfx generate would delete a canister's source candid file if the declarations.bindings in dfx.json did not include "did".

fix: failed to install when specify id without dfx.json

Fixed a bug where dfx canister install would fail when specify a canister id and there is no dfx.json.

fix: failed to call a canister removed from dfx.json

Fixed a bug where dfx canister call would fail when the deployed canister was removed from dfx.json.

chore: bump candid to 0.10.4

Fix the Typescript binding for init args.

Dependencies

Replica

Updated replica to elected commit d966b2737ca75f1bfaa84f21e7f3f7c54b5d7f33.
This incorporates the following executed proposals:

Asset canister

Module hash: 32e92f1190d8321e97f8d8f3e793019e4fd2812bfc595345d46d2c23f74c1ab5

bump ic-cdk to 0.13.1

Candid UI

Module hash: 1208093dcc5b31286a073f00f748ac6612dbae17b66c22332762705960a8aaad

bump ic-cdk to 0.13.1

0.17.0

14 Feb 21:27
d37f112
Compare
Choose a tag to compare

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

0.17.0-beta.1

12 Feb 23:38
24434f3
Compare
Choose a tag to compare
0.17.0-beta.1 Pre-release
Pre-release

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

0.16.1-cargodist.4

05 Feb 20:06
Compare
Choose a tag to compare
0.16.1-cargodist.4 Pre-release
Pre-release

Release Notes

feat: query stats support

When using dfx canister status, the output now includes the new query statistics. Those might initially be 0, if the feature is not yet enabled on the subnet the canister is installed in.

fix: Candid parser when parsing vec {number} with blob type

Fix the bug that when parsing vec {1;2;3} with blob type, dfx silently ignores the numbers.

fix: support import for local did file

If the local did file contains import or init args, dfx will rewrite the did file when storing in canister metadata.
Due to current limitations of the Candid parser, comments will be dropped during rewriting.
If the local did file doesn't contain import or init args, we will not perform the rewriting, thus preserving the comments.

fix: subtyping check reports the special opt rule as error

fix: can now run several dfx canister commands outside of a project

The following commands now work outside of a project:

  • dfx canister start <specific canister id>
  • dfx canister stop <specific canister id>
  • dfx canister deposit-cycles <amount> <specific canister id>
  • dfx canister uninstall-code <specific canister id>

Dependencies

Replica

Updated replica to elected commit 044cfd5147fc97d7e5a214966941b6580c325d72.
This incorporates the following executed proposals:

Candid UI

Module hash: e5f049a97041217554c1849791c093c4103a6844625be3d6453df2e91abeed35

Fix the HTTP header for deploying in remote environments

Download dfx 0.16.1-cargodist.4

File Platform Checksum
dfx-x86_64-apple-darwin.tar.gz macOS Intel checksum
dfx-x86_64-pc-windows-msvc.zip Windows x64 checksum
dfx-x86_64-unknown-linux-gnu.tar.gz Linux x64 checksum

0.16.1

31 Jan 17:15
c25e0cd
Compare
Choose a tag to compare

feat: query stats support

When using dfx canister status, the output now includes the new query statistics. Those might initially be 0, if the feature is not yet enabled on the subnet the canister is installed in.

fix: Candid parser when parsing vec {number} with blob type

Fix the bug that when parsing vec {1;2;3} with blob type, dfx silently ignores the numbers.

fix: support import for local did file

If the local did file contains import or init args, dfx will rewrite the did file when storing in canister metadata.
Due to current limitations of the Candid parser, comments will be dropped during rewriting.
If the local did file doesn't contain import or init args, we will not perform the rewriting, thus preserving the comments.

fix: subtyping check reports the special opt rule as error

fix: can now run several dfx canister commands outside of a project

The following commands now work outside of a project:

  • dfx canister start <specific canister id>
  • dfx canister stop <specific canister id>
  • dfx canister deposit-cycles <amount> <specific canister id>
  • dfx canister uninstall-code <specific canister id>

Dependencies

Replica

Updated replica to elected commit 044cfd5147fc97d7e5a214966941b6580c325d72.
This incorporates the following executed proposals:

Candid UI

Module hash: e5f049a97041217554c1849791c093c4103a6844625be3d6453df2e91abeed35

Fix the HTTP header for deploying in remote environments

0.16.1-beta.0

31 Jan 04:02
63d69c2
Compare
Choose a tag to compare
0.16.1-beta.0 Pre-release
Pre-release

feat: query stats support

When using dfx canister status, the output now includes the new query statistics. Those might initially be 0, if the feature is not yet enabled on the subnet the canister is installed in.

fix: Candid parser when parsing vec {number} with blob type

Fix the bug that when parsing vec {1;2;3} with blob type, dfx silently ignores the numbers.

fix: support import for local did file

If the local did file contains import or init args, dfx will rewrite the did file when storing in canister metadata.
Due to current limitations of the Candid parser, comments will be dropped during rewriting.
If the local did file doesn't contain import or init args, we will not perform the rewriting, thus preserving the comments.

fix: subtyping check reports the special opt rule as error

fix: can now run several dfx canister commands outside of a project

The following commands now work outside of a project:

  • dfx canister start <specific canister id>
  • dfx canister stop <specific canister id>
  • dfx canister deposit-cycles <amount> <specific canister id>
  • dfx canister uninstall-code <specific canister id>

Dependencies

Replica

Updated replica to elected commit 044cfd5147fc97d7e5a214966941b6580c325d72.
This incorporates the following executed proposals:

Candid UI

Module hash: e5f049a97041217554c1849791c093c4103a6844625be3d6453df2e91abeed35

Fix the HTTP header for deploying in remote environments