Currently, Kotools Types is shipped through 3 interdependent subprojects:
types - the actual library providing explicit types
types-kotlinx-serialization - support for serializing types with Kotlin Serialization
types-internal - internals shared between types and types-kotlinx-serialization.
These subprojects don't need to scale or ship independently, and their version increments together whenever a new release of Kotools Types drops.
So, instead of having multiple modules to manage for one product, we want to merge all these subprojects into a single Gradle project (like in Kotools Types 4.5.0).
While maintaining a single project for Kotools Types is the goal, we want to preserve backward compatibility for projects depending on the types-kotlinx-serialization subproject.
For this case, we will copy its declarations into the types subproject and deprecate the original ones with an error level, because they are experimental. These declarations will be removed altogether with the types-kotlinx-serialization subproject in the next incremental release.
A note on its stability should be documented in this subproject's README for versions 4.5.1 and 4.5.2.
Support of Kotlin Serialization should be an optional feature for consumers of Kotools Types, so we have an interest for keeping the types and the types-kotlinx-serialization subprojects separated.
📝 Description
Currently, Kotools Types is shipped through 3 interdependent subprojects:
types
- the actual library providing explicit typestypes-kotlinx-serialization
- support for serializing types with Kotlin Serializationtypes-internal
- internals shared betweentypes
andtypes-kotlinx-serialization
.These subprojects don't need to scale or ship independently, and their version increments together whenever a new release of Kotools Types drops.
So, instead of having multiple modules to manage for one product, we want to merge all these subprojects into a single Gradle project (like in Kotools Types 4.5.0).
While maintaining a single project for Kotools Types is the goal, we want to preserve backward compatibility for projects depending on the
types-kotlinx-serialization
subproject. For this case, we will copy its declarations into thetypes
subproject and deprecate the original ones with an error level, because they are experimental. These declarations will be removed altogether with thetypes-kotlinx-serialization
subproject in the next incremental release.