This is an automated email from the ASF dual-hosted git repository. jdaugherty pushed a commit to branch style-enforcement in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 30a1f02421c4f743a3de7464242c6f82523a3172 Author: James Daugherty <jdaughe...@jdresources.net> AuthorDate: Sun Jul 13 17:56:22 2025 -0400 build: add support for checkstyle / spotless to grails-core --- buildSrc/build.gradle | 2 ++ .../config/checkstyle/checkstyle.xml | 10 ++++---- .../config/spotless/license.java | 0 gradle.properties | 2 ++ .../style-enforcement-config.gradle | 28 +++++++++++++--------- .../{config => etc}/checkstyle/suppressions.xml | 8 +++---- grails-forge/gradle.properties | 3 --- .../gradle/style-enforcement-config.gradle | 8 +++---- 8 files changed, 34 insertions(+), 27 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 993f2b8cfb..f22cb0e801 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -52,6 +52,8 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin' implementation 'org.apache.grails:grails-docs-core' implementation 'org.apache.grails:grails-gradle-plugins' + implementation "com.diffplug.spotless:spotless-plugin-gradle:${gradleProperties.spotlessVersion}" + implementation "io.spring.nohttp:nohttp-gradle:${gradleProperties.nohttpGradleVersion}" implementation 'org.asciidoctor:asciidoctor-gradle-jvm' implementation 'org.springframework.boot:spring-boot-gradle-plugin' implementation 'org.nosphere.apache.rat:org.nosphere.apache.rat.gradle.plugin:0.8.1' diff --git a/grails-forge/config/checkstyle/checkstyle.xml b/etc/config/checkstyle/checkstyle.xml similarity index 96% rename from grails-forge/config/checkstyle/checkstyle.xml rename to etc/config/checkstyle/checkstyle.xml index 3e2e1ab9c3..128659ad6c 100644 --- a/grails-forge/config/checkstyle/checkstyle.xml +++ b/etc/config/checkstyle/checkstyle.xml @@ -97,10 +97,10 @@ <module name="SuppressWarningsFilter"/> <!-- See http://checkstyle.sourceforge.net/config_filters.html#SuppressionFilter --> - <module name="SuppressionFilter"> - <property name="file" value="${config_loc}/suppressions.xml"/> - <property name="optional" value="false"/> - </module> +<!-- <module name="SuppressionFilter">--> +<!-- <property name="file" value="${config_loc}/suppressions.xml"/>--> +<!-- <property name="optional" value="false"/>--> +<!-- </module>--> <module name="TreeWalker"> @@ -114,6 +114,8 @@ <property name="allowMissingReturnTag" value="true"/> </module> <module name="JavadocType"> + <!-- https://github.com/checkstyle/checkstyle/issues/14581 --> + <property name="allowMissingParamTags" value="true"/> </module> <module name="JavadocStyle"> diff --git a/grails-forge/config/spotless.license.java b/etc/config/spotless/license.java similarity index 100% rename from grails-forge/config/spotless.license.java rename to etc/config/spotless/license.java diff --git a/gradle.properties b/gradle.properties index 84a4d121d3..f5e33cd3d1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -40,6 +40,8 @@ yakworksHibernateGroovyProxyVersion=1.1 picocliVersion=4.7.6 liquibaseHibernate5Version=4.27.0 hibernate5Version=5.6.15.Final +spotlessVersion=6.25.0 +nohttpGradleVersion=0.0.11 githubSlug=apache/grails-core githubBranch=7.0.x diff --git a/grails-forge/gradle/style-enforcement-config.gradle b/gradle/style-enforcement-config.gradle similarity index 61% copy from grails-forge/gradle/style-enforcement-config.gradle copy to gradle/style-enforcement-config.gradle index 374fec9ed8..e0a5d895a9 100644 --- a/grails-forge/gradle/style-enforcement-config.gradle +++ b/gradle/style-enforcement-config.gradle @@ -23,21 +23,21 @@ apply plugin: 'io.spring.nohttp' // enforce https everywhere spotless { java { - licenseHeaderFile(rootProject.file("${rootDir}/config/spotless.license.java")) + licenseHeaderFile(rootProject.file("etc/config/spotless/license.java")) target('src/main/java/**/*.java') } groovy { - licenseHeaderFile(rootProject.file("${rootDir}/config/spotless.license.java")) - target('src/main/groovy/**') + licenseHeaderFile(rootProject.file("etc/config/spotless/license.java")) + target('src/main/groovy/**.groovy', 'src/main/groovy/**.java') } format 'javaMisc', { target('src/main/**/package-info.java', 'src/main/**/module-info.java') - licenseHeaderFile(rootProject.file('config/spotless.license.java'), '\\/\\*\\*') + licenseHeaderFile(rootProject.file('etc/config/spotless/license.java'), '\\/\\*\\*') } } checkstyle { - configFile = project.rootProject.file('config/checkstyle/checkstyle.xml') + configFile = project.rootProject.file('etc/config/checkstyle/checkstyle.xml') // Per submodule maxErrors = 1 @@ -47,13 +47,19 @@ checkstyle { } nohttp { - source.exclude('src/test/**', 'build/**', 'src/main/resources/assets/**', 'src/resources/main/pom.xml') + source.exclude('src/test/**', 'build/**') } -tasks.named('checkstyleTest').configure { - it.enabled = false +if (tasks.names.contains('checkstyleTest')) { + tasks.named('checkstyleTest').configure { + it.group = 'verification' + it.enabled = false + } } -tasks.named('checkstyleMain').configure { - it.dependsOn('spotlessCheck') -} \ No newline at end of file +if (tasks.names.contains('checkstyleMain')) { + tasks.named('checkstyleMain').configure { + it.group = 'verification' + it.dependsOn('spotlessCheck') + } +} diff --git a/grails-forge/config/checkstyle/suppressions.xml b/grails-forge/etc/checkstyle/suppressions.xml similarity index 79% rename from grails-forge/config/checkstyle/suppressions.xml rename to grails-forge/etc/checkstyle/suppressions.xml index c36038ae6b..8180818a31 100644 --- a/grails-forge/config/checkstyle/suppressions.xml +++ b/grails-forge/etc/checkstyle/suppressions.xml @@ -22,10 +22,8 @@ <!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://checkstyle.sourceforge.net/dtds/suppressions_1_1.dtd"> - <suppressions> - <suppress checks="FileLength" - files="DefaultBeanContext.java|BeanDefinitionWriter.java|DefaultHttpClient.java"/> - <suppress files="[\\/]generated-src[\\/]|RockerSubs.java" checks="[a-zA-Z0-9]*"/> - <suppress checks="Nohttp" files="pom.xml" /> +<!-- <suppress checks="FileLength"--> +<!-- files="DefaultBeanContext.java|BeanDefinitionWriter.java|DefaultHttpClient.java"/>--> +<!-- <suppress files="[\\/]generated-src[\\/]|RockerSubs.java" checks="[a-zA-Z0-9]*"/>--> </suppressions> diff --git a/grails-forge/gradle.properties b/grails-forge/gradle.properties index 80c5036d4a..6d39f14f15 100644 --- a/grails-forge/gradle.properties +++ b/grails-forge/gradle.properties @@ -43,8 +43,6 @@ micronautBuildVersion=1.1.5 micronautDocsVersion=2.0.0 micronautGradlePlugins=5.4.10 micronautVersion=3.10.4 -nexusPublishVersion=1.3.0 -nohttpGradleVersion=0.0.11 objenesisVersion=3.4 picocliVersion=4.7.5 postgresqlVersion=42.7.5 @@ -55,7 +53,6 @@ shadowVersion=8.3.6 slf4jVersion=2.0.17 snakeyamlVersion=2.4 spockVersion=2.1-groovy-3.0 -spotlessVersion=6.25.0 testRetryVersion=1.6.2 typesafeConfigVersion=1.4.3 diff --git a/grails-forge/gradle/style-enforcement-config.gradle b/grails-forge/gradle/style-enforcement-config.gradle index 374fec9ed8..2ce5b39f0f 100644 --- a/grails-forge/gradle/style-enforcement-config.gradle +++ b/grails-forge/gradle/style-enforcement-config.gradle @@ -23,21 +23,21 @@ apply plugin: 'io.spring.nohttp' // enforce https everywhere spotless { java { - licenseHeaderFile(rootProject.file("${rootDir}/config/spotless.license.java")) + licenseHeaderFile(rootProject.file("../etc/config/spotless/license.java")) target('src/main/java/**/*.java') } groovy { - licenseHeaderFile(rootProject.file("${rootDir}/config/spotless.license.java")) + licenseHeaderFile(rootProject.file("../etc/config/spotless/license.java")) target('src/main/groovy/**') } format 'javaMisc', { target('src/main/**/package-info.java', 'src/main/**/module-info.java') - licenseHeaderFile(rootProject.file('config/spotless.license.java'), '\\/\\*\\*') + licenseHeaderFile(rootProject.file('../etc/config/spotless/license.java'), '\\/\\*\\*') } } checkstyle { - configFile = project.rootProject.file('config/checkstyle/checkstyle.xml') + configFile = project.rootProject.file('etc/config/checkstyle/checkstyle.xml') // Per submodule maxErrors = 1