Repository navigation
fix: a python product's CI installs the project, and the merge stops read CI - #76
Merged
Merged
Conversation
…read CI (#75) The graphcalc run's S6: PR NewMe505/graphcalc#6 failed CI at collection (No module named 'sympy') while every SCIO check passed in its sandbox venv, and SCIO called the PR ready without reading its checks. - The python scaffold's CI and README Develop block run `pip install -e . ruff pytest`; its pyproject gets a setuptools [build-system] and the package list (I-140). - milestone_pr and the release step wait (bounded) for the PR's CI and store it; both merge stops say "ready" only over a green CI (I-141). - scio upgrade rewrites exactly the old install line in ci.yml and the README; `--decision recheck` pushes the branch once per head and reads the new head's CI (I-142). - Ledger I-140 to I-144, guardrails 39 to 43. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the graphcalc run's S6, which holds it at merge stop 1. A python product's CI installed only ruff and pytest, never the project, so PR NewMe505/graphcalc#6 failed at collection (
No module named 'sympy') while every SCIO check passed in its sandbox venv. SCIO then called the PR "ready for review" without reading its checks, and no SCIO path could get a fix onto a milestone branch paused at the stop. Now:scio upgraderewrites the old install line;recheckpushes the upgrade commit and reads the CI again.Closes #75
Plan vs. done
PYTHON_INSTALL = "pip install -e . ruff pytest"; the pyproject gets a setuptools[build-system]and[tool.setuptools.packages.find](I-140)4 passed; the 0.9.0 line:ModuleNotFoundError: No module named 'six'; no build system besidestatic/:Multiple top-level packages discovered in a flat-layoutGitHubClient.pr_checks/pr_head,scio/product/pr_ci.pywait_for_ci(bounded, fails fast, ignores an older head's checks, aghfailure becomesunread);MilestonePR.ci,ReleaseRecord.pr_ci(optional, so the paused 0.9.0 checkpoint loads) (I-141)scio upgradefixes an existing product's install lineci.ymland the README; a changed line is kept; a build system is added only when the pyproject has none (I-142)recheckat both merge stopspush:<branch>:<sha>, never forced), reads that head's CI, asks again (I-142). Milestone stop: the end-to-end test; release stop: red then green intest_github_mode_survives_squash_merged_milestone_prsmilestone/1(scratch clone)scio). Its CI steps in a clean venv:56 passed, 1 skipped, andgraphcalc 0.1.0How graphcalc gets unblocked (after this merges)
.scio/live-wtto this PR's merge commit.milestone/1, clean tree):sh scio.sh upgrade --product C:/Users/playa/OneDrive/Desktop/projects/graphcalc-run/graphcalc. That makes one commit authored byscio(GUARDRAILS rule 1 holds).sh scio.sh build --product C:/Users/playa/OneDrive/Desktop/projects/graphcalc-run/graphcalc --gh NewMe505/graphcalc --decision recheck. This pushesmilestone/1, PR M3: router and T0 loop end to end #6's CI re-runs, and the stop asks again with the CI result. It waits for the CI inside the command, for up to 15 minutes, so run it in the background or with a long timeout. A Bash tool's default 2-minute timeout would kill it mid-wait; that is recoverable (the push is journaled, and a rerun only reads the CI again), but confusing.tools/guard_ci_deps.py --ref milestone/1exits 0, the owner merges PR M3: router and T0 loop end to end #6, then--decision merged.Checked on a scratch copy of the run's checkpoint DB:
scio report --thread build-graphcalc-m1loads it with this branch's models (exit 0, phasemerge_wait), and the PR record has no CI reading, so the stop will offerrecheck.Merge order with #74: both PRs add a section under CHANGELOG's
[Unreleased], so whichever merges second needsmainmerged in first; both entries stay. If #74 merges first, this session mergesmaininto this branch.Test evidence
Docs updated
--decision recheck, whatscio upgradenow fixes)merge_waitalready looped on itself)[Unreleased]Continuous improvement
grep -rn "pip install" scio configs;grep -rn "gh pr checks\|statusCheckRollup\|check_runs" scio; every merge stop and everygit_pushinbuild.py; every whole-file rule inupgrade.py)manual:(I-143, I-144: properties of the agent's shell).Risk notes
MilestonePR.ci,ReleaseRecord.pr_ci). A checkpoint without them loads, and its stop reads "CI not read yet", offeringrecheck.--decisionword (recheck), and both merge stops' question text changed. Per the release rule, that makes the next release a minor one.milestone_prand the release step now wait for the PR's CI, up to 15 minutes, before the stop. The wait ends at the first failing check, and a product's CI usually takes under a minute.[build-system], sopython -m buildandpip install .behave the same everywhere.Agent run log (agent PRs only)
N/A (a human-directed session).
🤖 Generated with Claude Code