JinwooHwang-SAS opened a new pull request, #7913: URL: https://github.com/apache/geode/pull/7913
As part of our modernization initiative, we have completed the migration of our build system and automation scripts from Gradle version 6.8.3 to version 7. This marks the initial phase of a broader effort to modernize our development infrastructure, including the Java and the Spring framework. This upgrade is expected to enhance the resilience and efficiency of our development pipeline while ensuring alignment with evolving industry standards. ### Build & Gradle Wrapper - Upgraded Gradle wrapper from 6.8.3 to 7.0 (gradle-wrapper.properties) to begin migration toward newer Gradle APIs. ### Settings & Composite Builds - Reordered settings.gradle: separated pluginManagement and plugins blocks; moved includes for annotation processor and scripts earlier; retained custom included builds (repeat-test, build-tools, testing-isolation) with dependency substitution. - Added scripts composite build; ensures shared Gradle script plugins resolved as included builds. - Preserved legacy Gradle version guard (GradleVersion check). ### Internal API / Compatibility Fix - Updated import in LauncherProxyWorkerProcessFactory to new package org.gradle.api.internal.file.temp.TemporaryFileProvider (internal package path change across Gradle versions). ### Script Plugin Adjustments (build-tools/scripts) - Added explicit Maven dependencies (maven-core, maven-model) to scripts build for plugins needing Maven model parsing. ### Java Convention Script (geode-java.gradle) - Replaced deprecated testCompile with testImplementation in custom testOutput configuration inheritance. - Corrected artifacts DSL syntax: testOutput (jarTest). - Fixed javadoc classpath to use compileClasspath instead of compileOnly (ensures full resolution). - Minor formatting / parentheses normalization. ### Publishing Logic (geode-publish-artifacts.gradle) - Rewrote optional dependency collection: now aggregates from api, implementation, compileOnly, runtimeOnly, plus runtimeClasspath dependencies instead of legacy compile/runtime configurations removed in Gradle 7. - Broader and future‑proof detection of optional deps for generated POM. ### Root Build Script - Refactored combineReports configuration: materialized task lookup into variable (cr), gathered all Test tasks once, added dependsOn for proper execution order. ### Assembly Module (geode-assembly) - Added outputs.dir to downloadWebServers for task output declaration (up-to-date checks). - Introduced explicit dependsOn wiring from processDistributedTestResources to downloadWebServers to eliminate implicit dependency warning. ### Connectors Module (geode-connectors) - Declared inputs.files and outputs.dir for downloadJdbcJars for incremental correctness. - Added dependsOn linkage from processDistributedTestResources to downloadJdbcJars to avoid implicit dependency warning. ### Core Module (geode-core) - Added duplicatesStrategy = EXCLUDE for processIntegrationTestResources to prevent duplicate resource conflicts during integration test resource processing. ### General Task & Incremental Build Hygiene - Multiple tasks now declare outputs.dir / inputs to leverage incremental builds and avoid Gradle warnings about implicit dependencies or undeclared outputs. ### Optional / Runtime Dependency Mapping Modernization - Transitioned away from deprecated compile/runtime configurations toward configuration names aligned with Gradle 7 (api, implementation, runtimeOnly, compileOnly, runtimeClasspath). ### Test Aggregation - Improved reliability of aggregated test reporting by explicitly depending the combined report task on all discovered Test tasks. ### Net Effect - Moves project onto Gradle 7 API surface (config name updates, import adjustments). - Reduces deprecation pressure ahead of later Gradle upgrades. - Improves correctness of publishing metadata (optional flags) and build reproducibility (declared inputs/outputs & task wiring). - Cleans up resource processing and reduces warnings about implicit dependencies and duplicate resources. <!-- Thank you for submitting a contribution to Apache Geode. --> <!-- In order to streamline the review of the contribution we ask you to ensure the following steps have been taken: --> ### For all changes: - [ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message? - [x] Has your PR been rebased against the latest commit within the target branch (typically `develop`)? - [ ] Is your initial contribution a single, squashed commit? - [ ] Does `gradlew build` run cleanly? - [ ] Have you written or updated unit tests to verify your changes? - [ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)? <!-- Note: Please ensure that once the PR is submitted, check Concourse for build issues and submit an update to your PR as soon as possible. If you need help, please send an email to d...@geode.apache.org. --> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org