0.14.1
0.14.1
DFX
fix: dfx canister delete without stopping first
When running dfx canister delete on a canister that has not been stopped, dfx will now confirm the deletion instead of erroring.
feat: gzip option in dfx.json
dfx can gzip wasm module as the final step in building canisters.
This behavior is disabled by default.
You can enable it in dfx.json:
{
"canisters" : {
"app" : {
"gzip" : true
}
}
}You can still specify .wasm.gz file for custom canisters directly. If any metadata/optimize/shrink options are set in dfx.json, the .wasm.gz file will be decompressed, applied all the wasm modifications, and compressed as .wasm.gz in the end.
fix: prevented using --argument with --all in canister installation
Removed dfx deploy's behavior of providing the same argument to all canisters, and dfx canister install's behavior of providing an empty argument to all canisters regardless of what was specified. Now installing multiple canisters and providing an installation argument is an error in both commands.
chore: make sns subcommands visible in dfx help
chore: upgraded to clap v4
Updated the command-parsing library to v4. Some colors may be different.
feat: dfx deps subcommands
This feature was named dfx pull before. To make a complete, intuitive user experience, we present a set of subcommands under dfx deps:
dfx deps pull: pull the dependencies from mainnet and generatedeps/pulled.json, the candid files of direct dependencies will also be put intodeps/candid/;dfx deps init: set the init arguments for the pulled dependencies and save the data indeps/init.json;dfx deps deploy: deploy the pulled dependencies on local replica with the init arguments recorded indeps/init.json;
All generated files in deps/ are encouraged to be version controlled.
chore: Add the nns-dapp and internet_identity to the local canister IDs set by dfx nns import
dfx nns install installs a set of canisters in a local replica. dfx nns import complements this by setting the canister IDs so that they can be queried by the user. But dfx nns import is incomplete. Now it will also provide the IDs of the nns-dapp and internet_identity canisters.
feat: .env file includes all created canister IDs
Previously the .env file only included canister IDs for canisters that were listed as explicit dependencies during the build process.
Now all canisters that have a canister ID for the specified network are included in .env.
feat!: Ask for user consent when removing themselves as principal
Removing oneself (or the wallet one uses) can result in the loss of control over a canister.
Therefore dfx canister update-settings now asks for extra confirmation when removing the currently used principal/wallet from the list of controllers.
To skip this check in CI, use either the --yes/-y argument or use echo "yes" | dfx canister update-settings <...>.
fix: dfx start will restart replica if it does not report healthy after launch
If the replica does not report healthy at least once after launch,
dfx will terminate and restart it.
fix: dfx start now installs the bitcoin canister when bitcoin support is enabled
This is required for future replica versions.
Adds a new field canister_init_arg to the bitcoin configuration in dfx.json and networks.json. Its default is documented in the JSON schema and is appropriate for the canister wasm bundled with dfx.
fix: no longer enable the bitcoin_regtest feature
docs: cleanup of documentation
Cleaned up documentation of IC SDK.
Asset Canister Synchronization
feat: Added more detailed logging to ic-asset.
Now, dfx deploy -v (or -vv) will print the following information:
- The count for each
BatchOperationKindinCommitBatchArgs - The number of chunks uploaded and the total bytes
- The API version of both the
ic-assetand the canister - (Only for
-vv) The value ofCommitBatchArgs
fix: Commit batches incrementally in order to account for more expensive v2 certification calculation
In order to allow larger changes without exceeding the per-message instruction limit, the sync process now:
- sets properties of assets already in the canister separately from the rest of the batch.
- splits up the rest of the batch into groups of up to 500 operations.
fix: now retries failed create_chunk() calls
Previously, it would only retry when waiting for the request to complete.
fix: now considers fewer error types to be retryable
Previously, errors were assumed to be retryable, except for a few specific error messages and 403/unauthorized responses. This could cause deployment to appear to hang until timeout.
Now, only transport errors and timeout errors are considered retryable.
Dependencies
Frontend canister
The asset canister now properly removes the v2-certified response when /index.html is deleted.
Fix: The fallback file (/index.html) will now be served when using certification v2 if the requested path was not found.
The HttpResponse type now explicitly mentions the upgrade : Option<bool> field instead of implicitly returning None all the time.
The asset canister no longer needs to use await for access control checks. This will speed up certain operations.
Motoko
Updated Motoko to 0.8.8
Replica
Updated replica to elected commit b3b00ba59c366384e3e0cd53a69457e9053ec987.
This incorporates the following executed proposals: