Repository navigation
v0.7.6
What's Changed
- fix: record star-import references only in modules that bind the name (#803) by @watany-dev in #812
- fix: report deferred imports of optional packages as info in CHK005 by @watany-dev in #813
- feat: treat Sphinx themes, namespace extensions and pytest-* plugins as used by @watany-dev in #815
- chore: add kick skill by @watany-dev in #816
- fix: treat PEP 517 build backend modules as entry roots by @watany-dev in #817
- fix: follow Sphinx extensions through conf.py's imported constants by @watany-dev in #818
- fix: count build script imports as uses for CHK002 (#783) by @watany-dev in #820
- fix: treat build environment pins in a build group as used for CHK002 (#819) by @watany-dev in #821
- docs: add #803, #808 and #809 to the Unreleased changelog by @watany-dev in #823
- fix(resolver): map Sphinx and MkDocs extensions named unlike their distribution (#822) by @watany-dev in #831
- test: cover namespace packages shipped by path and workspace members by @watany-dev in #825
- feat(metrics): split Downgraded into Recontexted and Demoted by @watany-dev in #824
- refactor(resolver): merge the five stdlib lists into one annotated table by @watany-dev in #832
- chore: make ponytail skill manual-invocation only by @watany-dev in #833
- ci: run the formal models and TLC on PRs that touch their targets by @watany-dev in #854
- ci: fail PRs on missed mutants and cover src/fix and src/graph by @watany-dev in #842
- ci: gate determinism, schema and crashes on every PR and run OSS metrics on src changes by @watany-dev in #845
- test: cover setup.cfg fix, fix containment, shell-script apps and --trace output by @watany-dev in #852
- perf: share parsed ignore files across workspace walks and normalize declared names once by @watany-dev in #841
- ci: test the shipped wheels and dist profile before release by @watany-dev in #847
- ci: run the benchmark regression gate on pull requests by @watany-dev in #856
- test: unit-test the OSS and bench gate scripts by @watany-dev in #849
- ci: rustup instead of dtolnay/rust-toolchain, seconds-long TLC run, and an MSRV sdist test (#857, #853, #846) by @watany-dev in #859
- feat(metrics): per-rule precision floors; chore(release): trim the sdist (#701, #858) by @watany-dev in #863
- fix(trace): print an auto entry root's rule once (#850) by @watany-dev in #864
- fix(manifest): setup.py subscript assignments we cannot follow; move the requirement-table idiom out (#827, #554) by @watany-dev in #870
- fix(plugins): treat bare celery -A / flask --app modules as entry roots by @watany-dev in #867
- fix(rules/symbols): entry-point re-exports are not CHK007; share the import binding rule (#743, #811) by @watany-dev in #874
- feat(parser): read
__all__ +=,.extendand.appendinto exports (#567) by @watany-dev in #878 - fix: give plugin module references their string line and name the setting (#830) by @watany-dev in #883
- fix(rules/symbols): attribute-path entry targets and re-exported host hooks are used (#872, #873) by @watany-dev in #885
- fix(manifest): read
===specifier lists like packaging (#572) by @watany-dev in #881 - fix(parser): skip sources with a syntax error like undecodable ones by @watany-dev in #886
- docs: add ADR 0005, the unknown input contract by @watany-dev in #887
- fix(manifest): only space and tab separate PEP 508 tokens (#879) by @watany-dev in #891
- feat: route dropped pipeline signals to every reporter (#888 step 1) by @watany-dev in #897
- feat: surface the remaining Step 1 input gaps (#892–#895) by @watany-dev in #901
- feat: close the last Step 1 input gaps (#898–#900) by @watany-dev in #904
- feat: give all, entry symbols and setup.py extras a Partial state (ADR 0005 step 2) by @watany-dev in #907
- Lower findings for unread input in one gap stage; add the unread-notebook-cells gap by @watany-dev in #908
- Install CI toolchains with rustup; read requires-python empty items as SpecifierSet does by @watany-dev in #918
- perf: keep the tests the --production walk drops instead of walking again (#844) by @watany-dev in #921
- feat: #888 step 4 — report and scope the remaining manifest and source gaps by @watany-dev in #920
- feat: lower findings when imports, commands, Django settings, .gitignore or requires-python cannot be read (#888) by @watany-dev in #922
- fix: read PEP 508 whitespace and requirements-file markers the way Python and pip do by @watany-dev in #930
- fix: align CHK002 evidence and gap lowering on the usage set (#550) by @watany-dev in #943
- test: property-based coverage for the v0.7 logic (#861) by @watany-dev in #959
- refactor: derive the layout kind from the package root by @watany-dev in #949
- feat: lower findings for skipped entries, assumed target version, unread Django settings and invalid requirement lines (#888) by @watany-dev in #941
- fix: let a partial all hand on any name through import * (#951) by @watany-dev in #961
- test: check CHK005, CHK009, CHK010, CHK001 and derived reachability against reference models by @watany-dev in #955
- chore: release v0.7.6 by @watany-dev in #966
Full Changelog: v0.7.5...v0.7.6