A Kotlin compiler plugin that generates equals, hashCode, and toString for plain old Kotlin objects in public APIs.
Support WASM target for Kotlin Multiplatform.
Compile with Kotlin 1.9.22. Support Java 21.
Compile with Kotlin 1.9.20. Support compilation with K2. Support Java 20.
Optimize JS equals
implementation as well as bytecode for Int
and UInt
properties.
Support Kotlin Multiplatform.
Revert poko-annotations
to an implementation
dependency, because Kotlin/Native doesn't support compileOnly
. The annotations are still source-retention, so the end-consumer's app binary can strip the annotations from the classpath during shrinking.
Update the compiler plugin to be enabled by default and to use the default annotations by default. This brings the compiler plugin into alignment with the Gradle plugin.
Compile with Kotlin 1.9.0.
Include default poko-annotations
dependency as compileOnly
, and convert @Poko
annotation from binary retention to source retention. This makes Poko invisible to consumers of Poko-consuming libraries.
Add experimental @ArrayContentBased
annotation. This annotation can be applied to @Poko
class array properties to ensure that the array's content is considered for equals
, hashCode
, and toString
. (By default, array content is not considered.)
Compile with Kotlin 1.8.22.
Support Kotlin 1.8.20.
Support Kotlin 1.8.0 and 1.8.10. Support Java 19.
The pokoAnnotation
configuration property's format changes; package names are now separated by /
instead of .
. For example, an inner annotation class definition would look like "com/example/MyClass.Inner"
.
The primary entry point is now PokoCompilerPluginRegistrar
, replacing PokoComponentRegistrar
. This change is transparent to consumers of the Gradle plugin.
Automatic inclusion of the legacy @dev.drewhamilton.extracare.DataApi
artifact is removed. The consumer can still manually depend on
implementation("dev.drewhamilton.extracare:data-api-annotations:0.6.0")
if desired.
Support Kotlin 1.7.0. Support Java 18.
Drop support for non-IR compilation (which does not exist in Kotlin 1.7.0).
Support Kotlin 1.6.20.
Support Kotlin 1.6.0.