Files
cc-ci-orchestrator/cc-ci-plan/task-consolidate-recipe-prs.md
2026-06-02 02:02:00 +00:00

2.8 KiB
Raw Blame History

Assistant task — consolidate open recipe PRs (one open PR per recipe)

Dispatched: 2026-06-02 by the orchestrator. Owner: the Assistant (one-shot). Not the Builder/Adversary loops — they are busy on the regression phase; do not touch their clones.

Goal

Every recipe mirror should have at most ONE open PR. For any recipe with more than one open PR, combine them into a single open PR (the union of their changes) and close the rest.

Steps

  1. Survey. Creds in /srv/cc-ci/.testenv (GITEA_USERNAME/GITEA_PASSWORD/GITEA_URL). For every recipe mirror under the recipe-maintainers org, list its open PRs:

    • GET /api/v1/orgs/recipe-maintainers/repos?limit=100
    • GET /api/v1/repos/recipe-maintainers/<recipe>/pulls?state=open Recipes = real recipe mirrors only — exclude infra repos: cc-ci, cc-ci-orchestrator, cc-ci-secrets, archived-*. Build the list of recipes with >1 open PR.
  2. Consolidate each such recipe into ONE open PR holding the union of the changes, then close the others:

    • Work in a fresh clone of the mirror (e.g. under /tmp). Never use the loops' clones (/srv/cc-ci/cc-ci, /srv/cc-ci/cc-ci-adv).
    • Combine the open PR branches onto one branch (cherry-pick/merge). Never force-push over unmerged work — preserve every change. Prefer extending the lowest-numbered open PR by pushing the combined branch onto its head (the no-force "commit on top" pattern in /srv/cc-ci/.claude/skills/recipe-upgrade/open-recipe-pr.sh).
    • Conflict policy: two upgrade PRs to different versions → keep the newest version. An upgrade PR + a different-purpose PR (e.g. a backup/restore fix) → include both changes.
    • Close the now-redundant PRs with a comment: Consolidated into #<N> — one open PR per recipe.
    • Re-test the surviving consolidated PR by commenting !testme on it (real CI; results show in the PR; iterate up to 3×). If a genuine pre-existing failure blocks it, leave an explanatory comment — do not weaken/skip/delete any test.
  3. Report & stop. Summarise: which recipes had >1 open PR, what you consolidated, the surviving PR URL per recipe, conflicts resolved, and any PR left red with an explanatory comment. Then go idle (one-shot — do not loop).

Guardrails

  • NEVER merge any PR into main — the operator merges. "Merge them together" = consolidate multiple open PRs into ONE open PR, not merge to main.
  • Only touch recipe mirror PRs. Do not touch cc-ci-repo PRs (build/test PRs).
  • Recipes with 0 or 1 open PR: leave untouched.
  • Known starting point (re-verify live — state may have changed): custom-html had 2 upgrade PRs (#1 1.12.0, #2 1.13.0); ghost had #1 (backup fix) + #2 (upgrade). Survey fresh for the full set.