diff --git a/CMakeLists.txt b/CMakeLists.txt index c7ce097..2105548 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.21) project(cpp-rcp - VERSION 2.15.0 + VERSION 2.15.1 DESCRIPTION "Remote Control Protocol for automotive zonal architecture (C++)" HOMEPAGE_URL "https://github.com/SoundMatt/cpp-RCP" LANGUAGES CXX diff --git a/ROADMAP.md b/ROADMAP.md index 82d4770..7e93c9d 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -698,6 +698,35 @@ still not claimed — see this file's own disclaimer pattern in ### 52. Fragmentation — Go/No-Go Decision (v2.8.0) +**Done (v2.15.1):** this milestone's call was made in prose (below) before +any of its downstream consequences landed, and every one of those +consequences was already built and cross-referencing "ROADMAP.md milestone +52" as settled fact by the time this close-out PR was opened: the +single-AVTPDU UART RX-FIFO/`read_size` bound in `rcp/uart.hpp`, the +equivalent SPI framing note in `rcp/spi.hpp`, the CAN XL +`kMaxXlPayloadSingleAvtpdu` vs. `kMaxXlPayloadSpec` split in `rcp/can.hpp`, +the `ms` ("more segments") field comment in `rcp/acf.hpp` (`rcp/wire.hpp` +at the time this close-out was first drafted; split into `rcp/avtp.hpp`/ +`rcp/acf.hpp` by the post-hoc naming reconciliation below, v2.7.1 — the +`ms` field itself lives in the ACF message-format half, `rcp/acf.hpp`), and +the `REQ-UART-006`/`REQ-CANEP-004` traceability entries in `.fusa-reqs.json`. +This milestone formally closes the decision itself: the +`kOptFragmentation` bit comment in `rcp/regmap.hpp` — the one remaining +place in the tree still describing the call as "pending" — now reads +consistently with the rest of the codebase (reserved, never set, per this +already-decided no-go). This milestone's designated slot, `v2.8.0`, is the +label used throughout the tree's forward references to this decision +(`rcp/uart.hpp`, `rcp/spi.hpp`, `rcp/can.hpp`, `rcp/acf.hpp`, +`rcp/avtp.hpp`, and this file's own milestone heading above) and is left +unchanged for that reason, but it was never tagged — this close-out PR sat +open while `main` moved through the v2.7.1 naming reconciliation and seven +more milestones to v2.15.0 — so `rcp::kVersion`/the CMake project version +move to `2.15.1` instead, an out-of-band patch bump on top of current +`main` rather than the unavailable `2.8.0` slot, the same convention +`v2.7.1` itself set for landing non-sequential, milestone-adjacent work. +No wire-format, endpoint, or safety-mechanism behavior changes in this +milestone — it is a documentation and version close-out only. + **Decision: no-go for this cycle.** Fragmentation (the `ms`/`segment_num` mechanism for splitting one logical request/response across multiple AVTPDUs) is explicitly called out in the specification itself as optional diff --git a/include/rcp/regmap.hpp b/include/rcp/regmap.hpp index 9dabe69..3bf0940 100644 --- a/include/rcp/regmap.hpp +++ b/include/rcp/regmap.hpp @@ -251,7 +251,7 @@ struct ResponseQueueConfig { constexpr uint32_t kOptConditionalRequests = 0x0000'0001; // compound/triggered/timed/chained requests (v2.5.0) constexpr uint32_t kOptSafetyRequests = 0x0000'0002; // E2E CRC safe points + safety-request variants (v2.6.0) -constexpr uint32_t kOptFragmentation = 0x0000'0004; // multi-segment requests (v2.8.0, go/no-go pending) +constexpr uint32_t kOptFragmentation = 0x0000'0004; // multi-segment requests — bit reserved, never set: ROADMAP.md milestone 52's already-decided fragmentation no-go (v2.8.0) // ── TablePointer ────────────────────────────────────────────────────────────── // The pointer/capacity pair pattern used for each of the five bootstrap diff --git a/include/rcp/version.hpp b/include/rcp/version.hpp index 2cf1d56..5e620e9 100644 --- a/include/rcp/version.hpp +++ b/include/rcp/version.hpp @@ -6,6 +6,6 @@ namespace rcp { // Semantic version of the cpp-RCP implementation (matches the latest git tag). -constexpr std::string_view kVersion = "2.15.0"; +constexpr std::string_view kVersion = "2.15.1"; } // namespace rcp