Skip to content

Validate pinned navigation install and release manifest evidence - #9

Merged
BotshareAI merged 4 commits into
openAMRobot:mainfrom
KARTHIKEYAN124:release/issue-5-pinned-install
Oct 24, 2026
Merged

BotshareAI merged 4 commits into
openAMRobot:mainfrom
KARTHIKEYAN124:release/issue-5-pinned-install

Conversation

@KARTHIKEYAN124

@KARTHIKEYAN124 KARTHIKEYAN124 commented Oct 9, 2026 •

Copy link
Copy Markdown
Member

Validate the navigation installation gate from an exact interfaces SHA using independent producer and consumer containers. Consumers receive only the installed artifact and fixtures; an absent-install negative control, all 11 generated messages and a downstream C++ consumer check the installation. The builder rejects mismatched archive bytes, pin, package version, contract or failed evidence.

Review changes (22 October 2026)

  • Merged current main (41fb7c3) into this branch without rewriting history.
  • Removed the full ZIP and SHA sidecar under docs/evidence from Git and added ignore rules for that directory. Retained the compact historical evidence tree; full evidence belongs in workflow artifacts.
  • Replaced release-config.nav-install.json with navigation-install-test-config.json: one navigation component, product NavigationInstallTest, version 0.0.0-test. It is a test fixture, not an rc.1 configuration. Product rc.1 scope and repinning belong to Build rc.1 from pinned commit SHAs with verified checksums (OA-05) #12.
  • Removed evidence copies of verification-tools. Historical evidence references scripts/nav-install at recorded commit f44f69e; new runs record verifier commit, source paths, hashes and working-tree state in verification-source.json. Temporary runtime snapshots remain isolated outside the evidence tree.
  • Pinned checkout and upload-artifact to verified commit SHAs. Validation uses ros:jazzy-ros-base@sha256:066420e07f60aa18262f2479981def87ebcfcec42eefb0c0c57c4a46098348ca, matching the shared CI image's base at openAMRobot/.github commit a1f6193.

Tests and hosted rerun

Base/main SHA: 41fb7c3 (merged into this branch)
Head SHA: 10bebc7

Local commands:

python -m unittest discover -s tests -v
git diff --cached --check

11 tests pass, zero failures: eight original builder acceptance/rejection tests and three navigation-only configuration/provenance tests. Retained compact evidence checksums also verify. The worktree is clean after committing. The Navigation pinned install check passes on this head (3 min 30 s), including all validation and upload steps:

Navigation pinned install — new-head run

The workflow uploaded navigation-pinned-install-evidence. I downloaded the artifact and verified all 59 file checksums, both producer/consumer pairs, all 11 generated messages, the C++ consumers and negative controls. All seven recorded verifier file hashes match this PR head; provenance references GitHub test-merge commit 0991235, whose parents are current main and this head. No copied verification-tools directory is present. The navigation-only test config also builds successfully using this hosted validated archive and evidence. Historical October 6 local evidence remains labelled historical; it is not presented as validation of the updated image/head.

Evidence and instructions

Integration Gate and remaining release work

Pins intentionally remain interfaces fa7c438e33bd807c174fa0747119d7d627faa3bf, openamr_nav_msgs 0.0.0 and runtime contract 1. This proves the gate. Interfaces #28 / contract 2 and a real package version are for the rc.1 repin in #12, not an unreviewed pin change here.

Merge order: this PR first; then #12 rebases onto it. No merge, force-push, tag, release publication or changes to #12 are performed by this update.

Not verified

Repository quality, DCO and CLA pass. The Navigation pinned install job is completed with conclusion success. The shared optional quality/test job is skipped and is not counted as validation; all 11 tests execute in the navigation job. The Docker Linux engine was unavailable locally during this update; no fresh local container result is claimed. Previous evidence and local unit tests do not replace the requested hosted rerun. Whole-product release readiness, binary publication, hardware behavior and physical safety are not claimed.

Dependencies, safety and AI disclosure

No ROS source pin, message contract or safety implementation changes. Changes are limited to test configuration, image/action pins, evidence storage/provenance and documentation. The existing GitHub Actions are pinned to verified commits; the image baseline is aligned with shared CI. Prepared with OpenAI Codex assistance. DCO and CLA checks pass on the current head; no additional institutional authorization is asserted by the agent.

Closes #5 after the required checks/review complete and a maintainer merges.

Signed-off-by: Karthikeyan <mahikarthik10@gmail.com>
Signed-off-by: Karthikeyan <mahikarthik10@gmail.com>
@KARTHIKEYAN124
KARTHIKEYAN124 force-pushed the release/issue-5-pinned-install branch from ad96474 to f44f69e Compare October 9, 2026 17:18
@KARTHIKEYAN124

Copy link
Copy Markdown
Member Author

Release-level pinned-install implementation and evidence are available in PR #9.

