Rethinking LinterCop: Preparing for the Next Chapter
LinterCop, a code analyzer for AL, faces architectural limitations that require fundamental redesign. The post explains tight coupling with the AL language, distribution challenges through GitHub, scope creep as a "Swiss Army Knife," and DevOps integration issues, leading to a proposed LinterCop 2.0 rebuild.
post Vondervoort.be
"Maintaining backward compatibility with third-party analyzers would slow down their own development. It's a trade-off that makes sense for me."
Key points
- LinterCop generates 50 assets per release due to AL language version dependencies and breaking changes between versions
- GitHub release distribution has rate limiting issues; moving to NuGet would require creating new package versions whenever AL Language updates
- The analyzer scope has grown too broad, mixing language syntax rules with Business Central business logic recommendations, suggesting need for specialized analyzers
- DevOps integration breaks in pre-release AL Language versions due to tight coupling, requiring fundamental architectural changes
Quotes
- “Maintaining backward compatibility with third-party analyzers would slow down their own development. It’s a trade-off that makes sense for me.” (Shows understanding of Microsoft’s design decisions and the fundamental challenge for third-party tool developers)
Context
- Features: code analysis, linting rules, VS Code integration, Azure DevOps integration, GitHub integration, NuGet distribution, multiple specialized analyzers
- Versions: AL Language 16.0, .NET Standard 2.0, .NET 8.0
Source: Vondervoort.be, community blog. Summary, key points and quotes are derived (CONTENT-NOTICE.md); read the original for the full text.