Skip to content

Releases: google/protobuf-gradle-plugin

v0.9.4 is released

15 Jul 00:08
Compare
Choose a tag to compare
  • Fix a bug that codegen plugins from system search path no longer works. (#675)
  • Avoid duplicate GenerateProtoTask output dir. This causes tasks to fail if it depends on the output source and duplicationStrategy is set to DuplicatesStrategy.FAIL. (#718)
  • Avoid eagerly resolving input files in ProtobufExtract. This bug would cause a lot of invalidations of configuration cache when upgrading to Gradle 8.1. (#719)
  • Fix plugin compatibility with Kotlin Gradle Plugin 1.9.0 release. (#721)

v0.9.3 is released

27 Apr 18:46
Compare
Choose a tag to compare
  • Fix "KotlinCompile is not a subclass of the given type org.gradle.api.tasks.SourceTask" regression in 0.9.2 (#657)
  • Fix configuration cache incompatibility with Gradle 8.1 with GenerateProtoTask.getIsTest() in the stack trace (#692)
  • Avoid eager reading of buildDir (#678). buildDir reading is now delayed until task configuration, so care is still needed if you modify buildDir.
  • Upgrade osdetector-gradle-plugin to 1.7.3. This adds detection for loongarch64 and avoids calling Provider.forUseAtConfigurationTime() for Gradle >= 7.4

v0.9.2 is released

10 Jan 03:09
Compare
Choose a tag to compare

Fixed bugs

  • Avoid circular dependencies with other plugins by manually plumbing the test dependency on main instead of using the compile classpath (#631). Fixes #624, a regression introduced in 0.9.0
  • Emulate and deprecate generatedFilesBaseDir (#636). generatedFilesBaseDir no longer changes the output directory directly. Instead, the default directory is always used and files are copied to generatedFilesBaseDir. This allows the task to delete previous output before generating new output. Users of generatedFilesBaseDir should stop using the configuration and instead use a separate Copy or Sync task. Fixes #33 where generated code of old builds remains, for users not using generatedFilesBaseDir
  • Set default command length limit to 64k (#653). Fixes argument list too long on Mac OS (#633)

v0.9.1 is released

08 Oct 14:26
Compare
Choose a tag to compare

Fixed bugs

  • Fixed a regression from 0.8.x where the proto source set filters were not being applied, causing non-.proto files to be passed to protoc (#621). This fixes errors of the form No syntax specified for the proto file: where the file listed is not a .proto file.

v0.9.0 is released

06 Oct 18:18
Compare
Choose a tag to compare

Fixed bugs

  • Workaround provider bug in Gradle when excluding tasks (#576). Errors were of the form Querying the mapped value of provider(interface java.util.Set) before task ':project:processResources' has completed is not supported

Improvements

  • Improved Kotlin accessor support for Android Gradle Plugin 7.x, which uses a different SourceSet class (#565, fixes #540)
  • Migrated project.protobuf from a convention to an extension (#577). This greatly improves the Kotlin experience, as fewer imports are necessary. On upgrade, kts users will need to remove any now-unnecessary imports from their scripts
  • Significantly improve support for task configuration avoidance. README.md has not yet been updated to encourage using configureEach instead of each within generateProtoTasks {}, but it is beneficial as long as you are not using any IDE plugins
  • Added generated code to java SourceSet instead of only adding it to JavaCompile and related tasks. This should cause tasks like sourcesJar and javadoc to now include the generated code. You may need to exclude the generated code from linters
  • Added Eclipse and VSCode support (#590). They should no longer have trouble finding generated code
  • Removed references to unused Gradle-internal FileResolver (#595)
  • Removed usage of deprecated GUtil (#604)
  • Removed dependency on Apache commons-lang (#606)
  • Removed dependency on Guava (#609)
  • Upgraded osdetector-gradle-plugin to 1.7.1
  • Substantial internal modernization. This should not impact most users, but there is risk of a regression or observing timing differences.

Thanks to contributors

v0.8.19 is released

29 Jun 18:59
Compare
Choose a tag to compare

The coordinates of the plugin have changed (inadvertently, same as in gradle/plugin-portal-requests#124). If you are not using the plugin DSL, then you will need to change the dependency classpath from gradle.plugin.com.google.protobuf:protobuf-gradle-plugin to com.google.protobuf:protobuf-gradle-plugin when upgrading. I hope that's the only issue. I would fix it with another release, but it seems this is how Gradle wants it, because plugin-publish is removing an override.

Fixed bugs

  • Fixed issue that would warn of #248 with Android, even when it didn't make sense (#542). The plugin itself was at fault
  • Fixed path-based protoc/plugin binaries to be considered for out-of-date checking (#560)

Improvements

  • Avoid eager task loading (#544). This reduces the Gradle configuration time
  • Ignore protoc/plugin artifact classifier for out-of-date checks (#560). This allows the Gradle cache to share results between platforms

Thanks to contributors

v0.8.18 is released

23 Nov 00:10
Compare
Choose a tag to compare

Fixed bugs

  • Restrict getOutputSourceDirectorySet() to directories only (#533). This fixes build failures for certain configurations when outputPath is a zip/jar

Improvements

  • Ignore empty directories for sources (#530). This is in preparation for Gradle 8 which will stop implicitly skipping the task when all directories are empty
  • Clean up Kotlin integration using newer Gradle integration (#531). Does not change minimum Gradle version supported

Thanks to contributors

v0.8.17 is released

15 Jul 06:13
Compare
Choose a tag to compare

Fixed bugs

  • Fix configuration caching violation when generating jar plugin trampoline script by using saved ProjectLayout to get build directory in GenerateProtoTask (#509)

Improvements

  • Make IDEA support work out of the box with lazy lookup of the IDEA plugin (#506)

Thanks to contributors

v0.8.16 is released

23 Apr 17:27
Compare
Choose a tag to compare

Fixed bugs

  • Make compileProtoPath variant selection criteria tighter by adding JAVA_RUNTIME usage attribute. Without this, dependency resolution may result in ambiguous variant selection error if the dependency exposes variants with different usages (#489)
  • Add explicit DuplicatesStrategy as required by Gradle 7+ (#487)

Improvements

  • Mark generated code as "generated" folder in IDEA, so that users will get warned if they try to edit those files (#477)
  • Support outputting generated code directly into JAR/ZIP (#480)

Thanks to contributors

v0.8.15 is released

11 Feb 18:52
Compare
Choose a tag to compare

Fixed bugs

  • Added missing proto{} Kotlin DSL for Android builds configuring proto source directory (#443).

Improvements

  • Undeclared configuration-time system property or file reads have been eliminated, this plugin is fully compliant with Gradle configuration caching (#467).
  • Avoid running ProtobufExtract tasks if unrelated files change (#452).

Thanks to contributors