Programming Language

Nocter

A self-contained systems language built around simplicity, encapsulation, and foolproof design.

/development/milestones/v0.17.0-release-preparation.md

v0.17.0 Release Preparation

Status: release candidate qualified and published on 2026-08-25. This record owns the completed preparation of v0.17.0. Final publication and downloaded-asset evidence is frozen in the immutable release record.

Release Boundary

v0.17.0 contains the completed practical-filesystem and standard-library-reconstruction phases, the package-root and direct source-visibility replacement, and the completed semantic-analysis authority reconstruction. No later practical API belongs to this candidate.

The public release notes are ../../releases/v0.17.0.md. The publication commit updates the public README and release index to v0.17.0 before its annotated tag and GitHub release are created.

Candidate Identity

The release inputs must agree on 0.17.0:

  • development/packaging/VERSION;
  • development/packaging/MANIFEST.json and its archive name;
  • the #package version in development/std/index.nct;
  • installed compiler and language-server reporting derived from the validated home.

Qualification Contract

The release-content commit must pass:

  1. 1. the complete workspace tests, warnings-denied all-target Clippy, formatting, manifest validation, generated documentation, and repository integrity checks;
  2. a second clean test run and clean warnings-denied Clippy in distinct disposable external Cargo targets;
  3. the explicit public-HTTPS acquisition test;
  4. two independent optimized packages built in separate disposable targets, with byte-identical archives and recursively identical installed homes;
  5. fresh extraction checks for version, diagnosis, help, initialization, locked/offline checking and testing, deterministic package graphs, native run, explicit build and execution, and framed LSP analysis of standard contract and implementation sources;
  6. proof that the installed home remains unchanged throughout the smoke matrix;
  7. a final review for duplicate semantic authority, reverse dependency, stale compatibility path, source-driven backend decision, and unowned standard-library implementation fact.

Qualification uses only external temporary Cargo targets and leaves no repository-local target/. The retained record will name the exact release-content commit, archive byte size, SHA-256 digest, and tracked standard-library file count.

Source Qualification

Release-content commit 2c2c01d6879984c3dc856a1b1989f31d19870a35 passed the source gates:

  • two independent locked workspace test runs, each with 1,255 passed, 0 failed, and 1 ignored;
  • two warnings-denied locked all-target workspace Clippy runs, including one clean external target;
  • Rust formatting, release-manifest validation, documentation generation, and git diff --check;
  • the ignored public-HTTPS acquisition test, with 1 passed and 0 failed.

Every compilation used a disposable external Cargo target. The repository-local development/compiler/target/ directory was absent before packaging and remained absent after qualification.

Artifact Qualification

Two independent optimized builds produced byte-identical archives and recursively identical installed homes. The retained candidate is:

  • path: dist/nocter-v0.17.0-arm64-darwin.tar.gz;
  • byte size: 7,242,633;
  • SHA-256: 7933950c520367e3af21ee19121069aee73815f0ba56691c063786fd530b499c;
  • bundled standard-library files: 65.

A fresh extraction passed compiler version, doctor, help, package initialization, locked and offline checking, native testing, deterministic package-graph comparison, native execution, explicit build followed by direct execution, and framed language-server analysis of standard contract and implementation sources. A recursive comparison proved that these operations did not mutate the installed home.

Final Boundary Review

The adversarial release review found no release blocker:

  • no compiler implementation identifier remains for the removed include source-visibility mechanism; prose uses of the ordinary English word are not semantic compatibility paths;
  • Machine, ARM64, and Mach-O sources cannot import SourceIndex or semantic TypeStore state;
  • Darwin syscall numbers, errno constants, memory-map flags, and native metadata layout have one numeric owner under std/internal/os/darwin; public and higher standard modules consume only its declared package contract;
  • the active compiler and standard-library trees contain no TODO, FIXME, todo!, or unimplemented! marker;
  • the tracked release identity is consistently 0.17.0; at qualification time, the README and release index deliberately retained v0.16.0 until publication was authorized.

Publication Boundary

Publication is authorized. The qualified archive remains frozen while the publication commit, annotated tag, GitHub release, asset upload, and public re-download audit are completed.