diff --git a/CHANGELOG.md b/CHANGELOG.md index f840f94..3c951f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,104 +18,7 @@ under *Changed* or *Removed*. The `Unreleased` block accumulates entries during development and is rolled into a dated version block (`## [X.Y.Z] — YYYY-MM-DD`) when a release PR closes a milestone. -### Added - -- **Pull-request metadata policy.** Every agent-opened PR now also sets a maintainer - **assignee**, **exactly one type label** (Conventional-Commit `type` → label; - `docs` reuses the built-in `documentation` label), and the current open **release - milestone** (per-release scheme, e.g. `v1.1.1`). The eight type labels - (`feat`/`fix`/`refactor`/`perf`/`test`/`build`/`chore`/`ci`) and the `v1.1.1` - milestone were created, and PRs #89–#91 backfilled. **Reviewers** are deferred - (the sole collaborator is the PR author — GitHub forbids self-review) and - **Projects** are deferred (the `gh` token lacks the `project` scope); the rule names - how each switches on. Codified in [`AGENTS.md`](AGENTS.md) §6.4, rationale in - [ADR-0040](docs/adr/0040-pull-request-metadata-policy.md). Process/repository-metadata - only; no API change. -- **In-repo bug ledger (`docs/bugs/`) + agent triage protocol.** Known defects and - the triage of incoming reports now have a durable, reviewable home: one Markdown - record per defect, `BUG-NNNN-.md` under a discovery-date tree - `docs/bugs///`, with a stable monotonic id, structured frontmatter - (`status`/`severity`/`reporter`/…), an index + template, and a lifecycle - (`open → confirmed → fixed`, plus `wontfix`/`duplicate`/`cannot-reproduce`). The - ledger is the source of truth (a GitHub issue is referenced, not authoritative) and - cross-references the `CHANGELOG` `Fixed` line at close. The agent rule - ([`AGENTS.md`](AGENTS.md) §7.7) requires a record only for **verified** defects, and - **verification before acceptance** of third-party reports (unsubstantiated reports - are still recorded as `cannot-reproduce`/`rejected`). A new `bugs` consistency-lint - check guards frontmatter, ids, the index bijection, and the `fixed`↔`fixed-in` link. - Governance in [`docs/workflow/maintenance.md`](docs/workflow/maintenance.md); - rationale in [ADR-0039](docs/adr/0039-bug-ledger-and-triage-protocol.md). - Documentation/process/tooling-only; no API change. -- README gains a **Technology stack** section (language standards, build / test / - docs / tooling, and packaging, with versions — `zero runtime dependencies`) and a - top-of-page **"Read this in: 简体中文 · 日本語"** pointer to the `docs/i18n/` - translations. Documentation-only; no API change. (Post-1.0 maintenance; the - `zh-Hans` / `ja` README translations are re-synced to match in a follow-up PR.) -- **`SECURITY.md`** — the public security policy: supported versions (`1.1.x`), - private vulnerability reporting via GitHub's advisory feature, the - coordinated-disclosure expectations, and the in-scope/out-of-scope boundary. - Realizes the planned addition referenced by the post-release maintenance - protocol ([`docs/workflow/maintenance.md`](docs/workflow/maintenance.md), which - now links it). -- **`packaging-smoke` CI workflow** — end-to-end smoke tests for the Phase-2 - packaging recipes that cannot be built on the maintainer's box: a **vcpkg** - overlay-port install + consumer build (`find_package` + link `pbr::memory_pool`) - and a **Conan** `conan create` that runs the `test_package`. Both validate the - recipes against the SHA-pinned `v1.0.0` source tag, so they run on changes to - `ports/**` / `conan/**` / the workflow and on a weekly schedule (the recipes are - version-pinned, so the schedule is the main signal for toolchain / registry - drift). Adds a small `ci/packaging-smoke/vcpkg-consumer/` fixture; the Conan side - reuses the existing `conan/test_package/`. CI only; no API change. -- **API reference badge** in the README header linking directly to the published - Doxygen site (`https://danielpolowork.github.io/pbr-cpp-memory-pool/`), so the - generated API reference is reachable in one click rather than only from prose. - Mirrored into the `zh-Hans` / `ja` README translations. Documentation-only. -- **`docs/journal/` session journal** — the dated end-of-session checkpoints were - extracted from `ROADMAP.md` into one file per session under `YYYY/MM/`, with an - index and a `ROADMAP.md` *Latest checkpoint* pointer ([ADR-0036](docs/adr/0036-session-journal-extraction.md); - agent rule in [`AGENTS.md`](AGENTS.md) §7.6). `ROADMAP.md` drops from 301 to ~171 - lines and reads as a forward plan again. Documentation-only; the ten historical - checkpoints were migrated verbatim. -- **New-feature roadmap-placement rule** — [`AGENTS.md`](AGENTS.md) §7.3 now states - that every feature reaches the roadmap as part of the PR that starts it, and gives - the judgment for *new milestone* (cohesive capability → `Milestone 9`, `10`, …; - closes as a MINOR) vs. *appended item* (extends an open milestone) vs. *neither* - (a maintenance change). Recorded in [ADR-0037](docs/adr/0037-new-feature-roadmap-placement.md) - and cross-referenced from [`docs/workflow/maintenance.md`](docs/workflow/maintenance.md). - Documentation/process-only. - -### Changed - -- **`zh-Hans` / `ja` README translations re-synced to `v1.1.0`.** Carries the - English README's post-1.0 deltas into both locales — `v1.1.0` status badge and - banner, the cross-language "read this in" links, the sharpened project - description, the `v1.1.0` status paragraph, Milestone 8 → complete, and a - translated **Technology stack** section. The `translation-status.md` manifest's - two README rows are re-pinned to the current source commit and flipped from - `stale` back to `translated`, clearing the `i18n-freshness` consistency-lint - flag the `v1.1.0` release raised. Documentation-only; no API change. -- **CI GitHub Actions bumped off the deprecated Node 20 runtime onto Node 24.** - `actions/checkout` v4 → v6, `actions/upload-artifact` v4 → v7, - `actions/download-artifact` v4 → v8, `actions/deploy-pages` v4 → v5, - `actions/upload-pages-artifact` v3 → v5, and - `DavidAnson/markdownlint-cli2-action` v16 → v23 — all of which previously ran on - `node20`, which GitHub is retiring. The markdownlint bump pulls in a newer - markdownlint that adds the `MD060` (table-column-style) rule; it is disabled in - [`.markdownlint.json`](.markdownlint.json) because byte-aligned table pipes are - not achievable for the CJK-width tables in the `docs/i18n/` translations — - preserving the prior (rule-absent) behaviour. `ilammy/msvc-dev-cmd` stays on `v1` - (no Node 24 release exists upstream yet); `lukka/get-cmake@latest` and - `lycheeverse/lychee-action@v2` already run on Node 24 / as composite actions. - CI / build only; no API/ABI/behaviour change. -- **Changelog split into one immutable file per release.** The nine historical - entries (`0.1.0`–`1.1.0`) moved **verbatim** out of this file into - `docs/changelog/v/v.md`; the root `CHANGELOG.md` now keeps only the - preamble, `[Unreleased]`, and the *Released versions* index below — dropping from - 1129 to ~100 lines. Keep a Changelog and the root-file location are preserved; - the `version-lockstep` consistency check, [`release.md`](docs/workflow/release.md) - §3, and the `AGENTS.md` §11 release contract were updated to match. Rationale - (incl. why not a calendar or XML/Liquibase split) in - [ADR-0038](docs/adr/0038-changelog-version-split.md). Documentation/tooling-only. +*Nothing yet.* ## Released versions @@ -123,6 +26,7 @@ Each released version is an **immutable** entry under [`docs/changelog/`](docs/c | Version | Date | Highlights | |---------|------|------------| +| [1.1.1](docs/changelog/v1/v1.1.1.md) | 2026-06-15 | Maintenance — bug ledger, PR-metadata policy, journal split, SECURITY.md, CI Node bump | | [1.1.0](docs/changelog/v1/v1.1.0.md) | 2026-06-14 | Internationalization (zh-Hans / ja) & post-release governance | | [1.0.1](docs/changelog/v1/v1.0.1.md) | 2026-06-14 | Packaging patch — vcpkg port + Conan recipe (byte-identical lib) | | [1.0.0](docs/changelog/v1/v1.0.0.md) | 2026-06-14 | First stable release — public C ABI and C++ surface frozen | @@ -133,4 +37,4 @@ Each released version is an **immutable** entry under [`docs/changelog/`](docs/c | [0.2.0](docs/changelog/v0/v0.2.0.md) | 2026-06-11 | Core memory pool — single-threaded O(1) MVP | | [0.1.0](docs/changelog/v0/v0.1.0.md) | 2026-06-10 | Build system & project skeleton | -[Unreleased]: https://github.com/danielPoloWork/pbr-cpp-memory-pool/compare/v1.1.0...HEAD +[Unreleased]: https://github.com/danielPoloWork/pbr-cpp-memory-pool/compare/v1.1.1...HEAD diff --git a/README.md b/README.md index 3a49f33..61ededc 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![API reference](https://img.shields.io/badge/API%20reference-Doxygen-1f6feb.svg)](https://danielpolowork.github.io/pbr-cpp-memory-pool/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Standard: C++17 / ANSI C](https://img.shields.io/badge/Standard-C%2B%2B17%20%2F%20ANSI%20C-blue.svg)](docs/specs/01_spec_cpp_memory_pool.md) -[![Status: v1.1.0 stable](https://img.shields.io/badge/Status-v1.1.0%20stable-brightgreen.svg)](https://github.com/danielPoloWork/pbr-cpp-memory-pool/releases/tag/v1.1.0) +[![Status: v1.1.1 stable](https://img.shields.io/badge/Status-v1.1.1%20stable-brightgreen.svg)](https://github.com/danielPoloWork/pbr-cpp-memory-pool/releases/tag/v1.1.1) > Part of the **Purpose-Built References (PBR)** series — small, didactic, production-quality C/C++ reference implementations of high-performance building blocks. @@ -194,6 +194,8 @@ Reports for other host × compiler combinations (Linux / GCC, Linux / Clang, mac ## Status +`v1.1.1` — **maintenance** (documentation / process / tooling), the first post-`v1.1.0` PATCH. The shipped library is byte-identical to `v1.1.0` — no API/ABI/behaviour change. Adds the in-repo [bug ledger](docs/bugs/) + triage protocol ([ADR-0039](docs/adr/0039-bug-ledger-and-triage-protocol.md)), a [PR-metadata policy](docs/adr/0040-pull-request-metadata-policy.md), a [`SECURITY.md`](SECURITY.md), `packaging-smoke` CI for the vcpkg/Conan recipes, the [session journal](docs/journal/) ([ADR-0036](docs/adr/0036-session-journal-extraction.md)), the new-feature roadmap-placement rule ([ADR-0037](docs/adr/0037-new-feature-roadmap-placement.md)), and the per-release changelog split ([ADR-0038](docs/adr/0038-changelog-version-split.md)). Five new ADRs (0036–0040) bring the total to 40. Release notes: [`docs/releases/v1.1.1.md`](docs/releases/v1.1.1.md). The earlier line: + `v1.1.0` — **internationalization & post-release governance** (Milestone 8), the first post-1.0 MINOR. Purely **additive** — the library binary is unchanged from `v1.0.x`. Documentation now ships in **Simplified Chinese (`zh-Hans`) and Japanese (`ja`)** (English stays normative — [`docs/i18n/`](docs/i18n/), [ADR-0032](docs/adr/0032-documentation-i18n-architecture.md)); the spec is English-normative ([ADR-0033](docs/adr/0033-english-as-the-spec-normative-language.md)); a [post-release maintenance protocol](docs/workflow/maintenance.md) ([ADR-0034](docs/adr/0034-post-release-maintenance-protocol.md)) governs the maintained-product phase; and an agent-runnable [`consistency lint`](tools/consistency_lint.py) ([ADR-0035](docs/adr/0035-agent-runnable-consistency-lint.md)) gates cross-artifact congruence in CI and the agent contract. Four new ADRs (0032–0035) bring the total to 35. Release notes: [`docs/releases/v1.1.0.md`](docs/releases/v1.1.0.md). The earlier line: `v1.0.1` — **packaging patch** over the frozen `v1.0.0` API: adds the vcpkg port and the Conan 2.x recipe (Phase 2 distribution, ADRs [0030](docs/adr/0030-vcpkg-port.md) / [0031](docs/adr/0031-conan-recipe.md)). The shipped library is byte-identical to `v1.0.0` — a `PATCH`, no API/ABI/behaviour change. Release notes: [`docs/releases/v1.0.1.md`](docs/releases/v1.0.1.md). The stable baseline it patches: diff --git a/docs/changelog/v1/v1.1.1.md b/docs/changelog/v1/v1.1.1.md new file mode 100644 index 0000000..03bd005 --- /dev/null +++ b/docs/changelog/v1/v1.1.1.md @@ -0,0 +1,119 @@ +# Changelog — v1.1.1 + +> Immutable release entry — part of the [project changelog](../../../CHANGELOG.md). One file per release; format and rationale in [ADR-0038](../../adr/0038-changelog-version-split.md). Released entries are never edited. + +## [1.1.1] — 2026-06-15 + +**Maintenance release.** A **PATCH** bundling the post-`v1.1.0` documentation, +process, and tooling work — the shipped library is **unchanged** from `v1.1.0` +(no API/ABI/behaviour change), so every existing consumer is unaffected. Highlights: +the in-repo **bug ledger** + triage protocol ([ADR-0039](../../../docs/adr/0039-bug-ledger-and-triage-protocol.md)), +the **PR-metadata policy** ([ADR-0040](../../../docs/adr/0040-pull-request-metadata-policy.md)), +a public **`SECURITY.md`**, **packaging-smoke** CI for the vcpkg/Conan recipes, the +**session-journal** extraction ([ADR-0036](../../../docs/adr/0036-session-journal-extraction.md)), +the **new-feature roadmap-placement** rule ([ADR-0037](../../../docs/adr/0037-new-feature-roadmap-placement.md)), +the **per-release changelog split** ([ADR-0038](../../../docs/adr/0038-changelog-version-split.md)), +and the CI bump off the deprecated Node 20 runtime. Five new ADRs (0036–0040) take +the running total to **40**. No spec row changes — all additive docs/process/tooling. +Full release notes in [`docs/releases/v1.1.1.md`](../../../docs/releases/v1.1.1.md). + +### Added + +- **Pull-request metadata policy.** Every agent-opened PR now also sets a maintainer + **assignee**, **exactly one type label** (Conventional-Commit `type` → label; + `docs` reuses the built-in `documentation` label), and the current open **release + milestone** (per-release scheme, e.g. `v1.1.1`). The eight type labels + (`feat`/`fix`/`refactor`/`perf`/`test`/`build`/`chore`/`ci`) and the `v1.1.1` + milestone were created, and PRs #89–#91 backfilled. **Reviewers** are deferred + (the sole collaborator is the PR author — GitHub forbids self-review) and + **Projects** are deferred (the `gh` token lacks the `project` scope); the rule names + how each switches on. Codified in [`AGENTS.md`](../../../AGENTS.md) §6.4, rationale in + [ADR-0040](../../../docs/adr/0040-pull-request-metadata-policy.md). Process/repository-metadata + only; no API change. +- **In-repo bug ledger (`docs/bugs/`) + agent triage protocol.** Known defects and + the triage of incoming reports now have a durable, reviewable home: one Markdown + record per defect, `BUG-NNNN-.md` under a discovery-date tree + `docs/bugs///`, with a stable monotonic id, structured frontmatter + (`status`/`severity`/`reporter`/…), an index + template, and a lifecycle + (`open → confirmed → fixed`, plus `wontfix`/`duplicate`/`cannot-reproduce`). The + ledger is the source of truth (a GitHub issue is referenced, not authoritative) and + cross-references the `CHANGELOG` `Fixed` line at close. The agent rule + ([`AGENTS.md`](../../../AGENTS.md) §7.7) requires a record only for **verified** defects, and + **verification before acceptance** of third-party reports (unsubstantiated reports + are still recorded as `cannot-reproduce`/`rejected`). A new `bugs` consistency-lint + check guards frontmatter, ids, the index bijection, and the `fixed`↔`fixed-in` link. + Governance in [`docs/workflow/maintenance.md`](../../../docs/workflow/maintenance.md); + rationale in [ADR-0039](../../../docs/adr/0039-bug-ledger-and-triage-protocol.md). + Documentation/process/tooling-only; no API change. +- README gains a **Technology stack** section (language standards, build / test / + docs / tooling, and packaging, with versions — `zero runtime dependencies`) and a + top-of-page **"Read this in: 简体中文 · 日本語"** pointer to the `docs/i18n/` + translations. Documentation-only; no API change. (Post-1.0 maintenance; the + `zh-Hans` / `ja` README translations are re-synced to match in a follow-up PR.) +- **`SECURITY.md`** — the public security policy: supported versions (`1.1.x`), + private vulnerability reporting via GitHub's advisory feature, the + coordinated-disclosure expectations, and the in-scope/out-of-scope boundary. + Realizes the planned addition referenced by the post-release maintenance + protocol ([`docs/workflow/maintenance.md`](../../../docs/workflow/maintenance.md), which + now links it). +- **`packaging-smoke` CI workflow** — end-to-end smoke tests for the Phase-2 + packaging recipes that cannot be built on the maintainer's box: a **vcpkg** + overlay-port install + consumer build (`find_package` + link `pbr::memory_pool`) + and a **Conan** `conan create` that runs the `test_package`. Both validate the + recipes against the SHA-pinned `v1.0.0` source tag, so they run on changes to + `ports/**` / `conan/**` / the workflow and on a weekly schedule (the recipes are + version-pinned, so the schedule is the main signal for toolchain / registry + drift). Adds a small `ci/packaging-smoke/vcpkg-consumer/` fixture; the Conan side + reuses the existing `conan/test_package/`. CI only; no API change. +- **API reference badge** in the README header linking directly to the published + Doxygen site (`https://danielpolowork.github.io/pbr-cpp-memory-pool/`), so the + generated API reference is reachable in one click rather than only from prose. + Mirrored into the `zh-Hans` / `ja` README translations. Documentation-only. +- **`docs/journal/` session journal** — the dated end-of-session checkpoints were + extracted from `ROADMAP.md` into one file per session under `YYYY/MM/`, with an + index and a `ROADMAP.md` *Latest checkpoint* pointer ([ADR-0036](../../../docs/adr/0036-session-journal-extraction.md); + agent rule in [`AGENTS.md`](../../../AGENTS.md) §7.6). `ROADMAP.md` drops from 301 to ~171 + lines and reads as a forward plan again. Documentation-only; the ten historical + checkpoints were migrated verbatim. +- **New-feature roadmap-placement rule** — [`AGENTS.md`](../../../AGENTS.md) §7.3 now states + that every feature reaches the roadmap as part of the PR that starts it, and gives + the judgment for *new milestone* (cohesive capability → `Milestone 9`, `10`, …; + closes as a MINOR) vs. *appended item* (extends an open milestone) vs. *neither* + (a maintenance change). Recorded in [ADR-0037](../../../docs/adr/0037-new-feature-roadmap-placement.md) + and cross-referenced from [`docs/workflow/maintenance.md`](../../../docs/workflow/maintenance.md). + Documentation/process-only. + +### Changed + +- **`zh-Hans` / `ja` README translations re-synced to `v1.1.0`.** Carries the + English README's post-1.0 deltas into both locales — `v1.1.0` status badge and + banner, the cross-language "read this in" links, the sharpened project + description, the `v1.1.0` status paragraph, Milestone 8 → complete, and a + translated **Technology stack** section. The `translation-status.md` manifest's + two README rows are re-pinned to the current source commit and flipped from + `stale` back to `translated`, clearing the `i18n-freshness` consistency-lint + flag the `v1.1.0` release raised. Documentation-only; no API change. +- **CI GitHub Actions bumped off the deprecated Node 20 runtime onto Node 24.** + `actions/checkout` v4 → v6, `actions/upload-artifact` v4 → v7, + `actions/download-artifact` v4 → v8, `actions/deploy-pages` v4 → v5, + `actions/upload-pages-artifact` v3 → v5, and + `DavidAnson/markdownlint-cli2-action` v16 → v23 — all of which previously ran on + `node20`, which GitHub is retiring. The markdownlint bump pulls in a newer + markdownlint that adds the `MD060` (table-column-style) rule; it is disabled in + [`.markdownlint.json`](../../../.markdownlint.json) because byte-aligned table pipes are + not achievable for the CJK-width tables in the `docs/i18n/` translations — + preserving the prior (rule-absent) behaviour. `ilammy/msvc-dev-cmd` stays on `v1` + (no Node 24 release exists upstream yet); `lukka/get-cmake@latest` and + `lycheeverse/lychee-action@v2` already run on Node 24 / as composite actions. + CI / build only; no API/ABI/behaviour change. +- **Changelog split into one immutable file per release.** The nine historical + entries (`0.1.0`–`1.1.0`) moved **verbatim** out of the root `CHANGELOG.md` into + `docs/changelog/v/v.md`; the root `CHANGELOG.md` now keeps only the + preamble, `[Unreleased]`, and the *Released versions* index — dropping from + 1129 to ~100 lines. Keep a Changelog and the root-file location are preserved; + the `version-lockstep` consistency check, [`release.md`](../../../docs/workflow/release.md) + §3, and the `AGENTS.md` §11 release contract were updated to match. Rationale + (incl. why not a calendar or XML/Liquibase split) in + [ADR-0038](../../../docs/adr/0038-changelog-version-split.md). Documentation/tooling-only. + +[1.1.1]: https://github.com/danielPoloWork/pbr-cpp-memory-pool/releases/tag/v1.1.1 diff --git a/docs/i18n/translation-status.md b/docs/i18n/translation-status.md index 181ce23..b8a4910 100644 --- a/docs/i18n/translation-status.md +++ b/docs/i18n/translation-status.md @@ -16,7 +16,7 @@ Status vocabulary: | Source page | Source commit | Translated at | Status | Reviewer | |-------------|:-------------:|:-------------:|:------:|----------| -| [`README.md`](../../README.md) | `6236c0f` | `6236c0f` | `translated` | — | +| [`README.md`](../../README.md) | `6236c0f` | `6236c0f` | `stale` | — | | [`docs/specs/01_spec_cpp_memory_pool.md`](../specs/01_spec_cpp_memory_pool.md) | `2e55dfa` | `2e55dfa` | `translated` | — | | [`docs/patterns/README.md`](../patterns/README.md) | `524f0cc` | `524f0cc` | `translated` | — | @@ -24,7 +24,7 @@ Status vocabulary: | Source page | Source commit | Translated at | Status | Reviewer | |-------------|:-------------:|:-------------:|:------:|----------| -| [`README.md`](../../README.md) | `6236c0f` | `6236c0f` | `translated` | — | +| [`README.md`](../../README.md) | `6236c0f` | `6236c0f` | `stale` | — | | [`docs/specs/01_spec_cpp_memory_pool.md`](../specs/01_spec_cpp_memory_pool.md) | `612f9d2` | `612f9d2` | `translated` | — | | [`docs/patterns/README.md`](../patterns/README.md) | `6c6aeb7` | `6c6aeb7` | `translated` | — | diff --git a/docs/releases/v1.1.1.md b/docs/releases/v1.1.1.md new file mode 100644 index 0000000..949f3c7 --- /dev/null +++ b/docs/releases/v1.1.1.md @@ -0,0 +1,60 @@ +# pbr-cpp-memory-pool v1.1.1 — Maintenance (bug ledger, PR-metadata policy, governance) + +A **maintenance PATCH**. `v1.1.1` is **purely documentation, process, and tooling** — the shipped library is byte-identical to `v1.1.0` (no API, ABI, or behaviour change), so every existing consumer is unaffected. It bundles the post-`v1.1.0` governance and quality work accumulated on `master`. + +## What's in the box + +### In-repo bug ledger & triage protocol ([ADR-0039](../adr/0039-bug-ledger-and-triage-protocol.md)) + +Known defects and the triage of incoming reports now have a durable, reviewable home under [`docs/bugs/`](../../docs/bugs/): one Markdown record per defect, `BUG-NNNN-.md` under a discovery-date tree `docs/bugs///`, with a stable monotonic id, structured frontmatter, an index + template, and a lifecycle (`open → confirmed → fixed`, plus `wontfix`/`duplicate`/`cannot-reproduce`). The ledger is the source of truth (a GitHub issue is referenced, not authoritative). The agent rule ([`AGENTS.md`](../../AGENTS.md) §7.7) creates a record only for **verified, reproducible** defects and **verifies third-party reports before accepting** them (unsubstantiated reports are still recorded as `cannot-reproduce`/`rejected`). A new `bugs` consistency-lint check guards record integrity. + +### Pull-request metadata policy ([ADR-0040](../adr/0040-pull-request-metadata-policy.md)) + +Every agent-opened PR now also sets a maintainer **assignee**, **exactly one type label** (Conventional-Commit `type` → label; `docs` reuses the built-in `documentation` label), and the current open **release milestone**. The eight type labels and the `v1.1.1` milestone were created. **Reviewers** are deferred (the sole collaborator is the PR author — GitHub forbids self-review) and **Projects** are deferred (the `gh` token lacks the `project` scope); the rule names how each switches on. Codified in [`AGENTS.md`](../../AGENTS.md) §6.4. + +### Governance & documentation structure + +- **Session journal** ([ADR-0036](../adr/0036-session-journal-extraction.md)) — dated end-of-session checkpoints extracted from `ROADMAP.md` into [`docs/journal/`](../../docs/journal/) (one file per session under `YYYY/MM/`), leaving `ROADMAP.md` a forward plan. +- **New-feature roadmap-placement rule** ([ADR-0037](../adr/0037-new-feature-roadmap-placement.md)) — when a feature warrants a new milestone vs. an appended item vs. neither. +- **Per-release changelog split** ([ADR-0038](../adr/0038-changelog-version-split.md)) — released entries are now one immutable file per release under `docs/changelog/v/`, the root `CHANGELOG.md` keeping only `[Unreleased]` + the index. +- **`SECURITY.md`** — the public security policy (supported versions, private vulnerability reporting, coordinated disclosure), realizing the addition referenced by the [maintenance protocol](../../docs/workflow/maintenance.md). + +### CI & tooling + +- **`packaging-smoke` workflow** — end-to-end smoke tests for the vcpkg port and Conan recipe (which cannot be built on the maintainer's box), pinned to the `v1.0.0` source tag and run on recipe changes + weekly. +- **GitHub Actions bumped off the deprecated Node 20 runtime** onto Node 24. +- **API-reference badge** in the README linking to the published Doxygen site. + +## Architecture Decision Records + +Five ADRs accepted since `v1.1.0`, taking the running total from 35 to **40**: + +- [ADR-0036](../adr/0036-session-journal-extraction.md) — extract the session journal from `ROADMAP.md`. +- [ADR-0037](../adr/0037-new-feature-roadmap-placement.md) — new-feature roadmap placement (milestone vs. item). +- [ADR-0038](../adr/0038-changelog-version-split.md) — split the changelog into one file per release. +- [ADR-0039](../adr/0039-bug-ledger-and-triage-protocol.md) — in-repo bug ledger and agent triage protocol. +- [ADR-0040](../adr/0040-pull-request-metadata-policy.md) — pull-request metadata policy. + +## Spec Coverage Map + +**No change** — `v1.1.1` is additive documentation/process/tooling, not a spec requirement. All fifteen rows remain ✅ (accepted at `v1.0.0`, [ADR-0029](../adr/0029-spec-compliance-acceptance-audit.md)). + +## What this release does **not** contain + +- **No library code change** — the static archive is unchanged from `v1.1.0`; this is a docs/process/tooling PATCH. +- The `zh-Hans` / `ja` README translations are re-synced to the `v1.1.1` status in a follow-up PR (the manifest's two README rows are marked `stale` in this release). + +## Verifying the release + +Each platform tarball is the same complete `cmake --install` tree as `v1.1.0` (full headers + static archive + CMake package config + pkg-config `.pc`). SHA-256 checksums are in `SHA256SUMS`: + +```bash +sha256sum --check SHA256SUMS +``` + +## Links + +- Changelog entry: [`CHANGELOG.md` — `[1.1.1]`](../changelog/v1/v1.1.1.md) +- Maintenance protocol: [`docs/workflow/maintenance.md`](../../docs/workflow/maintenance.md) +- Bug ledger: [`docs/bugs/`](../../docs/bugs/) +- Previous release: [`docs/releases/v1.1.0.md`](v1.1.0.md) diff --git a/src/main/cpp/it/d4np/memorypool/version.hpp b/src/main/cpp/it/d4np/memorypool/version.hpp index 6654370..a092878 100644 --- a/src/main/cpp/it/d4np/memorypool/version.hpp +++ b/src/main/cpp/it/d4np/memorypool/version.hpp @@ -23,10 +23,10 @@ inline constexpr unsigned PBR_MEMORY_POOL_VERSION_MAJOR = 1; inline constexpr unsigned PBR_MEMORY_POOL_VERSION_MINOR = 1; /** Patch version component (incremented for hotfixes between milestones). */ -inline constexpr unsigned PBR_MEMORY_POOL_VERSION_PATCH = 0; +inline constexpr unsigned PBR_MEMORY_POOL_VERSION_PATCH = 1; /** Pre-formatted version string, kept in lockstep with the components above. */ -inline constexpr const char* PBR_MEMORY_POOL_VERSION_STRING = "1.1.0"; +inline constexpr const char* PBR_MEMORY_POOL_VERSION_STRING = "1.1.1"; } // namespace it::d4np::memorypool diff --git a/src/test/cpp/it/d4np/memorypool/pool_smoke_test.cpp b/src/test/cpp/it/d4np/memorypool/pool_smoke_test.cpp index 3f69fd6..640a0be 100644 --- a/src/test/cpp/it/d4np/memorypool/pool_smoke_test.cpp +++ b/src/test/cpp/it/d4np/memorypool/pool_smoke_test.cpp @@ -56,12 +56,12 @@ TEST_CASE("version constants are consistent with the project version") { const std::string_view ver{mem::PBR_MEMORY_POOL_VERSION_STRING}; CHECK(ver.find('.') != std::string_view::npos); - // v1.1.0 — Milestone 8 (i18n & post-release governance), the first post-1.0 - // MINOR. Additive only: documentation translations + governance tooling; the + // v1.1.1 — maintenance PATCH: docs/process/tooling only (bug ledger, + // PR-metadata policy, and the accumulated post-1.1.0 docs/CI entries); the // library binary is unchanged. These constants move in lockstep with version.hpp. CHECK(mem::PBR_MEMORY_POOL_VERSION_MAJOR == 1U); CHECK(mem::PBR_MEMORY_POOL_VERSION_MINOR == 1U); - CHECK(mem::PBR_MEMORY_POOL_VERSION_PATCH == 0U); + CHECK(mem::PBR_MEMORY_POOL_VERSION_PATCH == 1U); } TEST_CASE("memory_pool_create / _destroy round-trip on valid arguments") {