Skip to content

ci: gate gitlink freshness; make setup.sh + CI cover the ADA repos#73

Merged
siddhss5 merged 2 commits into
mainfrom
add-gitlink-drift-gate
Jun 3, 2026
Merged

ci: gate gitlink freshness; make setup.sh + CI cover the ADA repos#73
siddhss5 merged 2 commits into
mainfrom
add-gitlink-drift-gate

Conversation

@siddhss5
Copy link
Copy Markdown
Collaborator

@siddhss5 siddhss5 commented Jun 3, 2026

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 fresh git clone && ./setup.sh && uv sync was broken (the uv members ada_assets/ada_mj were never cloned).

What

  • scripts/check_gitlink_freshness.sh — fails if any tracked gitlink isn't at the tip of its sibling's default branch. Uses git ls-remote <url> HEAD, so repos whose default isn't main (e.g. ada_feedingros2-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 — new gitlink-freshness job runs the gate on every PR; nightly drift now also trips the failure-notifier. ada_assets/ada_mj added 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-freshness check to main'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.

siddhss5 added 2 commits June 2, 2026 18:15
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.)
@siddhss5 siddhss5 merged commit f8845fc into main Jun 3, 2026
2 of 4 checks passed
@siddhss5 siddhss5 deleted the add-gitlink-drift-gate branch June 3, 2026 03:41
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