📣 New Release: codeanalyzer-python 1.0.1 #14
rahlk
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
codeanalyzer-python (canpy) v1.0.1
TL;DR — a patch release with one headline property: deterministic output. Running
canpytwice with the same flags on the same input now produces byte-identicalanalysis.json. No schema changes; no breaking changes.What was fixed (#99, PR #101)
Four independent nondeterminism sources were eliminated:
PYTHONHASHSEED=0for itself (and its Ray workers) via a one-time re-exec. ExportPYTHONHASHSEEDyourself to opt out or pin a different seed.mkdtempsuffix — a different analysis input every run. The root is now derived from the content it mirrors, with a lock so concurrent analyses of the same project serialize safely instead of deleting each other's working tree._IOBase | BufferedRandom | TextIOWrapper) resolved to a different member per run; candidates are now tie-broken deterministically, and bare-NoneTypereturn inferences no longer mask the informative member of anOptional.Also in this release:
docs/handoffreference bundle is regenerated against the shipping emitter — the 1.0.0 bundle predated a late merge and was missinganalyzer.config, structured call-sitearguments, and some callee-resolution improvements that the released binary actually emits.Known residue (documented on #99, which stays open for it): one call-site's inferred
return_typecan intermittently be absent when Jedi's compiled-introspection helper subprocess hiccups under load — environmental and upstream; everything the analyzer controls is now deterministic.Upgrade
pip install -U "codeanalyzer-python==1.0.1"Or via Homebrew / the shell installer as usual. If you pinned 1.0.0, this is a drop-in upgrade.
Links
Beta Was this translation helpful? Give feedback.
All reactions