Skip to content

[MAJOR] Refactor and simplify template project + bug fixes - #30

Merged
PeterCalifano merged 11 commits into
mainfrom
major/refactor-tests-ownership
Aug 14, 2026
Merged

[MAJOR] Refactor and simplify template project + bug fixes#30
PeterCalifano merged 11 commits into
mainfrom
major/refactor-tests-ownership

Conversation

@PeterCalifano

@PeterCalifano PeterCalifano commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Summary

Refactor the template into a leaner reusable C++/CUDA project while moving generic template-conformance ownership into the dedicated TestField repository. The resulting v2 architecture simplifies source packaging, strengthens generated-file and wrapper ownership, adds optional TensorRT integration, and synchronizes the release metadata at v2.0.0.

Main Changes

  • Remove package-time version staging, recursive CMakeCache.txt discovery, copied helper templates, and recursive donor self-validation from the ordinary project test suite
  • Add HandleTensorRT.cmake , FindTensorRT.cmake discovery module and export TensorRT as dependency for library install
  • Keep project runtime behavior in the template while transferring generic tailoring, packaging, consumer, workflow, CUDA/OptiX, ROS, wrapper, and clean-checkout conformance to TestField
  • Improve wrapper generation for the complete Python wrapper package in the build tree, co-locate declared runtime libraries, and keep checkout-only wrapper metadata out of installations and wheels
  • Harden build cleanup and wrapper-maintenance boundaries so ordinary configure/build operations cannot move gitlinks, update wrapper checkouts, or remove unowned build directories
  • Update tailoring, versioning, ROS overlay, packaging, and agent-development guidance to document the simplified ownership model and review workflow
  • Synchronize all four ROS package manifests and bind the signed v2.0.0 tag to the metadata-owning commit

Testing / Validation

  • Pass the pristine final-v2 TestField CPU conformance inventory: 29/29 tests
  • Pass the TestField acceptance inventory: 14/14 tests, including canonical source packaging, documentation, cross-compilation contracts, CUDA source ownership, and ROS metadata
  • Pass TestField runtime tests: 5/5
  • Build all four ROS 2 Jazzy packages and pass 10/10 tests
  • Validate exact 2.0.0 metadata in VERSION, CMake, package filenames, and all ROS manifests
  • Extract the canonical CPack TGZ outside Git and validate that the no-Git source resolves the same strict core and full version
  • Parse workflow YAML, compile Python checks, and pass staged whitespace and conflict-marker gates

Notes For Reviewers

  • TestField (private repo) is both a real downstream project and the external integration harness; the template intentionally retains runtime tests but not recursive VerifyTemplateProject* product tests
  • FindTensorRT.cmake is the low-level discovery module, while HandleTensorRT.cmake owns the optional target/export integration policy
  • Tailoring intentionally keeps TensorRT support by default and does not provide a broad automatic removal flag. Manual removal is required.

- Retain only inherited runtime tests and externalize generic template-system conformance.

- Stabilize project CMake and reusable workflows so tailoring no longer reconstructs either surface.

- Simplify cleanup and ROS rollout while preserving wrapper, CUDA, packaging, and metadata contracts.

- Document the v2 ownership boundary and validate CPU, CUDA/OptiX, ROS 2, release, and tailoring paths.
- Adopt PEP 8 and Google-style documentation with static-ready typing.

- Require Doxygen contracts for public C++ and CUDA APIs.
- Remove package-time version staging and recursive build-cache discovery.

- Package the prepared source VERSION instead of post processing it.
- Add optional utility to manage tensorrt discovery and integration into project.

- Update package config template cmake.in.

- Update tests and documentation.
- Add handled TensorRT discovery, export, and tailoring guidance

- Keep generic conformance in TestField and inherited runtime tests in v2

- Align wrapper packaging, build helpers, ROS metadata, and documentation
@PeterCalifano PeterCalifano self-assigned this Aug 14, 2026
@PeterCalifano PeterCalifano added the enhancement New feature or request label Aug 14, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c843ba4b30

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/cmake/template_projectConfig.cmake.in
- Let find_dependency propagate the outer QUIET and REQUIRED modes

- Allow optional consumers to report missing CUDA without a fatal error
@PeterCalifano
PeterCalifano merged commit 0c61c79 into main Aug 14, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant