Onboard repo with workspace standards#42
Conversation
There was a problem hiding this comment.
Pull request overview
This PR onboards udp_bridge to the workspace-standard developer infrastructure for the jazzy default branch, adding repo-local automation (pre-commit + CI) and a source-verified agent guide to help future changes stay aligned with the system’s operational constraints (lossy telemetry link, lifecycle behavior, threading/locking invariants).
Changes:
- Add a workspace-template-based pre-commit configuration (with ROS-friendly YAML checks and
jazzybranch protection hook). - Add a GitHub Actions CI workflow using
ros:jazzy-ros-coretocolcon buildand run tests (excluding linter-labeled tests per #40). - Add a new
.agents/README.mdagent guide and update rootAGENTS.mdto point to it.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
AGENTS.md |
Updates the root agent pointer text to direct coding agents to the new deep guide. |
.pre-commit-config.yaml |
Introduces workspace-standard pre-commit hooks (YAML/XML checks, cmake lint, yamllint, and no-commit-to-branch for jazzy). |
.github/workflows/ci.yml |
Adds container-based Jazzy CI that installs deps via rosdep, builds, and runs tests with linter exclusions. |
.agents/README.md |
Adds a detailed, source-verified agent guide describing architecture, parameters, topics/services, and operational pitfalls. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| `udp_bridge_node` runs a `MultiThreadedExecutor` (8 threads) with three | ||
| callback groups whose invariants are documented at the top of | ||
| `src/udp_bridge_node.cpp`: |
Review triage — Copilot findingValid catch: the guide pointed at the Authored-By: |
| - id: check-yaml | ||
| args: ['--unsafe'] # allow ROS YAML tags |
Summary
Add workspace-standard infrastructure (onboarding campaign rolker/unh_marine_autonomy#264, tier-1 repo 3/4):
jazzy. Python hooks left off: the repo's Python is dev tooling (doc config, launch file, manual-run mininet scripts), not shipped modules.ros:jazzy-ros-corecontainer, colcon build + gtest suite (109 tests). All dependencies resolve via rosdep — no source-sibling clones. Linter-labeled tests are excluded (--ctest-args -LE linter) until license headers land — tracked in Add license headers to source files and re-enable linters in CI #40, same pattern as Add BSD license headers to source files unh_marine_navigation#98. Verified locally in the worktree: build clean, 109/109 tests pass..agents/README.md) — source-verified per the documentation-verification workflow: parameters read fromon_configure, services/QoS from thecreate_service/create_publishercalls, threading invariants from theudp_bridge_node.cppheader comment, theUDP_BRIDGE_BUILD_TESTINGODR discipline from CMakeLists. The verification pass surfaced six stale claims in the existing user-facing docs (nonexistentremotes.<label>.nameparameter, wrong rate-limit default, inverted service semantics, ...) — tracked separately in Fix README/example_params drift: nonexistent name param, wrong rate default, service table #41; this guide documents the verified behavior.AGENTS.mdtouch-up — the "no deep guide yet" intro now points at the new guide.Done via API (no file change):
pkg:labels for both packages, git-bug bridge.Deferred: license headers + linter re-enable (#40), user-facing doc drift (#41).
Closes #39
Authored-By:
Claude Code AgentModel:
Claude Fable 5