Features
- All of the
@dfinityJavaScript agent npm package dependencies have been updated tov3.x.x.IDLcan now be imported from multiple locations in the file system without issue. setTimerwill now automatically clean up the associated global JavaScript timer callback even in cases of a trap in the timer callback's execution.- The
npx azle dev auditcommand has been created to automatically run all of Azle's core dependency-related security checks (npm audit,cargo audit,cargo audit bin, andcargo deny). jsonStringifyandjsonParsenow have dedicated property tests.- Azle now has an official security disclosure policy.
- Azle's CI/CD process now:
- includes
npm audit,cargo audit, andcargo denysecurity checks. - supports
WSLandMactesting environments. - uses npm OIDC for more secure publishing.
- no longer uses Personal Access Tokens.
- includes
Breaking Changes
setTimerno longer has the final optional parameterasyncCleanup. This parameter is now obsolete, as cleanup will be handled automatically under-the-hood even in cases of a timer callbacktrap. It is very unlikely that this parameter was used by developers outside of Azle's own implementation.- The deprecated
Canisterfunctionality has been deleted- All of the deprecated
CanisterandCandidtype objects fromazle/experimentalhave been removed. Please use the equivalent functionality from theazlemodule. ic.acceptMessagefromazle/experimentalhas been removed. Use@inspectMessagefromazlewhich uses a boolean return value for acceptance or denial of incoming calls.- The
"candid_gen": "http"property of the"custom"property in the canister configuration in thedfx.jsonhas been removed. The Candid file will be automatically generated for canisters that previously had"candid_gen": "http". Errors may occur during Candid file generation. You can use theglobalThis._azleIcpReplicaWasmEnvironmentorglobalThis._azleNodejsWasmEnvironmentvariables to conditionally not execute code during Candid file generation, which occurs in theNode.jsWasm environment. - HTTP Server canisters no longer have support for experimental decorators. Azle has no official workaround for this.
- HTTP Server hybrid canisters should now be created by a canister class inheriting from the
Serverbase class. Here is an example that shows how to create hybrid canisters.
- All of the deprecated
- All
OpenValueSharingfunctionality has been removed from Azle's experimental mode. We have decided not to pursue the idea within Azle or the ICP community for the foreseeable future. globalDependenciesin thepackage.jsonis no longer updated automatically during thenpx azle dev templatecommand. Instead update the dependencies manually and then runnpx azle dev setup.- Azle's experimental mode now targets
es2021instead ofes2024. This may introduce breaking changes if there arees2024ores2023JavaScriptlanguage features or APIs that cannot be compiled intoes2021. You may need to provide your own polyfills if you need any of the now missing APIs. We plan to unify Azle's experimental and stable mode compilation in the future, which will resolve this problem.
What's Changed
- Os_tests_pr_fixes by @bdemann in #3141
- deps(dev): bump jest from 30.0.2 to 30.0.3 in the jest group by @dependabot[bot] in #3172
- Release 0.32.0 by @lastmjs in #3173
- attempt to run the fuzz tests with call delay .1 and time limit 300 m… by @lastmjs in #3176
- add property tests for
jsonStringifyandjsonParseby @bdemann in #3177 - deps: bump cuzz from 0.0.9 to 0.0.10 by @dependabot[bot] in #3181
- deps(dev): bump prettier from 3.6.0 to 3.6.1 by @dependabot[bot] in #3182
- deps: bump the ic-dependencies group with 2 updates by @dependabot[bot] in #3183
feat:setTimernow cleans up its global JavaScript state in the case of a timer callbacktrap(breaking changes) by @lastmjs in #3184- implement automated security checks with
npm audit,cargo audit, andcargo denyby @bdemann in #3180 - update fuzz cron workflow to execute multiple different kinds of fuzzing by @lastmjs in #3192
- add GitHub workflow support for running tests on WSL and Mac by @bdemann in #3178
- add operating-system to fuzz tests to run_tests by @lastmjs in #3195
- update the cycles conversion and USD costs used in benchmark calculations by @lastmjs in #3194
- only run mac and wsl on release and merges into main by @bdemann in #3198
- fix cargo security issues by @lastmjs in #3205
- deps(dev): bump puppeteer from 24.10.2 to 24.11.1 by @dependabot[bot] in #3200
- deps(dev): bump prettier from 3.6.1 to 3.6.2 by @dependabot[bot] in #3201
- deps(dev): bump the eslint group across 1 directory with 5 updates by @dependabot[bot] in #3210
- better handling of the workspace package-lock by @bdemann in #3206
- Example/test maintenance: update dependencies, formatting, and linting by @lastmjs in #3211
- improve global state and memory state checks in tests by removing nested
describe.eachby @lastmjs in #3199 - delete deprecated
Canisterfunctionality (breaking changes) by @lastmjs in #3203 - deps(dev): bump the eslint group with 2 updates by @dependabot[bot] in #3215
- deps(dev): bump puppeteer from 24.11.1 to 24.11.2 by @dependabot[bot] in #3216
- run
azleCLI tests onmacandwsl-ubuntuby @bdemann in #3208 - skip broken internet identity examples by @bdemann in #3230
- deps(dev): bump jest from 30.0.3 to 30.0.4 in the jest group by @dependabot[bot] in #3220
- remove functional Canister API from prop tests by @bdemann in #3228
- global cargo dependencies now have a cargo audit bin security check by @lastmjs in #3221
- fix missing parameters on fuzz workflows by @lastmjs in #3232
- deps(dev): bump fast-check from 4.1.1 to 4.2.0 by @dependabot[bot] in #3223
- remove all traces of code for
OpenValueSharing(breaking changes) by @lastmjs in #3235 - install cargo auditable when installing global dependencies by @bdemann in #3238
- add workflow dispatch to build template workflow by @bdemann in #3242
feat: createnpx azle dev auditcommand by @lastmjs in #3240- remove
logGlobalDependencies(breaking changes) by @bdemann in #3241 - deps(dev): bump the eslint group with 3 updates by @dependabot[bot] in #3225
- create Azle security disclosure policy in
SECURITY.mdby @lastmjs in #3249 - deps: bump esbuild from 0.25.5 to 0.25.6 by @dependabot[bot] in #3224
- deps(dev): bump puppeteer from 24.11.2 to 24.12.1 by @dependabot[bot] in #3231
- deps: bump cuzz from 0.0.10 to 0.0.11 by @dependabot[bot] in #3256
- deps(dev): bump the eslint group with 2 updates by @dependabot[bot] in #3255
- deps(dev): bump the eslint group with 3 updates by @dependabot[bot] in #3259
- deps(dev): bump puppeteer from 24.12.1 to 24.13.0 by @dependabot[bot] in #3263
- deps: bump cuzz from 0.0.11 to 0.0.14 by @dependabot[bot] in #3264
- add temporary fix for the
calcInt/Natissue by @lastmjs in #3266 - deps(dev): bump puppeteer from 24.13.0 to 24.14.0 by @dependabot[bot] in #3268
- parallelize cli tests by @bdemann in #3236
- Bump multer, @nestjs/core and @nestjs/platform-express in /examples/experimental/test/end_to_end/http_server/nest by @dependabot[bot] in #3277
- update plugin kit version by @bdemann in #3282
- deps: bump esbuild from 0.25.6 to 0.25.8 by @dependabot[bot] in #3281
- deps: bump rand from 0.9.1 to 0.9.2 by @dependabot[bot] in #3278
- deps: bump serde_json from 1.0.140 to 1.0.141 in the serde group by @dependabot[bot] in #3279
- run benchmarks by @bdemann in #3274
- run example tests outside of the azle monorepo creating on release and merge from release by @bdemann in #3207
- update global dependencies (
dfx,node, andrust) by @lastmjs in #3248 - remove security checks from jest by @lastmjs in #3286
- deps(dev): bump the eslint group across 1 directory with 4 updates by @dependabot[bot] in #3283
- deps(dev): bump jest from 30.0.4 to 30.0.5 in the jest group by @dependabot[bot] in #3291
- deps: bump wasmi from 0.47.0 to 0.48.0 by @dependabot[bot] in #3290
- ensure stronger software license compliance by @lastmjs in #3289
- deps(dev): bump puppeteer from 24.14.0 to 24.15.0 by @dependabot[bot] in #3296
- deps(dev): bump the eslint group with 2 updates by @dependabot[bot] in #3305
- minimize
GITHUB_TOKENpermissions in our workflows by @bdemann in #3273 - fix
executable_resolutionexample to work outside azle mono repo by @bdemann in #3308 - update
@dfinitynpmdependencies to3.1.0(breaking changes) by @lastmjs in #3294 - fix failing tests for release by @bdemann in #3319
- cuzz update to the latest default expected errors by @lastmjs in #3325
- updating cuzz to have the latest default expected errors by @lastmjs in #3330
- remove Personal Access Token dependencies from GitHub workflows by @bdemann in #3311
- add second azle bot for content changes by @bdemann in #3360
- restore checkout by @bdemann in #3361
- add azle auto merge bot by @bdemann in #3368
- deps: bump serde_json from 1.0.141 to 1.0.142 in the serde group by @dependabot[bot] in #3340
- deps(dev): bump ts-jest from 29.4.0 to 29.4.1 in the jest group by @dependabot[bot] in #3356
- deps(dev): bump the eslint group with 3 updates by @dependabot[bot] in #3362
- deps(dev): bump lint-staged from 16.1.2 to 16.1.4 by @dependabot[bot] in #3357
- deps: bump typescript from 5.8.3 to 5.9.2 by @dependabot[bot] in #3363
- deps(dev): bump puppeteer from 24.15.0 to 24.16.0 by @dependabot[bot] in #3369
- Example/test maintenance: update dependencies, formatting, and linting by @azle-pr-bot[bot] in #3370
- deps(dev): bump cuzz from 0.0.19 to 0.0.21 by @dependabot[bot] in #3378
- adding the id-token permissions for npm oidc by @lastmjs in #3371
- get rid of ETHEREUM_URL secret by @bdemann in #3383
- deps(dev): bump lint-staged from 16.1.4 to 16.1.5 by @dependabot[bot] in #3380
- deps(dev): bump the eslint group across 1 directory with 5 updates by @dependabot[bot] in #3387
- deps: bump slab from 0.4.10 to 0.4.11 by @dependabot[bot] in #3390
- deps: bump tsx from 4.20.3 to 4.20.4 by @dependabot[bot] in #3392
- deps: bump esbuild from 0.25.8 to 0.25.9 by @dependabot[bot] in #3391
- deps(dev): bump puppeteer from 24.16.0 to 24.16.1 by @dependabot[bot] in #3389
- deps: bump anyhow from 1.0.98 to 1.0.99 by @dependabot[bot] in #3388
- deps: bump wasmi from 0.48.0 to 0.49.0 by @dependabot[bot] in #3372
- Example/test maintenance: update dependencies, formatting, and linting by @azle-pr-bot[bot] in #3396
- update dfinity packages to 3.2.1 by @bdemann in #3394
- fix diff check and add
@dfinity/identity-secp256k1dependencies by @bdemann in #3398 - deps(dev): bump puppeteer from 24.16.1 to 24.16.2 by @dependabot[bot] in #3401
Full Changelog: 0.32.0...0.33.0