Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
73 changes: 44 additions & 29 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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/`.*
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.4
0.1.5
14 changes: 7 additions & 7 deletions bindings/typescript/docprims/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down Expand Up @@ -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",
Expand Down
93 changes: 93 additions & 0 deletions docs/releases/v0.1.5.md
Original file line number Diff line number Diff line change
@@ -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.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
"description": "Workspace root for repo tooling (non-published)",
"license": "MIT OR Apache-2.0",
"engines": {
"node": ">=18"
"node": ">=22"
}
}
Loading