Release v0.8.0
Major feature release consolidating three significant enhancements to roslyn-diff.
π― Impact Classification
Automatically categorizes every code change by its potential impact on consumers:
- Breaking Public API - Changes that break external consumers (method signature changes, removed public members)
- Breaking Internal API - Changes that break internal consumers (internal method renames, parameter changes)
- Non-Breaking - Safe changes with no execution impact (private field renames, code reordering)
- Formatting Only - Pure whitespace/comment changes
Each change includes visibility tracking and caveat warnings. See Impact Classification Guide for details.
π Whitespace Intelligence
Fine-grained whitespace handling with language-aware detection:
- 4 Whitespace Modes: Exact, IgnoreLeadingTrailing, IgnoreAll, LanguageAware
- Automatic Issue Detection: Indentation changes, mixed tabs/spaces, trailing whitespace, line ending changes
- Language-Specific Handling: Exact mode for Python/YAML (whitespace-significant), normalized for C#/Java
See Whitespace Handling Guide for comprehensive details.
π― Multi-Target Framework Support
Analyze code differences across multiple .NET target frameworks simultaneously:
- TFM-Specific Change Detection - Identify which changes apply to specific target frameworks vs. all frameworks
- Conditional Compilation Awareness - Properly handles
#ifdirectives and framework-specific code - Per-TFM Semantic Analysis - Runs full Roslyn analysis for each target framework with correct compilation symbols
- Parallel TFM Processing - Optimized multi-TFM analysis with parallel processing
See Multi-TFM Support Guide for details.
π Usage Examples
Impact Classification
# Filter to breaking changes only
roslyn-diff diff old.cs new.cs --impact-level breaking-public --json
# Include all changes for review
roslyn-diff diff old.cs new.cs --html report.htmlWhitespace Intelligence
# Ignore all whitespace
roslyn-diff diff old.cs new.cs -w
# Language-aware mode
roslyn-diff diff old.py new.py --whitespace-mode language-awareMulti-TFM Analysis
# Single TFM
roslyn-diff diff old.cs new.cs -t net8.0
# Multiple TFMs
roslyn-diff diff old.cs new.cs -t net8.0 -t net10.0
# Semicolon-separated
roslyn-diff diff old.cs new.cs -T "net8.0;net10.0"
# Combined with other features
roslyn-diff diff old.cs new.cs -t net8.0 -t net10.0 --impact-level breaking-public --jsonπ Documentation
- Impact Classification Guide
- Whitespace Handling Guide
- Multi-TFM Support Guide
- API Documentation
- Output Formats
π§ͺ Test Results
- Total Tests: 3,424 (all passing)
- New Tests: 528 tests added
- Regressions: 0
- Pass Rate: 100%
- Platforms: Ubuntu, macOS, Windows
β‘ Performance
- Impact Classification: Minimal overhead
- Whitespace Analysis: Negligible impact
- Multi-TFM Analysis: ~2-2.5x overhead for 3 frameworks (parallelized)
- Pre-scan Optimization: Skips multi-TFM when no
#ifdirectives exist
π§ Breaking Changes
None - all new features are opt-in via CLI flags.
π Full Changelog
See CHANGELOG.md for complete details.
Full Diff: v0.7.0...v0.8.0