Skip to content




  • Fix: Use setEnabledByDefault(false) instead of IGNORE in ComposeM2Api. This is what we intended before, too, but didn’t realize there was a dedicated API for it. Note that this changes configuration slightly as you must now explicitly enable the rule too and not just the severity. See the docs:



  • New: Add ComposeM2Api rule. This rule can be used to lint against using “Material 2” (androidx.compose.material) APIs in codebases that have migrated to Material 3 (M3). This rule is disabled by default, see the docs for more information:
  • Enhancement: Add viewmodel-factories lint option to ComposeViewModelInjection. This allows you to define your own known ViewModel factories. Thanks to @WhosNickDoglio for contributing this!
  • Build against lint-api to 30.4.2.
  • Test against lint 31.1.0-alpha08.




New Contributors

Full Changelog:



Initial release!

This is a near-full port of the original rule set to lint. It should be mostly at parity with the original rules as well.

The lints target lint-api 30.4.0/lint API 13 and target Java 11.

See the docs for full usage and information:

Notes - ComposeViewModelInjection does not offer a quickfix yet. PRs welcome! - ComposeUnstableCollections is a warning by default rather than an error. - CompositionLocalNaming is not ported because this is offered in compose’s bundled lint rules now.