From 6ad662d3c3f3cefc5ed4267e17ce22aeb33e2c4f Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 26 Sep 2026 19:28:26 +0000 Subject: [PATCH] release: 0.17.0 Adds AsyncWork.queue_on_thread, for async jobs too long for libuv's thread pool, and -I on `napi-mojo build` and `run`, for compiling an existing Mojo library into an addon. New API makes this a minor, and so does one behaviour change: AsyncWork.resolve and the reject_with_error forms now return at once for a null env. The toolchain is unchanged (Mojo 1.1.0, max ==26.6.0) and no existing public Mojo signature changed: @qkstat/retrieve and @qkstat/embed compile against this source unmodified, with no warnings, and load in Node. It also stops `napi-mojo run` serving stale binaries, after an edit behind a symlinked directory and across a toolchain upgrade, and fixes addObservableCleanupHook() aborting Node on a second call. Verified before tagging: all packages in sync at 0.17.0; `npm ci` succeeds with the bumped and as-yet-unpublished optional dependencies and leaves the lockfile untouched; all four packages exist on npm at 0.16.0, so OIDC can push a new version of each (scripts/check-publishable.mjs); the platform gate passes; 849 tests and 12 GC tests green. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_013tXV7MkRfP97g5hPfNNXHC --- CHANGELOG.md | 14 +++++++++++++- npm/darwin-arm64/package.json | 2 +- npm/linux-arm64/package.json | 2 +- npm/linux-x64/package.json | 2 +- package-lock.json | 16 ++++++++-------- package.json | 8 ++++---- pixi.toml | 2 +- 7 files changed, 29 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62480e8..51790ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,19 @@ All notable changes to napi-mojo. The project is in alpha; minor versions may break the source API that downstream addons compile against. -## Unreleased +## 0.17.0 — 2026-09-26 + +**Adds `AsyncWork.queue_on_thread`**, for async jobs too long for libuv's +thread pool, and **`-I` on `napi-mojo build` and `run`**, for compiling an +existing Mojo library into an addon. New API makes this a minor, and so does +one behaviour change: `AsyncWork.resolve` and the `reject_with_error` forms +now return at once for a null `env` (see Added). The toolchain is unchanged +(Mojo 1.1.0, `max = "==26.6.0"`) and no existing public Mojo signature +changed: `@qkstat/retrieve` and `@qkstat/embed` compile against this source +unmodified, with no warnings. + +**`napi-mojo run` also stops serving stale binaries**, after an edit behind a +symlinked directory and across a toolchain upgrade (see Fixed). ### Added diff --git a/npm/darwin-arm64/package.json b/npm/darwin-arm64/package.json index f72c75d..f822988 100644 --- a/npm/darwin-arm64/package.json +++ b/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@napi-mojo/darwin-arm64", - "version": "0.16.0", + "version": "0.17.0", "description": "napi-mojo prebuilt binary for macOS arm64", "main": "index.node", "files": [ diff --git a/npm/linux-arm64/package.json b/npm/linux-arm64/package.json index 3426b7d..222667d 100644 --- a/npm/linux-arm64/package.json +++ b/npm/linux-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@napi-mojo/linux-arm64", - "version": "0.16.0", + "version": "0.17.0", "description": "napi-mojo prebuilt binary for Linux arm64", "main": "index.node", "files": [ diff --git a/npm/linux-x64/package.json b/npm/linux-x64/package.json index 5f06fe9..db10354 100644 --- a/npm/linux-x64/package.json +++ b/npm/linux-x64/package.json @@ -1,6 +1,6 @@ { "name": "@napi-mojo/linux-x64", - "version": "0.16.0", + "version": "0.17.0", "description": "napi-mojo prebuilt binary for Linux x64", "main": "index.node", "files": [ diff --git a/package-lock.json b/package-lock.json index 0928623..40e4830 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "napi-mojo", - "version": "0.16.0", + "version": "0.17.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "napi-mojo", - "version": "0.16.0", + "version": "0.17.0", "license": "MIT", "bin": { "napi-mojo": "bin/napi-mojo.mjs" @@ -18,9 +18,9 @@ "node": ">=22.12.0" }, "optionalDependencies": { - "@napi-mojo/darwin-arm64": "0.16.0", - "@napi-mojo/linux-arm64": "0.16.0", - "@napi-mojo/linux-x64": "0.16.0" + "@napi-mojo/darwin-arm64": "0.17.0", + "@napi-mojo/linux-arm64": "0.17.0", + "@napi-mojo/linux-x64": "0.17.0" } }, "node_modules/@babel/code-frame": { @@ -1092,7 +1092,7 @@ } }, "node_modules/@napi-mojo/darwin-arm64": { - "version": "0.16.0", + "version": "0.17.0", "cpu": [ "arm64" ], @@ -1103,7 +1103,7 @@ ] }, "node_modules/@napi-mojo/linux-arm64": { - "version": "0.16.0", + "version": "0.17.0", "cpu": [ "arm64" ], @@ -1114,7 +1114,7 @@ ] }, "node_modules/@napi-mojo/linux-x64": { - "version": "0.16.0", + "version": "0.17.0", "cpu": [ "x64" ], diff --git a/package.json b/package.json index 354917f..2b237af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "napi-mojo", - "version": "0.16.0", + "version": "0.17.0", "description": "Build Node.js native addons in Mojo — the Mojo equivalent of napi-rs", "main": "index.js", "types": "index.d.ts", @@ -95,9 +95,9 @@ "node-addon" ], "optionalDependencies": { - "@napi-mojo/darwin-arm64": "0.16.0", - "@napi-mojo/linux-arm64": "0.16.0", - "@napi-mojo/linux-x64": "0.16.0" + "@napi-mojo/darwin-arm64": "0.17.0", + "@napi-mojo/linux-arm64": "0.17.0", + "@napi-mojo/linux-x64": "0.17.0" }, "devDependencies": { "jest": "^30.4.2" diff --git a/pixi.toml b/pixi.toml index bfda0f0..2c96f6a 100644 --- a/pixi.toml +++ b/pixi.toml @@ -3,7 +3,7 @@ authors = ["Wm Talcott "] channels = ["conda-forge", "https://conda.modular.com/max/"] name = "napi-mojo" platforms = ["osx-arm64", "linux-64", "linux-aarch64"] -version = "0.16.0" +version = "0.17.0" [tasks] # WARNING: this rewrites only the `max = ` line, NOT the channel. Since the