complexipy
v3.0.0 Release Notes
We are thrilled to announce the release of complexipy v3.0.0, a major update that brings significant new features, enhancements, and important changes to the complexipy
ecosystem. This release focuses on expanding the reach of complexipy
with WebAssembly (WASM) support, improving usability with new output options, and strengthening integrations with developer workflows.
⚠️ Breaking Changes
- Simplified Complexity Threshold: The
--max-complexity
argument has been removed.complexipy
now uses a fixed cognitive complexity threshold of 15. The tool will exit with an error if any function meets or exceeds this threshold. This change simplifies configuration and aligns with established cognitive complexity best practices. To show all functions regardless of their complexity score, use the new--ignore-complexity
(-i
) flag. (PR #73)
🚀 What's New in v3.0.0
Major Features & Enhancements
-
WebAssembly (WASM) Support
complexipy
's core analysis engine can now be compiled to WebAssembly! This is a game-changer, allowing cognitive complexity analysis to run directly in the browser. This opens up exciting possibilities for interactive web applications and enhances tools like the VSCode extension. (PR #72) -
JSON Output for Seamless Integrations
We've introduced a new--output-json
(-j
) option in the CLI. You can now get complexity analysis results in a machine-readable JSON format, making it easier to integratecomplexipy
into your scripts and development toolchains. (PR #74)
💻 Command Line Interface (CLI)
- Enhanced Analysis and Reporting: The CLI has been overhauled for better control and clarity (PR #73):
- A new
--ignore-complexity
(-i
) flag has been added to display all functions, regardless of whether they exceed the complexity threshold. - The
--details
(-d
) option now also affects CSV and JSON outputs, allowing you to generate reports that include all functions or only those exceeding the complexity limit. - You can now sort results by complexity score (
asc
,desc
) or byname
.
- A new
⚙️ Ecosystem & Integrations
This release also strengthens the ecosystem around complexipy
, making it easier than ever to integrate into your daily workflow.
-
Pre-commit Hook
You can now usecomplexipy
as a pre-commit hook to automatically check for code complexity before you commit. This is a great way to enforce code quality standards across your team. The documentation has been updated with clear instructions for easy setup. (PR #75) -
VSCode Extension
The complexipy VSCode extension continues to provide real-time complexity analysis directly in your editor, with visual indicators to help you write more maintainable code. -
GitHub Action
Automate complexity checks in your CI/CD pipeline with the complexipy GitHub Action. It's a powerful way to ensure that code quality remains high with every pull request.
Full Changelog
- WASM support by @rohaquinlop in #72
- fix(cli) #68: Enhance complexity analysis options by @rohaquinlop in #73
- feat(cli): #70 Add JSON output option for complexity analysis by @rohaquinlop in #74
- chore: add pre-commit hook information by @rohaquinlop in #75