iceboundrock / iceboundrock/AutoForge
Bring `make check` closer to the hosted CI workflow (locked install, Python matrix)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 8h 56m
- Merged PRs (30d)
- 40
Description
Follow-up from the review of #74 (finding R1-F3, non-blocking).
Problem
Makefile comments check as "Everything the hosted CI workflow runs", and until #74 the instruction files and README repeated that. It is only true of the commands: tests/test_ci_workflow.py::test_ci_runs_the_same_commands_as_the_local_make_targets pins that every command in make test / lint / fmt-check / typecheck also appears in .github/workflows/ci.yml. CI does two more things make check does not:
- installs from the lockfile with
uv sync --locked, so a staleuv.lockfails CI but passes locally; - runs
pyteston Python 3.11 and 3.12, whilemake checkruns on whatever interpreter the local environment resolves (the repo's.python-versionis currently 3.14, which is not in the CI matrix at all).
#74 corrects the prose in AGENTS.md, tests/AGENTS.md and README "Development" to describe what make check actually covers. This issue is about narrowing the gap itself, which was out of scope for an instruction-only refactor.
Proposal
- Add a lockfile check to
check(for example alock-checktarget runninguv lock --check, which is what--lockedenforces in CI) so a stale lock is caught before pushing. - Fix the
Makefilecomment oncheckto match: same commands as CI, single local interpreter. - Optionally add a
check-matrix(name open) target that runspyteston every CI Python (uv run --python 3.11 pytest,uv run --python 3.12 pytest), reading the versions from one place if the drift guard can pin it, so the matrix is not maintained twice. - Extend
tests/test_ci_workflow.pyif a new mirrored target is introduced, so CI and the Makefile keep matching in both directions.
Non-goals
- Changing what CI runs.
- Making
make checkslower by default; the matrix target should be opt-in.
Working copy of this note: none, the issue is the artifact.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the check target in Makefile, then compare its commands with .github/workflows/ci.yml and the version assumptions in .python-version. Read tests/test_ci_workflow.py, especially its command-matching test, before deciding how any new target should be represented. Done means stale locks are detected, the comment matches behavior, and any added matrix target is covered by the drift checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, ci-cd, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100