mirror of
https://github.com/ludo-technologies/pyscn.git
synced 2025-10-06 00:59:45 +03:00
chore: prepare v1.0.0 release
Simplify CHANGELOG for the first stable release, focusing on key features and user value rather than detailed development history.
This commit is contained in:
133
CHANGELOG.md
133
CHANGELOG.md
@@ -1,136 +1,39 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
|
||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
||||||
|
|
||||||
## [1.0.0] - 2025-10-05
|
## [1.0.0] - 2025-10-05
|
||||||
|
|
||||||
### 🎉 First Stable Release
|
### 🎉 First Stable Release
|
||||||
|
|
||||||
pyscn 1.0.0 is a structural code quality analyzer for Python vibe coders building with AI assistants (Cursor, Claude, ChatGPT).
|
High-performance Python code quality analyzer built with Go.
|
||||||
|
Designed for the AI-assisted development era.
|
||||||
|
|
||||||
### Key Features
|
### Key Features
|
||||||
|
|
||||||
- **CFG-based dead code detection** – Find unreachable code after exhaustive if-elif-else chains
|
- **Blazing Fast** - 100,000+ lines/sec with Go + tree-sitter
|
||||||
- **Clone detection (APTED + LSH)** – Tree edit distance with LSH acceleration for large codebases
|
- **Advanced Clone Detection** - APTED algorithm with LSH acceleration
|
||||||
- **Coupling metrics (CBO)** – Track architecture quality and module dependencies
|
- **Dead Code Analysis** - CFG-based unreachable code detection
|
||||||
- **Cyclomatic complexity analysis** – Identify functions that need refactoring
|
- **Architecture Metrics** - CBO coupling and cyclomatic complexity
|
||||||
- **Multiple output formats** – HTML, JSON, YAML, CSV reports
|
- **Multiple Formats** - HTML, JSON, YAML, CSV reports
|
||||||
- **Fast analysis** – 100,000+ lines/sec (Go + tree-sitter)
|
- **CI/CD Ready** - `pyscn check` for quality gates
|
||||||
- **CI/CD friendly** – `pyscn check` command for quality gates
|
|
||||||
|
|
||||||
### Breaking Changes
|
|
||||||
|
|
||||||
- **Removed deprecated individual commands**: `complexity`, `deadcode`, `clone`, `cbo`, and `deps` commands
|
|
||||||
- **Migration**: Use `pyscn analyze --select <analysis>` instead
|
|
||||||
- Example: `pyscn complexity .` → `pyscn analyze --select complexity .`
|
|
||||||
- Example: `pyscn deadcode --min-severity critical .` → `pyscn analyze --select deadcode --min-severity critical .`
|
|
||||||
- This simplifies the CLI interface and improves consistency
|
|
||||||
- All functionality is preserved through the unified `analyze` command
|
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Install with pipx (recommended)
|
pipx install pyscn # Recommended
|
||||||
pipx install pyscn
|
uvx pyscn analyze . # Run without install
|
||||||
|
|
||||||
# Or run directly without install
|
|
||||||
uvx pyscn analyze .
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### What's New Since Beta
|
### Quick Start
|
||||||
|
|
||||||
- Improved dead code detection for exhaustive if-elif-else chains
|
|
||||||
- Enhanced documentation for vibe coding workflows
|
|
||||||
- Streamlined CLI with unified `analyze` command
|
|
||||||
- Production-ready stability and performance
|
|
||||||
|
|
||||||
## [0.1.0-beta.13] - 2025-09-08
|
|
||||||
|
|
||||||
### Latest Beta Release
|
|
||||||
|
|
||||||
*Note: Previous beta versions (0.1.0-beta.1 through 0.1.0-beta.12) contained distribution issues and have been removed from both PyPI and GitHub releases.*
|
|
||||||
|
|
||||||
#### Features
|
|
||||||
- **Complexity Analysis**: CFG-based cyclomatic complexity calculation with risk thresholds
|
|
||||||
- McCabe cyclomatic complexity using Control Flow Graph
|
|
||||||
- Risk level classification (low/medium/high)
|
|
||||||
- Sorting by complexity, risk, or name
|
|
||||||
- Configurable thresholds
|
|
||||||
|
|
||||||
- **Dead Code Detection**: Unreachable code identification
|
|
||||||
- Code after return/break/continue/raise statements
|
|
||||||
- Unreachable branches detection
|
|
||||||
- Severity levels (critical/warning/info)
|
|
||||||
- Context display with surrounding lines
|
|
||||||
|
|
||||||
- **Clone Detection**: APTED algorithm for structural code similarity
|
|
||||||
- Type 1-4 clone detection
|
|
||||||
- Configurable similarity thresholds (0.0-1.0)
|
|
||||||
- Clone grouping and detailed reporting
|
|
||||||
- Multiple cost models for tree edit distance
|
|
||||||
|
|
||||||
- **CBO Metrics**: Coupling Between Objects analysis
|
|
||||||
- Class-level coupling measurement
|
|
||||||
- Risk level assessment
|
|
||||||
- Include/exclude built-ins and imports options
|
|
||||||
- Sorting by coupling or name
|
|
||||||
|
|
||||||
- **Unified Analysis**: Combined reporting across all metrics
|
|
||||||
- HTML reports with interactive visualization
|
|
||||||
- JSON/YAML/CSV export formats
|
|
||||||
- Timestamped output files
|
|
||||||
- Health score calculation
|
|
||||||
|
|
||||||
- **Configuration System**: Flexible configuration management
|
|
||||||
- Hierarchical config discovery (project → XDG → home)
|
|
||||||
- YAML/JSON config file support
|
|
||||||
- Command-line flag overrides
|
|
||||||
- Init command for starter config
|
|
||||||
|
|
||||||
#### Performance
|
|
||||||
- Fast analysis: 10,000+ lines per second
|
|
||||||
- Parallel processing for multiple files
|
|
||||||
- Efficient memory usage with streaming parsers
|
|
||||||
- Optimized tree-sitter integration
|
|
||||||
|
|
||||||
#### Known Limitations
|
|
||||||
- Python 3.10+ features not fully supported:
|
|
||||||
- Match statements (PEP 634)
|
|
||||||
- Walrus operator (:=) in complex contexts
|
|
||||||
- Some async/await patterns
|
|
||||||
- System-level structural analysis planned for future release
|
|
||||||
- Module dependency graphs not yet implemented
|
|
||||||
|
|
||||||
#### Technical Details
|
|
||||||
- Built with Go 1.24+ for optimal performance
|
|
||||||
- Clean Architecture with domain/use-case separation
|
|
||||||
- Tree-sitter for robust Python parsing
|
|
||||||
- Comprehensive test suite (12 packages)
|
|
||||||
- Cross-platform support (macOS, Linux, Windows)
|
|
||||||
|
|
||||||
#### Installation
|
|
||||||
```bash
|
```bash
|
||||||
# Install latest beta version
|
pyscn analyze . # Full analysis with HTML report
|
||||||
pip install --pre pyscn
|
pyscn check . # Quick CI check
|
||||||
|
pyscn init # Generate config file
|
||||||
# Or specify exact version
|
|
||||||
pip install pyscn==0.1.0b13
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Usage
|
---
|
||||||
```bash
|
|
||||||
# Quick quality check
|
|
||||||
pyscn check .
|
|
||||||
|
|
||||||
# Comprehensive analysis
|
## Previous Releases
|
||||||
pyscn analyze --html src/
|
|
||||||
|
|
||||||
# Individual analyses (use analyze --select)
|
Beta versions (0.1.0-beta.1 through 0.8.0-beta.1) were development releases.
|
||||||
pyscn analyze --select complexity src/
|
For details, see git commit history.
|
||||||
pyscn analyze --select deadcode src/
|
|
||||||
pyscn analyze --select clones src/
|
|
||||||
pyscn analyze --select cbo src/
|
|
||||||
```
|
|
||||||
Reference in New Issue
Block a user