From 379ed3f6d5aeeede15dd2a2433239791435fcf0f Mon Sep 17 00:00:00 2001 From: exoego Date: Sat, 5 Jul 2025 22:05:15 +0900 Subject: [PATCH 1/3] chore: use gradle version catalogs as a single source of truth for dependency --- build.gradle | 6 ++--- components/abstractions/android/build.gradle | 6 ++--- .../abstractions/gradle/dependencies.gradle | 12 +++++----- .../authentication/azure/android/build.gradle | 6 ++--- .../azure/gradle/dependencies.gradle | 16 +++++++------- components/bundle/android/build.gradle | 6 ++--- components/bundle/gradle/dependencies.gradle | 8 +++---- components/http/okHttp/android/build.gradle | 6 ++--- .../http/okHttp/gradle/dependencies.gradle | 18 +++++++-------- .../serialization/form/android/build.gradle | 6 ++--- .../form/gradle/dependencies.gradle | 6 ++--- .../serialization/json/android/build.gradle | 6 ++--- .../json/gradle/dependencies.gradle | 8 +++---- .../multipart/android/build.gradle | 6 ++--- .../multipart/gradle/dependencies.gradle | 8 +++---- .../serialization/text/android/build.gradle | 6 ++--- .../text/gradle/dependencies.gradle | 6 ++--- gradle/libs.versions.toml | 22 +++++++++++++++++++ 18 files changed, 90 insertions(+), 68 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/build.gradle b/build.gradle index f876d8b50..5ae8c474a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,8 @@ plugins { id "java-library" - id "org.sonarqube" version "6.2.0.5505" - id 'com.github.spotbugs' version '6.2.1' - id "com.diffplug.spotless" version "7.0.4" + alias(libs.plugins.org.sonarqube) + alias(libs.plugins.com.github.spotbugs) + alias(libs.plugins.com.diffplug.spotless) } sonar { diff --git a/components/abstractions/android/build.gradle b/components/abstractions/android/build.gradle index ec9a81d7a..7c78f35ed 100644 --- a/components/abstractions/android/build.gradle +++ b/components/abstractions/android/build.gradle @@ -8,9 +8,9 @@ buildscript { } dependencies { - classpath "com.gradle:gradle-enterprise-gradle-plugin:3.19.2" - classpath "com.android.tools.build:gradle:8.11.0" - classpath "com.github.ben-manes:gradle-versions-plugin:0.52.0" + classpath(libs.com.gradle.gradle.enterprise.gradle.plugin) + classpath(libs.com.android.tools.build.gradle) + classpath(libs.com.github.ben.manes.gradle.versions.plugin) } } diff --git a/components/abstractions/gradle/dependencies.gradle b/components/abstractions/gradle/dependencies.gradle index 40e08621f..9ccd7e395 100644 --- a/components/abstractions/gradle/dependencies.gradle +++ b/components/abstractions/gradle/dependencies.gradle @@ -1,12 +1,12 @@ dependencies { // Use JUnit Jupiter API for testing. - testImplementation 'org.junit.jupiter:junit-jupiter:5.13.3' - testRuntimeOnly("org.junit.platform:junit-platform-launcher") - testImplementation 'org.mockito:mockito-core:5.18.0' + testImplementation(libs.org.junit.jupiter.junit.jupiter) + testRuntimeOnly(libs.org.junit.platform.junit.platform.launcher) + testImplementation(libs.org.mockito.mockito.core) testImplementation project(':components:serialization:json') // This dependency is used internally, and not exposed to consumers on their own compile classpath. - implementation 'io.github.std-uritemplate:std-uritemplate:2.0.0' - implementation 'io.opentelemetry:opentelemetry-api:1.51.0' - implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1' + implementation(libs.io.github.std.uritemplate.std.uritemplate) + implementation(libs.io.opentelemetry.opentelemetry.api) + implementation(libs.jakarta.annotation.jakarta.annotation.api) } diff --git a/components/authentication/azure/android/build.gradle b/components/authentication/azure/android/build.gradle index 8355ed31c..aa82165af 100644 --- a/components/authentication/azure/android/build.gradle +++ b/components/authentication/azure/android/build.gradle @@ -8,9 +8,9 @@ buildscript { } dependencies { - classpath "com.gradle:gradle-enterprise-gradle-plugin:3.19.2" - classpath "com.android.tools.build:gradle:8.11.0" - classpath "com.github.ben-manes:gradle-versions-plugin:0.52.0" + classpath(libs.com.gradle.gradle.enterprise.gradle.plugin) + classpath(libs.com.android.tools.build.gradle) + classpath(libs.com.github.ben.manes.gradle.versions.plugin) } } diff --git a/components/authentication/azure/gradle/dependencies.gradle b/components/authentication/azure/gradle/dependencies.gradle index 9cadef6a5..9b7511b00 100644 --- a/components/authentication/azure/gradle/dependencies.gradle +++ b/components/authentication/azure/gradle/dependencies.gradle @@ -1,15 +1,15 @@ dependencies { // Use JUnit Jupiter API for testing. - testImplementation 'org.junit.jupiter:junit-jupiter:5.13.3' - testRuntimeOnly("org.junit.platform:junit-platform-launcher") - testImplementation 'org.mockito:mockito-core:5.18.0' + testImplementation(libs.org.junit.jupiter.junit.jupiter) + testRuntimeOnly(libs.org.junit.platform.junit.platform.launcher) + testImplementation(libs.org.mockito.mockito.core) // This dependency is used internally, and not exposed to consumers on their own compile classpath. - implementation 'io.opentelemetry:opentelemetry-api:1.51.0' - implementation 'io.opentelemetry:opentelemetry-context:1.51.0' - implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1' - api 'javax.xml.stream:stax-api:1.0-2' - api 'com.azure:azure-core:1.55.5' + implementation(libs.io.opentelemetry.opentelemetry.api) + implementation(libs.io.opentelemetry.opentelemetry.context) + implementation(libs.jakarta.annotation.jakarta.annotation.api) + api(libs.javax.xml.stream.stax.api) + api(libs.com.azure.azure.core) api project(':components:abstractions') } \ No newline at end of file diff --git a/components/bundle/android/build.gradle b/components/bundle/android/build.gradle index ce95491be..d84d033b4 100644 --- a/components/bundle/android/build.gradle +++ b/components/bundle/android/build.gradle @@ -8,9 +8,9 @@ buildscript { } dependencies { - classpath "com.gradle:gradle-enterprise-gradle-plugin:3.19.2" - classpath "com.android.tools.build:gradle:8.11.0" - classpath "com.github.ben-manes:gradle-versions-plugin:0.52.0" + classpath(libs.com.gradle.gradle.enterprise.gradle.plugin) + classpath(libs.com.android.tools.build.gradle) + classpath(libs.com.github.ben.manes.gradle.versions.plugin) } } diff --git a/components/bundle/gradle/dependencies.gradle b/components/bundle/gradle/dependencies.gradle index 2db88cb29..ef9fd5816 100644 --- a/components/bundle/gradle/dependencies.gradle +++ b/components/bundle/gradle/dependencies.gradle @@ -1,11 +1,11 @@ dependencies { // Use JUnit Jupiter API for testing. - testImplementation 'org.junit.jupiter:junit-jupiter:5.13.3' - testRuntimeOnly("org.junit.platform:junit-platform-launcher") + testImplementation(libs.org.junit.jupiter.junit.jupiter) + testRuntimeOnly(libs.org.junit.platform.junit.platform.launcher) - testImplementation 'org.mockito:mockito-core:5.18.0' + testImplementation(libs.org.mockito.mockito.core) - implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1' + implementation(libs.jakarta.annotation.jakarta.annotation.api) api project(':components:abstractions') api project(':components:http:okHttp') diff --git a/components/http/okHttp/android/build.gradle b/components/http/okHttp/android/build.gradle index 5871eeb59..b110eec83 100644 --- a/components/http/okHttp/android/build.gradle +++ b/components/http/okHttp/android/build.gradle @@ -8,9 +8,9 @@ buildscript { } dependencies { - classpath "com.gradle:gradle-enterprise-gradle-plugin:3.19.2" - classpath "com.android.tools.build:gradle:8.11.0" - classpath "com.github.ben-manes:gradle-versions-plugin:0.52.0" + classpath(libs.com.gradle.gradle.enterprise.gradle.plugin) + classpath(libs.com.android.tools.build.gradle) + classpath(libs.com.github.ben.manes.gradle.versions.plugin) } } diff --git a/components/http/okHttp/gradle/dependencies.gradle b/components/http/okHttp/gradle/dependencies.gradle index 069f4de68..42342cc85 100644 --- a/components/http/okHttp/gradle/dependencies.gradle +++ b/components/http/okHttp/gradle/dependencies.gradle @@ -1,18 +1,18 @@ dependencies { // Use JUnit Jupiter API for testing. - testImplementation 'org.junit.jupiter:junit-jupiter:5.13.3' - testRuntimeOnly("org.junit.platform:junit-platform-launcher") + testImplementation(libs.org.junit.jupiter.junit.jupiter) + testRuntimeOnly(libs.org.junit.platform.junit.platform.launcher) - testImplementation 'org.mockito:mockito-core:5.18.0' - testImplementation 'com.squareup.okhttp3:logging-interceptor:4.12.0' - testImplementation 'com.squareup.okhttp3:mockwebserver:4.12.0' + testImplementation(libs.org.mockito.mockito.core) + testImplementation(libs.com.squareup.okhttp3.logging.interceptor) + testImplementation(libs.com.squareup.okhttp3.mockwebserver) // This dependency is used internally, and not exposed to consumers on their own compile classpath. - implementation 'io.opentelemetry:opentelemetry-api:1.51.0' - implementation 'io.opentelemetry:opentelemetry-context:1.51.0' - implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1' - api 'com.squareup.okhttp3:okhttp:4.12.0' + implementation(libs.io.opentelemetry.opentelemetry.api) + implementation(libs.io.opentelemetry.opentelemetry.context) + implementation(libs.jakarta.annotation.jakarta.annotation.api) + api(libs.com.squareup.okhttp3.okhttp) api project(':components:abstractions') } diff --git a/components/serialization/form/android/build.gradle b/components/serialization/form/android/build.gradle index cf7dd0b27..6dca0aeb9 100644 --- a/components/serialization/form/android/build.gradle +++ b/components/serialization/form/android/build.gradle @@ -8,9 +8,9 @@ buildscript { } dependencies { - classpath "com.gradle:gradle-enterprise-gradle-plugin:3.19.2" - classpath "com.android.tools.build:gradle:8.11.0" - classpath "com.github.ben-manes:gradle-versions-plugin:0.52.0" + classpath(libs.com.gradle.gradle.enterprise.gradle.plugin) + classpath(libs.com.android.tools.build.gradle) + classpath(libs.com.github.ben.manes.gradle.versions.plugin) } } diff --git a/components/serialization/form/gradle/dependencies.gradle b/components/serialization/form/gradle/dependencies.gradle index a8fbc7171..eadc78ac9 100644 --- a/components/serialization/form/gradle/dependencies.gradle +++ b/components/serialization/form/gradle/dependencies.gradle @@ -1,10 +1,10 @@ dependencies { // Use JUnit Jupiter API for testing. - testImplementation 'org.junit.jupiter:junit-jupiter:5.13.3' - testRuntimeOnly("org.junit.platform:junit-platform-launcher") + testImplementation(libs.org.junit.jupiter.junit.jupiter) + testRuntimeOnly(libs.org.junit.platform.junit.platform.launcher) // This dependency is used internally, and not exposed to consumers on their own compile classpath. - implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1' + implementation(libs.jakarta.annotation.jakarta.annotation.api) api project(':components:abstractions') } diff --git a/components/serialization/json/android/build.gradle b/components/serialization/json/android/build.gradle index cf7dd0b27..6dca0aeb9 100644 --- a/components/serialization/json/android/build.gradle +++ b/components/serialization/json/android/build.gradle @@ -8,9 +8,9 @@ buildscript { } dependencies { - classpath "com.gradle:gradle-enterprise-gradle-plugin:3.19.2" - classpath "com.android.tools.build:gradle:8.11.0" - classpath "com.github.ben-manes:gradle-versions-plugin:0.52.0" + classpath(libs.com.gradle.gradle.enterprise.gradle.plugin) + classpath(libs.com.android.tools.build.gradle) + classpath(libs.com.github.ben.manes.gradle.versions.plugin) } } diff --git a/components/serialization/json/gradle/dependencies.gradle b/components/serialization/json/gradle/dependencies.gradle index 4f4e4dfc9..ed31405f7 100644 --- a/components/serialization/json/gradle/dependencies.gradle +++ b/components/serialization/json/gradle/dependencies.gradle @@ -1,11 +1,11 @@ dependencies { // Use JUnit Jupiter API for testing. - testImplementation 'org.junit.jupiter:junit-jupiter:5.13.3' - testRuntimeOnly("org.junit.platform:junit-platform-launcher") + testImplementation(libs.org.junit.jupiter.junit.jupiter) + testRuntimeOnly(libs.org.junit.platform.junit.platform.launcher) // This dependency is used internally, and not exposed to consumers on their own compile classpath. - implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1' - api 'com.google.code.gson:gson:2.13.1' + implementation(libs.jakarta.annotation.jakarta.annotation.api) + api(libs.com.google.code.gson.gson) api project(':components:abstractions') } diff --git a/components/serialization/multipart/android/build.gradle b/components/serialization/multipart/android/build.gradle index cf7dd0b27..6dca0aeb9 100644 --- a/components/serialization/multipart/android/build.gradle +++ b/components/serialization/multipart/android/build.gradle @@ -8,9 +8,9 @@ buildscript { } dependencies { - classpath "com.gradle:gradle-enterprise-gradle-plugin:3.19.2" - classpath "com.android.tools.build:gradle:8.11.0" - classpath "com.github.ben-manes:gradle-versions-plugin:0.52.0" + classpath(libs.com.gradle.gradle.enterprise.gradle.plugin) + classpath(libs.com.android.tools.build.gradle) + classpath(libs.com.github.ben.manes.gradle.versions.plugin) } } diff --git a/components/serialization/multipart/gradle/dependencies.gradle b/components/serialization/multipart/gradle/dependencies.gradle index 9585faacc..31d99c2f7 100644 --- a/components/serialization/multipart/gradle/dependencies.gradle +++ b/components/serialization/multipart/gradle/dependencies.gradle @@ -1,11 +1,11 @@ dependencies { // Use JUnit Jupiter API for testing. - testImplementation 'org.junit.jupiter:junit-jupiter:5.13.3' - testRuntimeOnly("org.junit.platform:junit-platform-launcher") - testImplementation 'org.mockito:mockito-core:5.18.0' + testImplementation(libs.org.junit.jupiter.junit.jupiter) + testRuntimeOnly(libs.org.junit.platform.junit.platform.launcher) + testImplementation(libs.org.mockito.mockito.core) // This dependency is used internally, and not exposed to consumers on their own compile classpath. - implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1' + implementation(libs.jakarta.annotation.jakarta.annotation.api) api project(':components:abstractions') testImplementation project(':components:serialization:json') diff --git a/components/serialization/text/android/build.gradle b/components/serialization/text/android/build.gradle index cf7dd0b27..6dca0aeb9 100644 --- a/components/serialization/text/android/build.gradle +++ b/components/serialization/text/android/build.gradle @@ -8,9 +8,9 @@ buildscript { } dependencies { - classpath "com.gradle:gradle-enterprise-gradle-plugin:3.19.2" - classpath "com.android.tools.build:gradle:8.11.0" - classpath "com.github.ben-manes:gradle-versions-plugin:0.52.0" + classpath(libs.com.gradle.gradle.enterprise.gradle.plugin) + classpath(libs.com.android.tools.build.gradle) + classpath(libs.com.github.ben.manes.gradle.versions.plugin) } } diff --git a/components/serialization/text/gradle/dependencies.gradle b/components/serialization/text/gradle/dependencies.gradle index a8fbc7171..eadc78ac9 100644 --- a/components/serialization/text/gradle/dependencies.gradle +++ b/components/serialization/text/gradle/dependencies.gradle @@ -1,10 +1,10 @@ dependencies { // Use JUnit Jupiter API for testing. - testImplementation 'org.junit.jupiter:junit-jupiter:5.13.3' - testRuntimeOnly("org.junit.platform:junit-platform-launcher") + testImplementation(libs.org.junit.jupiter.junit.jupiter) + testRuntimeOnly(libs.org.junit.platform.junit.platform.launcher) // This dependency is used internally, and not exposed to consumers on their own compile classpath. - implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1' + implementation(libs.jakarta.annotation.jakarta.annotation.api) api project(':components:abstractions') } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..ffad5cc27 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,22 @@ +[libraries] +com-android-tools-build-gradle = { group = "com.android.tools.build", name = "gradle", version = "8.11.0" } +com-azure-azure-core = { group = "com.azure", name = "azure-core", version = "1.55.5" } +com-github-ben-manes-gradle-versions-plugin = { group = "com.github.ben-manes", name = "gradle-versions-plugin", version = "0.52.0" } +com-google-code-gson-gson = { group = "com.google.code.gson", name = "gson", version = "2.13.1" } +com-gradle-gradle-enterprise-gradle-plugin = { group = "com.gradle", name = "gradle-enterprise-gradle-plugin", version = "3.19.2" } +com-squareup-okhttp3-logging-interceptor = { group = "com.squareup.okhttp3", name = "logging-interceptor", version = "4.12.0" } +com-squareup-okhttp3-mockwebserver = { group = "com.squareup.okhttp3", name = "mockwebserver", version = "4.12.0" } +com-squareup-okhttp3-okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version = "4.12.0" } +io-github-std-uritemplate-std-uritemplate = { group = "io.github.std-uritemplate", name = "std-uritemplate", version = "2.0.0" } +io-opentelemetry-opentelemetry-api = { group = "io.opentelemetry", name = "opentelemetry-api", version = "1.51.0" } +io-opentelemetry-opentelemetry-context = { group = "io.opentelemetry", name = "opentelemetry-context", version = "1.51.0" } +jakarta-annotation-jakarta-annotation-api = { group = "jakarta.annotation", name = "jakarta.annotation-api", version = "2.1.1" } +javax-xml-stream-stax-api = { group = "javax.xml.stream", name = "stax-api", version = "1.0-2" } +org-junit-jupiter-junit-jupiter = { group = "org.junit.jupiter", name = "junit-jupiter", version = "5.13.2" } +org-junit-platform-junit-platform-launcher = { group = "org.junit.platform", name = "junit-platform-launcher", version = "1.13.0-M3" } +org-mockito-mockito-core = { group = "org.mockito", name = "mockito-core", version = "5.18.0" } + +[plugins] +com-diffplug-spotless = { id = "com.diffplug.spotless", version = "7.0.4" } +com-github-spotbugs = { id = "com.github.spotbugs", version = "6.2.1" } +org-sonarqube = { id = "org.sonarqube", version = "6.2.0.5505" } From a7165f7cc05976939cc191f0de57ff8330545f1f Mon Sep 17 00:00:00 2001 From: exoego Date: Sat, 5 Jul 2025 22:09:04 +0900 Subject: [PATCH 2/3] chore: use version references to align multiple deps --- gradle/libs.versions.toml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ffad5cc27..efe6d25ac 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,18 +1,22 @@ +[versions] +okhttp = "4.12.0" +opentelemetry = "1.51.0" + [libraries] com-android-tools-build-gradle = { group = "com.android.tools.build", name = "gradle", version = "8.11.0" } com-azure-azure-core = { group = "com.azure", name = "azure-core", version = "1.55.5" } com-github-ben-manes-gradle-versions-plugin = { group = "com.github.ben-manes", name = "gradle-versions-plugin", version = "0.52.0" } com-google-code-gson-gson = { group = "com.google.code.gson", name = "gson", version = "2.13.1" } com-gradle-gradle-enterprise-gradle-plugin = { group = "com.gradle", name = "gradle-enterprise-gradle-plugin", version = "3.19.2" } -com-squareup-okhttp3-logging-interceptor = { group = "com.squareup.okhttp3", name = "logging-interceptor", version = "4.12.0" } -com-squareup-okhttp3-mockwebserver = { group = "com.squareup.okhttp3", name = "mockwebserver", version = "4.12.0" } -com-squareup-okhttp3-okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version = "4.12.0" } +com-squareup-okhttp3-logging-interceptor = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp" } +com-squareup-okhttp3-mockwebserver = { group = "com.squareup.okhttp3", name = "mockwebserver", version.ref = "okhttp" } +com-squareup-okhttp3-okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" } io-github-std-uritemplate-std-uritemplate = { group = "io.github.std-uritemplate", name = "std-uritemplate", version = "2.0.0" } -io-opentelemetry-opentelemetry-api = { group = "io.opentelemetry", name = "opentelemetry-api", version = "1.51.0" } -io-opentelemetry-opentelemetry-context = { group = "io.opentelemetry", name = "opentelemetry-context", version = "1.51.0" } +io-opentelemetry-opentelemetry-api = { group = "io.opentelemetry", name = "opentelemetry-api", version.ref = "opentelemetry" } +io-opentelemetry-opentelemetry-context = { group = "io.opentelemetry", name = "opentelemetry-context", version.ref = "opentelemetry" } jakarta-annotation-jakarta-annotation-api = { group = "jakarta.annotation", name = "jakarta.annotation-api", version = "2.1.1" } javax-xml-stream-stax-api = { group = "javax.xml.stream", name = "stax-api", version = "1.0-2" } -org-junit-jupiter-junit-jupiter = { group = "org.junit.jupiter", name = "junit-jupiter", version = "5.13.2" } +org-junit-jupiter-junit-jupiter = { group = "org.junit.jupiter", name = "junit-jupiter", version = "5.13.3" } org-junit-platform-junit-platform-launcher = { group = "org.junit.platform", name = "junit-platform-launcher", version = "1.13.0-M3" } org-mockito-mockito-core = { group = "org.mockito", name = "mockito-core", version = "5.18.0" } From 2ecb06333faee8e428145b72163e2949934d6ad3 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Tue, 8 Jul 2025 09:22:52 -0400 Subject: [PATCH 3/3] chore: upgrades spotless --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index efe6d25ac..7ee730fc9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,6 +21,6 @@ org-junit-platform-junit-platform-launcher = { group = "org.junit.platform", nam org-mockito-mockito-core = { group = "org.mockito", name = "mockito-core", version = "5.18.0" } [plugins] -com-diffplug-spotless = { id = "com.diffplug.spotless", version = "7.0.4" } +com-diffplug-spotless = { id = "com.diffplug.spotless", version = "7.1.0" } com-github-spotbugs = { id = "com.github.spotbugs", version = "6.2.1" } org-sonarqube = { id = "org.sonarqube", version = "6.2.0.5505" }