Skip to content

Releases: ANcpLua/ANcpLua.Analyzers

v1.20.0

15 Mar 22:28

Choose a tag to compare

What's New

New Diagnostics (AL0107–AL0110)

Four new [Traced] attribute validation analyzers with code fixes:

  • AL0107 (Warning): Orphaned [TracedTag] on methods without [Traced]
  • AL0108 (Info): Redundant [NoTrace] on methods already excluded
  • AL0109 (Warning): [Traced] on non-interceptable methods
  • AL0110 (Error): [TracedTag] on out/ref parameters

Infrastructure

  • Bumped ANcpLua.Roslyn.Utilities to 1.47.0
  • Bumped NuGet packages to latest stable
  • Updated existing OTel/GenAI/Metrics analyzers
  • Added .NET 11 reminder workflow

Full rule catalog: 106 diagnostics, 42 automatic code fixes.

v1.18.0

14 Feb 13:07

Choose a tag to compare

What's Changed

Refactoring

  • Decentralized diagnostic IDs: Moved from centralized DiagnosticIds registry to per-analyzer DiagnosticId constants, improving locality and reducing coupling
  • Extracted core types: DiagnosticCategories and DiagnosticSeverities moved to dedicated files from ALAnalyzer.cs
  • Removed WellKnownTypes.cs: Migrated to ANcpLua.Roslyn.Utilities

Infrastructure

  • Added ANcpLua.Roslyn.Utilities.Polyfills package for netstandard2.0 polyfill support
  • Fixed CPM declarations for SDK-injected testing packages
  • Removed deprecated InjectAllPolyfillsOnLegacy property

Full Changelog: v1.17.2...v1.18.0

v1.15.0

13 Feb 21:34

Choose a tag to compare

What's Changed

Suppression Elimination

  • Removed all 6 solution-wide NoWarn entries from Directory.Build.props (NU1701, CA1034, CA2208, CA1031, RS2008, AL0026) — all confirmed dead via Hades audit
  • Directory.Build.props now has zero warning suppressions

Release Tracking (RS2008)

  • Added AnalyzerReleases.Shipped.md documenting all 93 shipped diagnostics (AL0001-AL0093)
  • Added AnalyzerReleases.Unshipped.md for 3 upcoming diagnostics (AL0094-AL0096)

Code Fix Improvements

  • Migrated AL0074 code fix to AlCodeFixProvider<T> base class (eliminated ~20 lines boilerplate)
  • Fixed AL0016 violations in AL0031, AL0071-AL0073 code fix providers
  • Removed AL0016 suppression from CodeFixes.csproj

Other

  • Widened parameter types in AL0084 (INamedTypeSymbol → ISymbol)
  • Simplified SuppressMessage attributes in AL0084
  • Added test coverage for AL0061 and AL0064 analyzers
  • Fixed ANcpLua.NET.Sdk to 2.0.6 (2.0.7 not yet published)

v1.14.0

13 Feb 15:27
7205be9

Choose a tag to compare

What's Changed

AL0063 Rewrite

  • Rewritten from simple per-file heuristic to cross-compilation analysis
  • Collects all AddSource() registrations and ActivitySource creations across the entire compilation, reports only unmatched sources
  • Wildcard pattern support (e.g., AddSource("OpenAI.*") covers "OpenAI.Chat")
  • Foreach-over-array resolution for common registration patterns

Dependencies

  • Bump ANcpLua.Roslyn.Utilities to 1.33.0 (runtime, sources, testing, MSBuild SDKs)
  • Bump ANcpLua.NET.Sdk to 2.0.5
  • Suppress MSB3277 in CodeFixes for System.Threading.Tasks.Extensions assembly version conflict

v1.5.1 - Code Quality Improvements

02 Jan 09:18

Choose a tag to compare

Changes

Refactoring

  • Implement WellKnownType pattern for AL0020-24 analyzer (efficient cached symbol resolution)
  • Simplify AL0015 analyzer config reading with helper methods
  • Fix IDE warnings (use ISymbol parameter types, add static to lambdas)
  • Remove default DocFX logo from documentation site

No behavioral changes - internal code quality improvements only.

Full Changelog

v1.5.0...v1.5.1

v1.5.0 - ASP.NET Core Form Binding Analyzers

02 Jan 08:09

Choose a tag to compare

New Analyzers

This release adds 5 new analyzers for validating ASP.NET Core Minimal API form binding patterns:

Rule Severity Description
AL0020 Error IFormCollection requires explicit [FromForm] attribute
AL0021 Error Multiple structured form sources not allowed
AL0022 Error Cannot mix IFormCollection with DTO binding
AL0023 Error Unsupported form type (interface/abstract/no valid constructor)
AL0024 Error [FromForm] and [FromBody] conflict in same method

Full Changelog

v1.4.0...v1.5.0

v1.3.6

02 Jan 04:00

Choose a tag to compare

Changes

Bug Fix

  • Fixed NuGet publish CI failure by disabling snupkg generation
    • Analyzers don't include debug symbols, causing empty snupkg uploads to fail

v1.3.5

02 Jan 03:57

Choose a tag to compare

Changes

CI Fixes

  • Replaced Version.props symlink with standalone version file for CI compatibility
  • Updated package versions for CI builds:
    • Basic.Reference.Assemblies.Net100: 1.8.4
    • Microsoft.CodeAnalysis.*.Testing: 1.1.2

Documentation

  • Updated README with ANcpLua.NET.Sdk integration documentation
  • Added Guard Clauses and Test Base Classes examples
  • Fixed documentation links to point to new docs/rules/ path

v1.3.4

02 Jan 03:49

Choose a tag to compare

Changes

Documentation

  • Added DocFX documentation site with GitHub Pages deployment
  • Reorganized rule documentation into docs/rules/ with proper navigation
  • Created landing page and API reference structure
  • Automatic deployment via GitHub Actions workflow

Build

  • Enabled XML documentation generation for API docs
  • Fixed duplicate package references in test project

Documentation Site

After enabling GitHub Pages in repository settings, documentation will be available at:
https://ancplua.github.io/ANcpLua.Analyzers/

Structure:

  • Home - Overview and quick start
  • Rules - All 17 analyzer rules (AL0001-AL0017)
  • API Reference - Auto-generated from XML comments

v1.3.3

02 Jan 03:43

Choose a tag to compare

Changes

Refactoring

  • Tests: Condensed analyzer test files using parameterized InlineData patterns

    • AL0001, AL0002, AL0003, AL0010, AL0014, AL0015 reduced by 40-70%
    • Replaced verbose multi-line raw strings with concise single-line InlineData
  • Code Fixes: Optimized code fix providers

    • AR0001: Unified 4 duplicate methods into generic RenameNodeAsync<T>
    • AL0004: Consolidated array processing with switch expression

Stats

  • 17 files changed
  • 598 insertions, 985 deletions (-387 net)