Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency io.github.ascopes:protobuf-maven-plugin to v2.7.0 #11377

Merged
merged 1 commit into from
Nov 18, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Nov 18, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
io.github.ascopes:protobuf-maven-plugin 2.6.6 -> 2.7.0 age adoption passing confidence

Release Notes

ascopes/protobuf-maven-plugin (io.github.ascopes:protobuf-maven-plugin)

v2.7.0

Compare Source

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 set protobuf.compiler.incremental to true 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.
  • 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: ascopes/protobuf-maven-plugin@v2.6.6...v2.7.0


Configuration

📅 Schedule: Branch creation - "before 4am" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot enabled auto-merge (squash) November 18, 2024 01:29
@renovate renovate bot merged commit 5c460ac into main Nov 18, 2024
37 checks passed
@renovate renovate bot deleted the renovate/protobuf-maven-plugin.version branch November 18, 2024 01:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants