What’s new in DCM 1.19.0
Today we’re excited to announce the release of DCM 1.19.0!
This release includes 9 new rules (4 for Riverpod), proper support for codegen packages by the check-dependencies
command, new summary output to sdterr for various reporters, new visualization of the statically resolved widget trees for analyze-widgets
, new fix type for removing unused files (moved from check-unused-files
), documentation updates and other DX improvements! 🚀
Let's go through the highlights of this release! (And you can find the full list of changes in our changelog)
Documentation updates
As we continually work to improve our documentation, we released several notable changes in June to improve the overall user experience.
First, we published a new structure (and introduced categories for commands and metrics):
Next, we completely reworked the "Getting Started" page and split it into several pages (while also keeping the "Quick Start" guide):
And last but not least, we added new sections for Introduction to DCM, DCM Teams Console docs and new guides for GitLab and Bitbucket CI/CD integrations.
If you have any feedback regarding the new docs, please consider posting it on our Discord!
Deprecation of the "Performance" severity
The initial idea behind the "Performance" severity was to specify which rules directly impact performance. But it didn't really work.
First of all, a violation can be both a warning/error and a performance issue (or, for example, a readability issue). And secondly, most of the modern IDEs support only 3 colors for showing diagnostics (which are usually used for error, warning and style issue types).
So in this release, we're moving away from the "Performance" severity for the rules and will later introduce categories for rules and metrics to help you quickly identify which ones affect performance, readability, maintainability and so on.
And all rules that has the "Performance" severity are now warnings.
General command improvements
No congratulate flag changes
To avoid confusion with integrating DCM in CI/CD, the --no-congratulate
flag is now disabled by default for all reporters used in CI/CD (e.g. GitLab or JSON).
Explicitly passing --congratulate
or --no-congratulate
will override this behavior (which can be useful for debugging purposes).
Summary report example
JSON, Checkstyle, GitLab and Codeclimate reporters now output a report summary to stderr, which is designed to help you better understand why a command failed when you pipe the regular output to a file.
New hint for missing dependencies
Given that DCM relies on installed dependencies (and does not run dart pub get
or flutter pub get
), in this release all commands now show an error if the dependencies are not installed.
Analyze Widgets improvements
We've significantly improved the resolution of the statically available widget tree, including complex cases with switch statements, method invocations, external properties and so on.
Plus, the HTML report now also includes the resolved tree (as a mermaid diagram) to help you quickly identify potential areas for improvement:
We also reworked how the --report-all
CLI option works with reporters and now it applies to all reporters (not just the Console reporter).