Skip to content

Phase 0: canonical templates + integration workflow for public rollout#4

Merged
siddhss5 merged 2 commits intomainfrom
chore/open-source-rollout-phase-0
Apr 5, 2026
Merged

Phase 0: canonical templates + integration workflow for public rollout#4
siddhss5 merged 2 commits intomainfrom
chore/open-source-rollout-phase-0

Conversation

@siddhss5
Copy link
Copy Markdown
Collaborator

@siddhss5 siddhss5 commented Apr 5, 2026

Summary

Groundwork for flipping the 10 sibling repos public (Phase 0 of #3). This PR only lands infrastructure in robot-code — it does not touch any sibling repo yet.

Changes

  • .github-templates/: canonical LICENSE (MIT, Siddhartha Srinivasa), CI workflow (ruff + pytest matrix 3.10/3.11/3.12 on astral-sh/setup-uv@v5, with a final repository_dispatch step that notifies robot-code on push-to-main), CODEOWNERS, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT (links to Contributor Covenant 2.1), pull_request_template, ISSUE_TEMPLATE/{bug_report,improvement,task}.md + config.yml, branch-protection.json.
  • .github/workflows/integration.yml: meta-integration workflow. Triggers: PR to main, 08:00 UTC nightly cron, workflow_dispatch (with optional override_repo/sha inputs), and repository_dispatch: sibling-updated. Runs ./setup.sh, each sibling's unit tests, cross-repo integration tests, and an import smoke check. Files a tracking issue on nightly failure.
  • tests/integration/:
    • test_imports.py — parametrized import check for all 9 Python siblings.
    • test_no_stale_attribution.py — guards against UW / Personal Robotics Lab / old UW email strings returning to any sibling. Currently red (as intended) until Phases 1-3 scrub each sibling.
  • scripts/sync_templates.sh: --dry-run / --apply / --repo=<name> flags; diffs and copies .github-templates/ into each sibling.
  • scripts/add_headers.py: idempotently prepends SPDX + copyright to every .py, preserving shebangs and coding declarations.
  • .gitignore: un-ignore scripts/*.py and tests/**/*.py (was blocking new files).

Testing

  • ./scripts/sync_templates.sh --dry-run --repo=tsr shows correct diffs
  • ./scripts/add_headers.py --dry-run tsr/src lists files needing headers
  • uv run pytest tests/integration/test_no_stale_attribution.py correctly fails with 7 hits (as intended)
  • uv run pytest tests/integration/test_imports.py passes

Integration workflow itself will be validated once this branch is pushed; it needs sibling-side CI wired up in Phases 1-3 to exercise repository_dispatch end-to-end.

Breaking changes

  • None — all additive, no sibling repos touched.

Related issues

Part of #3

siddhss5 added 2 commits April 5, 2026 13:43
Groundwork for making the 10 sibling repos public (see #3):

- .github-templates/: canonical LICENSE, CI, CODEOWNERS, CONTRIBUTING,
  SECURITY, CODE_OF_CONDUCT, issue/PR templates, branch-protection.json.
- .github/workflows/integration.yml: meta workflow triggered on PR, nightly
  cron, workflow_dispatch, and repository_dispatch (sibling-updated) that
  runs all per-sibling test suites + cross-repo integration tests.
- tests/integration/: workspace-level tests. test_no_stale_attribution.py
  guards against UW/PRL strings returning to any sibling.
- scripts/sync_templates.sh: copies .github-templates/ into each sibling.
- scripts/add_headers.py: prepends SPDX+copyright to .py files idempotently.
- .gitignore: un-ignore scripts/*.py and tests/**/*.py.
@siddhss5 siddhss5 merged commit a4fa8cd into main Apr 5, 2026
1 of 3 checks passed
@siddhss5 siddhss5 deleted the chore/open-source-rollout-phase-0 branch April 5, 2026 23:21
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