From 92bdf8ae4874324410b31d9530534c5efea71850 Mon Sep 17 00:00:00 2001 From: Dave Thompson Date: Tue, 7 Jul 2026 16:05:05 -0400 Subject: [PATCH] chore(release): prepare v0.1.5 Bump repository and package metadata to v0.1.5, including the TypeScript package optional dependency set. Update changelog, release notes, and docs/releases/v0.1.5.md for the runtime-floor and repository-guidance catch-up release. Generated by GPT-5 via Codex under supervision of @3leapsdave Co-Authored-By: GPT-5 Role: devlead Committer-of-Record: @3leapsdave --- CHANGELOG.md | 18 +++++ Cargo.toml | 2 +- README.md | 3 +- RELEASE_NOTES.md | 73 +++++++++++------- VERSION | 2 +- bindings/typescript/docprims/package.json | 14 ++-- docs/releases/v0.1.5.md | 93 +++++++++++++++++++++++ package.json | 2 +- 8 files changed, 167 insertions(+), 40 deletions(-) create mode 100644 docs/releases/v0.1.5.md diff --git a/CHANGELOG.md b/CHANGELOG.md index f212707..faed71e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.1.5] - 2026-07-07 + +### Added + +- **npm trusted publishing runtime guard**: Added `scripts/check-npm-trusted-publish-runtime.sh` and wired it into `make lint` plus `npm-publish-prereqs-check`. + +### Changed + +- **Rust MSRV**: Raised the workspace minimum supported Rust version to 1.88.0. +- **TypeScript runtime floor**: Raised `@3leaps/docprims` and repo tooling Node.js engine requirements to Node 22 or newer. +- **TypeScript workflows**: Moved TypeScript binding CI, release validation, and N-API prebuild workflows to Node 22 validation; npm publish remains on Node 24 with explicit Node >=22.14.0 and npm >=11.5.1 trusted-publishing checks. +- **Repository guidance**: Refreshed agent guidance, canonical documentation pointers, YAML linting configuration, and local-only planning artifact conventions. +- **README install guidance**: Replaced the unpublished CLI crate install command with repo-root `cargo install --path crates/docprims-cli` guidance. + +### Fixed + +- **Current stable clippy compatibility**: Updated parser match handling flagged by newer clippy lints. + ## [0.1.4] - 2026-01-31 ### Added diff --git a/Cargo.toml b/Cargo.toml index 72500b0..253306d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ members = [ ] [workspace.package] -version = "0.1.4" +version = "0.1.5" edition = "2021" rust-version = "1.88.0" license = "MIT OR Apache-2.0" diff --git a/README.md b/README.md index f928f9b..dfe8396 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Note: the Go bindings vendor a Rust `staticlib` (`libdocprims_ffi.a`). In some a ### TypeScript -From a git checkout (v0.1.x). Works with both Node.js and Bun: +From a git checkout (v0.1.x). Works with Node.js 22+ and Bun: ```bash cd bindings/typescript/docprims @@ -162,6 +162,7 @@ Project documentation conventions (what is canonical vs planning notes): ### Prerequisites - Rust 1.88+ +- Node.js 22+ for TypeScript bindings - curl (for bootstrap) ### Setup diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index d17caeb..052646c 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -6,6 +6,50 @@ --- +## v0.1.5 - 2026-07-07 + +**Status:** Patch Release (runtime floors + repository guidance) + +Refreshes package runtime floors and repository guidance before the next coordinated dependency modernization pass. + +### Highlights + +- **Rust MSRV**: Raised the workspace MSRV to Rust 1.88.0. +- **TypeScript Node floor**: `@3leaps/docprims` now requires Node.js 22 or newer. +- **Trusted publishing guard**: npm publishing now hard-checks Node >=22.14.0 and npm >=11.5.1. +- **TypeScript workflow alignment**: Binding CI, release validation, and N-API prebuild workflows validate on Node 22. +- **Repository guidance cleanup**: Agent guidance, local-only planning conventions, and YAML linting configuration were refreshed. + +### Runtime Floors + +v0.1.5 aligns the project with currently supported runtime floors: + +| Component | Floor | +|-----------|-------| +| Rust | 1.88.0 | +| TypeScript package | Node.js 22+ | +| npm trusted publishing | Node.js >=22.14.0 and npm >=11.5.1 | + +The TypeScript package remains on TypeScript 5.x and napi-rs 2.x for this release. TypeScript 6.x and napi-rs 3.x are reserved for a later coordinated modernization pass. + +### Release Workflow Hardening + +The npm publish workflow now uses a dedicated runtime guard that fails fast if the publish runner is below the trusted-publishing floor. The same guard is available locally through: + +```bash +make npm-publish-prereqs-check +``` + +`make lint` also runs this guard so workflow drift is caught during normal quality checks. + +### Documentation Updates + +- README CLI install guidance now uses `cargo install --path crates/docprims-cli` from a repo checkout. +- Repository guidance now treats planning artifacts as local-only and non-canonical. +- YAML linting configuration is explicit at repo root. + +--- + ## v0.1.4 - 2026-01-31 **Status:** Patch Release (Go rpath + TypeScript OIDC fixes) @@ -76,33 +120,4 @@ Platform-specific binaries install automatically as optional dependencies. --- -## v0.1.2 - 2026-01-30 - -**Status:** Patch Release (Go dynamic libs + TypeScript publish prep) - -Fixes Go shared library distribution on macOS and captures learnings from TypeScript npm publish dry-run. - -### Highlights - -- **Darwin dylib fix**: `install_name_tool -id "@rpath/libdocprims_ffi.dylib"` fixes runtime linking for Go `docprims_shared` -- **CI refinements**: musl targets skip shared lib builds (static-only by design) -- **TypeScript npm prep**: dry-run validated current setup publishes local platform only; cross-platform prebuild workflow planned - -### Go Shared Library (darwin) - -```bash -DYLD_LIBRARY_PATH=./lib-shared/darwin-arm64 go run . # development -go build -ldflags="-r /path/to/lib-shared/darwin-arm64" . # production -``` - -### TypeScript (from git checkout) - -npm publishing requires cross-platform prebuilds. Until then, use from git: - -```bash -cd bindings/typescript/docprims && npm install && npm run build:native -``` - ---- - *For older releases, see `docs/releases/`.* diff --git a/VERSION b/VERSION index 845639e..9faa1b7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.4 +0.1.5 diff --git a/bindings/typescript/docprims/package.json b/bindings/typescript/docprims/package.json index 9cf0264..b6c879c 100644 --- a/bindings/typescript/docprims/package.json +++ b/bindings/typescript/docprims/package.json @@ -1,6 +1,6 @@ { "name": "@3leaps/docprims", - "version": "0.1.4", + "version": "0.1.5", "description": "GPL-free document text extraction (TypeScript bindings via Node-API native addon)", "license": "MIT OR Apache-2.0", "repository": { @@ -44,12 +44,12 @@ }, "dependencies": {}, "optionalDependencies": { - "@3leaps/docprims-linux-x64-gnu": "0.1.4", - "@3leaps/docprims-linux-x64-musl": "0.1.4", - "@3leaps/docprims-linux-arm64-gnu": "0.1.4", - "@3leaps/docprims-linux-arm64-musl": "0.1.4", - "@3leaps/docprims-darwin-arm64": "0.1.4", - "@3leaps/docprims-win32-x64-msvc": "0.1.4" + "@3leaps/docprims-linux-x64-gnu": "0.1.5", + "@3leaps/docprims-linux-x64-musl": "0.1.5", + "@3leaps/docprims-linux-arm64-gnu": "0.1.5", + "@3leaps/docprims-linux-arm64-musl": "0.1.5", + "@3leaps/docprims-darwin-arm64": "0.1.5", + "@3leaps/docprims-win32-x64-msvc": "0.1.5" }, "devDependencies": { "@napi-rs/cli": "^2.18.4", diff --git a/docs/releases/v0.1.5.md b/docs/releases/v0.1.5.md new file mode 100644 index 0000000..ad7f3ef --- /dev/null +++ b/docs/releases/v0.1.5.md @@ -0,0 +1,93 @@ +# docprims v0.1.5 + +**Release Date:** 2026-07-07 +**Status:** Patch Release (runtime floors + repository guidance) + +## Summary + +This release refreshes package runtime floors and repository guidance after the v0.1.4 publishing fixes. It keeps the TypeScript 6.x and napi-rs 3.x upgrade out of scope for the later coordinated modernization pass. + +## Highlights + +- **Rust MSRV**: Raised the workspace minimum supported Rust version to 1.88.0. +- **TypeScript Node floor**: `@3leaps/docprims` now requires Node.js 22 or newer. +- **npm trusted publishing hardening**: Publish workflow checks Node >=22.14.0 and npm >=11.5.1 before publishing. +- **TypeScript workflow alignment**: Binding tests, release validation, and N-API prebuilds now validate on Node 22. +- **Repository guidance cleanup**: Agent guidance, local-only planning conventions, and YAML linting configuration were refreshed. + +## Runtime Floors + +| Component | Floor | +|-----------|-------| +| Rust workspace | 1.88.0 | +| TypeScript package | Node.js 22+ | +| TypeScript CI/prebuild validation | Node.js 22 | +| npm trusted publishing | Node.js >=22.14.0 and npm >=11.5.1 | + +## TypeScript Package Changes + +The TypeScript package metadata now declares: + +```json +{ + "engines": { + "node": ">=22" + } +} +``` + +Platform optional dependencies were advanced to the v0.1.5 package set: + +| Platform | Package | +|----------|---------| +| Linux x64 (glibc) | `@3leaps/docprims-linux-x64-gnu` | +| Linux x64 (musl) | `@3leaps/docprims-linux-x64-musl` | +| Linux arm64 (glibc) | `@3leaps/docprims-linux-arm64-gnu` | +| Linux arm64 (musl) | `@3leaps/docprims-linux-arm64-musl` | +| macOS arm64 | `@3leaps/docprims-darwin-arm64` | +| Windows x64 | `@3leaps/docprims-win32-x64-msvc` | + +## Trusted Publishing Guard + +The npm publish workflow runs on Node 24 but explicitly enforces the trusted-publishing minimums before publishing: + +- Node.js >=22.14.0 +- npm >=11.5.1 + +The same static guard runs locally through: + +```bash +make npm-publish-prereqs-check +``` + +It is also wired into `make lint`, so the normal quality gate catches workflow drift. + +## Repository Guidance + +v0.1.5 refreshes public repository guidance: + +- Planning artifacts are local-only and non-canonical. +- `docs/orientation/sources-of-truth.md` remains the canonical guide for source-of-truth boundaries. +- YAML linting is configured explicitly at repo root. +- Commit attribution guidance uses bare role slugs. + +## Installation Notes + +### CLI from a checkout + +```bash +cargo install --path crates/docprims-cli +``` + +### TypeScript from a checkout + +```bash +cd bindings/typescript/docprims +npm install +npm run build +npm run build:native +``` + +## Changelog + +See `CHANGELOG.md` for detailed changes. diff --git a/package.json b/package.json index 0efca6b..7ff2d25 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,6 @@ "description": "Workspace root for repo tooling (non-published)", "license": "MIT OR Apache-2.0", "engines": { - "node": ">=18" + "node": ">=22" } }