v0.13.0
View on GitHub ↗New --emit-fingerprints flag and faster TypeScript and Ruby extraction on large files. Findings are unchanged from v0.12.2.
Features
--emit-fingerprints FILEwrites one JSON line per analyzed definition with the matcher and handler evidence the analyzer compared, for test tooling that must tell "no finding" apart from "nothing analyzed". Reports, stdout, stderr and exit codes are unchanged with or without it (#182).
Performance
- TypeScript evaluates literal module constants once per file instead of once per handler; 4,000 handlers with one constant each in one file: 167 s -> 0.47 s parse (#175).
- Ruby indexes file-level bindings once per file instead of once per block handler; 8,000 handlers in one file: 150.5 s -> 0.7 s parse (#170).
Fixes
- Gherkin parse-error messages list the expected tokens in sorted order; the order previously varied between runs on identical input (#173).
Development
check:equivalencecompares every report and baseline file each invocation writes or deletes, byte for byte, across the corpus, Ruby, language-parity, benchmark andtests/cli.rssuites (#174, #176-#181).- The recall corpus verifies declared non-findings against
--emit-fingerprintsrecords (#184). - The Ruby census pins Rust test names instead of file hashes (#171).
Full Changelog: https://github.com/figueiredoluiz/cuke-dedup/compare/v0.12.2...v0.13.0