Closed LVMVRQUXL closed 7 months ago
Instead of moving serializers to this new subproject for existing types, we will introduce new serializers in this subproject only for new types defined in the org.kotools.types
package. This way, we will introduce changes incrementally without breaking the old API.
For including this new Gradle subproject in the API reference with a version selector, we need to regenerate it for each version... This is out of scope of this issue and should be done in an another one.
π Description
We want to extract our integration with the
kotlinx.serialization
library from the root Gradle project to a newtypes-kotlinx-serialization
subproject. This subproject should document clearly our consumers should use it (here's an example on another Kotlin library).Basically, consumers should be able to configure the serialization of types from Kotools Types with minimum effort by:
After resolving this issue, the Application Programming Interface (API) should at least provide a
KotoolsTypesSerializers
type with the following structure:β Checklist
kotlinx-serialization
Gradle subproject with sample test, then include it in the integration and the delivery workflows.KotoolsTypesSerializers
type with documentation and dump the Application Binary Interface (ABI) of this subproject.KotoolsTypesSerializers.toString()
function with documentation, tests and Kotlin code sample, then dump the Application Binary Interface (ABI) of this subproject.KotoolsTypesSerializers.zero
property for serializing theZero
type asByte
, with tests, documentation and Kotlin code sample, then dump the ABI of this subproject.KotoolsTypesSerializers.all
property with tests, documentation and Kotlin code sample, then dump the ABI.types
one in the documentation.org.kotools.types.multi-module-api-reference
for configuring the API reference's generation, including this new subproject and thetypes
one.