Skip to content

Bump kotlinx.collections.immutable to 0.5.0-beta01#6919

Open
DmitryNekrasov wants to merge 1 commit into
bitwarden:mainfrom
DmitryNekrasov:migrate-kotlinx-collections-immutable-0.5.0
Open

Bump kotlinx.collections.immutable to 0.5.0-beta01#6919
DmitryNekrasov wants to merge 1 commit into
bitwarden:mainfrom
DmitryNekrasov:migrate-kotlinx-collections-immutable-0.5.0

Conversation

@DmitryNekrasov
Copy link
Copy Markdown

Summary

Bumps kotlinx.collections.immutable from 0.4.0 to 0.5.0-beta01.

0.5.0-beta01 is binary-compatible with 0.4.0 — per KEEP-0459, the copy-returning methods on Persistent* types were renamed (e.g. addadding, removeremoving), and the old names remain as @Deprecated(WARNING) overloads. So this PR is purely a version bump and is reversible.

Why no source changes?

bitwarden-android uses kotlinx.collections.immutable as a read-only consumer — persistentListOf(...) etc. as factories, with values typed everywhere as ImmutableList<T> / ImmutableMap<K, V> / ImmutableSet<T> (the read-only interfaces). None of the renamed methods on Persistent* are visible at any call site, so the Kotlin compiler emits zero kotlinx.collections.immutable deprecation warnings after the bump.

Changes

  • gradle/libs.versions.toml: kotlinxCollectionsImmutable 0.4.00.5.0-beta01.
  • MIGRATION_REPORT.md: per-phase audit of the migration (happy to drop this if you'd prefer to keep the repo root tidy).

References

Test plan

  • Full module compile: :app (Standard + Fdroid debug, main + UnitTest), :authenticator (debug + UnitTest), :ui, :core (main + UnitTest), :testharnessBUILD SUCCESSFUL, zero kotlinx.collections.immutable deprecation warnings.
  • Unit tests: :core:testDebugUnitTest :ui:testDebugUnitTestBUILD SUCCESSFUL (includes PersistentListExtensionsTest).

🤖 Generated with Claude Code

Applied via kotlin-tooling-immutable-collections-0-5-0-migration skill.
0.5.0-beta01 is binary-compatible with 0.4.0; per KEEP-0459 the
copy-returning methods on Persistent* types are renamed (e.g.
add->adding, remove->removing) and the old names remain as
@deprecated(WARNING) overloads.

bitwarden-android uses the library as a read-only consumer
(persistentListOf -> ImmutableList<T> typed values, no in-place
mutation via Persistent* receivers), so the compiler emits zero
deprecation warnings post-bump and no call sites need to be renamed.

See MIGRATION_REPORT.md for per-phase details.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bitwarden-bot
Copy link
Copy Markdown
Collaborator

Thank you for your contribution! We've added this to our internal Community PR board for review.
ID: PM-37518
Link: https://bitwarden.atlassian.net/browse/PM-37518

Details on our contribution process can be found here: https://contributing.bitwarden.com/contributing/pull-requests/community-pr-process.

@DmitryNekrasov DmitryNekrasov marked this pull request as ready for review May 14, 2026 12:02
@DmitryNekrasov DmitryNekrasov requested review from a team and david-livefront as code owners May 14, 2026 12:02
@bitwarden-bot
Copy link
Copy Markdown
Collaborator

Thank you for your contribution! We've added this to our internal Community PR board for review.
ID: PM-37536
Link: https://bitwarden.atlassian.net/browse/PM-37536

Details on our contribution process can be found here: https://contributing.bitwarden.com/contributing/pull-requests/community-pr-process.

@david-livefront
Copy link
Copy Markdown
Collaborator

@DmitryNekrasov Is there a particular reason we need to jump to the beta?

We usually try to stick to stable releases unless there is a good reason to make the update.

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.

4 participants