All Versions
38
Latest Version
Avg Release Cycle
59 days
Latest Release
943 days ago
Changelog History
Page 3
Changelog History
Page 3
-
v0.12.0 Changes
August 23, 2019- Set up linuxArm32Hfp target (#535)
- wasm32 is added as a build target (#518)
- MPP (JVM & Native) serializer resolving from KType (via typeOf()/serializer() function)
- Support maps and objects decoding when map size present in stream (fix #517)
- Add proper SerialClassDescImpl.toString
- Make JSON parser much more stricter; e.g. Prohibit all excessive separators in objects and maps
- Robust JsonArray parsing
- Improve json exceptions, add more contextual information, get rid of obsolete exception types
- Prohibit trailing commas in JSON parser
- Make the baseclass of the polymorphic serializer public to allow formats (#520)
- Fix decoding for ProtoBuf when there are missing properties in the model. (#506)
- Rework JsonException and related subclasses
- Fix #480 (deserialization of complex map keys). Add tests for structured map keys in conjuction with polymorphism
- Implement 'allowStructuredMapKeys' flag. Now this flag is required for serializing into JSON maps which keys are not primitive.
-
v0.11.1 Changes
June 19, 2019- Fixed some bugs in compiler plugin for Native (#472, #478) (Kotlin 1.3.40 required)
- Remove dependency on stdlib-jvm from common source set (Fixes #481)
- Fix @UseSerializers argument type and clarify some docs
- Support primitives (ints, strings, JsonLiterals, JsonNull, etc) on a top-level when saving/restoring JSON AST (#451)
- Migrate to the new (Kotlin 1.3) MPP model
- Add @SharedImmutable to default json module. Fixes #441 and #446
-
v0.11.0 Changes
April 12, 2019🔌 Plugin:
- Semantic change: Now properties with default values are @Optional by default, and properties without backing fields are @Transient by default.
- Allow '@Serializable' on a type usage (fixes #367)
- Auto-applying @Polymorphic for interfaces and serializable abstract classes
- Do not enable PolymorphicSerializer without special annotation
- Fix missing optionality of property when generating descriptor in Native
- Fix impossibility to make @Optional field in a class hierarchy on JS
- Add synthetic companion with .serializer() getter even if default serializer is overridden. (fixes #228)
- Ban primitive arrays in JVM codegen too (fixes #260)
- Don't generate writeSelf/internal constructor if corresponding serialize/deserialize aren't auto-generated
- Support Serializable class hierarchies on Native and JS
- Replace @Optional with @Required
- Support classes with more than 32 serializable properties (fixes #164)
- Make enums and interfaces not serializable internally. However, they still can be serialized using custom companion object. Fixes #138 and #304
âš™ Runtime:
- Introduce JsonBuilder and JsonConfiguration as a better mechanism for configuring and changing configuration of the JSON
- Implement polymorphic serialization in JSON using class discriminator key
- Force quoting for map keys (fixes #379)
- Fix bug with endianness in Native for Longs/Doubles
- Do not allow to mutate SerialModule in formats
- Implement multiplatform (JVM, JS and Native) PolymorphicSerializer
- Remove obsolete and poorly designed global class cache. Remove JVM-only PolymorphicSerializer
- Replace old SerialModule with new one which: - Can not be installed, should be passed in format constructor - Has polymorphic resolve and contextual resolve - Has DSL for creation - Immutable, but can be combined or overwritten
- Improve error message for unknown enum constant
- Deprecate @Optional, introduce @Required
- Use long instead of int in JsonLiteralSerializer
- Json and protobuf schemas recording prototype
- Change JsonObject so it would comply to a Map interface: .get should return null for a missing key Incompatibility with standard Map contract may bring a lot of problems, e.g. broken equals.
- Make JsonElementSerializer public
-
v0.10.0 Changes
January 22, 2019- Migrate to Gradle 4.10 and metadata 0.4
- Update to 1.3.20
- Reorder Json parameter for consistency
- Make JsonElement.toString() consistent with stringify (#325)
- Reader.read(): Int should return -1 on EOF.
- Optimize the Writer.write(String) case.
- Update the docs with new annotations
-
v0.10.0-eap Changes
December 19, 2018🔌 Plugin:
- Support @SerialInfo annotation for Native
- Remove redundant check for 'all parameters are properties' in a case of fully-customized serializer.
- Fix unresolved symbol to SerialDescriptor in KSerializer if it was referenced from user custom serializer code (#290)
- Support for @UseSerializers annotation
- Restrict auto-implementing serializers methods to certain type of classes
- Increase priority of overridden serializer on type (#252)
- Fix instantiation of generic serializers on JS (#244)
- .shouldEncodeElementDefault for JVM (#58)
- Support skipping values equals to defaults in output stream for JS and Native backends (#58)
- Support enums in Native
- Support reference array and context serializers in Native
- Fix order of overriding @Serializable(with) on property: check override, than @ContextualSerialization.
- Support @Transient properties initializers and init blocks in Native
- Better lookup for
serializer()
function in companion for generic classes because user can define a parameterless shorthand one (#228) - Generics serialization in Native
- .getElementDescriptor for JVM, JS and Native
- Respect @ContextualSerialization on file
- Remove auto-applying ContextSerializer. @ContextualSerialization should be used instead.
âš™ Runtime:
- Turn around messed endianness names (#308)
- Update to Kotlin 1.3.20 EAP 2
- Get rid of protobuf-platform functions since @SerialInfo annotations are supported now. Auto-assign ids starting with 1 because 0 is not a valid protobuf ID.
- Delegates
equals
,hashCode
ofJsonObject
andJsonArray
. - Test for fixed #190 in plugin
- UseSerializers annotation
- Introduce LongAsStringSerializer
- Add validation for parsing dynamic to Long Fixes #274
- Merge pull request #294 from Kotlin/recursive_custom_parsing
- Fix recursive serialization for JsonOutputs/Inputs
- Production-ready JSON API
- Remove ValueTransformer
- Json improvements
- @Serializable support for JsonArray
- @Serializable support for JsonObject
- @Serializable support for JsonNull and JsonPrimitive
- Hide JsonTreeParser, provide Json.parseJson as replacement, implement basic JsonElementSerializer.deserialize
- Migrate the rest of the test on JsonTestBase, implement nullable result in tree json
- Implement custom serializers support for TreeJsonInput
- Implement JsonArray serialization
- Implement strict mode for double in TreeJsonOutput (fixes JsonModesTest)
- Introduce JsonTestBase in order to ensure streaming and tree json compatibility, transient and strict support in TreeJsonInput
- Make JsonElement serializable via common machinery
- Json rework, consolidate different parsing mechanisms, hide implementation details
- Polymorphic serializer improvements
- Renamed identifiers to align with Kotlin's coding conventions. https://kotlinlang.org/docs/reference/coding-conventions.html#naming-rules
- Changed JSON -> Json and CBOR -> Cbor
-
v0.9.1 Changes
November 19, 2018- Update lib to 0.9.1/Kotlin to 1.3.10
- Make some clarifications about Gradle plugin DSL and serialization plugin distribution
- Primitive descriptor with overriden name
- Add missing shorthands for float and char serializers (Fixes #263)
- Fix bug where primitive non-string values created by hand and created by parser could be inequal due to a redundant type comparison.
- Don't look at default serializer too early during reflective lookup (Fixes #250)
-
v0.9.0 Changes
October 24, 2018- Fix bug where
.simpleName
was not available for primitives' KClasses. - Improve Mapper: it is now a class (with default instance in Companion) which extends AbstractSerialFormat and therefore have context and proper reflectionless API.
- Introduce @ImplicitReflectionSerializer for API which involves reflection.
- Add Boolean.Companion.serializer() extension method.
- Refactor surface API: introduce interfaces for different formats, move some inline functions for serialization start to extensions. As a minor change, now nulls can be serialized at top-level, where it is supported by the format.
- Add AbstractSerialFormat as a base class to all major formats
- Update general readme and versions: Library to 0.9, K/N to 1.0 beta
- Update documentation for the new API
- Updated info about eap13 releases
- Fix bug where
-
v0.8.3-rc13 Changes
October 19, 2018- Set default byte order to BigEndian (to be more platform-independent and get rid of posix.BYTE_ORDER dependency)
- Update Kotlin version to 1.3-RC4
- Remove Gradle metadata from non-native modules
- Add missing targets (Fixes #232)
- Add license, developer and scm information in Maven pom in publication (Fixes #239)
- Add builder for JsonArray
- Redesign and unify exceptions from parsers (Fixes #238)
- Move json parser back to monolith module (drops
jsonparser
artifact) - Little improvement of error messages > Not working until plugin is updated:
- Initial support for skipping defaults: JSON
- Replace choicesNames to Array to be easily instantiated from generated IR
-
v0.8.2-rc13 Changes
October 03, 2018- Update to RC-3
- Add @SharedImmutable from K/N to some global declarations in JSON parser, so it is now accessible from multiple workers (Fixes #225) > Not working until plugin is updated:
- Tests for generic descriptors
- Generated serializer and stuff for providing descriptors from plugin
- Tests on @ContextualSerialization on file
-
v0.8.1-rc13 Changes
September 24, 2018- Upgrade Kotlin/Native version