Skip to content

Latest commit

 

History

History
436 lines (279 loc) · 11.7 KB

File metadata and controls

436 lines (279 loc) · 11.7 KB

Changelog

0.23.1

2026-06-04

Restore compatibility with 2.4.0-dev, to maintain support for IntelliJ 2026.1. Add firIdeMode configuration option to disable FIR generation and/or checks in the IDE, to protect against future breaking changes in the IDE Kotlin version.

0.23.0

2026-06-03

Increase deprecation level of @SkipSupport and @ArrayContentSupport annotations from ERROR to HIDDEN.

Compile with Kotlin 2.4.0. Drop support for Kotlin 2.3 due to incompatibility. Drop support for non-K2 compilation, i.e. language level 1.9.

Target Gradle 9.5.

0.22.1

2026-04-24

Compile with Kotlin 2.3.21. Implement forward compatibility with Kotlin 2.4.0-Beta2.

0.22.0

2026-03-16

Convert PokoPluginExtension from abstract class to interface.

Increase deprecation level of @SkipSupport annotation from WARNING to ERROR. Increase deprecation level of @ArrayContentBased annotation from ERROR to HIDDEN.

Compile with Kotlin 2.3.20.

Drop support for Kotlin 2.3.0 and 2.3.10 due to incompatibility.

0.21.3

2026-03-02

Fix bug where Poko would not automatically add the poko-annotations dependency when used with Android Gradle Plugin 9+.

0.21.2

2026-02-27

Add Poko annotations to all Java source sets by default.

Compile with Kotlin 2.3.10. Add forward compatibility with Kotlin 2.4.0-dev-3806. This should allow Poko to work correctly with IntelliJ 2026 preview builds.

0.21.1

2026-01-08

Fix Gradle plugin compatibility with Gradle isolated projects.

Add forward compatibility with Kotlin 2.3.20-Beta1.

0.21.0

2025-12-16

Update compiler plugin ID to "dev.drewhamilton.poko" (was previously "poko-compiler-plugin").

Deprecate @SkipSupport annotation and stop requiring it for using @Poko.Skip annotation. Update deprecation level of @ArrayContentSupport and @ArrayContentBased to ERROR.

Compile with Kotlin 2.3.0. Compile with Java 25, except for the Gradle plugin, which is compiled with Java 24.

Drop support for Kotlin 2.2 due to incompatibility. Increase the minimum supported Gradle version to 9.0.0.

0.20.2

2025-11-19

Compile with Kotlin 2.2.21. Add forward compatibility with Kotlin 2.3.0-RC.

0.20.1

2025-10-16

Add ability to generate a subset of Poko functions with @Poko.EqualsAndHashCode and @Poko.ToString. Apply one of these to a class instead of the standard @Poko annotation, and only the respective function(s) will be generated by the Poko plugin. This feature is experimental and requires opt-in via @IndependentFunctionsSupport.

Add forward compatibility with Kotlin 2.3.0-Beta1.

Target Gradle 9.1.0, and add backward compatibility with Gradle 8.11.

0.20.0

2025-09-11

Compile with Kotlin 2.2.20.

Drop support for Kotlin 2.2.0 and 2.2.10 due to incompatibility.

0.19.3

2025-07-25

Update the Poko Gradle plugin to target Kotlin 2.1, to ensure compatibility with Gradle's embedded Kotlin version (currently 2.0.21). This does not affect the Kotlin version of Poko itself, which is currently 2.2.0.

0.19.2

2025-07-21

Fix forward compatibility with Kotlin 2.2.20-Beta1. Compatibility was broken for some consumers.

0.19.1

2025-07-11

Add forward compatibility with Kotlin 2.2.20-Beta1.

0.19.0

2025-06-25

Compile with Kotlin 2.2.0.

Drop support for Kotlin 2.1 due to incompatibility.

0.18.7

2025-05-16

Fix bug in generated toString for @ReadArrayContent properties on Poko classes targeting JS: array properties would print a value of "[...]" instead of their actual content.

Compile with Kotlin 2.1.21. Add forward compatibility with Kotlin 2.2.0-RC. Compile with Java 23.

0.18.6

2025-04-16

Add forward compatibility with Kotlin 2.2.0-Beta1.

0.18.5

2025-03-31

Fix compilation error when defining a Poko class with multiple super-interfaces while using languageVersion = KotlinVersion.KOTLIN_1_9.

