v0.22.0 Release Preparation
Status: release candidate qualified, published, and externally audited (2026-08-31). This record owns candidate identity, qualification requirements, and final local artifact evidence. The immutable publication evidence is ../releases/v0.22.0.md.
Release Boundary
v0.22.0 adds the ordinary-source std/json module: an owning JSON Value, exact validated Number tokens, strict whole-text RFC 8259 parsing, compact String generation, and direct Writer output. Its parser and generator use explicit stacks, selected allocator affinity, one cursor, one Number grammar, and one shared escaping/traversal authority. The json-normalize package qualifies the public filesystem, process, error, parser, and Writer composition.
Standard-library stabilization also unifies collection capacity failures under std.mem.capacity_overflow, separates ordinary Vec bounds and allocation termination, reduces direct raw-pointer dependencies, expands public contract hover documentation, and strengthens adversarial JSON and collection qualification. The release adds no floating-point JSON conversion, reflection, serialization derivation, streaming parser, pretty printer, canonical object order, second native target, or compiler-known JSON behavior.
The public release notes are ../../releases/v0.22.0.md.
Candidate Identity
The release inputs agree on 0.22.0:
development/packaging/VERSION;development/packaging/MANIFEST.jsonand its archive name;- the
#packageversion indevelopment/std/index.nct; - installed compiler and language-server reporting derived from the validated home.
Qualification Contract
The clean release-content commit must pass:
- 1. two independent complete locked workspace test runs in distinct external Cargo targets;
- warnings-denied all-target Clippy in both external targets;
- formatting, manifest validation, generated documentation, and repository integrity checks;
- the explicit public-HTTPS dependency acquisition test;
- two independent optimized package builds with byte-identical archives and recursively identical installed homes;
- fresh extraction checks for version, doctor, help, initialization, locked/offline check and test, deterministic graph, native run, explicit build and execution, and framed LSP analysis;
- proof that the installed home remains unchanged and qualification leaves no additional repository-local Cargo artifacts.
Source Qualification
The exact release-content commit is da3bae295a85bfafa874f77601f248760ea7de42 (Prepare v0.22.0 release candidate). Two complete locked workspace test runs in independent external Cargo targets each reported 1,453 passed, zero failed, and one ignored public-HTTPS test. The explicit HTTPS dependency-acquisition test passed separately. Warnings-denied all-target Clippy passed in both external targets.
Rust formatting, manifest validation, 328-page documentation generation, and repository whitespace checks passed. Both external source-qualification targets were removed. The repository-local development target remained 2.4 GB and was not used as release evidence.
Artifact Qualification
development/packaging/qualify-local-release.sh generated two optimized packages in independent temporary targets. Their compressed archives were byte-identical, and their extracted .nocter/ homes matched recursively. The retained candidate is:
- archive:
dist/nocter-v0.22.0-arm64-darwin.tar.gz; - byte size: 8,183,692;
- SHA-256:
0c2de4ec772241de26800edf9612a078ff1e1e75bfc00cd9d39db8b24be32083; - executable: ARM64 Mach-O reporting release
0.22.0; - standard library: exactly 109 tracked regular files.
Fresh extraction passed version, doctor, help, package initialization, locked/offline check and native test, two byte-identical JSON package graphs, native run, explicit build and direct execution, and framed LSP checks over installed standard-library contract and implementation sources. The installed home compared recursively unchanged before and after the complete smoke matrix. Temporary build and extraction directories were removed.
Publication Boundary
The JSON chapter left future-direction status because the installed v0.22.0 candidate passed the complete gate. Separately authorized publication reused the retained archive without rebuilding it, advanced public download links in a separate commit, created and pushed an annotated v0.22.0 tag, uploaded exactly this archive, and verified the public download byte for byte. Existing published tags and assets must not be replaced.