ALCops: The Next Chapter of LinterCop

Over the past few months, I’ve been quietly working in the background on the Next Chapter of the LinterCop. I wasn’t sure when the right moment would be to announce it, but I believe we’ve reached that point. So I’m proud to introduce …

ALCops

A community driven collection of code analyzers for the AL programming language of Microsoft Dynamics 365 Business Central.

Head over to ALCops.dev for the docs, tools and everything else you need to get started.

A Bit of History

Some time ago, I had a conversation with Stefan Maron about the future of the LinterCop. He simply didn’t have enough time to keep maintaining it. We considered transferring the existing repository, but moving it would’ve broken all the integrations and pipelines. Breaking things for everyone using it daily simply wasn’t an option, so I thought: is there a better way?

That question led to the birth of a new project. Starting fresh meant we could allow breaking changes without damaging existing setups. It also gave me room to rethink some things properly instead of patching around old decisions. And I made a conscious choice not to put this under my personal GitHub account. I didn’t want this to become “my project” and want it to have space to grow beyond one person.

ALCops is a continuation of BusinessCentral.LinterCop and this project wouldn’t exist without the foundation built by that community. A heartfelt thank you to every contributor who invested their time, ideas, and code into the original LinterCop. Your work didn’t end there, it lives on and grows further in the ALCops project.

Freezing BusinessCentral.LinterCop

I can’t continue active development on BusinessCentral.LinterCop and build ALCops at the same time. I tried juggling both for a while, but I couldn’t keep up to he honest. So over the last months, I’ve poured my available time into the ALCops project. That means BusinessCentral.LinterCop hasn’t received the attention I would’ve liked to give it. That wasn’t an easy decision, but it felt more needed to focus fully on creating a solid new foundation rather than half-maintaining two projects.

Because of that, we’ll be setting the BusinessCentral.LinterCop repository to read-only state somewhere in the next upcoming months. The project will gradually come to a halt and there won’t be new features or ongoing updates there anymore.

Where We Stand Today

The current version, v0.5.0, gives a pretty idea of where we are. About 95% of the rules from BusinessCentral.LinterCop have been migrated to ALCops. There’s a VS Code extension available, and support for AL-Go is in place. So for daily AL development, it could maybe already be a viable replacement.

What’s still on my list is an Azure DevOps extension. That one is a bit trickier, because I want to make it generic enough to work alongside different Azure DevOps solutions like ALOps, Alpaca, and others. I’m still figuring out the cleanest way to approach that without making it overly complicated.

At this point, ALCops should be mature enough to replace BusinessCentral.LinterCop in day-to-day AL development. If you’re working with AL, I’d genuinely encourage you to try it.

So over the coming weeks, my focus will be on expanding DevOps integrations and exploring better interaction with agent-based AI tools like Claude Code and GitHub Copilot. Stefan Maron is still involved, by the way. He’s helping on how ALCops can integrate with agent-based AI tools and looking into at what an ALCops MCP maybe could look like. This is a big one and it could fundamentally change how ALCops fits into the tooling ecosystem.

There’s still work to do. There always is, but the base is here now.

Contribute

If you try ALCops and have idea’s, feedback or improvements, please don’t hesitate to contribute. So if you’ve ever thought, “This rule should work differently” or “Wouldn’t it be useful if it also checked this?” now’s the time.

Leave a Reply

Your email address will not be published. Required fields are marked *