Skip to content

ci(OMN-12563): temporarily disable sibling compat process - #1823

Merged
jonahgabriel merged 9 commits into
devfrom
jonahgabriel/omn-12563-ci-harden-check-sibling-compat
Jun 1, 2026
Merged

jonahgabriel merged 9 commits into
devfrom
jonahgabriel/omn-12563-ci-harden-check-sibling-compat

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Jun 1, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Emergency process change for the infra merge-queue incident.

Root cause: check-sibling-compat.yml ran cold cross-repo dependency resolution in required merge_group jobs. 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, no uv sync, and no uv 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_compat as 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.py
  • git diff --check

Summary by CodeRabbit

  • Chores
    • Temporarily disabled sibling compatibility validation in CI as an incident mitigation and reduced job timeout
    • Hardened install/retry behavior for standards checks and added safer runtime-boot compose detection with skip gating and skip-reason reporting
  • Tests
    • Updated CI tests to expect the disabled validation behavior and updated regex checks; minor test copyright year fix
    • Added tests validating compose-mode detection and conditional skipping/reporting
  • Documentation
    • Rewrapped/condensed contract summary text formatting

…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.
@jonahgabriel
jonahgabriel enabled auto-merge June 1, 2026 06:39
@coderabbitai

coderabbitai Bot commented Jun 1, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@jonahgabriel, we couldn't start this review because you've reached your PR review rate limit.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7b2b9dc0-0de3-40be-9dce-6e375b0d9030

📥 Commits

Reviewing files that changed from the base of the PR and between d734dca and b14d339.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • tests/ci/test_ci_workflow_resilience.py
📝 Walkthrough

Walkthrough

Replace 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.

Changes

Emergency workflow gate, runtime-boot compose gating, standards install retry, and housekeeping

Layer / File(s) Summary
Emergency no-op gate and CI test updates
.github/workflows/check-sibling-compat.yml, tests/ci/test_ci_workflow_resilience.py
Added top-of-file incident comment and removed workflow env; replaced long sibling-compat validation with an “Emergency no-op gate” step (reduced timeout, no checkout, no Python/uv setup). Updated CI tests to assert no setup-python-uv usage, no uv sync/uv pip install in run scripts, and presence of OMN-12563 marker.
onex_change_control install: strict shell + retry
.github/workflows/omni-standards-compliance.yml
Enable set -euo pipefail, set default UV_HTTP_TIMEOUT, and wrap uv pip install onex_change_control in a retry loop (max 3 attempts) with warnings and final-failure propagation.
Reusable runtime-boot: compose detection & skip gating
.github/workflows/reusable-runtime-boot.yml, tests/ci/test_reusable_runtime_boot_schema.py
Detect docker compose vs docker-compose into DOCKER_COMPOSE_CMD; set RUNTIME_BOOT_SKIP_REASON and skip compose-dependent steps when missing; use resolved compose command for up/down; include skip_reason and skipped in smoke-result artifact.
Tests for runtime-boot compose behavior
tests/ci/test_reusable_runtime_boot_schema.py
Add tests for compose CLI frontend resolution and for gating compose-dependent steps with env.RUNTIME_BOOT_SKIP_REASON == '', and verify smoke-result.json reports skipped with reason.
Contract YAML summary rewrapping
contracts/OMN-12184.yaml, contracts/OMN-12245.yaml
Rewrapped folded summary scalars; textual content unchanged.
SPDX copyright year correction
tests/unit/runtime/auto_wiring/test_handler_wiring_handle_async_dispatch.py
Changed SPDX year in file header from 2026 to 2025; no functional changes.

Estimated Code Review Effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 A quiet gate now stands in place,
CI skips the noisy chase,
Compose finds which tool to run,
Retry loops hum till installs are done,
Contracts tidied, headers traced.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 71.43% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically identifies the main change: disabling the sibling compatibility check process (OMN-12563), which aligns with the primary objective of making the required GitHub context a documented no-op to mitigate merge-queue incidents.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jonahgabriel/omn-12563-ci-harden-check-sibling-compat

Comment @coderabbitai help to get the list of available commands and usage tips.

@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 1, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 1, 2026
@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 1, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 1, 2026
@jonahgabriel
jonahgabriel enabled auto-merge June 1, 2026 08:08

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/check-sibling-compat.yml (1)

3-8: ⚡ Quick win

Add 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

📥 Commits

Reviewing files that changed from the base of the PR and between 4e94b18 and 9e3cf24.

📒 Files selected for processing (2)
  • .github/workflows/check-sibling-compat.yml
  • tests/ci/test_ci_workflow_resilience.py

Comment thread tests/ci/test_ci_workflow_resilience.py Outdated
@jonahgabriel jonahgabriel changed the title ci(OMN-12563): route check-sibling-compat uv sync through retry-wrapped composite action ci(OMN-12563): temporarily disable sibling compat process Jun 1, 2026
@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 1, 2026
@jonahgabriel
jonahgabriel removed this pull request from the merge queue due to a manual request Jun 1, 2026
@jonahgabriel
jonahgabriel enabled auto-merge June 1, 2026 08:48
@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 1, 2026
@jonahgabriel
jonahgabriel removed this pull request from the merge queue due to a manual request Jun 1, 2026
@jonahgabriel
jonahgabriel enabled auto-merge June 1, 2026 09:14
@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 1, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 1, 2026
@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 1, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 1, 2026
@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 1, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 1, 2026
@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 1, 2026
@jonahgabriel
jonahgabriel removed this pull request from the merge queue due to a manual request Jun 1, 2026
@jonahgabriel
jonahgabriel enabled auto-merge June 1, 2026 10:18
@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 1, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 1, 2026
@jonahgabriel
jonahgabriel added this pull request to the merge queue Jun 1, 2026
Merged via the queue into dev with commit bae87dc Jun 1, 2026
77 of 79 checks passed
@jonahgabriel
jonahgabriel deleted the jonahgabriel/omn-12563-ci-harden-check-sibling-compat branch June 1, 2026 11:12
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