Skip to content

ci: wire check-reqs into lint job to catch requirements drift#699

Open
mvillmow wants to merge 3 commits into
mainfrom
556-auto-impl
Open

ci: wire check-reqs into lint job to catch requirements drift#699
mvillmow wants to merge 3 commits into
mainfrom
556-auto-impl

Conversation

@mvillmow

Copy link
Copy Markdown
Contributor

Summary

Add check-reqs validation to the CI lint job to detect when pixi.toml or requirements.txt get out of sync, preventing stale dependency pins from reaching Docker builds.

Changes

  • Add check-reqs recipe to justfile for running sync_requirements.py in check mode
  • Wire check-reqs into _required.yml lint job to validate requirements.txt matches pixi.toml
  • Add sync_requirements.py script with --check mode for CI validation
  • Add test coverage for sync_requirements.py and Dockerfile requirements validation
  • Update Dockerfile to use regenerated requirements.txt

Testing

  • Run test_sync_requirements.py to verify --check mode detects drift
  • Run test_dockerfile.py to confirm Dockerfile builds with pinned requirements
  • Trigger CI workflow to confirm lint job catches requirements drift before merge

Closes

Closes #556

Generated by Claude Code via ProjectHephaestus automation.

@mvillmow mvillmow left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Feature correctly implements #556 (check-reqs gate + lock-pinned requirements.txt + Dockerfile switch). Blocker: 855-line coverage.xml build artifact accidentally committed (not gitignored, machine-local path).

Comment thread coverage.xml Outdated
Comment thread scripts/sync_requirements.py
mvillmow and others added 3 commits June 28, 2026 08:59
Add check-reqs recipe to justfile and integrate into _required.yml lint workflow. This ensures pixi.toml updates are reflected in requirements.txt before merge, preventing stale pins in Docker builds.

Follows #354.

Closes #556

Implemented-By: claude-sonnet-4-6
Co-Authored-By: Claude Code <noreply@anthropic.com>
Signed-off-by: Claude Haiku 4.5 <4211002+mvillmow@users.noreply.github.com>
Signed-off-by: mvillmow <4211002+mvillmow@users.noreply.github.com>
Generated coverage report should not be in version control (churns on every
test run, leaks absolute local paths). Addresses review feedback.

Signed-off-by: Claude Haiku 4.5 <4211002+mvillmow@users.noreply.github.com>
Signed-off-by: mvillmow <4211002+mvillmow@users.noreply.github.com>
Under the py3.14 CI env tomllib always imports, so the no-redef ignore on the
py<3.11 tomli fallback is flagged as unused by mypy --strict (which the
pre-commit lint job runs over scripts/). Match the existing pattern in
scripts/check_dep_sync.py by adding import-not-found and unused-ignore codes.
Addresses lint (mypy) failure.

Signed-off-by: Claude Haiku 4.5 <4211002+mvillmow@users.noreply.github.com>
Signed-off-by: mvillmow <4211002+mvillmow@users.noreply.github.com>
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.

Add check-reqs to CI pipeline to catch requirements drift

1 participant