Nothing currently stops a broken script from being merged. scripts/pdf2doc.py has been committed with an ImportError and two wrong method names, and no check caught it.
What to do
Add .github/workflows/ci.yml that runs on every push and pull request:
- python -m compileall -q scripts/ # every script must at least parse
- ruff check scripts/ # lint: unused imports, undefined names
Pin a Python version matrix of 3.10 and 3.12 so syntax-version problems surface early.
Acceptance criteria
Note
Scripts needing third-party packages or input files can't be executed in CI — parse + lint is the right scope here. Don't try to run them.
Good first issue for anyone wanting GitHub Actions practice.
Nothing currently stops a broken script from being merged.
scripts/pdf2doc.pyhas been committed with anImportErrorand two wrong method names, and no check caught it.What to do
Add
.github/workflows/ci.ymlthat runs on every push and pull request:Pin a Python version matrix of 3.10 and 3.12 so syntax-version problems surface early.
Acceptance criteria
pushandpull_requestagainstmain.compileallstep fails the build on a syntax error.Frules: undefined names, unused imports) and don't enforce style opinions that would make every existing file red.pyproject.tomlorruff.toml, not inline in the YAML.mainas it is today, or the PR explains exactly which pre-existing failure it excludes and why.Note
Scripts needing third-party packages or input files can't be executed in CI — parse + lint is the right scope here. Don't try to run them.
Good first issue for anyone wanting GitHub Actions practice.