@@ -13,46 +13,81 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313- Git integration (compare commits, branches)
1414- F# support via FSharp.Compiler.Service
1515
16- ## [ 0.9 .0] - 2026-01-20
16+ ## [ 0.8 .0] - 2026-01-20
1717
1818### Added
1919
20+ #### Impact Classification
21+ - ** Automatic Impact Classification** - Every change is categorized by its potential impact on consumers
22+ - Breaking Public API - Changes that break external consumers (method signature changes, removed public members)
23+ - Breaking Internal API - Changes that break internal consumers (internal method renames, parameter changes)
24+ - Non-Breaking - Safe changes with no execution impact (private field renames, code reordering)
25+ - Formatting Only - Pure whitespace/comment changes
26+ - ** Visibility Tracking** - Each change includes visibility information (public, internal, private, protected)
27+ - ** Caveat Warnings** - Warnings for edge cases (e.g., "parameter rename may break named arguments")
28+ - ** Impact Filtering** - Filter changes by impact level in JSON output
29+
30+ #### Whitespace Intelligence
31+ - ** 4 Whitespace Modes** - Fine-grained whitespace handling
32+ - Exact - Preserve all whitespace (default)
33+ - IgnoreLeadingTrailing - Ignore leading/trailing whitespace
34+ - IgnoreAll - Ignore all whitespace differences
35+ - LanguageAware - Language-specific handling (exact for Python/YAML, normalized for C#/Java)
36+ - ** Automatic Issue Detection** - Detects indentation changes, mixed tabs/spaces, trailing whitespace, line ending changes
37+ - ** Whitespace Warnings** - Visual indicators in HTML output for whitespace issues
38+ - ** CLI Options** - ` --whitespace-mode ` and ` -w ` shortcut for ` --whitespace-mode ignore-all `
39+
2040#### Multi-Target Framework (Multi-TFM) Support
2141- ** Target Framework Analysis** - Analyze code differences across multiple .NET target frameworks simultaneously
2242- ** TFM-Specific Change Detection** - Identify which changes apply to specific target frameworks vs. all frameworks
2343- ** Conditional Compilation Awareness** - Properly handles ` #if ` directives and framework-specific code
2444- ** Per-TFM Semantic Analysis** - Runs full Roslyn analysis for each target framework with correct compilation symbols
45+ - ** Parallel TFM Processing** - Optimized multi-TFM analysis with parallel processing
2546
2647#### CLI Enhancements
48+ - ` --impact-level ` - Filter by impact: ` breaking-public ` , ` breaking-internal ` , ` non-breaking ` , ` all `
49+ - ` --include-non-impactful ` - Include non-breaking and formatting changes in JSON output
50+ - ` --include-formatting ` - Include formatting-only changes
51+ - ` --whitespace-mode ` - Whitespace handling mode
2752- ` --target-framework ` / ` -t ` - Specify one or more target frameworks for analysis (can be repeated)
2853- ` -T ` / ` --target-frameworks ` - Specify semicolon-separated list of target frameworks (e.g., "net8.0;net10.0")
2954- TFM validation with helpful error messages for invalid framework identifiers
3055- Support for common TFM formats: ` net8.0 ` , ` net10.0 ` , ` netcoreapp3.1 ` , ` netstandard2.0 ` , ` net462 ` , etc.
3156
3257#### Output Format Enhancements
33- - ** JSON Output** - Added ` targetFrameworks ` array in metadata and ` applicableToTfms ` per change
34- - ** HTML Output** - Displays target frameworks in summary and annotates TFM-specific changes
35- - ** Text/Plain Output** - Shows TFM annotations like ` [.NET 8.0] ` for framework-specific changes
36- - ** Terminal Output** - Rich display of multi-framework analysis results
58+ - ** Impact Indicators** - Color-coded impact badges in HTML, impact properties in JSON
59+ - ** Whitespace Warnings** - Visual indicators for whitespace issues in HTML output
60+ - ** TFM Annotations** - Target framework information in all output formats
61+ - JSON: ` targetFrameworks ` array in metadata and ` applicableToTfms ` per change
62+ - HTML: TFM badges and framework-specific indicators
63+ - Text/Plain: TFM annotations like ` [.NET 8.0] ` for framework-specific changes
3764
3865#### Architecture Improvements
66+ - ` ImpactClassifier ` - Analyzes and classifies change impact
67+ - ` WhitespaceAnalyzer ` - Detects whitespace issues
68+ - ` TfmSymbolResolver ` - Maps TFMs to preprocessor symbols
69+ - ` TfmParser ` - Validates and parses TFM strings
70+ - ` PreprocessorDirectiveDetector ` - Pre-scan optimization for conditional compilation
3971- ` TfmResultMerger ` - Intelligent merging of per-TFM analysis results
40- - ` TfmChangeCorrelator ` - Correlates changes across TFMs to identify commonalities
41- - Enhanced ` DiffResult ` model with ` TargetFrameworks ` and per-change ` ApplicableToTfms `
42- - Optimized multi-TFM analysis with parallel processing
72+ - Enhanced ` DiffResult ` model with impact breakdown and TFM metadata
73+ - Enhanced ` Change ` model with ` Impact ` , ` Visibility ` , ` Caveats ` , and ` ApplicableToTfms ` properties
4374
4475#### Documentation
45- - Comprehensive TFM support guide (` docs/tfm-support.md ` )
46- - Sample files demonstrating conditional compilation scenarios
47- - Usage examples for single and multiple framework analysis
76+ - ** Impact Classification Guide** (` docs/impact-classification.md ` ) - Complete guide to impact levels, filtering, and use cases
77+ - ** Whitespace Handling Guide** (` docs/whitespace-handling.md ` ) - Whitespace modes and best practices
78+ - ** Multi-TFM Support Guide** (` docs/tfm-support.md ` ) - Multi-target framework analysis and conditional compilation
79+ - Sample files demonstrating TFM scenarios and whitespace handling
80+ - Updated API documentation with programmatic examples
4881
4982### Changed
50- - Enhanced ` DiffOptions ` with ` TargetFrameworks ` property
51- - Updated all output formatters to handle TFM metadata
52- - Improved error messages for TFM-related validation failures
83+ - Enhanced ` DiffOptions ` with ` ImpactLevel ` , ` IncludeNonImpactful ` , ` IncludeFormatting ` , ` WhitespaceMode ` , and ` TargetFrameworks ` properties
84+ - Updated all output formatters to display impact, whitespace warnings, and TFM metadata
85+ - JSON output defaults to showing only breaking changes (` IncludeNonImpactful: false ` )
86+ - HTML output defaults to showing all changes for review
5387
5488### Performance
5589- Multi-TFM overhead is minimal (~ 2-2.5x for 3 frameworks vs. single framework)
90+ - Pre-scan optimization skips multi-TFM analysis when no ` #if ` directives exist
5691- Parallel TFM processing where possible
5792- Efficient change correlation algorithms
5893
0 commit comments