All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Doctest-style Examples across the public API surface of JavaAnalysis, PythonAnalysis, CAnalysis, and core CLDK helpers. Coverage includes Java CRUD operations and comment/docstring query APIs, plus concise inline examples for Python and C where applicable.
- Examples documenting expected NotImplementedError behavior for placeholder APIs (PythonAnalysis and CAnalysis) using doctest flags.
- Converted and standardized docstrings to strict Google style (Args, Returns, Raises, Examples) across edited modules.
- Standardized Examples to use the CLDK facade (e.g.,
CLDK(language="java").analysis(...)) instead of raw constructor calls. - Normalized all doctest Example inputs to single-line strings to ensure reliable mkdocstrings rendering.
- Clarified
CLDK.analysisreturn type with a precise union:JavaAnalysis | PythonAnalysis | CAnalysis. - Updated codeanalyzer version to v2.3.6.
- Fixed README.md logo display on PyPI by updating image URLs to use raw GitHub URLs and maintaining theme-based auto-switching with proper fallback
- mkdocstrings rendering issues caused by multi-line doctest strings and formatting inconsistencies.
- Replaced confusing examples like
JavaAnalysis(None, None, ...)with clear CLDK-based initialization patterns. - Packaging: ensured the built wheel includes the
cldkpackage by addingpackages = [{ include = "cldk" }]to Poetry configuration. - Fixed #141
- Multi-line doctest strings in Examples that broke mkdocstrings rendering; all examples are now single-line.
- Removed pandas dependency (#145)
- Added
argument_exprfield to JCallSite model for capturing actual parameter expressions in method calls - Added Star History section to README.md for tracking project popularity
- Updated codeanalyzer jar to version 2.3.5 with support for call argument expressions and fully qualified parameter types
- Modified codeanalyzer.py to preserve fully qualified parameter types in method signatures instead of simplifying them
- Updated method signature format to use fully qualified type names (e.g.,
java.lang.Stringinstead ofString) - Updated test fixtures with new analysis.json data reflecting the signature format changes
- Fixed method signature handling to maintain fully qualified parameter types for better type resolution
- Updated test cases to use fully qualified method signatures for improved accuracy
v1.0.5 - 2025-06-24
- Fixed issue #135
- Analysis level compatibility checking for analysis.json with passed analysis level
- Updated treesitter analysis to use global declarations of parser and language
v1.0.4 - 2025-06-11
- Added missing callable fields field validator
- Updated test fixture setup to use codeanalyzer jar from cldk/analysis/java/codeanalyzer/jar instead of test resources directory
- Updated analysis.json fixtures (daytrader8 and plantsbywebsphere)
- Removed dangling codeanalyzer jars from test resources
- Removed obsolete analysis.json fixture
v1.0.3 - 2025-06-01
- Added code start line attribute to JCallable (corresponding to added attribute in the java code analyzer model)
v1.0.2 - 2025-05-24
- Added test case and fixture for source analysis
- Added missing attributes in compilation unit model
- Fixed handling of
source_codeoption in Java codeanalyzer - Updated core.py to match python analysis signature
v1.0.1 - 2025-05-07
- Updated treesitter analysis to use global declarations of parser and language
v1.0.0 - 2025-04-29
- First stable release
- Updated contributing guidelines
- Updated README.md
- Updated codeanalyzer jar
- Updated java version in release automation
v0.5.1 - 2025-03-13
- Updated Java model to comply with codeanalyzer v2.3.1
- Updated codeanalyzer jar to the latest from codeanalyzer-java
- Updated get_all_docstrings to return dict
v0.5.0 - 2025-02-21
- Added release automation github actions
- Added Java 11 support in github actions
- Added release_config.json
- Added Comment parsing APIs at file, class, method, and docstring level
- Added support for parsing callable parameters and their location information
- Added Dev container instructions with Python, Java, C, and Rust support
- Added C/C++ analysis support
- Added CRUD operations support for Java JPA applications
- Consolidated analysis_level enums in init.py
- Updated codeanalyzer jar to the latest version
- Changed coverage minimum to 70%
- Updated documentation with mkdocs
- Updated badges and logos in README
- Added Discord community support
- Removed CodeQL dependency and refactored treesitter
- Removed ABCs from analysis
- Removed logic to find LLVM in linux OSes (only appears in Darwin)
- Removed redundant is_entry_point fields from JCallable and JType
- Removed unused parameters and code cleanup
- Fixed various test cases and compatibility issues
- Fixed treesitter superclass identification issues
- Fixed entry point detection code
- Fixed recursive error issues
v0.4.0 - 2024-11-13
- Fixed issue 67 - symbol table is none
- Updated poetry build rules to include codeanalyzer-*.jar
- Added test case to verify jar file exists
v0.3.0 - 2024-11-12
- Support for reading slim JSON from codeanalyzer v1.1.0
- Added more test tools (pylint, flake8, black, pspec, coverage)
- Added test coverage reporting
- Updated README.md to include the arXiv paper
- Removed obsolete test cases for unsupported languages
v0.2.0 - 2024-10-11
- Added GitHub Action to publish manual releases
- Added PyPi badge to README.md
v0.1.4 - 2024-10-21
- Fixed codeanalyzer.jar not being a PosixPath
v0.1.3 - 2024-10-21
- Fixed calling the correct codeanalyzer jar on version 0.1.3
- Removed auto-download of codeanalyzer jar
v0.1.2 - 2024-10-17
- Fixed tree-sitter bug
- Defined self.captures explicitly
0.1.0-dev - 2024-10-07
- Initial development version
- Set version to über json support
- Support for slim JSONs from codeanalyzer
- IBM Copyright added to all source files
- Added code parsing support
- Added support for symbol table call graph
- Added notebook examples for code summarization and test generation
- Basic CLDK framework implementation
- Updated dependencies in pyproject.toml
- Added metadata for PyPi distribution
- Updated README with installation instructions
- Fixed caller method implementation
- Fixed incremental analysis support
- Fixed download jar issues