mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2026-09-02 21:03:34 +03:00
build: upgrade google-java-format and restore strict Spotless validation (#7091)
# Description of Changes - Upgraded google-java-format from 1.28.0 to 1.35.0. - Removed the broad `suppressLintsFor` workaround for the `google-java-format` step. - Ensured the shared `gradle/spotless.gradle` configuration is recognized by the relevant CI path filters and repository automation. - Kept the shared formatter configuration available to all backend modules. - Verified that google-java-format 1.35.0 runs successfully on JDK 25 for the Common, Core, and SaaS modules. - Confirmed that the previous claim about a general Guava 32.x crash on JDK 24/25 no longer justifies suppressing all formatter lint failures. ### Verification Verified with Temurin JDK 25.0.3 and google-java-format 1.35.0. The formatter still depends on Guava 32.1.3-jre, and no `suppressLintsFor` configuration is present. ```bash ./gradlew \ :common:spotlessJavaCheck \ :stirling-pdf:spotlessJavaCheck \ --rerun-tasks ``` Result: ```text > Task :common:spotlessJava > Task :common:spotlessJavaCheck > Task :stirling-pdf:spotlessJava > Task :stirling-pdf:spotlessJavaCheck BUILD SUCCESSFUL in 26s 4 actionable tasks: 4 executed ``` Using `--rerun-tasks` ensured that the formatter was executed and that the result did not come from the Gradle task cache. --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have run `task check` to verify linters, typechecks, and tests pass - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#7-testing) for more details. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -9,6 +9,7 @@ ci: &ci
|
|||||||
build: &build
|
build: &build
|
||||||
- *ci
|
- *ci
|
||||||
- build.gradle
|
- build.gradle
|
||||||
|
- gradle/spotless.gradle
|
||||||
- app/(common|core|proprietary|saas)/build.gradle
|
- app/(common|core|proprietary|saas)/build.gradle
|
||||||
- Taskfile.yml
|
- Taskfile.yml
|
||||||
- .taskfiles/backend.yml
|
- .taskfiles/backend.yml
|
||||||
@@ -155,4 +156,5 @@ proprietary: &proprietary
|
|||||||
- configs/settings.yml.template
|
- configs/settings.yml.template
|
||||||
- build.gradle
|
- build.gradle
|
||||||
- app/proprietary/build.gradle
|
- app/proprietary/build.gradle
|
||||||
|
- gradle/spotless.gradle
|
||||||
- .github/workflows/build-enterprise.yml
|
- .github/workflows/build-enterprise.yml
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ on:
|
|||||||
- "app/common/build.gradle"
|
- "app/common/build.gradle"
|
||||||
- "app/core/build.gradle"
|
- "app/core/build.gradle"
|
||||||
- "app/proprietary/build.gradle"
|
- "app/proprietary/build.gradle"
|
||||||
|
- "gradle/spotless.gradle"
|
||||||
- "README.md"
|
- "README.md"
|
||||||
- "frontend/editor/public/locales/*/translation.toml"
|
- "frontend/editor/public/locales/*/translation.toml"
|
||||||
- "app/core/src/main/resources/static/3rdPartyLicenses.json"
|
- "app/core/src/main/resources/static/3rdPartyLicenses.json"
|
||||||
|
|||||||
@@ -2,32 +2,6 @@
|
|||||||
bootRun {
|
bootRun {
|
||||||
enabled = false
|
enabled = false
|
||||||
}
|
}
|
||||||
spotless {
|
|
||||||
java {
|
|
||||||
target 'src/**/java/**/*.java'
|
|
||||||
targetExclude 'src/main/java/org/apache/**'
|
|
||||||
googleJavaFormat(googleJavaFormatVersion).aosp().reorderImports(false)
|
|
||||||
// google-java-format 1.28.0 bundles Guava 32.x which crashes Spotless lint on JDK 24/25
|
|
||||||
suppressLintsFor { setStep('google-java-format') }
|
|
||||||
|
|
||||||
importOrder("java", "javax", "org", "com", "net", "io", "jakarta", "lombok", "me", "stirling")
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
yaml {
|
|
||||||
target '**/*.yml', '**/*.yaml'
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
format 'gradle', {
|
|
||||||
target '**/gradle/*.gradle', '**/*.gradle'
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api "com.google.guava:guava:${guavaVersion}"
|
api "com.google.guava:guava:${guavaVersion}"
|
||||||
api 'org.springframework.boot:spring-boot-starter-webmvc'
|
api 'org.springframework.boot:spring-boot-starter-webmvc'
|
||||||
|
|||||||
@@ -9,35 +9,6 @@ configurations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
spotless {
|
|
||||||
java {
|
|
||||||
target 'src/**/java/**/*.java'
|
|
||||||
targetExclude 'src/main/resources/static/**', 'src/main/java/org/apache/**'
|
|
||||||
googleJavaFormat(googleJavaFormatVersion).aosp().reorderImports(false)
|
|
||||||
// google-java-format 1.28.0 bundles Guava 32.x which crashes Spotless lint on JDK 24/25
|
|
||||||
suppressLintsFor { setStep('google-java-format') }
|
|
||||||
|
|
||||||
importOrder("java", "javax", "org", "com", "net", "io", "jakarta", "lombok", "me", "stirling")
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
yaml {
|
|
||||||
target '**/*.yml', '**/*.yaml'
|
|
||||||
targetExclude 'src/main/resources/static/**'
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
format 'gradle', {
|
|
||||||
target '**/gradle/*.gradle', '**/*.gradle'
|
|
||||||
targetExclude 'src/main/resources/static/**'
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
if (!gradle.ext.disableAdditional) {
|
if (!gradle.ext.disableAdditional) {
|
||||||
implementation project(':proprietary')
|
implementation project(':proprietary')
|
||||||
|
|||||||
@@ -6,33 +6,6 @@ repositories {
|
|||||||
bootRun {
|
bootRun {
|
||||||
enabled = false
|
enabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
spotless {
|
|
||||||
java {
|
|
||||||
target 'src/**/java/**/*.java'
|
|
||||||
targetExclude 'src/main/java/org/apache/**'
|
|
||||||
googleJavaFormat(googleJavaFormatVersion).aosp().reorderImports(false)
|
|
||||||
// google-java-format 1.28.0 bundles Guava 32.x which crashes Spotless lint on JDK 24/25
|
|
||||||
suppressLintsFor { setStep('google-java-format') }
|
|
||||||
|
|
||||||
importOrder("java", "javax", "org", "com", "net", "io", "jakarta", "lombok", "me", "stirling")
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
yaml {
|
|
||||||
target '**/*.yml', '**/*.yaml'
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
format 'gradle', {
|
|
||||||
target '**/gradle/*.gradle', '**/*.gradle'
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(':common')
|
implementation project(':common')
|
||||||
api "com.google.guava:guava:${guavaVersion}"
|
api "com.google.guava:guava:${guavaVersion}"
|
||||||
|
|||||||
@@ -2,32 +2,6 @@ bootRun {
|
|||||||
enabled = false
|
enabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
spotless {
|
|
||||||
java {
|
|
||||||
target 'src/**/java/**/*.java'
|
|
||||||
targetExclude 'src/main/java/org/apache/**'
|
|
||||||
googleJavaFormat(googleJavaFormatVersion).aosp().reorderImports(false)
|
|
||||||
suppressLintsFor { setStep('google-java-format') }
|
|
||||||
|
|
||||||
importOrder("java", "javax", "org", "com", "net", "io", "jakarta", "lombok", "me", "stirling")
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
yaml {
|
|
||||||
target '**/*.yml', '**/*.yaml'
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
format 'gradle', {
|
|
||||||
target '**/gradle/*.gradle', '**/*.gradle'
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
leadingTabsToSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(':common')
|
implementation project(':common')
|
||||||
implementation project(':proprietary')
|
implementation project(':proprietary')
|
||||||
|
|||||||
+3
-2
@@ -28,7 +28,7 @@ ext {
|
|||||||
springSecuritySamlVersion = "7.0.5"
|
springSecuritySamlVersion = "7.0.5"
|
||||||
openSamlVersion = "5.2.1"
|
openSamlVersion = "5.2.1"
|
||||||
commonmarkVersion = "0.28.0"
|
commonmarkVersion = "0.28.0"
|
||||||
googleJavaFormatVersion = "1.28.0"
|
googleJavaFormatVersion = "1.35.0"
|
||||||
logback = "1.5.32"
|
logback = "1.5.32"
|
||||||
commonsIoVersion = "2.22.0"
|
commonsIoVersion = "2.22.0"
|
||||||
commonsLang3 = "3.20.0"
|
commonsLang3 = "3.20.0"
|
||||||
@@ -37,7 +37,7 @@ ext {
|
|||||||
gsonVersion = "2.14.0"
|
gsonVersion = "2.14.0"
|
||||||
guavaVersion = "33.6.0-jre"
|
guavaVersion = "33.6.0-jre"
|
||||||
jinjavaVersion = "2.8.3"
|
jinjavaVersion = "2.8.3"
|
||||||
jackson2Version = "2.21.2"
|
jackson2Version = "2.21.4"
|
||||||
bucket4jVersion = "8.19.0"
|
bucket4jVersion = "8.19.0"
|
||||||
archunitVersion = "1.4.2"
|
archunitVersion = "1.4.2"
|
||||||
batikVersion = "1.19"
|
batikVersion = "1.19"
|
||||||
@@ -171,6 +171,7 @@ subprojects {
|
|||||||
apply plugin: 'org.springframework.boot'
|
apply plugin: 'org.springframework.boot'
|
||||||
apply plugin: 'io.spring.dependency-management'
|
apply plugin: 'io.spring.dependency-management'
|
||||||
apply plugin: 'jacoco'
|
apply plugin: 'jacoco'
|
||||||
|
apply from: rootProject.file('gradle/spotless.gradle')
|
||||||
|
|
||||||
java {
|
java {
|
||||||
sourceCompatibility = JavaVersion.VERSION_25
|
sourceCompatibility = JavaVersion.VERSION_25
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
spotless {
|
||||||
|
java {
|
||||||
|
target 'src/**/java/**/*.java'
|
||||||
|
if (project.name == 'stirling-pdf') {
|
||||||
|
targetExclude 'src/main/resources/static/**', 'src/main/java/org/apache/**'
|
||||||
|
} else {
|
||||||
|
targetExclude 'src/main/java/org/apache/**'
|
||||||
|
}
|
||||||
|
|
||||||
|
// licenseHeaderFile(file('config/license-header.txt')).updateYearWithLatest(true).yearStringFormat('%s')
|
||||||
|
removeUnusedImports()
|
||||||
|
googleJavaFormat(rootProject.ext.googleJavaFormatVersion).aosp().reorderImports(false)
|
||||||
|
|
||||||
|
importOrder('java', 'javax', 'org', 'com', 'net', 'io', 'jakarta', 'lombok', 'me', 'stirling')
|
||||||
|
trimTrailingWhitespace()
|
||||||
|
leadingTabsToSpaces()
|
||||||
|
endWithNewline()
|
||||||
|
}
|
||||||
|
yaml {
|
||||||
|
target '**/*.yml', '**/*.yaml'
|
||||||
|
if (project.name == 'stirling-pdf') {
|
||||||
|
targetExclude 'src/main/resources/static/**'
|
||||||
|
}
|
||||||
|
trimTrailingWhitespace()
|
||||||
|
leadingTabsToSpaces()
|
||||||
|
endWithNewline()
|
||||||
|
}
|
||||||
|
format 'gradle', {
|
||||||
|
target '**/gradle/*.gradle', '**/*.gradle'
|
||||||
|
if (project.name == 'stirling-pdf') {
|
||||||
|
targetExclude 'src/main/resources/static/**'
|
||||||
|
}
|
||||||
|
trimTrailingWhitespace()
|
||||||
|
leadingTabsToSpaces()
|
||||||
|
endWithNewline()
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user