Skip to content

Move the PR gate out to the argus-hosting submodule - #327

Merged
lbx154 merged 2 commits into
devfrom
chore/move-pr-gate
Oct 24, 2026
Merged

lbx154 merged 2 commits into
devfrom
chore/move-pr-gate

Conversation

@lbx154

@lbx154 lbx154 commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Moves the PR gate out of Argus into a separate public repository, lbx154/argus-hosting, mounted here as a git submodule at hosting/ (Python package argus_hosting). Argus never imports it at run time.

Draft until the owner has reviewed and created lbx154/argus-hosting. That repository does not exist yet, so the submodule commit (481d78d) cannot be fetched, and the pr-gate check on this PR will fail at checkout until it does.

What moved (to argus-hosting)

  • argus/release_tools/pr_gate/ (35 files, ~5.0k lines): the description gate run by CI, the local regression gate (pr-gate check / verify), and the 50-PR study driver.
  • Its tests: tests/tools/test_pr_gate*.py, test_local_pr_gate.py, test_pr_regression_study.py (6 files, ~2.7k lines).
  • experiments/pr_regression_50/ and docs/local-pr-regression-gate.md.

What stays in argus/release_tools

build_release, generate_manifest, check_artifacts, generate_event_fixtures / generate_event_types, generate_resource_status (what Argus needs to build its own release), plus typecheck_gate, build_plugins, verify_plugin_install, preinstall_plugins / preinstall_verticals, provision_platon, repository_parity, which Argus CI, doctor/repair, the desktop build and plugin authors call.

Wiring

  • .github/workflows/pr-gate.yml: checks out with submodules: true and runs PYTHONPATH=hosting python -m argus_hosting.pr_gate --event ... --output .... The submodule is public, so no token is needed.
  • scripts/pr-gate: puts hosting/ on the path and runs the same pr-gate command; if hosting/ is empty it says to run git submodule update --init hosting.
  • pyproject.toml: removes the pr-gate console script; ruff, mypy and pytest skip hosting/.
  • New tests/tools/test_pr_gate_wiring.py: always checks .gitmodules, the workflow, that argus/ never imports argus_hosting, and the launcher's message when the submodule is missing; runs the description gate and the launcher only when the submodule is checked out (otherwise skipped).
  • docs/LAYOUT.md and the 2026-09-16 study README point at hosting/.
  • Release manifest and frontend artifacts rebuilt (python -m argus.release_tools.build_release).

Tests

  • Full Python suite, submodule absent: passed (2 wiring tests skipped).
  • Full Python suite, submodule present (local clone): passed.
  • ruff check argus argus_skill tests: clean. tests/release_tools: passed.
  • argus-hosting's own tests (196) pass with this branch on PYTHONPATH.

After argus-hosting is published

No change is needed here: .gitmodules already records https://github.com/lbx154/argus-hosting.git. Re-run the pr-gate check, then mark ready for review.

🤖 Generated with Claude Code

lbx154 and others added 2 commits October 24, 2026 10:37
The PR gate (argus/release_tools/pr_gate, ~5.0k lines, and its six test
files, ~2.7k lines) now lives in the separate public repository
lbx154/argus-hosting as the package argus_hosting, mounted here as a git
submodule at hosting/. Argus never imports it at run time.

What stays in argus/release_tools: build_release, generate_manifest,
check_artifacts, the event fixture/type and resource-status generators,
plus the plugin and typecheck helpers that Argus CI and plugin authors
call (typecheck_gate, build_plugins, verify_plugin_install,
preinstall_*, provision_platon, repository_parity).

Wiring:
- .github/workflows/pr-gate.yml checks out submodules and runs
  `PYTHONPATH=hosting python -m argus_hosting.pr_gate`.
- scripts/pr-gate puts hosting/ on the path and runs the same command;
  it explains how to fetch the submodule when hosting/ is empty.
- pyproject: drop the pr-gate console script; ruff, mypy and pytest
  skip hosting/.
- experiments/pr_regression_50 and docs/local-pr-regression-gate.md
  moved with the code; LAYOUT and the study README point at hosting/.
- tests/tools/test_pr_gate_wiring.py checks the wiring always, and runs
  the description gate and launcher only when the submodule is present.
- Release manifest and frontend artifacts rebuilt.

.gitmodules records https://github.com/lbx154/argus-hosting.git, which
does not exist yet; the submodule was tested from a local clone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ssion study with placeholders

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lbx154
lbx154 marked this pull request as ready for review October 24, 2026 17:40
@lbx154
lbx154 merged commit 5ebebb5 into dev Oct 24, 2026
1 check passed
@lbx154
lbx154 deleted the chore/move-pr-gate branch October 24, 2026 17: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