Immutable release entry — part of the project changelog. One file per release; format and rationale in ADR-0038. Released entries are never edited.
0.1.0 — 2026-06-10
Milestone 1 — Build System & Project Skeleton. First tagged release: a clean,
reproducible C++17 build that links a public C API skeleton (memory_pool_create,
memory_pool_alloc, memory_pool_free, memory_pool_destroy) with Milestone 1
stub implementations and passes the full enterprise CI gate on Linux × {GCC, Clang},
Windows × MSVC, and macOS arm64. The library is linkable but the public
functions still return NULL / no-op; the real free-list algorithm arrives in
Milestone 2 → v0.2.0. Full release notes in
docs/releases/v0.1.0.md.
- Cross-tool agent contract in
AGENTS.md(persona, language, source layout, git workflow, documentation rules, design-patterns policy, enterprise quality bar, versioning policy); tool adaptersCLAUDE.mdandGEMINI.mddefer to it. README.mdlanding page with project overview, public C API, architecture diagram, status table, repository layout, and a cross-platform Build-and-Test quickstart (POSIX&&-chain plus a PowerShell variant for Windows 5.1).ROADMAP.mdwith numbered, checkbox-driven milestones and a Spec Coverage Map tracing every spec requirement to its roadmap item(s).- Frozen specification at
docs/specs/01_spec_cpp_memory_pool.md. - Architecture Decision Records 0001–0007: record ADRs, cross-language source layout, design-patterns policy, versioning & release policy, toolchain matrix and supported platforms, code style + static-analysis baseline, and doctest as the test framework.
- Design-patterns catalogue under
docs/patterns/with the canonical enterprise taxonomy (design-patterns.md) and the project-scoped candidate list (README.md). - Git and documentation conventions under
docs/workflow/(git-workflow.md,documentation.md,release.md). - Local Build Guide (
docs/development/local-build.md) covering toolchain installation per platform, fresh-clone workflow, and quality-bar verification. - Pull-request template (
.github/PULL_REQUEST_TEMPLATE.md) enforcing the AGENTS.md §6.4 PR body shape. - Maven-style cross-language source tree at
src/{main,test,bench}/cpp/it/d4np/memorypool/per ADR-0002; placeholders andsrc/README.mddescribing the layout. - Top-level
CMakeLists.txtdeclaring thepbr_memory_poolstatic library target (with aliaspbr::memory_pool), reading version constants fromsrc/main/cpp/it/d4np/memorypool/version.hppas CMake's single source of truth forproject(... VERSION ...). CMakePresets.jsonwithdebug,release,asan,ubsan, andtsanpresets; sanitizer presets are POSIX-only per ADR-0005 §3.- Public C API skeleton in
<it/d4np/memorypool/memory_pool.h>—memory_pool_create,memory_pool_alloc,memory_pool_free,memory_pool_destroy— fully Doxygen-documented to the spec §5 contract. - C++17 wrapper skeleton in
<it/d4np/memorypool/memory_pool.hpp>exposing theit::d4np::memorypool::PoolRAII type. - Milestone 1 stub implementations in
memory_pool.cpp(NULL/ no-op) so the library is linkable from day 1; Milestone 2 replaces the stubs with the real free-list algorithms. .clang-format— LLVM-derived style, 4-space indent, 120-col soft limit, pointer-aligned-left (ADR-0006 §1)..clang-tidybaseline (bugprone-*,cert-*,cppcoreguidelines-*,modernize-*,performance-*,portability-*,readability-*) with the deviations recorded in ADR-0006 §2.- doctest v2.4.11 pulled via
FetchContent(shallow clone), gated by thePBR_MEMORY_POOL_BUILD_TESTSoption (on by default in every preset) — ADR-0007. - First CTest smoke test (
pool_smoke, labelssmoke;milestone-1) exercising the version constants, the four spec §5 C symbols, and thePoolRAII wrapper against the Milestone 1 stub contract. - Enterprise CI workflow
.github/workflows/ci.yml: build matrix across Linux × {GCC 13, Clang 18} × {debug, release, asan, ubsan} + Windows × MSVC × {debug, release} + macOS arm64 × Apple Clang × {debug, release, asan, ubsan} (14 cells),clang-formatrepo-wide dry-run with-Werror,clang-tidydiff gate with--warnings-as-errors='*', ANSI C (-std=c89) and C99 (-std=c99) compatibility verification of the public header, and a zero-external-dependency audit that builds the library with tests/benchmarks OFF and inspects the static archive for stray third-party objects. - Docs-only CI workflow
.github/workflows/docs.ymlrunning markdownlint, internal-link integrity via Lychee (offline mode), and ADR-numbering & index-coverage sanity. - Release CI workflow
.github/workflows/release.ymltriggered onv*tag push (andworkflow_dispatchfor re-runs). Re-runs the full PR-gating matrix viaworkflow_callintoci.yml, builds per-platform binary artifacts (pbr-memory-pool-<version>-<platform>.tar.gzfor Linux x86_64, Windows x86_64, and macOS arm64 — static library + public headers + LICENSE + README + CHANGELOG), emits a singleSHA256SUMS, and creates a draft GitHub Release whose body isdocs/releases/<tag>.md. Pre-release suffixes (-alpha.N/-beta.N/-rc.N) are auto-detected and propagated. The workflow never auto-publishes — the maintainer reviews the draft and clicks Publish (ADR-0004 §6).ci.ymlgains aworkflow_call:trigger so the release workflow can invoke it as a reusable workflow.
- README landing-page title shortened to
High-Performance Memory Pool Manager (C++). The previousPurpose-built referencequalifier was redundant with the PBR-series tagline already present in the first paragraph and crowded search-engine titles without adding meaning.
- CMake
project(... VERSION ...)parsing treats"0"as a successful regex match. CMake's truthiness rule classifies the literal string"0"as falsy, which previously misfired on legitimate zero version components — for examplev0.1.0'sMAJORandPATCHwould short-circuit the parse and fail the configure on a fresh clone.