Skip to content

Latest commit

 

History

History
431 lines (342 loc) · 18.8 KB

CHANGES.md

File metadata and controls

431 lines (342 loc) · 18.8 KB

Change Log

Unreleased

1.9.1

  • Upgrade commons-compress to 1.24.0 due to CVE-2023-42503

1.9.0

  • Built using Avro 1.11.3

1.8.0

  • Built using Avro 1.11.2

1.7.1

1.7.0

  • Support for using conversions and type factories located outside of build classpath (contribution from erdi); see davidmc24#228

1.6.0

  • Add support for configuring classpath for GenerateAvroJavaTask (thanks to crtlib); see davidmc24#222
  • Drop compatibility testing for old versions of Java (9, 10, 12, 13, 14, 15, 16)
  • Built using Gradle 7.6
  • Updated compatibility testing through Gradle 7.6
  • Updated compatibility testing through Java 19

1.5.0

  • Added support for additionalVelocityTool thanks to a contribution from dcracauer; see davidmc24#211
  • Built using Avro 1.11.1
  • Built using Gradle 7.5.1
  • Updated compatibility testing through Gradle 7.5.1
  • Updated compatibility testing through Java 18

1.4.0

  • Drop support for Kotlin plugin integration

1.3.0

  • Built using Avro 1.11.0
  • Dropped support for Avro 1.9.0-1.10.2 due to use of new SpecificRecordBuilderBase constructor in Avro 1.11.0
  • Default field visibility is now "PRIVATE" to match Avro's new default, as "PUBLIC_DEPRECATED" is no longer supported in Avro 1.11.0
  • Built using Gradle 7.3
  • Updated compatibility testing through Gradle 7.3
  • Updated compatibility testing through Kotlin 1.5.31
  • Added compatibility with Java 17
  • GenerateAvroProtocolTask now has a debug log to output its classpath
  • GenerateAvroProtocolTask will no longer delegate to the system classloader

