📣 New Release: codeanalyzer-python 1.0.2 #16
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.2
TL;DR — a patch release with one fix: the Neo4j
codeproperty is populated again. No breaking changes, no schema changes;analysis.jsonoutput is byte-for-byte unaffected.What was fixed (#104, PR #105)
Schema v2 (since 1.0.0) stores each module's source once on
PyModule.sourceand gives every node a byte-precisespaninstead of a per-nodecodecopy. The Neo4j projection, however, was still reading the removed per-node field — so every:PyClassand:PyCallablenode was written without itscodeproperty:py_code_ftsfulltext index (overc.code/c.docstring) had no code to index, so code search in the graph silently returned nothing;c.code— e.g. the CLDK python-sdk Neo4j backend'sget_method_bodies— returned nulls, breaking parity with the in-process backend.The projection now derives
codeat projection time: the owning module's source, sliced by each node's utf-8 byte span. The Neo4j vocabulary itself is unchanged (the property and index were always declared), so there is no Neo4jSCHEMA_VERSIONbump — re-running an analysis against your database refreshes the affected nodes in place.A new regression gate (
test_projected_code_property_is_the_module_source_span_slice) asserts every projected class and callable carries the exact span slice of its module source.Upgrade
Links: GitHub release · CHANGELOG
Beta Was this translation helpful? Give feedback.
All reactions