Upgrade to Gradle 8.11.1 to fix PGP verification issues - #599
Merged
Conversation
Upgrades: - Gradle 7.6.6 → 8.11.1 - Shadow plugin 7.1.2 → 8.1.1 - OSPackage plugin 9.1.1 → 11.11.2 (with namespace change to com.netflix) Benefits: - Fixes PGP signature verification ClassCastException bug in Gradle 7.x - Enables reliable dependency verification with PGP + SHA256 - Improves build performance and configuration caching - Allows Renovate to auto-update verification metadata via postUpgradeTasks Testing: - Clean build passes with strict verification - All plugins compatible - No breaking changes to build configuration Regenerated verification-metadata.xml and verification-keyring.keys with PGP and SHA256 verification enabled. Gradle 8 handles PGP signatures correctly, eliminating the need for workarounds. Configured Renovate to automatically regenerate SHA256 checksums when updating dependencies via postUpgradeTasks.
- Add trusted keys for javax.activation, javax.xml.bind, net.java, com.squareup.okio - Update Renovate postUpgradeTasks to regenerate PGP trust entries (pgp,sha256) - This ensures Renovate automatically updates both checksums and trusted keys Previously Renovate was only updating sha256 checksums, which meant new dependencies with PGP signatures would fail verification in CI.
- Add trusted keys for javax.activation, javax.xml.bind, net.java, com.squareup.okio - Regenerate verification keyring to include all missing PGP keys - Update Renovate postUpgradeTasks to regenerate both metadata and keyring (--export-keys) - Add gradle/verification-keyring.keys to Renovate fileFilters This ensures Renovate automatically updates both the verification metadata XML (trusted key list) and the keyring file (actual PGP keys) when updating dependencies. Previously only the XML was being updated, causing CI failures when new dependencies introduced new signing keys.
There was a problem hiding this comment.
Pull request overview
This PR upgrades the project from Gradle 7.6.6 to Gradle 8.11.1 to fix PGP verification issues caused by a known bug in Gradle 7.x's BouncyCastle PGP processing. The upgrade ensures reliable dependency verification and enables automated Renovate updates.
Changes:
- Upgraded Gradle from 7.6.6 to 8.11.1
- Updated shadow plugin from 7.1.2 to 8.1.1 (Gradle 8 compatibility)
- Updated OSPackage plugin from 9.1.1 to 11.11.2 with namespace change from
nebula.ospackagetocom.netflix.nebula.ospackage - Regenerated dependency verification files with updated PGP keys and SHA256 checksums
- Added Renovate postUpgradeTasks to automatically update verification metadata
- Updated README documentation with clearer instructions for manual dependency updates
Reviewed changes
Copilot reviewed 4 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| renovate.json | Added postUpgradeTasks to automate verification metadata updates when Renovate updates dependencies |
| gradle/wrapper/gradle-wrapper.properties | Updated Gradle distribution URL from 7.6.6 to 8.11.1 |
| gradle/verification-metadata.xml | Regenerated with schema 1.3, updated trusted keys, and fresh PGP/SHA256 verification data |
| gradle/libs.versions.toml | Updated plugin versions and OSPackage plugin namespace |
| README.md | Improved documentation with clearer instructions for dependency verification updates |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Remove verification-keyring.gpg from tracking (binary format not needed) - Clarify README instructions for manual dependency updates - Only verification-keyring.keys (text format) is needed for verification
gschueler
reviewed
Jan 15, 2026
gschueler
approved these changes
Jan 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrade to Gradle 8.11.1 to Fix PGP Verification Issues
Problem
Multiple Renovate PRs have been failing with this error:
This is a known bug in Gradle 7.x's BouncyCastle PGP processing when handling certain PGP key formats (specifically compressed signature packets). Every time Renovate updates a dependency, new PGP keys need to be downloaded, triggering this bug and causing CI to fail.
Solution
Upgraded to Gradle 8.11.1, which includes a fixed version of BouncyCastle that properly handles PGP signatures.
Changes
Gradle & Plugins
nebula.ospackagetocom.netflix.nebula.ospackage)Verification Files
gradle/verification-keyring.keyswith fresh PGP keys (no more corrupted signatures)gradle/verification-metadata.xmlwith both PGP and SHA256 verification.gpgfile per documentationRenovate Configuration
Added
postUpgradeTasksto automatically regenerate verification metadata when dependencies are updated:{ "postUpgradeTasks": { "commands": [ "./gradlew --write-verification-metadata sha256 help" ], "fileFilters": [ "gradle/verification-metadata.xml" ] } }This ensures future Renovate PRs automatically include updated checksums for new dependency versions.
Benefits
✅ Fixes PGP verification bug - No more ClassCastException errors
✅ Enables strict dependency verification - Full PGP + SHA256 validation works reliably
✅ Better build performance - Gradle 8 includes performance improvements and configuration caching
✅ Renovate automation - Dependency updates will now work seamlessly
✅ Future-proof - Gradle 8 is actively maintained and supports Java 11-21
Testing
./gradlew clean build --dependency-verification strictCompatibility
Post-Merge Actions
After this merges to main:
./gradlew --write-verification-metadata sha256 helpto update checksumsReferences