Releases: Kotlin/kotlinx.collections.immutable
v0.5.0
This release renames the copy-returning methods on PersistentCollection, PersistentList, and PersistentMap to participial forms (KEEP-0459) — add→adding, put→putting, set→replacingAt, clear→cleared, and the rest. The old imperative names continue to compile in 0.5.x as @Deprecated(WARNING), become a compile error in 0.6.0, and are removed in 0.7.0. First shipped in 0.5.0-beta01; 0.5.0 is the stable release, with only internal fixes since.
To migrate, apply the IDE quick-fixes, follow the migration guide, or use the 0.5.x migration skill with an AI assistant — each applies the rename the deprecation warnings name.
Changes since 0.4.0:
- Renamed copy-returning methods to participial forms; deprecated the old names #233
- Enabled the Kotlin return-value checker (
-Xreturn-value-checker=full) for the core module #243 - Updated Kotlin to 2.3.0 #242
- Configured JDK release 8 for the Kotlin compiler #239
- Populated
Implementation-*attributes in published JAR manifests #237 - Enabled Dokka documentation generation, upgraded to Dokka 2.2.0 #225, #245, #248
Full changelog: v0.4.0...v0.5.0
v0.5.0-beta01
This release renames copy-returning methods on PersistentCollection, PersistentList, and PersistentMap to participial forms — the old imperative names continue to compile in 0.5.x as @Deprecated(WARNING), become a compile error in 0.6.0, and are removed in 0.7.0. Concretely, add → adding, put → putting, clear → cleared, set → replacingAt, removeAt → removingAt, and the rest of the family (see the migration guide for the full table). The rename follows KEEP-0459 — Naming Conventions for Copy-Returning Operations.
If your code uses any of these methods, please read the migration guide for the full rename table, the deprecation timeline, and the recommended IDE quick-fix workflow.
This is a beta — 0.5.0 is planned to drop the -beta suffix soon, and once it ships stable the participial names are committed (any further rename would need its own deprecation cycle). If any of the renames feels awkward or you've hit a migration problem, please share it on issue #232 before then.
What's changed
- Renamed
PersistentCollectionmutating-copy methods to participial forms (add/remove/set/put/clear→adding/removing/setting/putting/clearingand*edvariants) and deprecated the original names #233 - Enabled the Kotlin return-value checker (
-Xreturn-value-checker=full) for the core module and annotated select internal helpers with@IgnorableReturnValuewhere discarding the result is intentional #243 - Updated Kotlin to version 2.3.0 #242
- Configured JDK release to 8 for the Kotlin compiler #239
- Populated
Implementation-Title/Implementation-Version/Implementation-Vendorin published JAR manifests #237 - Enabled Dokka documentation generation and upgraded Dokka to 2.2.0 #225, #245, #248
v0.4.0
- Fixed the equality bug in PersistentMap — Added proper node promotion during mutable operations to ensure a consistent internal tree structure #217
- Fixed the bug in PersistentMap equals implementation — Ensured proper node promotion during mutable key removal even when nodes share the same owner #218
- Fixed the ghost element issue in PersistentHashSet — Corrected condition check order to ensure proper recursive element promotion after collision removal #219
- Updated Kotlin to version 2.1.20 and core dependencies #213
- Enabled '-Xjvm-default=disable' explicitly to prevent API dump changes #210
v0.3.8
v0.3.7
- Upgrade Kotlin version up to 1.9.21
- Support wasmJs and wasmWasi targets
v0.3.6
- Upgrade Kotlin version up to 1.9.0
- Support all targets currently supported by the K/N compiler
- Drop support for the Legacy js target
v0.3.5
v0.3.4
- Upgrade Kotlin version up to 1.4.30
- Publish the library to Maven Central instead of Bintray #96.
- Add license information to published POMs #98.
- Implement workaround for specialized MutableEntrySet.contains/remove KT-41278.
- Bug in PersistentList - list is broken after removeAll call #92.
- Faster bulk operations for non-ordered sets (removeAll, retainAll, containsAll) #91.
- Faster addAll/putAll implementation for non-ordered sets/maps #83.
- Add extension functions to convert Sequence to persistent collections 84.
- Add missing CharSequence.toImmutableSet() extension function.