Problem
Changes reach main with no automated checks, so regressions in packaging, imports, lint, or the wheel build can land unnoticed.
Proposed
A GitHub Actions gate on PRs to main and pushes to main: ruff on the critical-error set + compileall; install the package and verify it imports and the entry point resolves; python -m build --wheel + twine check; and a headless backend/geometry test subset. Matrix: Linux/macOS/Windows on Python 3.11.
Notes
Ports what is already proven on the fork. Lint scope starts at the critical-error floor (E9/F63/F7/F82); tightening to F401/F811 is deferred (410 unused-import hits, mostly intentional re-export aggregators). ruff format --check omitted for now since the tree is not auto-formatted.
Type:
Chore.
Problem
Changes reach
mainwith no automated checks, so regressions in packaging, imports, lint, or the wheel build can land unnoticed.Proposed
A GitHub Actions gate on PRs to
mainand pushes tomain:ruffon the critical-error set +compileall; install the package and verify it imports and the entry point resolves;python -m build --wheel+twine check; and a headless backend/geometry test subset. Matrix: Linux/macOS/Windows on Python 3.11.Notes
Ports what is already proven on the fork. Lint scope starts at the critical-error floor (E9/F63/F7/F82); tightening to F401/F811 is deferred (410 unused-import hits, mostly intentional re-export aggregators).
ruff format --checkomitted for now since the tree is not auto-formatted.Type:
Chore.