with one click
with one click
| name | upgrade-deps |
| description | Upgrade Gradle dependencies and Gradle wrapper version |
| disable-model-invocation | true |
This skill performs a full Gradle dependency upgrade for the Central Dogma project step by step.
Central Dogma is a multi-module project with different minimum Java version requirements. Before upgrading a dependency, always verify that the new version supports the minimum Java version required by the modules that use it.
The minimum Java version for each module is determined by two things:
settings.gradle (java, java17, etc.)gradle.properties (javaSourceCompatibility=11, javaTargetCompatibility=11)Resolution order in gradle/scripts/lib/java.gradle (extractTargetJavaVersion()):
java17 (or similar) flag → that version winsgradle.properties values → Java 11| Java Version | Modules |
|---|---|
| 11 | :client:java, :client:java-armeria, :client:java-armeria-legacy, :client:java-armeria-xds, :client:java-spring-boot2-autoconfigure, :client:java-spring-boot2-starter, :common, :common-legacy, :server, :server-auth:saml, :server-auth:shiro, :server-mirror-git, :testing:testing-common, :testing:junit, :testing:junit4, :xds, :javadoc, :benchmarks:jmh, :it:it-mirror, :it:it-server, :it:mirror-listener, :it:server-healthy-plugin, :it:zone-leader-plugin, :it:xds-member-permission, :it:xds-k8s-node-ip-extractor, :testing-internal, :webapp, :dist |
| 17 | :client:java-spring-boot3-autoconfigure, :client:java-spring-boot3-starter, :client:java-spring-boot4-autoconfigure, :client:java-spring-boot4-starter |
When in doubt, check settings.gradle for the java or java17 flag on each subproject,
and gradle.properties for the default javaTargetCompatibility.
./gradlew dependencyUpdates --no-parallel
The report is saved to build/dependencyUpdates/report.txt.
Read build/dependencyUpdates/report.txt to identify all outdated dependencies.
For each dependency, note the current version and the available latest version.
If a version looks ambiguous (unexpected format, major version bump, unusual naming), verify on Maven Central before proceeding: https://central.sonatype.com/artifact/{groupId}/{artifactId}
Before upgrading any dependency, check dependencies.toml for a comment directly above
its version entry. Many pinned versions have an explicit reason, for example:
# Don't update `json-path` version
json-path = "2.2.0"
# 3.0.0 requires java 17
json-unit = "2.38.0"
# Ensure that we use the same ZooKeeper version as what Curator depends on.
# See: https://github.com/apache/curator/blob/master/pom.xml
# (Switch to the right tag to find out the right version.)
curator = "5.9.0"
If such a comment exists and the reason still applies, skip the upgrade and do not remove the comment.
If no comment exists, proceed with the Java version compatibility check:
dependencies.toml# X.Y requires Java 11)Edit the [versions] section in dependencies.toml to update the version strings.
The file is located at the root of the repository: dependencies.toml.
After editing dependencies.toml, re-read the full diff (git diff dependencies.toml) and
cross-check every changed entry against the dependencyUpdates report:
Check the latest stable Gradle release at https://gradle.org/releases/ and update
gradle/wrapper/gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-X.Y.Z-all.zip
Run the full build including tests to catch both compilation errors and runtime regressions:
./gradlew build --no-daemon
If there are compilation errors, API breaking changes, or test failures caused by the upgrade, fix them before proceeding.
Create a commit with the exact message format below. Follow it strictly — do not add extra sections, reorder bullets, or change the structure:
Update dependencies
- {library-name} {old-version} -> {new-version}
- {library-name} {old-version} -> {new-version}
- Build
- {library-name} {old-version} -> {new-version}
- {library-name} {old-version} -> {new-version}
Rules:
- {name} {old} -> {new}- Build bullet groups build-only dependencies (testImplementation, annotationProcessor,
relocated libs, non-transitive deps); nest them as sub-bullets with 3-space indentgRPC-Java, Jackson, Netty, Kotlin,
Logback, Micrometer); otherwise use the key name as-is from dependencies.toml- Build section entirely- Unupdated section with the
reason. This helps reviewers know which upgrades were intentionally skipped.Example:
Update dependencies
- gRPC-Java 1.63.0 -> 1.64.0
- Jackson 2.17.0 -> 2.18.0
- Build
- checkstyle 10.14.0 -> 10.17.0
- ErrorProne 2.27.0 -> 2.28.0
- Unupdated
- Caffeine 2.9.3 -> 3.2.0 (requires Java 11)
- ZooKeeper 3.9.3 (pinned to Curator's version)