2023-08-09
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.
2023-07-06
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.
Change the Kotlin Gradle plugin to a compileOnly
dependency of the Poko Gradle plugin, allowing
consumers to use older versions of Kotlin for their libraries than Poko uses (assuming compatible
versions of the Kotlin compiler API).
2023-06-20
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.
2023-04-03
Support Kotlin 1.8.20.
2023-03-21
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.
2022-06-13
Support Kotlin 1.7.0. Support Java 18.
Drop support for non-IR compilation (which does not exist in Kotlin 1.7.0).
2022-04-15
Support Kotlin 1.6.20.
2021-12-04
Support Kotlin 1.6.0.
2021-06-04
Publish a Gradle plugin marker (#54). Compile with Kotlin 1.5.10.
2021-05-18
Support Kotlin 1.5.0. Support Java 16.
2021-04-28
Change the default poko-annotations
dependency to a runtime dependency when used, rather than a
compile-only dependency. This ensures it is available in alternate configurations, like JVM test and
Android test configurations.
2021-03-27
Fix another bug that broke compatibility with Jetpack Compose. Poko is now compatible with Jetpack Compose 1.0.0-beta03 and Android Gradle Plugin 7.0.0-alpha12.
2021-03-21
Enforce a minimum of one property in the primary constructor of a Poko class. Previously, compilation would succeed but could cause failures down the line with unclear error messages.
2021-02-24
Fix a bug that broke compatibility with Jetpack Compose. Poko is now compatible with Jetpack Compose 1.0.0-alpha12.
2021-02-08
Rename the library from "Extra Care" to "Poko". The new artifact names are poko-compiler-plugin
,
poko-gradle-plugin
, and poko-annotations
. The legacy dev.drewhamilton.extracare.DataApi
is still supported if specified.
2021-02-06
Support Kotlin 1.4.30.
Add the ability to specify a custom annotation in place of the default annotation to trigger Extra Care generation on annotated classes.
2021-01-10
Support compilation in projects where IR compilation is enabled.
Disable support for inner
and inline
classes, which are both also not supported by the data
keyword.
Add an extraCare
Gradle extension, where the compiler plugin can be explicitly enabled or
disabled.
2021-01-01
Support Kotlin 1.4.20 and 1.4.21.
2020-09-29
Add code documentation to @DataApi
.
2020-08-19
Update to Kotlin 1.4.0.
2020-05-04
Fix equals
and hashCode
generation for long
member types.
2020-05-02
Allow explicit toString
, equals
, and hashCode
declarations in @DataApi
classes. When one of
these is declared explicitly, that function will not be generated by Extra Care.
2020-04-24
Publish with Gradle module metadata.
2020-04-21
Change the Gradle plugin ID so applying the plugin is less verbose:
apply plugin: 'dev.drewhamilton.extracare'
2020-04-19
Fix equals
and hashCode
generation for float
and double
member types. Update to Kotlin
1.3.72.
Fix release process bug preventing changes from landing in 0.1.1 and 0.1.2.
2020-04-19
No changes due to release process bug.
Fix equals
and hashCode
generation for float
and double
member types. Update to Kotlin
1.3.72.
2020-03-25
No changes due to release process bug.
Update to Kotlin 1.3.71.
2020-03-20
Initial release. Create a @DataApi
class with equals
, hashCode
, and toString
generated (but
no copy
or componentN
).