0.18.4

2025-03-27

Fix compilation error with @Poko actual classes.

0.18.3

2025-03-26

Fix a bug where Poko functions declared final in the Poko class's supertype would be overridden. Fix compilation error when Poko functions are declared abstract in the Poko class's supertype(s).

Under the hood, generate Poko functions with FIR-based declarations backed by IR-based function bodies. This allows K2-based IDEs to recognize the overridden functions.

Compile with Kotlin 2.1.20.

0.18.2

2024-12-27

Add forward compatibility with Kotlin 2.1.20-Beta1.

0.18.1

2024-12-13

Add ability to skip individual properties with @Poko.Skip. These properties will be omitted from all generated functions. This feature is experimental and requires opt-in via @SkipSupport.

Replace @ArrayContentBased with @Poko.ReadArrayContent. Add a deprecated typealias for the former to aid migration.

Add support for use optional property-level features with custom Poko annotation. Nested annotations with the same name as the optional feature, such as @MyData.ReadArrayContent and @MyData.Skip, will be respected.

Fix issue with FIR checkers. K2-enabled IDEs should now highlight Poko errors and warnings in consumer source code.

0.18.0

2024-12-2

Compile with Kotlin 2.1.0.

0.17.2

2024-10-18

Compile with Kotlin 2.0.21. Implement compatibility with Kotlin 2.0.0 – 2.1.0-Beta2.

0.17.1

2024-09-17

Automatically add the Poko annotation dependency to test fixtures when they are enabled on JVM projects.

0.17.0

2024-08-22

Compile with Kotlin 2.0.20. Support Java 22.

0.16.0

2024-05-28

Compile with Kotlin 2.0.0. The syntax for custom annotation references now uses / to denote packages, e.g. com/example/MyAnnotationClass.

Deprecate @ArrayContentSupport annotation and stop requiring it for using @ArrayContentBased annotation.

0.16.0-beta01

2024-05-20

Compile with Kotlin 2.0.0-RC3. The syntax for custom annotation references now uses / to denote packages, e.g. com/example/MyAnnotationClass.

0.15.3

2024-05-19

Support Android native targets and Wasm-WASI target for Kotlin Multiplatform. Implement error checks in FIR to support automatic IDE warnings in future IntelliJ releases.

Compile with Kotlin 1.9.24. Use Node v22 for Wasm and JS targets. Compile released artifacts with -Xjdk-release flag to ensure JVM 1.8 compatibility.

0.15.2

2024-01-02

Support Wasm-JS target for Kotlin Multiplatform.

Compile with Kotlin 1.9.22. Support Java 21.

0.15.1

2023-11-27

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.

0.15.0

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.

0.14.0

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).

0.13.1

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.

0.13.0

2023-04-03

Support Kotlin 1.8.20.

0.12.0

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.

0.11.0

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).

0.10.0

2022-04-15

Support Kotlin 1.6.20.

0.9.0

2021-12-04

Support Kotlin 1.6.0.

0.8.1

2021-06-04

Publish a Gradle plugin marker (#54). Compile with Kotlin 1.5.10.

0.8.0

2021-05-18

Support Kotlin 1.5.0. Support Java 16.

0.7.4

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.

0.7.3

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.

0.7.2

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.

0.7.1

2021-02-24

Fix a bug that broke compatibility with Jetpack Compose. Poko is now compatible with Jetpack Compose 1.0.0-alpha12.

0.7.0

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.

0.6.0

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.

0.5.0

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.

0.4.0

2021-01-01

Support Kotlin 1.4.20 and 1.4.21.

0.3.1 (patched to 0.2.4)

2020-09-29

Add code documentation to @DataApi.

0.3.0

2020-08-19

Update to Kotlin 1.4.0.

0.2.3

2020-05-04

Fix equals and hashCode generation for long member types.

0.2.2

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.

0.2.1

2020-04-24

Publish with Gradle module metadata.

0.2.0

2020-04-21

Change the Gradle plugin ID so applying the plugin is less verbose:

apply plugin: 'dev.drewhamilton.extracare'

0.1.3

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.

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.

0.1.1

2020-03-25

No changes due to release process bug.

Update to Kotlin 1.3.71.

0.1.0

2020-03-20

Initial release. Create a @DataApi class with equals, hashCode, and toString generated (but no copy or componentN).