Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 3 additions & 99 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,111 +18,15 @@ 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-<slug>.md` under a discovery-date tree
`docs/bugs/<YYYY>/<MM>/`, 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<MAJOR>/v<X.Y.Z>.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

Each released version is an **immutable** entry under [`docs/changelog/`](docs/changelog/) — one file per release, newest first ([ADR-0038](docs/adr/0038-changelog-version-split.md)). They are never edited after release; only the `Unreleased` block above changes during development.

| 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 |
Expand All @@ -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
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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:
Expand Down
Loading
Loading