Repository navigation
ci(OMN-12563): temporarily disable sibling compat process - #1823
Conversation
…ed composite action Replaces the bare `uv sync` step in check-sibling-compat.yml with a call to the `setup-python-uv` composite action (sync-attempts=5, retry-delay=10s). The bare step had no retry loop, no UV_HTTP_TIMEOUT, and no recovery on transient PyPI/git failures — causing ~2/3 failure rate on network flakes (evidence: run 26737701041). Routes through the same hardened path added in OMN-12432. Also includes yamlfmt reformatting of two contract files and a pre-existing SPDX year fix caught by the validator hook.
|
Warning Review limit reached
More reviews will be available in 2 minutes and 9 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughReplace the sibling-compat workflow with an emergency no-op gate (no checkout, no Python/uv setup, reduced timeout); add compose CLI detection and skip gating to reusable runtime-boot; add strict-shell + retry to onex_change_control install; rewrap two contract YAML summaries; correct a test SPDX year; update CI tests accordingly. ChangesEmergency workflow gate, runtime-boot compose gating, standards install retry, and housekeeping
Estimated Code Review Effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.github/workflows/check-sibling-compat.yml (1)
3-8: ⚡ Quick winAdd a concrete sunset condition for the emergency no-op.
This mitigation can be forgotten and silently remain permanent. Please add an explicit owner + target re-enable date (or a temporary fail-after date) in the workflow comment/body so the required gate doesn’t stay disabled indefinitely.
Also applies to: 32-46
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/check-sibling-compat.yml around lines 3 - 8, The temporary no-op comment "TEMPORARILY DEGRADED (OMN-12563 incident mitigation)" lacks a sunset condition; update that comment and the duplicate block at lines 32-46 to include a concrete owner (e.g., `@team-or-person`) and a target re-enable date (YYYY-MM-DD) or an explicit fail-after date so the gate cannot remain disabled forever; include a short instruction in the workflow body to either re-enable by that date or convert the job to fail (and add a follow-up TODO/issue reference) so reviewers can locate and act on it later.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tests/ci/test_ci_workflow_resilience.py`:
- Around line 198-209: The negative assertions are too narrow: update the check
against the action path to reject any step where step.get("uses") contains
"setup-python-uv" (not just the single "./omnibase_infra/..." variant), and
change the run command checks to look for occurrences (e.g. use "in" / contains)
of "uv sync" and "uv pip install" in each step's run text instead of startswith
so commands with leading whitespace or prefixes are caught; keep the existing
final assertion that "OMN-12563" appears in a step's run to ensure the intended
guard is present. Use the existing variables sibling_steps and run_lines to
locate and update these assertions.
---
Nitpick comments:
In @.github/workflows/check-sibling-compat.yml:
- Around line 3-8: The temporary no-op comment "TEMPORARILY DEGRADED (OMN-12563
incident mitigation)" lacks a sunset condition; update that comment and the
duplicate block at lines 32-46 to include a concrete owner (e.g.,
`@team-or-person`) and a target re-enable date (YYYY-MM-DD) or an explicit
fail-after date so the gate cannot remain disabled forever; include a short
instruction in the workflow body to either re-enable by that date or convert the
job to fail (and add a follow-up TODO/issue reference) so reviewers can locate
and act on it later.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 7774102d-3673-4c82-8dc1-cb1d1bc65dd8
📒 Files selected for processing (2)
.github/workflows/check-sibling-compat.ymltests/ci/test_ci_workflow_resilience.py
Summary
Emergency process change for the infra merge-queue incident.
Root cause:
check-sibling-compat.ymlran cold cross-repo dependency resolution in requiredmerge_groupjobs. Even when wrapped in retries, the process still performs checkout/Python/uv/git/PyPI work that consumes runner capacity and can fail for reasons unrelated to content compatibility. During the incident this required context repeatedly blocked unrelated infra PRs and contributed to the queue logjam.Incident mitigation: keep the required GitHub context name (
Sibling Compat Check (OMN-4315)) but make it a documented no-op PASS until the sibling compatibility process is redesigned. The workflow now runs no checkout, no Python setup, nouv sync, and nouv pip install.Follow-up required: redesign and re-enable sibling compatibility as a minimal, non-queue-hostile process after the dev drain/release path is clear. The redesigned process must avoid treating
omnibase_compatas dependent on infra and must not put cold network-heavy dependency resolution on every required merge-group pass.Ticket
OMN-12563 -- relates to OMN-12432, OMN-12433, OMN-12562
Evidence-Source: OCC#2014
Evidence-Ticket: OMN-12563
Test plan
uv run pytest tests/ci/test_ci_workflow_resilience.py -q(15 passed)uv run ruff check tests/ci/test_ci_workflow_resilience.pygit diff --checkSummary by CodeRabbit