Skip to content

v0.8.0 - Impact Classification, Whitespace Intelligence & Multi-TFM Support

Latest

Choose a tag to compare

@randlee randlee released this 21 Jan 00:18
b3ac1b0

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 #if directives 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.html

Whitespace 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-aware

Multi-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

πŸ§ͺ 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 #if directives 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