Skip to content

Update dependency com.slack.lint.compose:compose-lint-checks to v1.5.0#6923

Merged
TimoPtr merged 3 commits into
mainfrom
renovate/composelintchecks
Jun 1, 2026
Merged

Update dependency com.slack.lint.compose:compose-lint-checks to v1.5.0#6923
TimoPtr merged 3 commits into
mainfrom
renovate/composelintchecks

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented May 29, 2026

This PR contains the following updates:

Package Change Age Confidence
com.slack.lint.compose:compose-lint-checks 1.4.31.5.0 age confidence

Release Notes

slackhq/compose-lints (com.slack.lint.compose:compose-lint-checks)

v1.5.0

Compare Source

2026-05-26

  • Behavior change: The stability checks (ComposeUnstableReceiver, ComposeMutableParameters, ComposeUnstableCollections) are now disabled by default as they are significantly less important in the era of Compose strong skipping. Re-enable them via the new stability-checks option in lint.xml. See https://slackhq.github.io/compose-lints/rules/#stability.
  • New: Add ComposeItemKeyHashCode to flag hashCode() used in Lazy*/Pager item keys. Item keys must be unique, but hashCodes are not. See https://slackhq.github.io/compose-lints/rules/#dont-use-hashcode-as-a-key.
  • New: Add ComposeRedundantComposable to flag functions/properties annotated @Composable that don't use the composition (no @Composable calls or property reads), so the annotation can be removed. See https://slackhq.github.io/compose-lints/rules/#remove-unnecessary-composable-annotations.
  • Enhancement: Improve ModifierReused data flow analysis. This addresses several past issues with modifier parameter use in composables.
  • Enhancement: ComposeViewModelForwarding is now smarter: it detects ViewModels forwarded inside nested blocks (e.g. Row { Composable(viewModel) }), follows reassignments (e.g. val vm = viewModel; Other(vm)) via data-flow analysis instead of name matching, and no longer flags capitalized non-composable calls (such as event handlers) that happen to take a ViewModel.
  • Fix: Fix ComposeUnstableReceiver false positives on Kotlin value class receivers and on composable members of value class types. Value classes are now treated as stable when their underlying property type is stable, including for compiled cross-module classes (via a metadata-aware evaluator).
  • Fix: Fix the stability-checks option being intermittently ignored: each stability check now registers its own option instance, since a single instance shared across issues had its (lint-internal) issue back-reference overwritten depending on class-load order, causing the configured value to resolve against the wrong issue.
  • Removed: Remove the ComposeRememberMissing rule in favor of Compose's own UnrememberedMutableState lint, which ships with the Compose runtime, is enabled by default, and covers more state builders without the false positives our rule had. See #​490.
  • Build against lint 32.2.1.
  • Target Kotlin 2.2 (matches lint 32.*).

Special thanks to @​aasitnikov for contributing to this release!


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copilot AI review requested due to automatic review settings May 29, 2026 01:40
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@jpelgrom
Copy link
Copy Markdown
Member

This update introduces two issues in various places in our codebase, both in 'new' and older code

@TimoPtr
Copy link
Copy Markdown
Member

TimoPtr commented Jun 1, 2026

This update introduces two issues in various places in our codebase, both in 'new' and older code

* Error: This declaration is annotated with @composable but doesn't call any other @composable functions or read any @composable properties (like a CompositionLocal's current), so it doesn't use the composition and the @composable annotation can be removed. See [slackhq.github.io/compose-lints/rules#remove-unnecessary-composable-annotations](https://slackhq.github.io/compose-lints/rules/#remove-unnecessary-composable-annotations) for more information. [ComposeRedundantComposable from com.slack.lint.compose:compose-lints]

* Error: Forwarding a ViewModel through multiple @composable functions should be avoided. Consider using state hoisting.See [slackhq.github.io/compose-lints/rules#hoist-all-the-things](https://slackhq.github.io/compose-lints/rules/#hoist-all-the-things) for more information. [ComposeViewModelForwarding from com.slack.lint.compose:compose-lints]

Thanks for the list, I've fixed the issue about wrong usage of @Composable and I've added the rest to the baseline. The use of viewModel is a nice lint but in some cases for instance for the FrontendScreen it's more complicated. The rest is pretty much legacy. The rule makes sense for new code added.

@renovate
Copy link
Copy Markdown
Contributor Author

renovate Bot commented Jun 1, 2026

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@TimoPtr
Copy link
Copy Markdown
Member

TimoPtr commented Jun 1, 2026

Merging lint is now passing.

@TimoPtr TimoPtr merged commit c2c60fe into main Jun 1, 2026
22 of 23 checks passed
@TimoPtr TimoPtr deleted the renovate/composelintchecks branch June 1, 2026 14:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants