Release v0.6.0 — Vendoring surface, packaging, and hardening¶
Date: 2026-07-05 · Milestone completed: M8 (amalgamation, packaging, examples, dispatch hardening). Release template per REQ-DOC-010. Gate record: gates/M8.md.
Summary¶
The consumption product surface. Quiver is now installable and vendorable three ways, each
CI-verified: an installable CMake package (find_package(Quiver CONFIG)), a source subproject
(FetchContent/add_subdirectory), and a single-file amalgamation drop-in (quiver.h +
quiver.cpp) built with one compiler command. Plus: four runnable examples, an end-to-end
pipeline benchmark, vcpkg/Conan packaging skeletons, a tag-triggered release workflow with
build-provenance attestation, and compile-time ISA pinning (QUIVER_PIN_ISA).
Completed requirements¶
M8 allocation per PRD 18: REQ-BUILD-009 (install/export), -010 (three
consumption modes incl. a -fno-exceptions consumer), -013 (amalgamate + verify), -014 (LTO
ledger field), -015 (packaging skeletons); REQ-DISP-013 (QUIVER_PIN_ISA); REQ-INT-005
(byte-determinism), -006 (examples); REQ-REPO-007/-011; REQ-CI-008/-009; REQ-BENCH-012;
REQ-REL-003/-004; REQ-STD-006 (--check active). Deferred: AVX-512 performance ledger (R-06,
no hardware, carried from M7); vcpkg/Conan registry submission (a release activity, REQ-BUILD-015).
API changes¶
None. All additions are build/tooling surface. Consumers gain quiver::quiver via
find_package/FetchContent, or #include "quiver.h" from the amalgamation; the runtime dispatch
behavior is unchanged (a pinned build fixes the tier at compile time, REQ-DISP-013).
Validation¶
quiver_amalgamate_verify compiles the generated pair under the shipped-library warning +
no-exceptions baseline and runs the full unit suite against it, requiring byte-identical kernel
outputs versus the normal build (REQ-BUILD-013). CI verifies all three consumption modes, a
-fno-exceptions consumer, the drop-in single-command build, install-tree minimality, the
compile-time pin (active_isa()==avx2 on x86), and the amalgamation on MSVC (default /arch,
tier-2). The generator's determinism and REQ-STD-006 rules have unit tests.
ADR changes¶
ADR-018 (amalgamation strategy) realized, with an M8 amendment: the prescribed MSVC per-ISA
narrowing is unnecessary for the default-/arch build (empirical windows-latest finding), so it
is not implemented; /arch-consumer narrowing is a tier-2 deferral (risk R-17). REQ-STD-006
amended with the anonymous-namespace-collision rule the amalgamation requires.
Known limitations¶
No AVX-512 performance numbers (R-06, unchanged). Packaging skeletons are prepared, not
registry-submitted. The amalgamation on MSVC is supported only with the default /arch (R-17).
The version constant (config.h) trails the SemVer tags at 0.1.0 — a pre-existing drift whose
reconciliation is the release-plan post-release bump (see the gate record §8).
Release artifacts not yet attached. release.yml ran on the v0.6.0 tag and correctly withheld
the draft: the nightly's MSan-instrumented-libc++ leg has been broken since M3 (R-19), so the
aggregate nightly fails and the publish job is skipped (the release checklist requires a green
nightly). The amalgamation pair + SHA256SUMS + attestation are therefore not attached to this
tag yet; the workflow is correct, the nightly MSan infra is the blocker (R-19). Generate the
amalgamation locally with python3 tools/amalgamate/amalgamate.py --out-dir <dir> in the meantime.
Migration notes¶
None required — purely additive.