Skip to content

test: verify integrated native CDR recording and stopped-producer replay (6/8) - #4370

Draft
TomCC7 wants to merge 6 commits into
cc/feat/cdr-runtime-cutoverfrom
cc/test/cdr-record-replay
Draft

TomCC7 wants to merge 6 commits into
cc/feat/cdr-runtime-cutoverfrom
cc/test/cdr-record-replay

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Linear project: Message Encoding Refactor

Problem

Reviewers need the generator, bulk message definitions/packages and transport integration in their respective stack layers.

Solution

Integrated record/replay acceptance above the runtime layer. Normal merge propagation preserves this layer’s parent-relative patch.

Layer 6/8 of native stack #4446. Published HEAD: 055d9983ab8dad1432661630f82bee86819f2d1f. Base: cc/feat/cdr-runtime-cutover. Normal forward commits/merges; existing ancestry and reviews are preserved, with no force push.

Parent-relative git diff (binary lockfile excluded from textual line counts): 8 files changed, 2975 insertions(+).

Layout-repair validation: unchanged namespace-policy test plus generator tests: 41 passed; ownership/project checks: 19 passed; clean source/wheel/sdist/editable installation with Cargo/rustc/CMake/C++ disabled: 1 passed. A fresh backend wheel has api modules/stubs and no stale package initializers. C++/Rust/schema outputs are byte-identical to the pre-layout validated outputs; final built-in generation --check passed. Scoped strict typing and hooks passed. These focused checks are not a complete new-HEAD CI pass.

Production Rust declarations now come from pinned ros2msg 0.5.3 in a normal Cargo build.rs; Python installation only packages its sources and does not invoke Cargo. C++ declaration and CDR field traversal use pinned upstream ROSIDL/FastRTPS templates, with documented strict-bool patches. Python uses rosbags-generated declarations and CDR traversal with scoped malformed-input checks; the separate handwritten wire-layout walker was removed. Default, bounds, ownership and Sequence compatibility adapters remain. PR1 core: ten files including both helpers total 1,380 physical lines versus the original eight-file 1,463. Including maintained typing stubs gives 1,493 -> 1,444, a net 49-line reduction (83 is core-only). Full-stack message_codegen maintained non-test sources total 2,573 lines including stubs; CLI/SDK sources elsewhere are outside that count. Vendored sources and generated/copied artifacts are disclosed separately. Runtime native consumers use the distributed message crate; the redundant four-file Python/Cargo bootstrap (126 lines) was removed. No generator code was hidden in uncounted helpers.

Exact-new-HEAD remote CI is pending; no reruns or manual dispatches were requested for this batch. Historical runs do not verify these commits. Benchmark investigation remains paused, without a waiver or weakened gate.

Complete proposal walkthrough. M20 SDK/access, host multicast and human viewer acceptance remain external; no hardware operation, registry release or merge is claimed.

Replaces closed, unmerged #4364. Original refs/history remain preserved.

Upstream generator contracts, compatibility adapters and maintenance counts.

Namespace repair: five nonempty upstream initializers and two matching typing stubs are relocated to ordinary api modules; the empty parser initializer is omitted. Imports/EmPy templates reference modules directly. Licenses and original upstream source paths/hashes remain recorded, with the relocation and omitted empty file documented in manifests. test_no_init_files is unchanged; no blanket vendor exemption was added. The earlier mypy vendor-discovery boundary remains separate, and first-party strict settings remain enabled. The coauthor policy check remains unresolved; no attribution removal/history rewrite, force push, benchmark gate change, rerun or manual CI dispatch was requested.

@codecov

codecov Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

@@                       Coverage Diff                       @@
##           cc/feat/cdr-runtime-cutover    #4370      +/-   ##
===============================================================
- Coverage                        74.07%   74.07%   -0.01%     
===============================================================
  Files                             1746     1746              
  Lines                           177219   177219              
  Branches                         16506    16506              
===============================================================
- Hits                            131280   131279       -1     
- Misses                           42483    42486       +3     
+ Partials                          3456     3454       -2     
Components Coverage Δ
Tests 84.87% <ø> (+<0.01%) ⬆️
Flag Coverage Δ
OS-ubuntu-24.04-arm 77.13% <ø> (+0.01%) ⬆️
OS-ubuntu-latest 77.91% <ø> (+<0.01%) ⬆️
Py-3.10 77.66% <ø> (+<0.01%) ⬆️
Py-3.11 77.88% <ø> (+0.01%) ⬆️
Py-3.12 77.89% <ø> (+0.77%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 3 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@TomCC7 TomCC7 changed the title test: verify integrated native CDR recording and stopped-producer replay (6/7) test: verify integrated native CDR recording and stopped-producer replay (6/8) Oct 2, 2026
@TomCC7
TomCC7 removed this pull request from stack #4372 October 6, 2026 07:56
@TomCC7
TomCC7 added this pull request to stack #4446 October 6, 2026 07:56
@TomCC7
TomCC7 removed this pull request from stack #4446 October 20, 2026 22:26

This branch was successfully deployed

No deployments
cachix — d0393ccd Deployed Oct 15, 2026 by TomCC7 via cachix-build-macos #13010
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant