build(oss-licenses): upgrade to Gradle 9.4 and enable full build cache support#384
Merged
timothyfroehlich merged 7 commits intomainfrom Mar 11, 2026
Merged
build(oss-licenses): upgrade to Gradle 9.4 and enable full build cache support#384timothyfroehlich merged 7 commits intomainfrom
timothyfroehlich merged 7 commits intomainfrom
Conversation
Gradle 9.x identifies the custom LicensesCleanUpTask as a hard failure due to implicit dependency conflicts with generation tasks. Standard Gradle 'clean' (Delete) already handles the build directory idiomatically. - Removed LicensesCleanUpTask.groovy and its corresponding test. - Refactored EndToEndTest.kt to use a createRunner() helper with forwardOutput() and strict configuration cache validation. - Optimized parallel test execution by isolating TestKit directories per test class. - Updated build.gradle.kts with optimized heap settings and live test event logging. - Added .kotlin/ to .gitignore to prevent tracking of local metadata. Closes #356, #300, #299
…e support This update modernizes the build environment and ensures task outputs are correctly cached and relocatable. - Upgraded Gradle wrapper to 9.4.0 in oss-licenses-plugin. - Added @CacheableTask, @nested, and @PathSensitive annotations to core tasks. - Implemented an automated relocatability test in EndToEndTest.kt. - Verified 100% parallel throughput with isolated TestKit directories. Closes #356
…racks Updated the E2E test matrix to cover the latest AGP tracks: - Stable: AGP 9.0.1 - RC: AGP 9.1.0-rc01 - Alpha: AGP 9.2.0-alpha02 Also updated Kotlin version expectation logic to correctly handle AGP 9.1 and 9.2.
Increased Xmx to 2048m and MaxMetaspaceSize to 1024m to prevent daemon resets during intensive parallel E2E tests.
Refactored testRelocatability to use the setupProject helper, ensuring project structure consistency across cloned directories.
Modified populate() in testRelocatability() to explicitly skip build/ and .gradle/ directories during copying. This guarantees that the relocated projects start from a pristine state, correctly verifying cache relocation instead of hitting UP-TO-DATE due to accidental output duplication.
xyarco
previously approved these changes
Mar 10, 2026
Resolved conflicts in EndToEndTest.kt by preserving modernization and relocatability logic while integrating the clean task removal from main.
rlazo
approved these changes
Mar 11, 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.
Description
This PR is stacked on top of #383. It upgrades the project to Gradle 9.4.0 and implements full build cache support for the
oss-licenses-plugin.Key Technical Changes
oss-licenses-pluginproject to the latest stable release. Note that Gradle 9.4 now defaults to stricter plugin validation for all published plugins, which our tasks now fully satisfy.@CacheableTasktoDependencyTaskandLicensesTask.@Nestedand@PathSensitive(PathSensitivity.NONE)to all relevant inputs to ensure relocatability.testRelocatability()suite toEndToEndTest.ktthat programmatically verifies the build cache is reused even when cloning the project into different directory locations.Xmx2048m,MaxMetaspaceSize1024m) to handle intensive parallel E2E tests on large machines.Related Issues
Closes #356