Releases: google/protobuf-gradle-plugin
Releases · google/protobuf-gradle-plugin
v0.9.4 is released
- 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
- 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
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
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 formNo syntax specified for the proto file:
where the file listed is not a.proto
file.
v0.9.0 is released
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 ofeach
withingenerateProtoTasks {}
, 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 likesourcesJar
andjavadoc
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
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
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
v0.8.16 is released
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
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).