1.2.1

  • Built using Gradle 7.1.1
  • Updated compatibility testing through Gradle 7.1.1
  • When sourcesJar is used, declares dependency on GenerateAvroJavaTasks to avoid disabling execution optimizations introduced in Gradle 7.1. (see #167)

1.2.0

  • Avro 1.9.0-1.9.2 is supported again (no changed needed; just change in support policy and testing)
  • generateAvroProtocol task fails if avpr file will get overwritten (due to multiple IDL files using the same namespace and protocol)

1.1.0

  • Built using Avro 1.10.2
  • Built using Gradle 7.0-rc-1
  • Updated compatibility testing through Gradle 6.8.3/7.0-rc-1
  • Updated compatibility testing through Kotlin 1.4.32
  • Updated compatibility testing to include Java 16/17-ea
  • Adopted Github Actions for compatibility testing

1.0.0

  • Published to Maven Central (no longer published to JCenter)
  • New plugin IDs: com.github.davidmc24.gradle.plugin.avro and com.github.davidmc24.gradle.plugin.avro-base
  • New package for tasks: com.github.davidmc24.gradle.plugin.avro

Pre-1.0 Versions

These versions used a different publishing process. They use different coordinates/packages and may no longer be available in a traditional Maven repository. It is strongly recommended to upgrade to a newer version.

If you still need to use them, the artifacts can be downloaded from GitHub Releases or accessed via JitPack. The plugin IDs are com.commercehub.gradle.plugin.avro and com.commercehub.gradle.plugin.avro-base, with all tasks in the package com.commercehub.gradle.plugin.avro.

0.22.0

  • Add Configuration Cache support (#129; thanks to dcabasson and eskatos)
  • Add coverage reporting via JaCoco/Codecov to the plugin's build pipeline
  • Add support for multiple IDL files with the same name in different directories (#123)
    • The .avpr file generated by GenerateAvroProtocolTask is now based on the namespace and name of the protocol, rather than the name of the .avdl file.
  • Built using Avro 1.10.1
  • Built using Gradle 6.7.1
  • Updated compatibility testing to include Java 15
  • Updated compatibility testing through Gradle 6.7.1
  • Updated compatibility testing through Kotlin 1.4.20

Links:

0.21.0

  • Built using Avro 1.10.0
  • Drop support for Avro 1.9.X
  • Removed support for dateTimeLogicalType; The behavior is now as if it were always JSR-310 due to an upstream change
  • Add support for optionalGettersForNullableFieldsOnly
  • Apply @Classpath annotation to classpath on GenerateAvroProtocolTask

Links:

0.20.0

  • Built using Gradle 6.5
  • Updated compatibility testing to include Java 14
  • Updated compatibility testing through Gradle 6.5
  • Add ResolveAvroDependenciesTask (#115)

Links:

0.19.1

  • Fix schema dependency resolution when types are referenced with a { "type": NAME } block rather than just NAME (#107)
  • Eliminate NullPointerException handling in schema dependency resolution, as it no longer appears to be needed.

Links:

0.19.0

  • Add support for Gradle 6.0-6.2.2 (#101)
  • Drop support for Gradle versions prior to 5.1
  • Update version of kotlin plugin in tests/example
  • Built using Avro 1.9.2 (#104)
  • Add support for Java 13
  • Add support for testing multiple Kotlin versions
  • Update plugin's own build to address some deprecation warnings of APIs being removed in Gradle 7
  • Add tests for Kotlin DSL usage (#61)
  • Support Task Configuration Avoidance (#97); thanks to dcabasson for the collaboration
  • Upgrade Codenarc from 1.4 to 1.5
  • Preliminary Java 14 support

Links:

0.18.0

  • Use reproducible file order for plugin archives
  • Eliminate usage of internal conventions API, using new Lazy Configuration approach instead; requires Gradle 4.4+
    • Technically, the APIs needed are available in Gradle 4.3, but there is a bug related to un-set Property instances in 4.3 and 4.3.1; see gradle/gradle#3879
  • Cleaned up compatibility code for older versions of Gradle
  • Built using Gradle 5.6.2
  • Upgrade Spock from 1.2 to 1.3
  • Upgrade Checkstyle from 6.1.1 to 8.23 and adjust rules used
  • Upgrade Codenarc from 1.0 to 1.4 and adjust rules used
  • Change source compatibility to 8
  • Modernized for Java 8
  • Built using Avro 1.9.1
  • GenerateAvroProtocolTask now has a classpath property; defaults to the runtime configuration when the Avro plugin is applied
  • GenerateAvroProtocolTask now properly declares the classpath as an input; fixes #86; thanks to RichSteele for the bug report
  • Fix handling of default outputCharacterEncoding (use of system default character set to match Java compiler)
  • Add support for generating getters that return Optional (#90); contribution from bspeakmon
  • Add support for logicalTypeFactories and customConversions; fixes #92

Links:

0.17.0

  • Built using Avro 1.9.0
  • Removed configuration setting validateDefaults; defaults are now always validated due to an upstream change
  • Java 7 is no longer supported, as Avro 1.9.0 is now Java 8+
  • Began testing using Java 12

Links:

0.16.0

  • Built using Gradle 4.10.2
  • Updated compatibility testing through Gradle 4.10.2
  • Added support for the Gradle Build Cache (#48); contribution from dcabasson
  • Upgrade Spock from 1.0 to 1.2
  • Update plugin publishing mode to address Gradle 5.0 deprecation warning

Links:

0.15.1

  • Fix "Boolean configuration cannot be set with boolean values from Kotlin DSL" (#60)

Links:

0.15.0

  • Built using Gradle 4.9
  • Updated compatibility testing through Gradle 4.9
  • Began testing using Java 11
  • Add support for generating schema files (#56)
  • Fix bug where GenerateAvroProtocolTask can't be used without a runtime configuration

Links:

0.14.2

  • Stop creating default generated output directories when outputDir is customized and IntelliJ integration is used (#52)

Links:

0.14.1

  • Built using Gradle 4.6
  • Updated compatibility testing through Gradle 4.6
  • Began testing using Java 10
  • Began testing using Kotlin 1.2.31
  • Fixed infinite loop when a schema file contains multiple definitions of the same type (#47)

Links:

0.14.0

  • Built using Gradle 4.5
  • Updated compatibility testing through Gradle 4.5
  • Support for validation of default values in schema (#42)

Links:

0.13.0

  • Remove pre-cleaning behavior from GenerateAvroJavaTask (#41)

Links:

0.12.0

  • Improve support for Kotlin (#36)

Links:

0.11.0

  • Built using Gradle 4.2.1
  • Began testing using Java 9
  • Built using Avro 1.8.2
  • Breaking backward compatibility with Avro versions older than 1.8.2
  • Add new configuration option "enableDecimalLogicalType" to generate BigDecimal for fields annotated with logicalType equals to decimal
  • Breaking backward compatibility caused by "enableDecimalLogicalType" default value set true. BigDecimal will be used instead of old usage of ByteBuffer

Links:

0.10.0

  • Drop support for Gradle 2.x
  • As Gradle 3.0+ has a minimum Java version requiremenet of Java 7, drop support for Java 6
  • Update source compatibility to Java 7
  • Reduce access to utility methods not intended for re-use
  • Stopped publishing to Gradle plugin portal
  • Published to Bintray
  • MapUtils class is no longer public

Links:

0.9.1

  • Built using Gradle 4.1
  • Updated versions for cross-compatibility testing

Links:

0.9.0

  • Built using Avro 1.8.1 (#23)
  • Built using Gradle 2.13
  • Added version cross-compatibility testing

Links:

0.8.1

  • Compatible at runtime with Gradle 5; no functional changes. Compiled with Gradle 5.6.

Links:

0.8.0

  • Add support for Java 6 (#21)

Links:

0.7.0

  • Remove usage of Apache Commons IO (#19)
  • Add ability to retry processing of duplicate type definitions (#13)
  • Renamed "encoding" option to "outputCharacterEncoding" to match Avro compiler
  • Allowed setting "outputCharacterEncoding" to a java.nio.charset.Charset (in addition to a String charset name)
  • Allowed setting "stringType" to a org.apache.avro.generic.GenericData.StringType (in addition to a String)
  • Allowed setting "fieldVisibility" to a org.apache.avro.compiler.specific.SpecificCompiler.FieldVisibility (in addition to a String)
  • Fixed handling of non-"true" String settings for "createSetters" option
  • Automatically use encoding from JavaCompile task as "outputCharacterEncoding", if set
  • Change default "outputCharacterEncoding" to system default to match JavaCompile task behavior (#20)

Links:

0.6.1

  • Add Checkstyle ImportControl to prevent accidentally adding dependencies on libraries that Gradle makes available for build but not runtime.
  • Remove usage of Guava (#18)

Links:

0.6.0

  • Add new configuration option "templateDirectory" to set source directory for the Avro compiler's Velocity templates.
  • Add new configuration option "createSetters" to allow suppressing the Avro compiler's creation of setters in created domain objects.
  • Matching of fieldVisibility settings is now case-insensitive.
  • Removed some excessive debug logging
  • Built against Gradle 2.7
  • Added Checkstyle and Codenarc to build
  • Known Bug: doesn't work properly unless you manually add a dependency on guava; please upgrade to 0.6.1

Links:

0.5.0

  • Add support for schemas/protocols/IDL in subdirectories of src/main/avro, etc. (#11)
  • Expose original error messages from avro-compiler when compilation fails

Links:

0.4.0

  • Add ability to specify fieldVisibility for generated Java source; contribution from wooder79
  • Removed support for unqualified plugin ID (just "avro")
  • Published via new mechanism to Gradle plugin portal
  • Stopped publishing to previous location on Bintray
  • Built against Gradle 2.6; uses test kit for functional testing

Links:

0.3.4

  • Fix registration of generated sources for compilation (#8)
  • Change classloader handling to better support import of external dependencies (#9)

Links:

0.3.3

  • Fix generation of Java files from .avdl files; contribution from viacoban

Links:

0.3.2

  • Improve handling when custom buildDir is used

Links:

0.3.1

  • Fix extension support for configuring encoding
  • Make default encoding UTF-8

Links:

0.3.0

  • IntelliJ: register generated source directories even if they don't already exist.
  • Add avro-base plugin, which exposes tasks and the extension without creating tasks, defaults, etc.
  • Add support for configuring encoding

Links:

0.2.0

  • Build against Gradle 1.12
  • Compile using Avro 1.7.6
  • Support for qualified plugin ID
  • Deprecate unqualified plugin ID

Links:

0.1.3

  • Always regenerate all Java classes when any schema file changes to avoid some classes having outdated schema information.

Links:

0.1.2

  • Eliminate dependency on guava, make dependency on commons-io explicit

Links:

0.1.1

  • Fixed NullPointerException when performing clean builds

Links:

0.1.0

  • Add support for converting IDL files to JSON protocol declaration files
  • Add support for generating Java classes from JSON protocol declaration files
  • Add support for generating Java classes from JSON schema declaration files
  • Add support for inter-dependent JSON schema declaration files
  • Add support for tweaking source/exclude directories in IntelliJ
  • Add support for specifying the string type to use in generated classes

Links: