Skip to content

0.15.1

Choose a tag to compare

@github-actions github-actions released this 05 Oct 07:47
· 652 commits to master since this release
8e4e64c

dfx

feat: Added support for reserved_cycles and reserved_cycles_limit

dfx canister status will now display the reserved cycles balance and reserved cycles limit for a canister.

Added command-line options:

  • dfx canister create --reserved-cycles-limit <limit>
  • dfx canister update-settings --reserved-cycles-limit <limit>

In addition, dfx deploy will set reserved_cycles_limit when creating canisters if specified in canisters.<canister>.initialization_values.reserved_cycles_limit in dfx.json.

feat: emit management canister idl when imported by Motoko canister

import management "ic:aaaaa-aa;

This will automatically produce the idl in the .dfx folder.

fix: Include remote canisters in canisters_to_generate

Generate frontend declarations for remote canisters too because frontend JS code may want to call them.

feat: dfx extension install --version

Install a specific version of an extension, bypassing version checks.

feat: Updated handling of missing values in state tree certificates

The Unknown lookup of a path in a certificate results in an AgentError (the IC returns Absent for non-existing paths).

fix: dfx deploy urls printed for asset canisters

chore: --emulator parameter is deprecated and will be discontinued soon

Added warning that the --emulator is deprecated and will be discontinued soon.

fix: node engines in starter

Updates node engines to reflect the same engines supported in agent-js.

"node": "^12 || ^14 || ^16 || >=17",
"npm": "^7.17 || >=8"

feat: deploy to playground

Introduced a new network type called playground. Canisters on such networks are not created through standard means, but are instead borrowed from a canister pool.
The canisters time out after a while and new canisters need to be borrowed for further deployments.
To define custom playground networks, use a network definition that includes the playground key:

"<network name>": {
  "playground": {
    "playground_canister": "<canister pool id>",
    "timeout_seconds": <amount of seconds after which a canister is returned to the pool>
  }
}

Introduced a new network that is available by default called playground. Additionally, --playground is an alias for --network playground.
By default, this network targets the Motoko Playground backend to borrow canisters. The borrowed canisters will be available for 20 minutes, and the timer restarts on new deployments.
When the timer runs out the canister(s) will be uninstalled and are returned to the pool.
Any commands that allow choosing a target network (e.g. dfx canister call) require --playground or --network playground in order to target the borrowed canister(s).
Use dfx deploy --playground to deploy simple projects to a canister borrowed from the Motoko Playground.

feat: --ic is shorthand for --network ic

For example, dfx deploy --ic rather than dfx deploy --network ic.

fix: Motoko base library files in cache are no longer executable

feat: dfx start for shared network warns if ignoring 'defaults' in dfx.json

Background: In order to determine whether to start a project-specific network or the shared network, dfx start looks for the local network in dfx.json.

  • If found, dfx start starts the project-specific local network, applying any defaults from dfx.json.
  • If there is no dfx.json, or if dfx.json does not define a local network, dfx start starts the shared network. Because the shared network is not specific to any project, dfx start ignores any other settings from dfx.json, including defaults.

If dfx start is starting the shared network from within a dfx project, and that dfx.json contains settings in the defaults key for bitcoin, replica, or canister_http, then dfx start will warn that it is ignoring those settings. It will also describe how to define equivalent settings in networks.json.

fix: dfx canister call --wallet no longer passes the parameter twice

The parameter was erroneously passed twice. Now it is passed only once.

fix: Removed deprecation warning about project-specific networks

Removed this warning: "Project-specific networks are deprecated and will be removed after February 2023." While we may remove project-specific networks in the future, it is not imminent. One key requirement is the ability to run more than one subnet type at one time.

Dependencies

icx-proxy

Updated to a version of the icx-proxy that is released with the replica and other related binaries.

Changes in behavior:

  • "%%" is no longer accepted when url-decoding filenames for the asset canister. Though curl supports this, it's not part of the standard. Please replace with %25.
  • The icx-proxy now performs response verification. This has exposed some bugs in the asset canister. However, since this new icx-proxy matches what the boundary nodes use, this will better match the behavior seen on the mainnet.
  • Bugs that this has exposed in the asset canister:
    • after disabling aliasing for an asset, the asset canister will return an incorrect certification in the 404 response.
    • after setting a custom "etag" header in .ic-assets.json, the asset canister will return an incorrect certification in the 200 response.
    • assets with certain characters in the filename (example: "æ") will no longer be served correctly. The definition of "certain characters" is not yet known.

Candid UI

  • Module hash: 934756863c010898a24345ce4842d173b3ea7639a8eb394a0d027a9423c70b5c
  • Add merge_init_args method in Candid UI.
  • Draw flamegraph for canister upgrade.

Frontend canister

For certification v1, if none of the requested encoding are certified but another encoding is certified, then the frontend canister once again returns the certificatie even though the response hash won't match.
This allows the verifying side to try to transform the response such that it matches the response hash.
For example, if only the encoding gzip is requested but the identity encoding is certified, the gzip encoding is returned with the certificate for the identity encoding.
The verifying side can then unzip the response and will have a valid certificate for the identity response.

  • Module hash: baf9bcab2ebc2883f850b965af658e66725087933df012ebd35c03929c39efe3
  • #3369
  • #3298
  • #3281

Replica

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