Skip to content

Releases: orchestr7/ktoml

Release v0.5.2

16 Jun 17:19
Compare
Choose a tag to compare

Main

  • K2 and 1.7.0 serialization support
  • a new target: linux arm64

What's Changed

  • Fix Serialization in readme to use encodeToString instead of wrong decodeFromString by @vlsi in #253
  • Update dependency gradle to v8.6 by @renovate in #233
  • Adding new Kotlin DefaultHierarchyTemplate by @orchestr7 in #257
  • Enhancing publishing mechanism and adding snapshot releases by @orchestr7 in #258
  • Primitive Char should be encoded with a single quote by @orchestr7 in #261
  • Bump the github_actions group across 1 directory with 1 update by @dependabot in #262
  • Update Kotlin core dependencies to v1.9.23 by @renovate in #263
  • Update dependency gradle to v8.7 by @renovate in #265
  • Update Kotlin core dependencies to v1.9.24 by @renovate in #268
  • Update Kotlin core dependencies to v2 (major) by @renovate in #269
  • Enable linux arm64 compilation by @zt64 in #270
  • Update dependency io.github.gradle-nexus:publish-plugin to v2 by @renovate in #267
  • Update dependency gradle to v8.8 by @renovate in #271
  • Update all github actions (major) by @renovate in #247

New Contributors

Full Changelog: v0.5.1...v0.5.2

Release v0.5.1

07 Jan 18:30
1edd2a6
Compare
Choose a tag to compare

Important

  • Updated Kotlin to version 1.9.22 in #250

  • A bunch of bug fixes, infra and logging enhancements.

  • Enhanced Map decoding: Now, you can decode key-value pairs and tables to Map without prior knowledge of their names.

@Serializable
data class MyClass(
    val a: Map<String, Map<String, String>>
)
[a]
    [a.innerTable]
        d = 5
    [a.otherInnerTable]
        d = "String"
@Serializable
@JvmInline
value class Test(val myTest: Info)
ACTIVITY_COMPOSE = {}

Enhancements

  • Levenshtein distance calculation for the enhancement of the 'invalid enum' error by @akuleshov7 in #232
  • Add trimming of the closing quote delimiter of multiline string by @akuleshov7 in #223
  • Unify array of tables and primitive table by @NightEule5 in #215
  • Initial Support for Simple Map decoding with unnamed toml keys by @akuleshov7 in #246
  • Support for nested and inlined maps (inside other maps) by @akuleshov7 in #252
  • Postrelease: updating readme and deprecating legacy methods by @akuleshov7 in #222

Bugfixes

Infra

New Contributors

Full Changelog: v0.5.0...v0.5.1

Release v0.5.0

10 May 21:58
Compare
Choose a tag to compare

Breaking changes

  • In this release, we have made some changes to the library's API and removed old deprecated methods;
  • For instance, we removed methods that used the deprecated TomlConfig and left only those that use TomlInputConfig or TomlOutputConfig;
  • Additionally, we have started to stream data during decoding and parsing, which should improve performance;
  • However, this may affect the way you use some ktoml methods.

Changes that deserve your attention

  • A significant change for streaming data and a new module, ktoml-source, for custom data sources (via okio Source) by @bishiboosh in #117;
  • We have finally added support for multiline strings, including both literal and basic strings and multiline arrays, by @BOOMeranGG and @NightEule5 (#184, #183);
  • Support for Kotlin 1.8.21, Kotlinx.serialization 1.5.0, and Gradle 8;
  • Backward compatibility support for Java 8 by @akuleshov7 in #202;

❗ Now toml-file is only one of the example for reading the data from source. For your particular case you can implement your own source provider based on okio.Source. For this purpose we have prepared toml-source module and implemented an example with java streams for JVM target.

// add com.akuleshov7:ktoml-source to your project
import com.akuleshov7.ktoml.source

val resultFromString = TomlFileReader.decodeFromSource<MyClass>(serializer(), /* your source */)
val resultFromList = TomlFileReader.partiallyDecodeFromSource<MyClass>(serializer(),  /* your source */, /* table name */)

What else is new

  • We have added iosSimulatorArm64 target by @akuleshov7 in #186;
  • Regexes have been replaced with functions to enhance performance and prevent input-related issues by @NightEule5 in #19;
  • Extra information has been added to errors and exceptions by @akuleshov7 in #212;

Infrastructure changes

Full Changelog: v0.4.1...v0.5.0

Release v0.4.1 (Minor to support JVM 1.8)

27 Jan 11:52
9b9ce8c
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.4.0...v0.4.1

Release v0.4.0

07 Jan 22:24
60f1697
Compare
Choose a tag to compare

Functional changes

Fixes

Internals

  • Add README encoding examples by @NightEule5 in #159
  • Classes that inherit sealed class should not be in a one file anymore by @akuleshov7 in #162
  • Separate parsing from writing in node constructors by @NightEule5 in #165
  • Quick POC at non-Long numerics (encoding and decoding) by @aSemy in #164

New Contributors

Full Changelog: v0.3.0...v0.4.0

Release v0.3.0

30 Oct 19:09
9aa530f
Compare
Choose a tag to compare

Awesome release with serialization, finally! 🤞 ❤️
Ktoml now supports it!

What's Changed

New Contributors

Full Changelog: v0.2.13...v0.3.0

Release v0.2.13

12 Jul 18:16
c3e44bb
Compare
Choose a tag to compare

Minor release to add new targets and support new Kotlin version

What's Changed

New Contributors

Full Changelog: v0.2.12...v0.2.13

Release v0.2.12

04 Jun 22:19
3126f03
Compare
Choose a tag to compare

Technical release with refactoring, new fundamental logic and library migrations

Main functional features

Main technical features

  • Kotlin updated to 1.6.21
  • New configuration mechanism introduced instead of TomlConfig (it's now deprecated)
  • New fundamentals for serialization logic were added. Encoding will be introduced in future releases

@bishiboosh @akuleshov7 @NightEule5 thank you for this outstanding contribution!

Release v0.2.11

20 Feb 16:47
bcc35fa
Compare
Choose a tag to compare

Urgent hotfix release

Thanks to the @JakeWharton for the reported issue

Release v0.2.10

19 Feb 20:03
61d0cea
Compare
Choose a tag to compare

What's done:

  • Huge refactoring and base mechanisms for the serialization; d953779 cc6e05a
  • BREAKING: Renaming and deprecating several class, mostly focused on exceptions; cc6e05a
  • Adding the support for empty TOML; 2295a74
  • Creating the parser and the support in AST for ArrayOfTables; 0bf142f a76f5e8
  • Support for inline tables with several limitations (excluding nested inlining). 0ef414b
  • Minor fixes and updates;

Contributors to this release: @NightEule5 @Peanuuutz @vitusortner @akuleshov7