Skip to content

Releases: LimeBeck/build-time-config

V2.3.1

07 Jul 11:30
Compare
Choose a tag to compare
  • Update kotlinpoet.
  • Fix tests (shame on me)

V2.3.0

26 May 12:05
Compare
Choose a tag to compare

V2.3.0

  • Update the regeneration of generated files upon Gradle configuration update (Gradle Sync).
  • Fix the behavior of nested configuration objects (unfortunately, Kotlin Poet does not allow this to be done in simple way, so - interfaces).
  • Update Kotlin and Kotlin Poet versions. Add a Gradle project example.

V2.2.1

23 Apr 20:25
Compare
Choose a tag to compare
  • Fix applying to JVM projects (test run requires project clean)
  • Add possibility to define sourceset manually

V2.2.0

13 Nov 19:19
Compare
Choose a tag to compare

Change KClass-based types in delegates to regular KType from return property, update kotlin to 1.9.20, gradle to 8.4

Full Changelog: V2.1.0...V2.2.0

V2.1.0

25 Oct 04:47
Compare
Choose a tag to compare

Add possibility to specify null values on config properties:
build.gradle.kts:

plugins {
    kotlin("jvm") version "1.8.0"
    id("dev.limebeck.build-time-config") version "2.1.0"
}
...
buildTimeConfig {
    config {
        packageName.set("dev.limebeck.config")
        objectName.set("MyConfig")
        destination.set(project.buildDir)

        configProperties {
            val someProp: String by string("SomeValue")
            val somePropNullable: String? by string(null)
            val somePropNullableFilled: String? by string("null")
            val someProp2 by number(123)
            val someProp3 by number(123.0)
            val someProp4 by number(123L)
            val someProp5 by bool(true) //also can be boolean(true)
            val nested by obj {
                val someProp by string("SomeValue")
            }
        }
    }
}

V2.0.0

27 Aug 16:55
Compare
Choose a tag to compare

New extendable delegates-based API

Now you can describe build time config like this:

plugins {
    kotlin("jvm") version "1.8.0"
    id("dev.limebeck.build-time-config") version "2.0.0"
}
...
buildTimeConfig {
    config {
        packageName.set("dev.limebeck.config")
        objectName.set("MyConfig")
        destination.set(project.buildDir)

        configProperties {
            val someProp by string("SomeValue")
            val someProp2 by number(123)
            val someProp3 by number(123.0)
            val someProp4 by number(123L)
            val someProp5 by bool(true) //also can be boolean(true)
            val nested by obj {
                val someProp by string("SomeValue")
            }
        }
    }
}