Repository navigation
v0.7.9
What's Changed
- feat: read entry points declared by Poetry, setup.cfg and setup.py by @watany-dev in #1066
- fix: make server apps in nested Dockerfiles entry roots by @watany-dev in #1068
- feat: read module names that loader APIs take as strings (#493) by @watany-dev in #1075
- feat: treat Django installed-app conventions as entries (#399) by @watany-dev in #1077
- fix: make every file under Airflow dags directories a DAG entry by @watany-dev in #1071
- feat: report per-project precision next to the pooled one in oss-metrics by @watany-dev in #1070
- feat: read Airflow 3 local DAG bundles as DAG folders by @watany-dev in #1074
- fix: root datamodel-codegen custom formatters as dev entries (#1063) by @watany-dev in #1072
- fix: lower CHK001 for wheel orphans of a member a metapackage root distributes (#1060) by @watany-dev in #1073
- fix: skip setup.py-only nested projects like a nested [project] (#1078) by @watany-dev in #1079
- fix: read Sphinx extensions of star-imported conf modules and conf.py beside a root document by @watany-dev in #1076
- fix: keep sourced Poetry group dependencies out of the CHK005 move (#1041) by @watany-dev in #1082
- Fail the oss-metrics release gate on a medium or large slowdown by @watany-dev in #1081
- fix: namespace portions, path sources outside the root, and over-deep ASTs (#1022, #1042, #1045) by @watany-dev in #1083
- fix: index sys.path hint lookups and bench the #1080 regression by @watany-dev in #1084
- fix: rewrite IPython escapes only on lines that start a statement (#994) by @watany-dev in #1085
- fix: count only the public modules tests reach as --production CHK006 evidence (#950) by @watany-dev in #1095
- test: measure CHK001 on an app-mode corpus and floor its precision by @watany-dev in #1093
- ci: fail the oss-metrics gate on cumulative drift against the last release by @watany-dev in #1097
- test: add Dagster/Prefect/Scrapy user projects to the OSS corpus by @watany-dev in #1099
- fix: give Sphinx extensions the sys.path of their conf.py (#1086) by @watany-dev in #1096
- fix: cut per-file scan costs added since v0.7.7 (#1087) by @watany-dev in #1098
- perf: lighter uv.lock scan and FxHash name sets in the parse walk (#760, #1047, #1087) by @watany-dev in #1100
- perf: cut reconcile clones, CHK009 pairing and include-chain blowup (#1092, #1048, #1046) by @watany-dev in #1101
- ci: lint Python helpers with ruff and shell scripts with shellcheck by @watany-dev in #1102
- test: reference models for entry roots, workspace CHK002, stdlib windows and --fix convergence (#1109) by @watany-dev in #1122
- fix: normalize dependency ignore patterns and drop ignored CHK005 sites before weighing (#1106, #1107) by @watany-dev in #1115
- test: reference-model / monotonicity PBTs for CHK006/007, gaps, python_range and the cache (#1103) by @watany-dev in #1116
- ci: close the gaps in what cargo-mutants checks (#1117, #1118, #1119, #1120, #1123) by @watany-dev in #1124
- test: add PBT for wheel, depth, reporters, plugins, maps, init and --fix containment (#1105) by @watany-dev in #1110
- fix: add the five new prop tests to TEST_TARGETS by @watany-dev in #1194
- docs: state --init prerequisites and exit-2 cases in README (#1162) by @watany-dev in #1177
- docs: regenerate the README sample report from the binary (#1161) by @watany-dev in #1193
- docs: describe which console scripts make a project an app (#1155) by @watany-dev in #1178
- docs: explain which findings make chokkin exit 1 by @watany-dev in #1176
- test(pbt): extractor roundtrips, cross-format equivalence and metamorphic properties (#1104) by @watany-dev in #1111
- fix: print the cause behind fatal errors and reject a doubled BOM (#1160) by @watany-dev in #1188
- fix(parser): count names in match case patterns as references (#1141) by @watany-dev in #1174
- ci: reuse main's bench baseline and trim build jobs on PRs by @watany-dev in #1212
- fix: count augmented assignment targets as reads (#1142) by @watany-dev in #1179
- fix(action): stop args from repeating flags the action adds (#1147) by @watany-dev in #1180
- fix: hint the top-level form when a standalone config uses [tool.chokkin] by @watany-dev in #1190
- fix: mark --fix/--baseline companions in --help and align columns by @watany-dev in #1185
- fix(parser): count m.X in string annotations and attributes of import_module results (#1144) by @watany-dev in #1181
- ci: benchmark the base on the PR's runner again by @watany-dev in #1214
- fix: split requirements files on every Python line boundary (#1154) by @watany-dev in #1191
- ci: do not create the cross-compiled wheel jobs on PRs that skip them by @watany-dev in #1215
- fix(sources): skip non-UTF-8 source paths with a warning instead of exiting 2 by @watany-dev in #1195
- fix(cache): key stat-only fingerprints on inode and ctime too by @watany-dev in #1192
- fix(config): separate file and key in validation errors and qualify pyproject keys by @watany-dev in #1196
- fix: count literal getattr/hasattr/setattr/delattr on a module as a reference (#1143) by @watany-dev in #1173
- fix: read backslash in config path globs as a separator on every OS by @watany-dev in #1197
- fix: split -e path names on both / and \ regardless of host OS (#1171) by @watany-dev in #1198
- fix(cli): reject --probe combined with issue-only flags by @watany-dev in #1202
- fix(resolver/venv): pick site-packages by pyvenv.cfg version, not read_dir order by @watany-dev in #1201
- fix: match fixed manifest names against the directory listing (#1163) by @watany-dev in #1200
- fix: normalize ./ and \ in config entry paths and ./ in path globs by @watany-dev in #1203
- fix(sources): read
.gitignorebraces literally, as git does by @watany-dev in #1199 - fix: add Python 3.15 to the bundled stdlib table by @watany-dev in #1206
- fix(cli): reject unknown rule codes in --include/--exclude by @watany-dev in #1189
- fix: resolve modules whose extension is uppercase, like
helper.PYby @watany-dev in #1207 - fix: count every bundled minor as stdlib when no lower bound is known by @watany-dev in #1205
- fix: normalize distribution names in --explain selectors by @watany-dev in #1204
- chore(deps): bump the cargo-minor-and-patch group with 3 updates by @dependabot[bot] in #1216
- chore(deps): bump the actions-minor-and-patch group with 3 updates by @dependabot[bot] in #1217
- chore: add formal-spec-extraction skill for Claude Code, Cursor and Codex by @watany-dev in #1213
- fix(sources): read root entry scripts in src and flat layouts by @watany-dev in #1210
- fix(resolver): map opencv, msgpack, psycopg2 and Pillow variants to their import by @watany-dev in #1183
- fix: resolve absolute and cwd-relative --trace paths against the project root by @watany-dev in #1187
- fix: keep the UTF-8 BOM when --fix edits a manifest by @watany-dev in #1184
- fix: keep examples member entries out of skipped-entry gaps by @watany-dev in #1175
- fix: read CJK PEP 263 sources and UTF-16/32 requirements files by @watany-dev in #1211
- fix(cli): let an explicit --confidence win over --strict (#1134) by @watany-dev in #1182
- fix(entry): lower unused findings when an app has no entry root by @watany-dev in #1209
- fix(cli): exit on the findings --fix leaves and after --update-baseline by @watany-dev in #1186
- fix: stop deeply nested
{from aborting chokkin with a stack overflow by @watany-dev in #1208 - test(formal): bring the deps / exit-status / reachability models back in line with the code (#1108) by @watany-dev in #1121
- fix: move a CHK005 entry in the manifest that governs it by @watany-dev in #1219
- perf: take the serial work added since v0.7.7 off the calling thread (#1087) by @watany-dev in #1224
- refactor(sources): replace the reference walker oracle with fixture tests by @watany-dev in #1221
- refactor: drop the uv.lock strip_artifacts parse path by @watany-dev in #1222
- docs: drop finished plans and per-release reports, move test-only extract_ignores into internals by @watany-dev in #1218
- chore: release v0.7.9 by @watany-dev in #1225
Full Changelog: v0.7.8...v0.7.9