From 496e96b206b0a20306545b332a317293fa0ee42d Mon Sep 17 00:00:00 2001 From: Matt <47545907+SoundMatt@users.noreply.github.com> Date: Tue, 28 Jul 2026 13:02:44 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20v2.8.0=20=E2=80=94=20Fragmentation=20Go?= =?UTF-8?q?/No-Go=20Decision,=20formal=20close-out=20(milestone=2052)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ROADMAP.md milestone 52 already stated the final call in prose (no-go for this cycle), and every downstream consequence of that decision had already landed in earlier milestones (uart.hpp, spi.hpp, can.hpp, wire.hpp, .fusa-reqs.json all cite it as settled). This closes the milestone itself: - rcp/regmap.hpp: fix the lone stale kOptFragmentation comment that still said "go/no-go pending" to match the already-decided no-go wording used everywhere else in the tree - rcp/version.hpp / CMakeLists.txt: bump to 2.8.0 - ROADMAP.md: add the Done (v2.8.0) retrospective paragraph milestone 52 was missing, cross-referencing where the decision's consequences already live No wire-format, endpoint, or safety-mechanism behavior changes. Signed-off-by: Matt <47545907+SoundMatt@users.noreply.github.com> --- CMakeLists.txt | 2 +- ROADMAP.md | 18 ++++++++++++++++++ include/rcp/regmap.hpp | 2 +- include/rcp/version.hpp | 2 +- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 229f568..6d574ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.21) project(cpp-rcp - VERSION 2.7.0 + VERSION 2.8.0 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 53f37b8..ba1d23c 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -698,6 +698,24 @@ still not claimed — see this file's own disclaimer pattern in ### 52. Fragmentation — Go/No-Go Decision (v2.8.0) +**Done (v2.8.0):** 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/wire.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), and `rcp::kVersion`/the CMake project version move +to `2.8.0` to mark the milestone as landed. 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 5fe9f9a..bd18844 100644 --- a/include/rcp/regmap.hpp +++ b/include/rcp/regmap.hpp @@ -233,7 +233,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 ba8982b..6ad5580 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.7.0"; +constexpr std::string_view kVersion = "2.8.0"; } // namespace rcp