ci: gate gitlink freshness; make setup.sh + CI cover the ADA repos#73
Merged
Conversation
Workspace pointers (submodule-style gitlinks) had silently drifted behind merged work because nothing checked them, and setup.sh/CI never referenced the ADA repos that are now part of the workspace. - scripts/check_gitlink_freshness.sh: fail if any tracked gitlink is not at the tip of its sibling's DEFAULT branch (via ls-remote HEAD, so repos whose default isn't main -- e.g. ada_feeding/ros2-devel -- are handled correctly). No sibling checkout needed. Verified it passes when current and fails (exit 1) with a fix hint on drift. - integration.yml: new gitlink-freshness job runs the gate on every PR; nightly drift now also trips the failure notifier. Added ada_assets/ada_mj to the per-sibling tests and import smoke. - setup.sh: clone the ADA repos too. ada_assets and ada_mj are uv workspace members, so a fresh clone previously broke `uv sync`. NOTE: to *block* merges on drift, add the "gitlink-freshness" check to main's required status checks in branch protection.
The matrix tested 3.10, but geodude/mj-manipulator require-python >=3.11, so the 3.10 leg always failed at uv sync. (The 3.12 leg's geodude->mj-viser workspace-source error is a separate pre-existing issue, filed separately.)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Workspace gitlinks (the submodule-style commit pointers) had drifted behind merged work — nothing in CI looked at them — and
setup.sh/CI still referenced only the Geodude repos, so a freshgit clone && ./setup.sh && uv syncwas broken (the uv membersada_assets/ada_mjwere never cloned).What
scripts/check_gitlink_freshness.sh— fails if any tracked gitlink isn't at the tip of its sibling's default branch. Usesgit ls-remote <url> HEAD, so repos whose default isn'tmain(e.g.ada_feeding→ros2-devel) are handled with no per-repo config, and no sibling checkout is needed. Locally verified: passes when current, exits 1 with a fix hint on simulated drift.integration.yml— newgitlink-freshnessjob runs the gate on every PR; nightly drift now also trips the failure-notifier.ada_assets/ada_mjadded to per-sibling tests + import smoke.setup.sh— now clones the ADA repos (incl. the two uv members that previously broke fresh setup).To fully enforce
Add the
gitlink-freshnesscheck tomain's required status checks in branch protection so drift blocks merge (per the chosen 'CI gate' approach).Builds on #72 (pointer bump) — all gitlinks are currently at their tips, so the new gate is green to start.