You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds linting via ruff and typechecking via pyright, generally helpful to have these in the repo for guardrails and correctness! Full CI sequence still only takes around 5min total.
## Summary
Builds on the release tooling merged in [#164](#164) by adding linting, type checks, and isolated-wheel smoke coverage.
Adds CI jobs for repo-wide Ruff, `lab_core` Pyright, and wheel import/document extraction smoke tests on Python 3.12 and 3.13. Existing Ruff violations have rule-specific file-level directives in the affected files. Existing type errors have file/rule Pyright directives, plus a single-line ignore for the optional Mistral import; runtime behavior is unchanged. Both tools are pinned in the development dependency group.
The wheel tests install only the built package and its declared runtime dependencies, then import every host module and extract known content from small synthetic XLSX/PPTX files. They run outside the checkout with Python isolation enabled and use standard-library `unittest`, so development tools and fixture generators cannot supply missing dependencies.
## Validation
- Ruff passes. Pyright basic mode passes over 30 `lab_core` source files with the recorded ignores (zero errors or warnings).
- Full offline suite: 12,790 passed, 62 skipped, 28 import subtests passed.
- Installed-wheel smoke tests and dependency consistency checks pass on Python 3.12 and 3.13.
- A new-file probe fails on missing imports, undefined names, and invalid argument types.
- The release metadata retains `openpyxl` and `python-pptx`. The isolated-wheel tests pass with those dependencies and reproduced both extraction failures when they were absent.
- The wheel-content check passes: 68 members, 146,463 bytes.
## Limits
The baseline ignores also suppress new diagnostics of the same type in the same files until removed. New files and other diagnostic types remain checked. Pyright excludes sandbox skill scripts, whose dependencies live in the container; Ruff includes them. The smoke tests cover imports and XLSX/PPTX extraction, not live provider calls or container execution.
0 commit comments