Skip to main content

Announcing "dart_code_metrics" analyzer plugin sunset

· 3 min read

Today with the introduction of the new Individuals version we're announcing the beginning of the "dart_code_metrics" plugin sunset.

We want to thank every user and especially contributors for being with us during those 3 years (that's how old the "dart_code_metrics" plugin is).

Why?

We believe that the potential for static analysis tooling in Dart is so much more than what we see today. Both in terms of performance and functionality.

One of the reasons for creating the Teams version was to see if moving away from the analyzer plugins (the API that is used by the free version) helps with the overall performance and brings the product closer to its true potential.

And this experiment exceeded our expectations.

Features that have been added in the last few months (ex. dcm fix with an ability to fix lint issues and remove unused code, fix on save in the IDE, support for baseline, configurable assists experiment, configurable formatter, etc.) significantly improve the product, but also just a small number of things that can be done. Much more can be done.

But most of these changes can't be implemented with the plugins API (plus one of the most frequent reported problem is the plugin performance which we can do little about).

Given that the plugins API is "experimental" with no clear future, the free version giving wrong impression with its performance and capabilities and the need to support it along side with the better version are the main reasons for its sunset.

Why no free version based on the new solution?

DCM was never sponsored by anyone (company or individual) and most of the work was done by a small group of people in their free time (some of them are not even Dart / Flutter developers in their day job) and the current number of core contributors is ~1.5 people.

Over time, the number of external contributors to the open source free version remains pretty low (~1% of active users). While the low number of contributors is understandable, since DCM is not closely related to Flutter and requires the knowledge outside of the day to day work of Flutter developers, DCM needs a bigger stable group of contributors.

The only way for the product to truly live up to its potential, and not just exist, is to have a full-time team behind it. And to get there, we need to change the overall model.

Perhaps in the future there will be a free version, but for now there will be only a paid Individuals version and a paid Teams version.

What's next

The feedback we receive from individual developers, companies and community members clearly shows that DCM is helping a lot of people be more productive and make fewer mistakes.

If you think DCM is valuable and it helps you, here is the deal: we want provide the best product we can, but we need your help to do it for as long as possible. We would be very grateful if you decide to upgrade to the new Individuals or Teams version (you can learn about the differences from the plugin version here).

If not, even though DCM is easy to remove, the free version will be available until July 15th, giving you time to remove it from your projects.

And as for other DCM versions, we'll focus on improving them to better serve our customers.

Your feedback

If you have any questions or suggestions, please email us at [email protected]. We understand that this change might be unexpected to you and are ready to answer any questions.