All six requested technical items are covered:

  1. Exact interfaces pin: fa7c438e33bd807c174fa0747119d7d627faa3bf; openamr_nav_msgs package 0.0.0; runtime contract 1, recorded in the installation manifest.
  2. Two independent clean producer/consumer pairs passed on Ubuntu 24.04 / ROS 2 Jazzy / linux amd64 with a digest-pinned image. Consumer containers receive only the installed tarball and test fixtures, with no interfaces source/build tree or developer overlay.
  3. All 11 generated navigation messages passed lookup, import, and native serialization/deserialization.
  4. The downstream C++ consumer built, linked and ran twice against only the installed package plus ROS dependencies. The absent-install negative control failed as expected in both runs.
  5. The candidate release builder records the pin, package version, contract version and evidence. The generated component entry and eight passing manifest tests cover this integration.
  6. Install/troubleshooting instructions are linked from README and RELEASE_PROCESS. Exact commands and log index, complete local evidence ZIP, and ZIP checksum are published.

Hosted verification: successful GitHub Actions run and complete hosted evidence artifact. I downloaded the hosted artifact and verified every recorded checksum; both clean install/consumer runs passed. Generated header/IDL hashes, expanded definitions and dependency inventories matched between runs. DCO, CLA and repository-quality checks also pass.

This proves a pinned source-install candidate and release-manifest integration. No binary package publication or full product release is claimed. The PR remains open for merge.

BotshareAI
BotshareAI previously approved these changes Oct 22, 2026

@BotshareAI BotshareAI left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The gate design fits #5: exact SHA, separate producer and consumer containers, the consumer sees only the installed artifact, an absent-install negative control, a downstream C++ consumer, and the builder rejects mismatched archive, pin, package version or contract. Before merge:

Update to main and rerun “Navigation pinned install” on the new head.
Remove docs/evidence/release-issue5-evidence-20261006.zip and its .sha256 from Git. The ignore rule covers evidence/, not docs/evidence/. Keep the compact evidence/ tree; full evidence belongs in the workflow artifact.
release-config.nav-install.json carries version 2.0.0-rc.1, but six components come from main archives and the upper-body, manipulation and embodied-AI repositories are missing. #12 owns the rc.1 configuration. Rename this one to a navigation-install test config without an rc version, or move it into a test fixture.
Drop the copied tools under evidence/.../verification-tools/ and reference scripts/nav-install at the recorded commit.
Nit: pin actions/checkout and upload-artifact by SHA, and validate on the same ros:jazzy-ros-base digest as the CI image base, so we track one upstream baseline.

For the record, not blocking: fa7c438 is 3 commits behind interfaces main, and interfaces #28 moves NavigationStatus to contract 2. This PR proves the gate. The rc.1 repin happens in #12 against the interfaces commit that includes #28. openamr_nav_msgs is still 0.0.0 and needs a real version before rc.1; your check will enforce that.

Merge order: this PR, then #12 rebases onto it.
@KARTHIKEYAN124

…d-install

Signed-off-by: Karthikeyan <mahikarthik10@gmail.com>
Signed-off-by: Karthikeyan <mahikarthik10@gmail.com>

@panthera-momagdii panthera-momagdii 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.

Reviewed the updated navigation-install gate at 10bebc7b5608563673ec92abd43489155ba18eca.

Review preconditions: repository openAMRobot/openamrobot-release; branch KARTHIKEYAN124:release/issue-5-pinned-install; head 10bebc7b5608563673ec92abd43489155ba18eca; base main at 41fb7c3c9e4a73f7235107f6cbd61ce79c8599b6. Expected outcome: technical approval of this installation gate after the 22 October fixes.

The requested changes are addressed: current main is incorporated; the full ZIP and copied verifier tools are removed from the current tree; navigation-install-test-config.json is navigation-only and no longer claims rc.1 scope; verifier provenance records the source commit and hashes; Actions and the ROS image are pinned.

Validation:

  • Ran python3 -m unittest discover -s tests -v on a local snapshot of the reviewed source: 11 tests passed, 0 failures. These exercise archive/pin/package/contract rejection, the legacy builder path and the navigation-only configuration/provenance.
  • Inspected the actual hosted install log: the same 11 tests pass, both independent producer/consumer pairs complete, and the final pinned-install check passes. The uploaded evidence artifact is associated with this head.
  • Inspected the producer, source-free consumer, negative control, generated-message checks and builder integration.

No blocking source finding remains in this scope. The historical interfaces pin and contract 1 are appropriate to proving this gate; final component selection, contract-2 repinning and a release package version remain with #12. This does not accept the whole-product rc.1 or close unrelated workspace issues.

Small documentation follow-up: RELEASE_PROCESS.md contains garbled directory-tree characters in the new diff; restore its UTF-8 formatting when convenient.

ChatGPT-assisted technical review. No local Docker/ROS run, physical test or independent unpacking of the hosted evidence ZIP was performed. Maintainer merge and normal contribution checks remain separate.

@BotshareAI
BotshareAI merged commit 0c9442f into openAMRobot:main Oct 24, 2026
5 checks passed
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.

[RELEASE] Validate clean installation and generated interface consumption

3 participants