Releases: dora56/dotnet-coupling
Release list
v0.6.1
Changelog
All notable changes to dotnet-coupling are collected here.
0.6.1
Patch release focused on analysis and CI feedback reliability.
Changed
- Cyclomatic and Cognitive Complexity now follow the
sonar-dotnet 10.27
C# metric profile for supported member scopes, including logical sequences,
nesting, recursion, local functions, null-flow operators, and C# patterns. - Namespace cycle detection now uses analyzed component metadata instead of
inferring namespaces by trimming component identifiers, preventing nested
types from creating pseudo-namespace cycles. - Coverage reporting uses octocov for line coverage, main-branch diffs, Job
Summary, and same-repository PR comments. Branch coverage remains visible as
an octocov custom metric. - Self-benchmark CI now stores a semantic report, enforces a Grade C floor, and
rejects new High or Critical issues relative toorigin/main. - Nightly mutation testing now runs separate Core and Roslyn complexity suites.
Compatibility Notes
- Complexity values and hotspot order can change because the metric profile was
corrected. Complexity still does not affect Grade, issue severity, issue
count,--fail-on, or--check. - CLI options, exit codes, JSON schema shapes, and NuGet package identity are
unchanged. - Syntax mode remains the default and semantic mode remains explicit preview
functionality.
0.6.0
Phase 6 turns coupling reports into an investigation aid while preserving the
existing project health gate.
Added
--impact <component>with bounded, cycle-safe reverse dependency paths,
affected project/namespace sets, and explainable risk reasons.--trace <symbol>for semantic type/member caller evidence, including direct
source member and location data.--depth <N>for impact/trace traversal; the default is3and0is
unlimited.- Markdown reports, deterministic coding-agent handoff through
--ai, and
Japanese human-readable output through--jp/--japanese. - Configurable cyclomatic/cognitive thresholds and complexity weight under
prioritizationfor Hotspots, Impact, and AI priority evidence. - JSON report schema
0.5with optionalimpactandtracefields. - Self, Humanizer, FluentValidation, MediatR, and eShopOnWeb dogfooding evidence.
Changed
- Semantic observations now retain stable source and target member identities,
including methods, constructors, accessors, local functions, and operators. - AI and Markdown output preserve observed issue evidence, recommendations,
locations, priority reasons, diagnostics, and analysis blind spots. - Circular-dependency hotspots are ranked by actual namespace participant
instead of treating a renderedA -> Bcycle path as a component. - Impact boundary state is preserved across transitive paths and traversed-edge
scoring is linear in the analyzed graph size.
Compatibility Notes
syntaxremains the default mode;--tracerequires explicit semantic mode.- Grade, issue severity, issue counts,
--fail-on, and--checkare unchanged
by investigation and presentation options. - Existing report schemas
0.1through0.4remain selected for their existing
scenarios. Schema0.5is used only when impact or trace data is requested. - The previous public
AnalysisOptionsconstructor remains available and uses
default prioritization values. - NuGet package identity and existing CLI options remain unchanged.
0.5.0
Phase 5 adds config-informed prioritization so coupling findings can reflect
the system's domain context and the complexity of the code that must be changed.
Added
- TOML configuration through explicit
--configfiles and automatic discovery
of.coupling.toml/coupling.toml, implemented with Tomlyn. - Domain Context configuration for subdomain category, expected volatility,
strategic boundary hints, and technical area roles. AccidentalVolatilitydetection to distinguish expected business change from
churn caused by design or implementation friction.- Role-aware score calibration for contracts and composition roots while
preserving observed coupling evidence. - Domain Context and Role Context coverage in summary and JSON output so partial
configuration remains visible. - Syntax-based cyclomatic and cognitive complexity metrics for methods and types.
- Complexity-assisted
--hotspotsranking with explicit priority reasons. - JSON report schema
0.4with optionalhotspots[].complexitydata. - Self, OSS, and DDD sample dogfooding evidence for Domain Context calibration
and complexity-assisted ranking.
Changed
- Configuration loading now normalizes JSON and TOML into the same validated
internal model, including unknown-property and invalid-value diagnostics. - Hotspot priority can be increased by high complexity, but complexity does not
change Grade, issue severity, issue count,--fail-on, or--checkbehavior. - Core, Git, and Roslyn sources are organized by responsibility, with compiled
architecture and structural fitness tests protecting module boundaries.
Compatibility Notes
syntaxmode remains the default;semanticmode remains explicit preview
functionality.- Existing JSON configuration and report schemas
0.1through0.3remain
supported. Schema0.4is selected only for complexity-bearing hotspot JSON. - Existing CLI option names, exit codes, and NuGet package identity are unchanged.
0.4.0
Phase 4 moves dotnet-coupling into PR feedback and team workflow use.
Added
- SARIF 2.1.0 output through
--sarif, generated with Microsoft'sSarif.Sdk. - GitHub Code Scanning friendly SARIF paths, rules, severity levels, and stable partial fingerprints.
--hotspots [N]for ranking active coupling repair candidates.- JSON report schema
0.3with optionalhotspotsandsuppressedIssues. - Precise
.coupling.jsonsuppressions viaignore.issueswith required reasons. - GitHub Actions SARIF and baseline gate examples.
- CI coupling feedback artifacts for SARIF and hotspots.
Changed
- Suppressed issues are excluded from active issue counts, grade calculation,
--check, and SARIF upload while remaining visible in summary and JSON output. - CI report aggregation now includes coverage and coupling feedback, plus mutation availability status when no Stryker report is produced.
- Test execution is aligned with Microsoft Testing Platform.
- Mutation moved out of PR CI into a scheduled/manual
nightly-mutationworkflow; local Stryker runs remain supported for focused checks.
Compatibility Notes
syntaxmode remains the default.semanticmode remains preview-only and must be enabled explicitly.- Existing CLI options, NuGet package identity, and JSON schema
0.1/0.2contracts remain compatible.
0.3.1
Patch release for release-workflow hardening and public entrypoint documentation.
Added
- Expanded README with badges, quick start, CI usage, baseline guidance, and syntax vs semantic mode explanation.
self-benchmarkCI job that verifies the packed tool can analyze the repository with--check --min-grade A --no-git.
Changed
- GitHub Actions artifact upload updated to
actions/upload-artifact@v7. - CI local tool install steps read the package version from
Directory.Build.propsinstead of hardcoding0.3.0.
Compatibility Notes
- CLI options and behavior are unchanged from
0.3.0. - JSON schema version remains unchanged.
semanticmode remains preview-only.
0.3.0
Phase 3 release for project-model loading and semantic-preview foundation.
Added
- Project-model loading for
.csproj,.sln, and.slnxinputs. - Explicit
--mode syntax|semanticwithsyntaxas the default. - Semantic preview loading through
MSBuildWorkspace. - Project / assembly / package metadata in JSON output.
- Workspace load diagnostics as recoverable report evidence.
- Syntax vs semantic compare artifacts for self, OSS, and synthetic dogfooding.
- ArchUnitNET boundary tests and semantic regression coverage for reflection, service locator, dynamic dispatch, and project-model edge cases.
Compatibility Notes
syntaxmode preserves the existing CLI and JSON contract.semanticmode is preview-only and must be enabled explicitly.- JSON schema stays backward-compatible through optional fields such as
projectModeland manifest diagnostics.
0.2.0-alpha.1
Phase 2 public alpha for feedback-driven team use.
Added
- JSON configuration via
--config,.coupling.json, andcoupling.json. - Configurable fan-in/out, temporal coupling, and scattered external coupling thresholds.
- Ignore rules for paths, namespaces, and issue types.
- Baseline comparison via
--baseline <ref>. - Ratchet gate via
--check --baseline, failing only on new issues at the configured severity threshold. - JSON report schema
0.2when baseline data is present. - JSON config schema
dotnet-coupling-config-0.2.schema.json.
Known Limitations
- TOML configuration is not supported.
- SARIF, hotspots, impact, trace, and complexity-assisted prioritization were deferred from this release.
0.1.0-alpha.1
First public alpha of dotnet-coupling.
Added
- Syntax-only C# coupling analysis.
- Git volatility and temporal co-change analysis.
- Text, summary, and JSON output.
- JSON report schema
0.1. - CI check mode with
--check,--min-grade, and--fail-on.
Known Limitations
- Semantic symbol resolution was not enabled.
.slnx,.sln, and.csprojworkspace loading was not enabled.- Runtime DI container resolution was not analyzed.
- Reflection and
dynamiccalls may be incomplete. - Generated code is excluded by default.
What's Changed
- docs(roadmap): mark Phase 6 release complete by @dora56 in #26
- fix: improve v0.6.1 analysis reliability by @dora56 in #27
Full Changelog...
v0.6.0
Changelog
All notable changes to dotnet-coupling are collected here.
0.6.0
Phase 6 turns coupling reports into an investigation aid while preserving the
existing project health gate.
Added
--impact <component>with bounded, cycle-safe reverse dependency paths,
affected project/namespace sets, and explainable risk reasons.--trace <symbol>for semantic type/member caller evidence, including direct
source member and location data.--depth <N>for impact/trace traversal; the default is3and0is
unlimited.- Markdown reports, deterministic coding-agent handoff through
--ai, and
Japanese human-readable output through--jp/--japanese. - Configurable cyclomatic/cognitive thresholds and complexity weight under
prioritizationfor Hotspots, Impact, and AI priority evidence. - JSON report schema
0.5with optionalimpactandtracefields. - Self, Humanizer, FluentValidation, MediatR, and eShopOnWeb dogfooding evidence.
Changed
- Semantic observations now retain stable source and target member identities,
including methods, constructors, accessors, local functions, and operators. - AI and Markdown output preserve observed issue evidence, recommendations,
locations, priority reasons, diagnostics, and analysis blind spots. - Circular-dependency hotspots are ranked by actual namespace participant
instead of treating a renderedA -> Bcycle path as a component. - Impact boundary state is preserved across transitive paths and traversed-edge
scoring is linear in the analyzed graph size.
Compatibility Notes
syntaxremains the default mode;--tracerequires explicit semantic mode.- Grade, issue severity, issue counts,
--fail-on, and--checkare unchanged
by investigation and presentation options. - Existing report schemas
0.1through0.4remain selected for their existing
scenarios. Schema0.5is used only when impact or trace data is requested. - The previous public
AnalysisOptionsconstructor remains available and uses
default prioritization values. - NuGet package identity and existing CLI options remain unchanged.
0.5.0
Phase 5 adds config-informed prioritization so coupling findings can reflect
the system's domain context and the complexity of the code that must be changed.
Added
- TOML configuration through explicit
--configfiles and automatic discovery
of.coupling.toml/coupling.toml, implemented with Tomlyn. - Domain Context configuration for subdomain category, expected volatility,
strategic boundary hints, and technical area roles. AccidentalVolatilitydetection to distinguish expected business change from
churn caused by design or implementation friction.- Role-aware score calibration for contracts and composition roots while
preserving observed coupling evidence. - Domain Context and Role Context coverage in summary and JSON output so partial
configuration remains visible. - Syntax-based cyclomatic and cognitive complexity metrics for methods and types.
- Complexity-assisted
--hotspotsranking with explicit priority reasons. - JSON report schema
0.4with optionalhotspots[].complexitydata. - Self, OSS, and DDD sample dogfooding evidence for Domain Context calibration
and complexity-assisted ranking.
Changed
- Configuration loading now normalizes JSON and TOML into the same validated
internal model, including unknown-property and invalid-value diagnostics. - Hotspot priority can be increased by high complexity, but complexity does not
change Grade, issue severity, issue count,--fail-on, or--checkbehavior. - Core, Git, and Roslyn sources are organized by responsibility, with compiled
architecture and structural fitness tests protecting module boundaries.
Compatibility Notes
syntaxmode remains the default;semanticmode remains explicit preview
functionality.- Existing JSON configuration and report schemas
0.1through0.3remain
supported. Schema0.4is selected only for complexity-bearing hotspot JSON. - Existing CLI option names, exit codes, and NuGet package identity are unchanged.
0.4.0
Phase 4 moves dotnet-coupling into PR feedback and team workflow use.
Added
- SARIF 2.1.0 output through
--sarif, generated with Microsoft'sSarif.Sdk. - GitHub Code Scanning friendly SARIF paths, rules, severity levels, and stable partial fingerprints.
--hotspots [N]for ranking active coupling repair candidates.- JSON report schema
0.3with optionalhotspotsandsuppressedIssues. - Precise
.coupling.jsonsuppressions viaignore.issueswith required reasons. - GitHub Actions SARIF and baseline gate examples.
- CI coupling feedback artifacts for SARIF and hotspots.
Changed
- Suppressed issues are excluded from active issue counts, grade calculation,
--check, and SARIF upload while remaining visible in summary and JSON output. - CI report aggregation now includes coverage and coupling feedback, plus mutation availability status when no Stryker report is produced.
- Test execution is aligned with Microsoft Testing Platform.
- Mutation moved out of PR CI into a scheduled/manual
nightly-mutationworkflow; local Stryker runs remain supported for focused checks.
Compatibility Notes
syntaxmode remains the default.semanticmode remains preview-only and must be enabled explicitly.- Existing CLI options, NuGet package identity, and JSON schema
0.1/0.2contracts remain compatible.
0.3.1
Patch release for release-workflow hardening and public entrypoint documentation.
Added
- Expanded README with badges, quick start, CI usage, baseline guidance, and syntax vs semantic mode explanation.
self-benchmarkCI job that verifies the packed tool can analyze the repository with--check --min-grade A --no-git.
Changed
- GitHub Actions artifact upload updated to
actions/upload-artifact@v7. - CI local tool install steps read the package version from
Directory.Build.propsinstead of hardcoding0.3.0.
Compatibility Notes
- CLI options and behavior are unchanged from
0.3.0. - JSON schema version remains unchanged.
semanticmode remains preview-only.
0.3.0
Phase 3 release for project-model loading and semantic-preview foundation.
Added
- Project-model loading for
.csproj,.sln, and.slnxinputs. - Explicit
--mode syntax|semanticwithsyntaxas the default. - Semantic preview loading through
MSBuildWorkspace. - Project / assembly / package metadata in JSON output.
- Workspace load diagnostics as recoverable report evidence.
- Syntax vs semantic compare artifacts for self, OSS, and synthetic dogfooding.
- ArchUnitNET boundary tests and semantic regression coverage for reflection, service locator, dynamic dispatch, and project-model edge cases.
Compatibility Notes
syntaxmode preserves the existing CLI and JSON contract.semanticmode is preview-only and must be enabled explicitly.- JSON schema stays backward-compatible through optional fields such as
projectModeland manifest diagnostics.
0.2.0-alpha.1
Phase 2 public alpha for feedback-driven team use.
Added
- JSON configuration via
--config,.coupling.json, andcoupling.json. - Configurable fan-in/out, temporal coupling, and scattered external coupling thresholds.
- Ignore rules for paths, namespaces, and issue types.
- Baseline comparison via
--baseline <ref>. - Ratchet gate via
--check --baseline, failing only on new issues at the configured severity threshold. - JSON report schema
0.2when baseline data is present. - JSON config schema
dotnet-coupling-config-0.2.schema.json.
Known Limitations
- TOML configuration is not supported.
- SARIF, hotspots, impact, trace, and complexity-assisted prioritization were deferred from this release.
0.1.0-alpha.1
First public alpha of dotnet-coupling.
Added
- Syntax-only C# coupling analysis.
- Git volatility and temporal co-change analysis.
- Text, summary, and JSON output.
- JSON report schema
0.1. - CI check mode with
--check,--min-grade, and--fail-on.
Known Limitations
- Semantic symbol resolution was not enabled.
.slnx,.sln, and.csprojworkspace loading was not enabled.- Runtime DI container resolution was not analyzed.
- Reflection and
dynamiccalls may be incomplete. - Generated code is excluded by default.
What's Changed
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Changelog
All notable changes to dotnet-coupling are collected here.
0.5.0
Phase 5 adds config-informed prioritization so coupling findings can reflect
the system's domain context and the complexity of the code that must be changed.
Added
- TOML configuration through explicit
--configfiles and automatic discovery
of.coupling.toml/coupling.toml, implemented with Tomlyn. - Domain Context configuration for subdomain category, expected volatility,
strategic boundary hints, and technical area roles. AccidentalVolatilitydetection to distinguish expected business change from
churn caused by design or implementation friction.- Role-aware score calibration for contracts and composition roots while
preserving observed coupling evidence. - Domain Context and Role Context coverage in summary and JSON output so partial
configuration remains visible. - Syntax-based cyclomatic and cognitive complexity metrics for methods and types.
- Complexity-assisted
--hotspotsranking with explicit priority reasons. - JSON report schema
0.4with optionalhotspots[].complexitydata. - Self, OSS, and DDD sample dogfooding evidence for Domain Context calibration
and complexity-assisted ranking.
Changed
- Configuration loading now normalizes JSON and TOML into the same validated
internal model, including unknown-property and invalid-value diagnostics. - Hotspot priority can be increased by high complexity, but complexity does not
change Grade, issue severity, issue count,--fail-on, or--checkbehavior. - Core, Git, and Roslyn sources are organized by responsibility, with compiled
architecture and structural fitness tests protecting module boundaries.
Compatibility Notes
syntaxmode remains the default;semanticmode remains explicit preview
functionality.- Existing JSON configuration and report schemas
0.1through0.3remain
supported. Schema0.4is selected only for complexity-bearing hotspot JSON. - Existing CLI option names, exit codes, and NuGet package identity are unchanged.
0.4.0
Phase 4 moves dotnet-coupling into PR feedback and team workflow use.
Added
- SARIF 2.1.0 output through
--sarif, generated with Microsoft'sSarif.Sdk. - GitHub Code Scanning friendly SARIF paths, rules, severity levels, and stable partial fingerprints.
--hotspots [N]for ranking active coupling repair candidates.- JSON report schema
0.3with optionalhotspotsandsuppressedIssues. - Precise
.coupling.jsonsuppressions viaignore.issueswith required reasons. - GitHub Actions SARIF and baseline gate examples.
- CI coupling feedback artifacts for SARIF and hotspots.
Changed
- Suppressed issues are excluded from active issue counts, grade calculation,
--check, and SARIF upload while remaining visible in summary and JSON output. - CI report aggregation now includes coverage and coupling feedback, plus mutation availability status when no Stryker report is produced.
- Test execution is aligned with Microsoft Testing Platform.
- Mutation moved out of PR CI into a scheduled/manual
nightly-mutationworkflow; local Stryker runs remain supported for focused checks.
Compatibility Notes
syntaxmode remains the default.semanticmode remains preview-only and must be enabled explicitly.- Existing CLI options, NuGet package identity, and JSON schema
0.1/0.2contracts remain compatible.
0.3.1
Patch release for release-workflow hardening and public entrypoint documentation.
Added
- Expanded README with badges, quick start, CI usage, baseline guidance, and syntax vs semantic mode explanation.
self-benchmarkCI job that verifies the packed tool can analyze the repository with--check --min-grade A --no-git.
Changed
- GitHub Actions artifact upload updated to
actions/upload-artifact@v7. - CI local tool install steps read the package version from
Directory.Build.propsinstead of hardcoding0.3.0.
Compatibility Notes
- CLI options and behavior are unchanged from
0.3.0. - JSON schema version remains unchanged.
semanticmode remains preview-only.
0.3.0
Phase 3 release for project-model loading and semantic-preview foundation.
Added
- Project-model loading for
.csproj,.sln, and.slnxinputs. - Explicit
--mode syntax|semanticwithsyntaxas the default. - Semantic preview loading through
MSBuildWorkspace. - Project / assembly / package metadata in JSON output.
- Workspace load diagnostics as recoverable report evidence.
- Syntax vs semantic compare artifacts for self, OSS, and synthetic dogfooding.
- ArchUnitNET boundary tests and semantic regression coverage for reflection, service locator, dynamic dispatch, and project-model edge cases.
Compatibility Notes
syntaxmode preserves the existing CLI and JSON contract.semanticmode is preview-only and must be enabled explicitly.- JSON schema stays backward-compatible through optional fields such as
projectModeland manifest diagnostics.
0.2.0-alpha.1
Phase 2 public alpha for feedback-driven team use.
Added
- JSON configuration via
--config,.coupling.json, andcoupling.json. - Configurable fan-in/out, temporal coupling, and scattered external coupling thresholds.
- Ignore rules for paths, namespaces, and issue types.
- Baseline comparison via
--baseline <ref>. - Ratchet gate via
--check --baseline, failing only on new issues at the configured severity threshold. - JSON report schema
0.2when baseline data is present. - JSON config schema
dotnet-coupling-config-0.2.schema.json.
Known Limitations
- TOML configuration is not supported.
- SARIF, hotspots, impact, trace, and complexity-assisted prioritization were deferred from this release.
0.1.0-alpha.1
First public alpha of dotnet-coupling.
Added
- Syntax-only C# coupling analysis.
- Git volatility and temporal co-change analysis.
- Text, summary, and JSON output.
- JSON report schema
0.1. - CI check mode with
--check,--min-grade, and--fail-on.
Known Limitations
- Semantic symbol resolution was not enabled.
.slnx,.sln, and.csprojworkspace loading was not enabled.- Runtime DI container resolution was not analyzed.
- Reflection and
dynamiccalls may be incomplete. - Generated code is excluded by default.
What's Changed
- [codex] Add TOML configuration support by @dora56 in #20
- feat: complete phase 5 domain context calibration by @dora56 in #23
- feat: add Phase 5 config-informed prioritization by @dora56 in #24
Full Changelog: v0.4.0...v0.5.0
v0.4.0
Changelog
All notable changes to dotnet-coupling are collected here.
0.4.0
Phase 4 moves dotnet-coupling into PR feedback and team workflow use.
Added
- SARIF 2.1.0 output through
--sarif, generated with Microsoft'sSarif.Sdk. - GitHub Code Scanning friendly SARIF paths, rules, severity levels, and stable partial fingerprints.
--hotspots [N]for ranking active coupling repair candidates.- JSON report schema
0.3with optionalhotspotsandsuppressedIssues. - Precise
.coupling.jsonsuppressions viaignore.issueswith required reasons. - GitHub Actions SARIF and baseline gate examples.
- CI coupling feedback artifacts for SARIF and hotspots.
Changed
- Suppressed issues are excluded from active issue counts, grade calculation,
--check, and SARIF upload while remaining visible in summary and JSON output. - CI report aggregation now includes coverage and coupling feedback, plus mutation availability status when no Stryker report is produced.
- Test execution is aligned with Microsoft Testing Platform.
- Mutation moved out of PR CI into a scheduled/manual
nightly-mutationworkflow; local Stryker runs remain supported for focused checks.
Compatibility Notes
syntaxmode remains the default.semanticmode remains preview-only and must be enabled explicitly.- Existing CLI options, NuGet package identity, and JSON schema
0.1/0.2contracts remain compatible.
0.3.1
Patch release for release-workflow hardening and public entrypoint documentation.
Added
- Expanded README with badges, quick start, CI usage, baseline guidance, and syntax vs semantic mode explanation.
self-benchmarkCI job that verifies the packed tool can analyze the repository with--check --min-grade A --no-git.
Changed
- GitHub Actions artifact upload updated to
actions/upload-artifact@v7. - CI local tool install steps read the package version from
Directory.Build.propsinstead of hardcoding0.3.0.
Compatibility Notes
- CLI options and behavior are unchanged from
0.3.0. - JSON schema version remains unchanged.
semanticmode remains preview-only.
0.3.0
Phase 3 release for project-model loading and semantic-preview foundation.
Added
- Project-model loading for
.csproj,.sln, and.slnxinputs. - Explicit
--mode syntax|semanticwithsyntaxas the default. - Semantic preview loading through
MSBuildWorkspace. - Project / assembly / package metadata in JSON output.
- Workspace load diagnostics as recoverable report evidence.
- Syntax vs semantic compare artifacts for self, OSS, and synthetic dogfooding.
- ArchUnitNET boundary tests and semantic regression coverage for reflection, service locator, dynamic dispatch, and project-model edge cases.
Compatibility Notes
syntaxmode preserves the existing CLI and JSON contract.semanticmode is preview-only and must be enabled explicitly.- JSON schema stays backward-compatible through optional fields such as
projectModeland manifest diagnostics.
0.2.0-alpha.1
Phase 2 public alpha for feedback-driven team use.
Added
- JSON configuration via
--config,.coupling.json, andcoupling.json. - Configurable fan-in/out, temporal coupling, and scattered external coupling thresholds.
- Ignore rules for paths, namespaces, and issue types.
- Baseline comparison via
--baseline <ref>. - Ratchet gate via
--check --baseline, failing only on new issues at the configured severity threshold. - JSON report schema
0.2when baseline data is present. - JSON config schema
dotnet-coupling-config-0.2.schema.json.
Known Limitations
- TOML configuration is not supported.
- SARIF, hotspots, impact, trace, and complexity-assisted prioritization were deferred from this release.
0.1.0-alpha.1
First public alpha of dotnet-coupling.
Added
- Syntax-only C# coupling analysis.
- Git volatility and temporal co-change analysis.
- Text, summary, and JSON output.
- JSON report schema
0.1. - CI check mode with
--check,--min-grade, and--fail-on.
Known Limitations
- Semantic symbol resolution was not enabled.
.slnx,.sln, and.csprojworkspace loading was not enabled.- Runtime DI container resolution was not analyzed.
- Reflection and
dynamiccalls may be incomplete. - Generated code is excluded by default.
What's Changed
- ci: add summary and artifact reuse for reports by @dora56 in #16
- ci: skip mutation on main pushes by @dora56 in #17
- [codex] Phase 4 PR feedback workflow by @dora56 in #18
- docs: mark Phase 4 ready for release by @dora56 in #19
Full Changelog: v0.3.1...v0.4.0
v0.3.1
dotnet-coupling 0.3.1
0.3.1 is a patch release that hardens the release workflow and improves the
project's public entrypoint documentation without changing the CLI or JSON
contract introduced in 0.3.0.
Included
- expanded
README.mdwith badges, quick start, CI usage, baseline guidance,
and a clearer explanation of syntax vs semantic mode - GitHub Actions artifact upload updated to
actions/upload-artifact@v7 - local tool install steps in CI now read the package version from
Directory.Build.propsinstead of hardcoding0.3.0 - a
self-benchmarkCI job that verifies the packed tool can analyze the
repository with--check --min-grade A --no-git
Compatibility Notes
- CLI options and behavior are unchanged from
0.3.0 - JSON schema version remains unchanged
semanticmode remains preview-only and must still be enabled explicitly
Known Limitations
- semantic preview still depends on workspace prerequisites being loadable
- runtime DI container dependencies are not analyzed
- some reflection and
dynamicflows remain unresolved or syntax-equivalent - mutation remains part of CI quality gates rather than the release workflow
What's Changed
- ci: bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #1
- ci: bump actions/setup-dotnet from 4 to 5 by @dependabot[bot] in #2
- ci: bump actions/checkout from 4 to 7 by @dependabot[bot] in #3
- ci: bump actions/cache from 4 to 6 by @dependabot[bot] in #4
- deps: Bump coverlet.collector from 6.0.4 to 10.0.1 by @dependabot[bot] in #5
- deps: Bump Microsoft.CodeAnalysis.CSharp from 4.14.0 to 5.3.0 by @dependabot[bot] in #6
- docs: record phase 2 OSS dogfooding by @dora56 in #9
- fix: harden phase 2 dogfooding findings by @dora56 in #12
- docs: refine phase 3 roadmap entry gate by @dora56 in #13
- feat(analysis): add phase 3 project model foundation by @dora56 in #14
- ci: bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #7
- chore(release): prepare 0.3.1 by @dora56 in #15
New Contributors
- @dependabot[bot] made their first contribution in #1
- @dora56 made their first contribution in #9
Full Changelog: v0.2.0-alpha.1...v0.3.1
v0.3.0
dotnet-coupling 0.3.0
0.3.0 closes Phase 3 and promotes the project-model and semantic-preview
foundation from roadmap work into the released tool.
Included
- project-model loading for
.csproj,.sln, and.slnxinputs - explicit
--mode syntax|semanticwithsyntaxas the default - semantic preview loading through
MSBuildWorkspace - project / assembly / package metadata in JSON output
- workspace load diagnostics as recoverable report evidence
- syntax vs semantic compare artifacts for self, OSS, and synthetic dogfooding
- ArchUnitNET boundary tests plus semantic regression coverage for reflection,
service locator, dynamic dispatch, and project-model edge cases - compare artifact hardening so metric and diagnostic diffs are visible without
changing the CLI summary contract
Compatibility Notes
syntaxmode remains the default and preserves the existing CLI / JSON
contractsemanticmode is still a preview and must be enabled explicitly- JSON schema stays backward-compatible through optional fields such as
projectModeland manifest diagnostics
Known Limitations
- semantic preview still depends on target workspace prerequisites being
loadable in the executing environment - some reflection, runtime DI container, and dynamic flows remain unresolved or
syntax-equivalent - semantic compare deltas may expand coupling counts significantly on richer
codebases; use the compare artifacts to inspect whether the delta is expected - SARIF, hotspots, impact, trace, and complexity-assisted prioritization remain
future features
What's Changed
- ci: bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #1
- ci: bump actions/setup-dotnet from 4 to 5 by @dependabot[bot] in #2
- ci: bump actions/checkout from 4 to 7 by @dependabot[bot] in #3
- ci: bump actions/cache from 4 to 6 by @dependabot[bot] in #4
- deps: Bump coverlet.collector from 6.0.4 to 10.0.1 by @dependabot[bot] in #5
- deps: Bump Microsoft.CodeAnalysis.CSharp from 4.14.0 to 5.3.0 by @dependabot[bot] in #6
- docs: record phase 2 OSS dogfooding by @dora56 in #9
- fix: harden phase 2 dogfooding findings by @dora56 in #12
- docs: refine phase 3 roadmap entry gate by @dora56 in #13
- feat(analysis): add phase 3 project model foundation by @dora56 in #14
New Contributors
- @dependabot[bot] made their first contribution in #1
- @dora56 made their first contribution in #9
Full Changelog: v0.2.0-alpha.1...v0.3.0
v0.2.0-alpha.1
dotnet-coupling 0.2.0-alpha.1
0.2.0-alpha.1 is the Phase 2 public alpha for feedback-driven team use.
Included
- JSON configuration via
--config,.coupling.json, andcoupling.json. - Configurable fan-in/out, temporal coupling, and scattered external coupling thresholds.
- Ignore rules for paths, namespaces, and issue types.
- Baseline comparison via
--baseline <ref>. - Ratchet gate via
--check --baseline, failing only on new issues at the configured severity threshold. - JSON report schema version
0.2when baseline data is present. - JSON config schema
dotnet-coupling-config-0.2.schema.json.
Known Limitations
- Semantic symbol resolution is not enabled.
- Baseline comparison uses syntax-only issue keys and excludes Hidden Coupling from diffing.
- TOML configuration is not supported yet.
- SARIF, hotspots, impact, trace, and complexity-assisted prioritization remain future features.
Full Changelog: https://github.com/dora56/dotnet-coupling/commits/v0.2.0-alpha.1