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
15 changes: 14 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,18 @@ 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.

## [1.0.1] — 2026-06-14

**Packaging patch over the frozen `v1.0.0` API.** Ships the two Phase-2
package-manager integrations completed as Milestone 7's stretch items — the
**vcpkg** overlay port (M7.8, [ADR-0030](docs/adr/0030-vcpkg-port.md)) and the
**Conan 2.x** recipe (M7.9, [ADR-0031](docs/adr/0031-conan-recipe.md)), both
pinned to the `v1.0.0` source tag and building through the project's own ADR-0028
install rules. This is a **`PATCH`** because the shipped library is **byte-identical
to `v1.0.0`** — no source, API, ABI, or behaviour change; only repository-side
packaging metadata was added (which is also why the closing of Milestone 8 stays
targeted at `v1.1.0`). Full release notes in [`docs/releases/v1.0.1.md`](docs/releases/v1.0.1.md).

### Added (M7.8)

- **vcpkg port — Phase 2 distribution** ([ADR-0030](docs/adr/0030-vcpkg-port.md),
Expand Down Expand Up @@ -889,7 +901,8 @@ Milestone 2 → `v0.2.0`. Full release notes in

---

[Unreleased]: https://github.com/danielPoloWork/pbr-cpp-memory-pool/compare/v1.0.0...HEAD
[Unreleased]: https://github.com/danielPoloWork/pbr-cpp-memory-pool/compare/v1.0.1...HEAD
[1.0.1]: https://github.com/danielPoloWork/pbr-cpp-memory-pool/releases/tag/v1.0.1
[1.0.0]: https://github.com/danielPoloWork/pbr-cpp-memory-pool/releases/tag/v1.0.0
[0.6.0]: https://github.com/danielPoloWork/pbr-cpp-memory-pool/releases/tag/v0.6.0
[0.5.0]: https://github.com/danielPoloWork/pbr-cpp-memory-pool/releases/tag/v0.5.0
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
[![docs-site](https://github.com/danielPoloWork/pbr-cpp-memory-pool/actions/workflows/docs-site.yml/badge.svg)](https://github.com/danielPoloWork/pbr-cpp-memory-pool/actions/workflows/docs-site.yml)
[![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.0.0 stable](https://img.shields.io/badge/Status-v1.0.0%20stable-brightgreen.svg)](https://github.com/danielPoloWork/pbr-cpp-memory-pool/releases/tag/v1.0.0)
[![Status: v1.0.1 stable](https://img.shields.io/badge/Status-v1.0.1%20stable-brightgreen.svg)](https://github.com/danielPoloWork/pbr-cpp-memory-pool/releases/tag/v1.0.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 @@ -191,6 +191,8 @@ Reports for other host × compiler combinations (Linux / GCC, Linux / Clang, mac

## Status

`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:

`v1.0.0` — **the first stable release.** The public C ABI (`memory_pool_create` / `_alloc` / `_free` / `_destroy` plus the O(1) introspection accessors) and the C++ surface (`Pool`, `TypedPool<T>`, `PoolAllocator<T>`, `InstrumentedPool`, `PoolObserver`) are frozen under the SemVer 1.0 promise — no breaking change without a `2.0.0`. `v1.0.0` seals the feature set built across Milestones 0–6 — the O(1) implicit-free-list fixed-block pool with zero per-block metadata, the RAII / typed / STL-allocator C++ wrappers, compile-time-configurable thread safety, optional geometric dynamic growth, and opt-in observability — and adds the Milestone 7 polish: the published Doxygen API site (M7.1), the expanded usage / performance / compatibility README (M7.2), `find_package` install + pkg-config packaging (M7.4), and the patterns-catalogue (M7.5) and specification-compliance (M7.6, [ADR-0029](docs/adr/0029-spec-compliance-acceptance-audit.md)) acceptance audits. All fifteen Spec Coverage Map rows are ✅, re-verified end-to-end. Twenty-nine ADRs (0001–0029) record every decision; all eleven adopted design patterns are Implemented. Release notes for `v1.0.0` live in [`docs/releases/v1.0.0.md`](docs/releases/v1.0.0.md).

| Milestone | Title | Status |
Expand Down
4 changes: 4 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,10 @@ When a roadmap item flips from ⏳ to ✅, update the corresponding cell(s) in t

> Living, dated note describing where the project stands at the end of the most recent work session. Updated at the close of each session so the next session resumes from a known point without re-reading the full PR history. Latest entry first; older entries are kept for trail.

### 2026-06-14 — Packaging patch release (v1.0.1)

- A maintenance **`PATCH`** cut by the maintainer's request, immediately after M7.9 merged: it bundles the M7.8 vcpkg port + M7.9 Conan recipe (the post-1.0 packaging additions) into a tagged release. **Chosen as `1.0.1`, not `1.1.0`,** because the shipped library is byte-identical to `v1.0.0` (only repository-side packaging metadata was added) and to keep the Milestone 8 close targeted at `v1.1.0`. `version.hpp` → `1.0.1`, `pool_smoke` asserts updated, `CHANGELOG.md` `[Unreleased]` rolled into `## [1.0.1] — 2026-06-14`, `docs/releases/v1.0.1.md` added, README badge/status refreshed. Not a numbered roadmap item — an ad-hoc patch release. After merge: agent tags `v1.0.1`, maintainer publishes. Next: Milestone 8 (i18n & governance → `v1.1.0`).

### 2026-06-14 — End of M7 release session (v1.0.0 — the stable release)

- **Done in this session** — the whole of Milestone 7: 7.1 (ADR-0027 Doxygen API site → GitHub Pages, PR #53), 7.2 (full usage / performance / compatibility README, PR #55), 7.3 (CHANGELOG audit + draft v1.0.0 headline, PR #56), 7.4 (ADR-0028 install/export + pkg-config `find_package`, PR #57), 7.5 (patterns-catalogue audit, PR #58), 7.6 (ADR-0029 spec-compliance acceptance audit, PR #59), and 7.7 (this release PR — bump to `1.0.0`, roll `CHANGELOG.md` into `[1.0.0] — 2026-06-14`, add `docs/releases/v1.0.0.md`, refresh README).
Expand Down
48 changes: 48 additions & 0 deletions docs/releases/v1.0.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# pbr-cpp-memory-pool v1.0.1 — packaging patch

`v1.0.1` is a **packaging-only patch** over [`v1.0.0`](v1.0.0.md). It ships the two Phase-2 package-manager integrations that closed Milestone 7's stretch items. **The library itself is byte-identical to `v1.0.0`** — no source, API, ABI, or behaviour change; only repository-side packaging metadata was added. (That is why this is a `PATCH` rather than a `MINOR`, and why Milestone 8 still closes at `v1.1.0`.)

## What's new

### vcpkg port ([ADR-0030](../adr/0030-vcpkg-port.md))

An in-repo overlay port under [`ports/pbr-memory-pool/`](../../ports/pbr-memory-pool/), pinned to the `v1.0.0` source tag by SHA512. It builds from source through the project's own CMake install rules ([ADR-0028](../adr/0028-install-and-packaging-layout.md)) and relocates the `find_package` config and pkg-config `.pc` into vcpkg's layout.

```bash
vcpkg install pbr-memory-pool --overlay-ports=ports
```

### Conan 2.x recipe ([ADR-0031](../adr/0031-conan-recipe.md))

A recipe under [`conan/`](../../conan/) (with a ConanCenter-style `test_package/`), pinned to the `v1.0.0` source tag by SHA256. It builds through the same install rules and re-exposes the target via Conan's generators.

```bash
conan create conan/ # then depend on pbr-memory-pool/1.0.1
```

Both integrations yield the identical imported target as every other consumption mode:

```cmake
find_package(pbr_memory_pool CONFIG REQUIRED)
target_link_libraries(my_app PRIVATE pbr::memory_pool)
```

Registry publication (microsoft/vcpkg, ConanCenter / self-hosted) is **deferred** — both port files are written to upstream conventions and the submission steps are documented in [`ports/README.md`](../../ports/README.md) and [`conan/README.md`](../../conan/README.md).

## Spec Coverage Map

**No change** — packaging adds no spec requirement. All fifteen rows remain ✅ (accepted in [ADR-0029](../adr/0029-spec-compliance-acceptance-audit.md) at `v1.0.0`).

## Verifying the release

Each platform tarball is the same complete `cmake --install` tree as `v1.0.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.0.1]`](../../CHANGELOG.md#101--2026-06-14)
- Previous release: [`docs/releases/v1.0.0.md`](v1.0.0.md)
- Specification: [`docs/specs/01_spec_cpp_memory_pool.md`](../specs/01_spec_cpp_memory_pool.md)
4 changes: 2 additions & 2 deletions src/main/cpp/it/d4np/memorypool/version.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ inline constexpr unsigned PBR_MEMORY_POOL_VERSION_MAJOR = 1;
inline constexpr unsigned PBR_MEMORY_POOL_VERSION_MINOR = 0;

/** 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.0.0";
inline constexpr const char* PBR_MEMORY_POOL_VERSION_STRING = "1.0.1";

} // namespace it::d4np::memorypool

Expand Down
8 changes: 4 additions & 4 deletions src/test/cpp/it/d4np/memorypool/pool_smoke_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);

// Milestone 7 closes at v1.0.0 the first stable release; these constants
// are bumped from this release PR (M7.7) in lockstep with version.hpp. The
// public C ABI and C++ surface are frozen here under the SemVer 1.0 promise.
// v1.0.1 — a packaging-only patch over the frozen v1.0.0 API (the vcpkg
// port + Conan recipe, M7.8/M7.9). The library binary is unchanged; only
// these constants move, in lockstep with version.hpp.
CHECK(mem::PBR_MEMORY_POOL_VERSION_MAJOR == 1U);
CHECK(mem::PBR_MEMORY_POOL_VERSION_MINOR == 0U);
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") {
Expand Down
Loading