Releases: ascopes/protobuf-maven-plugin
v2.9.1
v2.9.0
Full Changelog: v2.8.1...v2.9.0
What's Changed
- Update README.md by @ascopes in #507
- Add configuration option to generate the binary proto descriptor by @lucarota in #506
New Contributors
Full Changelog: v2.8.0...v2.9.0
Due to a CI issue, this was also released as v2.8.1, although the release for that has been revoked on GitHub side now. Please update to 2.9.0 if on 2.8.1 by mistake.
v2.8.0
What's Changed
- Short-circuit glob checks for SourceGlobFilter.java by @ascopes in #490
- Bump com.puppycrawl.tools:checkstyle from 10.20.2 to 10.21.0 by @dependabot in #492
- Bump org.apache.maven.plugins:maven-invoker-plugin from 3.8.1 to 3.9.0 by @dependabot in #491
- Bump org.scala-lang:scala3-library_3 from 3.6.1 to 3.6.2 in /protobuf-maven-plugin/src/it/setup by @dependabot in #493
- Bump io.projectreactor:reactor-core from 3.7.0 to 3.7.1 in /protobuf-maven-plugin/src/it/setup by @dependabot in #495
- Bump com.google.api.grpc:proto-google-common-protos from 2.49.0 to 2.50.0 in /protobuf-maven-plugin/src/it/setup by @dependabot in #494
- Bump io.grpc:grpc-bom from 1.68.2 to 1.69.0 in /protobuf-maven-plugin/src/it/setup by @dependabot in #497
- Initial Aether tests by @ascopes in #496
- Bump org.junit:junit-bom from 5.11.3 to 5.11.4 by @dependabot in #500
- Bump org.assertj:assertj-core from 3.26.3 to 3.27.0 by @dependabot in #501
- Bump org.apache.maven.resolver:maven-resolver-api from 2.0.4 to 2.0.5 by @dependabot in #502
- Bump protobuf.version from 4.29.1 to 4.29.2 in /protobuf-maven-plugin/src/it/setup by @dependabot in #503
- Enable incremental compilation by default by @ascopes in #499
- Remove custom entry class from IncrementalCacheManager.java by @ascopes in #505
- Optimise IncrementalCacheManager.java by @ascopes in #504
Full Changelog: v2.7.3...v2.8.0
v2.7.3
What's Changed
Full Changelog: v2.7.2...v2.7.3
v2.7.2
What's Changed
- Bump com.fasterxml.jackson:jackson-bom from 2.18.1 to 2.18.2 by @dependabot in #474
- Bump io.grpc:grpc-bom from 1.68.1 to 1.68.2 in /protobuf-maven-plugin/src/it/setup by @dependabot in #476
- Bump kotlin.version from 2.0.21 to 2.1.0 in /protobuf-maven-plugin/src/it/setup by @dependabot in #477
- Bump protobuf.version from 4.28.3 to 4.29.0 in /protobuf-maven-plugin/src/it/setup by @dependabot in #478
- Bump com.puppycrawl.tools:checkstyle from 10.20.1 to 10.20.2 by @dependabot in #475
- Bump me.fabriciorby:maven-surefire-junit5-tree-reporter from 1.3.0 to 1.4.0 by @dependabot in #479
- GH-481: Fix bug where large builds crash on Windows by @ascopes in #482
- Bump protobuf.version from 4.29.0 to 4.29.1 in /protobuf-maven-plugin/src/it/setup by @dependabot in #484
- Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.11.1 to 3.11.2 by @dependabot in #483
- GH-481: Adhere to protoc argument file rules correctly by @ascopes in #485
Full Changelog: v2.7.1...v2.7.2
v2.7.1
Minor optimisations, logging improvements, and documentation improvements. Incremental compilation may now show a slight improvement in build times for massive projects.
The "usage" page which was a huge monolith has now been totally replaced with smaller topical pages that should be easier to find and digest.
Issue forms have also been introduced on GitHub.
What's Changed
- GH-445: Replace issue markdown templates with issue forms by @ascopes in #465
- Update settings.xml with missing XSDs and config by @ascopes in #466
- Tidy up logic within IncrementalCacheManager.java by @ascopes in #467
- Bump org.apache.maven.resolver:maven-resolver-api from 2.0.3 to 2.0.4 by @dependabot in #469
- Compute source and dependency hashes in parallel for incremental compilation by @ascopes in #468
- Simplify propositional logic within IncrementalCacheManager.java by @ascopes in #471
Full Changelog: v2.7.0...v2.7.1
v2.7.0
A fairly big release with lots of bug fixes and a couple of new features.
New features
- Introduced an experimental incremental compilation mode. The aim is to avoid regenerating the entire codebase with protoc if only a subset of sources have changed. This should significantly speed up development build times on codebases with large numbers of proto files.
- Set
<incrementalCompilation>true</incrementalCompilation>
or setprotobuf.compiler.incremental
totrue
to opt into using it. - This feature is disabled by default to avoid risking breaking existing builds.
- Since this is experimental, the feature may be subject to change in how it works internally for future bugfixes.
- This mechanism tracks dependencies and sources between builds and selectively recompiles only the files that may need changes. It is currently unable to act 'intelligently' respecting the logical dependency graph between files but this may be improved in the future.
- Integrity of existing generated sources is not tracked at this time, but may be in the future.
- This does not affect how the maven-compiler-plugin compiles sources.
mvn clean
will purge the cache and trigger a full rebuild.
- Set
- Archive extraction has been reworked and now supports loading JARs recursively from other JARs (and other archive types that were already supported).
Bugfixes and performance improvements
- Fixed a bug that caused a NullPointerException if dependencies were added with invalid classifiers that did not correspond to a real artifact. Correct errors are now raised to the user in this case.
- Fixed a bug where fatal artifact resolution errors were being ignored.
- Fixed a bug where non-fatal artifact resolution errors were not being logged. These are now emitted as warning logs.
- Fixed a bug where ConcurrentExecutor was not a singleton, which meant multiple threadpools were being initialised.
- Fixed a bug where dependency digests used paths rather than URIs for their seed, which could create a case where two JARs with nested dependencies produce a duplicate digest and thus break the import path for protoc.
- Generated source directories are now registered prior to invoking protoc rather than after. This supports incremental compilation by allowing the maven-compiler-plugin to still see all sources correctly if only a subset or no generated files change between builds.
- ConcurrentExecutor now uses a cached thread pool rather than a fixed-size thread pool if virtual threads are unavailable on the platform. The change should improve dependency analysis times.
- Fixed debug logs for paths discovered in JARs so that they use a representation that makes them explicitly clear to the user that they are a JAR virtual file system.
- Fixed incorrect logger name on proto source resolver components.
Internal improvements
- Updated logging to be clearer in several places.
- Some log entries have been removed.
- Some log entries have changed between debug, trace, and info levels.
- Moved source code resolution and import resolution to a new set of components to assist in code maintainability in the future.
- System path order is now guaranteed at compile time rather than being an implicit assumption. This logically does not change the existing behaviour or fix any bugs but reduces the risk of regression in the future.
- Integration test dependencies have been refactored to use a common setup POM, reducing the work needed to keep dependencies up to date in the future.
- Integration test common dependencies are now managed by Dependabot for weekly updates.
- Renamed several internal components and moved items between packages to improve code clarity and structure.
- Fixed a number of warnings in unit tests.
- Fixed a few typos in logs and exception messages.
- Improved JVM protoc plugin resolution exception handling.
- The archive extractor has been inlined and allowed the removal of duplicate code.
- Upgraded test dependencies to the latest version.
- Includes Scala, gRPC, reactor, and protobuf libraries.
- Test against Kotlin v2 rather than Kotlin v1.
Full Changelog: v2.6.6...v2.7.0
v2.6.6
What's Changed
- Bump com.puppycrawl.tools:checkstyle from 10.18.2 to 10.19.0 by @dependabot in #435
- Bump org.apache.maven.plugins:maven-plugin-report-plugin from 3.15.0 to 3.15.1 by @dependabot in #434
- Bump org.apache.maven.plugin-tools:maven-plugin-annotations from 3.15.0 to 3.15.1 by @dependabot in #432
- Bump org.apache.maven.plugins:maven-checkstyle-plugin from 3.5.0 to 3.6.0 by @dependabot in #436
- Bump org.apache.maven.plugins:maven-plugin-plugin from 3.15.0 to 3.15.1 by @dependabot in #433
- Extract out common logic for file tree rebasing by @ascopes in #437
- Reduce log noise for large numbers of protoc sources by @ascopes in #439
- Bump com.puppycrawl.tools:checkstyle from 10.19.0 to 10.20.0 by @dependabot in #444
- Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.10.1 to 3.11.1 by @dependabot in #442
- Bump org.apache.maven.resolver:maven-resolver-api from 2.0.2 to 2.0.3 by @dependabot in #443
- Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.1 to 3.5.2 by @dependabot in #441
- Bump org.apache.maven.plugins:maven-jxr-plugin from 3.5.0 to 3.6.0 by @dependabot in #440
- Force certain global components to be initialised as singletons rather than prototypes (the default) by @ascopes in #446
Full Changelog: v2.6.5...v2.6.6
v2.6.5
What's Changed
- Bump org.junit:junit-bom from 5.11.2 to 5.11.3 by @dependabot in #429
- Bump org.apache.maven.plugins:maven-invoker-plugin from 3.8.0 to 3.8.1 by @dependabot in #428
- Bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.7.0 to 3.8.0 by @dependabot in #430
- Improve executor shutdown failsafe and tests by @ascopes in #427
Full Changelog: v2.6.4...v2.6.5
v2.6.4
What's Changed
- Bump org.apache.maven.resolver:maven-resolver-api from 2.0.1 to 2.0.2 by @dependabot in #423
- Bump org.mockito:mockito-bom from 5.14.1 to 5.14.2 by @dependabot in #424
- Retain stacktrace for MultipleFailuresException by @ascopes in #425
- Improve MultipleFailureException message to include first cause by @ascopes in #426
Full Changelog: v2.6.3...v2.6.4