You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by ja...@apache.org on 2026/06/03 19:21:35 UTC

(grails-core) branch feat/gradle-managed-version-overrides updated (20f3304490 -> f94480a184)

This is an automated email from the ASF dual-hosted git repository.

jamesfredley pushed a change to branch feat/gradle-managed-version-overrides
in repository https://gitbox.apache.org/repos/asf/grails-core.git


    from 20f3304490 fix: parse BOM POMs with maven-model instead of custom XML parsing
     add 1a6496d55c Update SiteMesh 3 to 3.3.0-SNAPSHOT for Spring Boot 4
     add 76143a78e1 Enable SiteMesh 3 on the 8.x (Spring Boot 4) line
     add cbaba89770 Resolve org.sitemesh snapshots in generated applications
     add 93751879dc Merge remote-tracking branch 'upstream/8.0.x' into deps/sitemesh3-3.3.0-snapshot
     add fd5a874386 Remove orphaned boot4-disabled-integration-test-config.gradle
     add c9fa3610c8 Revert grails-layout removal in default profile
     add bab0ecec7f Add addAllDomainClasses helper to GrailsDataTckManager and adopt it across TCK specs
     add ac3d4e778c Merge branch '8.0.x' into refactor/tck-add-all-domain-classes
     add 87382169ae refactor: encapsulate GORM TCK domain classes list and update specs
     add 0714a59b97 Fix GORM TCK domain registration in test specifications
     add 4d345a6e31 fix
     add 29cf774a7e 1. Registered missing TCK domain classes in  HibernateOptimisticLockingSpec  ( OptLockVersioned ,  OptLockNotVersioned ) and  HibernateValidationSpec  ( TestEntity ,  ChildEntity ) to fix the GORM   initialization failures on Hibernate 5.   2. Fixed CodeNarc violations in the TCK project:       • Fixed  ConsecutiveBlankLines  and  Indentation  issues in  GrailsDataTckManager.groovy .       • Removed an  UnusedImport  ( Simples ) in  QueryEventsSpec.groovy .
     add eb44622be3 Merge branch '8.0.x' into refactor/tck-add-all-domain-classes
     add acb0931d32 refactor: rename addAllDomainClasses to registerDomainClasses and migrate calls to varargs
     add 7aa0872a5a fix compilation
     add 1352f39b3b PR comment
     add 54f83c63ce once more unto the breacn
     add 1170851a0a refactor: restore allClasses variable for persistent entities
     add a70c34f739 Merge pull request #15683 from apache/refactor/tck-add-all-domain-classes
     add 29a24649f1 Add grails-code-analysis convention plugin and violation aggregation
     add 0ca655d3f1 Address Copilot review feedback and fix codenarcFix corruption
     add b18a523848 Make JaCoCo aggregation class-exclusion filter configurable
     add d863c32e23 Merge remote-tracking branch 'origin/8.0.x' into feat/grails-code-analysis-plugin
     add 20d73d8e8a fix(ci): pin Code Analysis workflow actions to ASF-approved SHAs
     add 57ae6d6d11 Make code-analysis surface violations: PMD 7.25.0 + report-only CI
     add e88abad437 Refactor createOrLoad method to remove project parameter
     add 876a26ca69 Exclude build directory from Checkstyle task sources to ignore generated sources
     add 837292bba6 Align Spotless config with Checkstyle rules in grails-forge
     add 4149f44554 Fix grails-forge code style: drop conflicting bespoke Spotless
     add 327cdcbfa0 chore: address PR feedback on code-analysis properties and directory names
     add fc63cd05c5 chore: address review feedback on code style and analysis configuration
     add 6d79c8addc Limit grails-code-analysis to its original scope
     add b08441587d Restore code style configuration to the 8.0.x baseline
     add 3b808a9bb8 Fix code-style report path in violation-aggregation spec
     add f1ce56b6f8 Merge branch '8.0.x' into feat/grails-code-analysis-plugin
     add cffbdf41be Merge branch '8.0.x' into feat/grails-code-analysis-plugin
     add 8b850a6fde refactor(build): update GrailsViolationAggregationPlugin plugin
     add cee8dec034 refactor(build): update GrailsCodeAnalysisPlugin
     add c35d4824de Merge pull request #15686 from apache/feat/grails-code-analysis-plugin
     add 365956bb4f Fix constraints overwriting mapping index configuration (#15680)
     add 214e1a8b3a Merge branch '7.2.x' into fix/constraint-overwrites-mapping-index
     add de857e8299 Add Apache license header and drop unused import in test spec
     add 9c6e41ab38 Fix CodeNarc UnnecessaryGString violations in getProperties log message
     add a3643440af Merge pull request #15700 from codeconsole/fix/constraint-overwrites-mapping-index
     add f27b079e9c Fix bindData binding id/version when extending a @DirtyCheck base
     add da3d88c5ef Add comprehensive test coverage for issue 15681
     add 77734c8420 Merge branch '7.0.x' into fix/15681-bindData-id-version-dirtycheck-base
     add bca8bdcc48 Address review feedback for #15681 bindData fix
     add a7bcdfd67f Merge branch '7.0.x' into fix/15681-bindData-id-version-dirtycheck-base
     add 69a6a0230b Merge pull request #15699 from apache/fix/15681-bindData-id-version-dirtycheck-base
     add d4608a4b65 fix(ci): comprehensive overhaul of release-drafter setup
     add 182a751d58 Merge branch '7.0.x' into fix/release-drafter-overhaul
     add 345a86fb8c Merge branch '7.0.x' into fix/release-drafter-overhaul
     add 90c4924c8c Merge remote-tracking branch 'origin/7.0.x' into fix/release-drafter-overhaul
     add b8707158d1 Merge branch '7.0.x' into fix/release-drafter-overhaul
     add 8296024d15 Merge pull request #15623 from apache/fix/release-drafter-overhaul
     add 0c61ec0e42 Add test coverage for Map-based multi-field sort
     add ede2cef728 Merge branch '7.0.x' into test/map-sort-coverage
     add 74da0f2739 Merge branch '7.0.x' into test/map-sort-coverage
     add b834c178af Merge pull request #15691 from apache/test/map-sort-coverage
     add a9490b2f7a Merge branch '7.0.x' into 7.1.x
     add 6f96cbe6f3 Merge branch '7.1.x' into 7.2.x
     add d7452fb992 Merge branch '7.2.x' into 8.0.x
     add a2e8d39ec3 Merge branch '8.0.x' into deps/sitemesh3-3.3.0-snapshot
     add ea1f681467 Merge pull request #15710 from codeconsole/deps/sitemesh3-3.3.0-snapshot
     add 6f6f6dd63b Add grails-jacoco convention plugin and Codecov coverage workflow
     add ef127f7c9a Address Copilot review feedback: restrict coverage matrix to ubuntu-24.04
     add 73814c9d5f fix(ci): pin Coverage workflow actions to ASF-approved SHAs
     add f8cf4fa2ad Add grails-jacoco convention plugin and Codecov coverage workflow
     add 58a12d5c3d Address Copilot review feedback: restrict coverage matrix to ubuntu-24.04
     add 9074284f9b Merge branch 'feat/grails-code-analysis-plugin' into feat/grails-jacoco-plugin
     add 5c91e3be64 Merge branch 'feat/grails-code-analysis-plugin' into feat/grails-jacoco-plugin
     add b0e6cf8486 fix(ci): pin Coverage workflow actions to ASF-approved SHAs
     add 236d8a9eb7 Merge remote-tracking branch 'origin/feat/grails-code-analysis-plugin' into feat/grails-jacoco-plugin
     add 1933bf70fe Merge branch 'feat/grails-jacoco-plugin' of github.com:apache/grails-core into feat/grails-jacoco-plugin
     add cea97996ba test: stabilize scaffolding Geb tests with longer login and logout waits
     add aead128d23 build(refactor): update JaCoCo plugin
     add da989a2c09 build(style): update JaCoCo plugin
     add 97fa5234d6 Merge branch 'feat/grails-code-analysis-plugin' into feat/grails-jacoco-plugin
     add 359de88732 Merge remote-tracking branch 'upstream/8.0.x' into feat/grails-jacoco-plugin
     add df54d67260 Merge branch '8.0.x' into feat/grails-jacoco-plugin
     add 483600313d Merge pull request #15687 from apache/feat/grails-jacoco-plugin
     add f94480a184 Merge branch '8.0.x' into feat/gradle-managed-version-overrides

No new revisions were added by this update.

Summary of changes:
 .agents/skills/violation-fixer/SKILL.md            | 233 ++++++++++
 .github/release-drafter.yml                        |  20 +
 .github/workflows/codeanalysis.yml                 |  97 +++++
 .github/workflows/codestyle.yml                    |  65 ++-
 .github/workflows/coverage.yml                     | 119 ++++++
 .github/workflows/release-notes.yml                | 136 +++++-
 build-logic/plugins/build.gradle                   |  23 +-
 .../org/apache/grails/buildsrc/GradleUtils.groovy  |   9 +-
 ...n.groovy => GrailsCodeAnalysisExtension.groovy} |  29 +-
 .../buildsrc/GrailsCodeAnalysisPlugin.groovy       | 185 ++++++++
 .../buildsrc/GrailsCodeStyleExtension.groovy       |  12 +-
 .../grails/buildsrc/GrailsCodeStylePlugin.groovy   | 145 +++++--
 .../grails/buildsrc/GrailsJacocoPlugin.groovy      | 130 ++++++
 .../GrailsViolationAggregationPlugin.groovy        | 472 +++++++++++++++++++++
 .../pmd/pmd.xml}                                   |  15 +-
 .../checkstyle/checkstyle-suppressions.xml         |   0
 .../checkstyle/checkstyle.xml                      |   2 +
 .../codenarc/codenarc.groovy                       |   0
 .../buildsrc/GrailsCodeStylePluginSpec.groovy      | 224 ++++++++++
 .../grails/buildsrc/GrailsJacocoPluginSpec.groovy  | 178 ++++++++
 .../GrailsViolationAggregationPluginSpec.groovy    | 241 +++++++++++
 build.gradle                                       |   4 +
 dependencies.gradle                                |   4 +-
 gradle.properties                                  |   3 +
 .../boot4-disabled-integration-test-config.gradle  |  31 --
 gradle/publish-root-config.gradle                  |   2 +-
 grails-async/core/build.gradle                     |   1 +
 grails-async/gpars/build.gradle                    |   1 +
 grails-async/plugin/build.gradle                   |   1 +
 grails-async/rxjava/build.gradle                   |   1 +
 grails-async/rxjava2/build.gradle                  |   1 +
 grails-async/rxjava3/build.gradle                  |   1 +
 grails-bootstrap/build.gradle                      |   1 +
 grails-cache/build.gradle                          |   1 +
 grails-codecs-core/build.gradle                    |   1 +
 grails-codecs/build.gradle                         |   1 +
 grails-common/build.gradle                         |   1 +
 grails-console/build.gradle                        |   1 +
 grails-controllers/build.gradle                    |   1 +
 grails-converters/build.gradle                     |   1 +
 grails-core/build.gradle                           |   1 +
 grails-data-hibernate5/boot-plugin/build.gradle    |   1 +
 grails-data-hibernate5/core/build.gradle           |   1 +
 ...bernateOptimisticLockingStyleMappingSpec.groovy |   2 +-
 .../grails/gorm/tests/AutoTimestampSpec.groovy     |   2 +-
 .../CascadeToBidirectionalAsssociationSpec.groovy  |   2 +-
 .../gorm/tests/CountByWithEmbeddedSpec.groovy      |   2 +-
 .../grails/gorm/tests/DeleteAllWhereSpec.groovy    |   2 +-
 .../gorm/tests/DetachCriteriaSubquerySpec.groovy   |   2 +-
 .../gorm/tests/DetachedCriteriaJoinSpec.groovy     |   2 +-
 .../grails/gorm/tests/DomainGetterSpec.groovy      |   2 +-
 .../grails/gorm/tests/EnumMappingSpec.groovy       |   2 +-
 .../tests/HibernateOptimisticLockingSpec.groovy    |   4 +
 .../gorm/tests/HibernateValidationSpec.groovy      |   4 +-
 .../tests/LastUpdateWithDynamicUpdateSpec.groovy   |   2 +-
 .../groovy/grails/gorm/tests/ManyToOneSpec.groovy  |   2 +-
 .../tests/MultiColumnUniqueConstraintSpec.groovy   |   2 +-
 .../test/groovy/grails/gorm/tests/RLikeSpec.groovy |   2 +-
 .../grails/gorm/tests/ReadOperationSpec.groovy     |   2 +-
 .../grails/gorm/tests/SizeConstraintSpec.groovy    |   2 +-
 .../groovy/grails/gorm/tests/ToOneProxySpec.groovy |   2 +-
 .../tests/WhereQueryWithAssociationSortSpec.groovy |   2 +-
 ...WithNewSessionAndExistingTransactionSpec.groovy |   2 +-
 .../gorm/tests/autoimport/AutoImportSpec.groovy    |   2 +-
 .../BidirectionalOneToOneWithUniqueSpec.groovy     |   2 +-
 .../inheritance/SubclassToOneProxySpec.groovy      |   2 +-
 .../TablePerConcreteClassAndDateCreatedSpec.groovy |   2 +-
 .../TablePerConcreteClassImportedSpec.groovy       |   2 +-
 .../tests/mappedby/MultipleOneToOneSpec.groovy     |   2 +-
 .../gorm/tests/proxy/ByteBuddyProxySpec.groovy     |   2 +-
 .../gorm/tests/traits/InterfacePropertySpec.groovy |   2 +-
 .../tests/validation/DeepValidationSpec.groovy     |   2 +-
 .../core/GrailsDataHibernate5TckManager.groovy     |   4 +-
 grails-data-hibernate5/dbmigration/build.gradle    |   1 +
 grails-data-hibernate5/grails-plugin/build.gradle  |   1 +
 grails-data-hibernate5/spring-orm/build.gradle     |   1 +
 grails-data-mongodb/boot-plugin/build.gradle       |   1 +
 grails-data-mongodb/bson/build.gradle              |   1 +
 grails-data-mongodb/core/build.gradle              |   1 +
 .../tests/DirtyCheckEmbeddedCollectionSpec.groovy  |   2 +-
 .../groovy/grails/gorm/tests/FindNativeSpec.groovy |   2 +-
 .../listener/PersistenceEventListenerSpec.groovy   |   2 +-
 .../grails/mongodb/cascade/MongoCascadeSpec.groovy |   2 +-
 .../mongo/core/GrailsDataMongoTckManager.groovy    |   4 +-
 .../gorm/mongo/AggregateMethodSpec.groovy          |   2 +-
 .../gorm/mongo/AssignedIdentifierSpec.groovy       |   2 +-
 .../gorm/mongo/AutowireServicesSpec.groovy         |   2 +-
 .../datastore/gorm/mongo/BasicArraySpec.groovy     |   2 +-
 .../gorm/mongo/BasicCollectionTypeSpec.groovy      |   2 +-
 .../gorm/mongo/BasicCollectionsSpec.groovy         |   2 +-
 .../gorm/mongo/BatchUpdateDeleteSpec.groovy        |   2 +-
 .../gorm/mongo/BeforeInsertUpdateSpec.groovy       |   2 +-
 .../BeforeUpdatePropertyPersistenceSpec.groovy     |   2 +-
 .../datastore/gorm/mongo/BigDecimalSpec.groovy     |   2 +-
 .../mongo/BrokenManyToManyAssociationSpec.groovy   |   2 +-
 .../gorm/mongo/CascadeDeleteOneToOneSpec.groovy    |   2 +-
 .../datastore/gorm/mongo/CascadeDeleteSpec.groovy  |   2 +-
 .../CircularBidirectionalOneToManySpec.groovy      |   2 +-
 .../gorm/mongo/CircularEmbeddedListSpec.groovy     |   2 +-
 .../gorm/mongo/CircularOneToManySpec.groovy        |   2 +-
 .../gorm/mongo/ClearCollectionSpec.groovy          |   2 +-
 .../CustomCollectionAndAttributeMappingSpec.groovy |   2 +-
 .../datastore/gorm/mongo/CustomIdProxySpec.groovy  |   2 +-
 .../gorm/mongo/CustomMongoEventListenerSpec.groovy |   2 +-
 .../gorm/mongo/CustomTypeMarshallingSpec.groovy    |   2 +-
 .../gorm/mongo/DBObjectConversionSpec.groovy       |   2 +-
 .../gorm/mongo/DbRefWithEmbeddedSpec.groovy        |   2 +-
 .../gorm/mongo/DefaultSortOrderSpec.groovy         |   2 +-
 .../gorm/mongo/DirtyCheckUpdateSpec.groovy         |   2 +-
 .../datastore/gorm/mongo/DisableVersionSpec.groovy |   2 +-
 .../gorm/mongo/DisjunctionQuerySpec.groovy         |   2 +-
 .../gorm/mongo/DistinctPropertySpec.groovy         |   2 +-
 .../gorm/mongo/DocumentMappingSpec.groovy          |   2 +-
 .../gorm/mongo/EmbeddedAssociationSpec.groovy      |   2 +-
 .../gorm/mongo/EmbeddedBiDirectionalSpec.groovy    |   2 +-
 .../EmbeddedCollectionAndInheritanceSpec.groovy    |   2 +-
 .../gorm/mongo/EmbeddedCollectionWithIdSpec.groovy |   2 +-
 .../EmbeddedCollectionWithOneToOneSpec.groovy      |   2 +-
 .../EmbeddedHasManyWithBeforeUpdateSpec.groovy     |   2 +-
 .../mongo/EmbeddedListWithCustomTypeSpec.groovy    |   2 +-
 .../datastore/gorm/mongo/EmbeddedMapSpec.groovy    |   2 +-
 .../gorm/mongo/EmbeddedSetAssignedIdSpec.groovy    |   2 +-
 .../gorm/mongo/EmbeddedSimpleObjectSpec.groovy     |   2 +-
 ...edStringListInsideEmbeddedCollectionSpec.groovy |   2 +-
 .../datastore/gorm/mongo/EmbeddedUnsetSpec.groovy  |   2 +-
 .../gorm/mongo/EmbeddedWhereClauseSpec.groovy      |   2 +-
 .../EmbeddedWithCustomFieldMappingSpec.groovy      |   2 +-
 .../gorm/mongo/EmbeddedWithIdSpecifiedSpec.groovy  |   2 +-
 .../EmbeddedWithNonEmbeddedAssociationsSpec.groovy |   2 +-
 .../EmbeddedWithNonEmbeddedCollectionsSpec.groovy  |   2 +-
 .../EmbeddedWithinEmbeddedAssociationSpec.groovy   |   2 +-
 .../datastore/gorm/mongo/EnumCollectionSpec.groovy |   2 +-
 .../datastore/gorm/mongo/EnumTypeSpec.groovy       |   2 +-
 .../mongo/EventsWithAbstractInheritanceSpec.groovy |   2 +-
 .../gorm/mongo/FindOrCreateWhereSpec.groovy        |   2 +-
 .../gorm/mongo/GeoJSONTypePersistenceSpec.groovy   |   2 +-
 .../gorm/mongo/GeospacialQuerySpec.groovy          |   2 +-
 .../grails/datastore/gorm/mongo/GetAllSpec.groovy  |   2 +-
 .../gorm/mongo/GetAllWithStringIdSpec.groovy       |   2 +-
 .../GreaterThanAndLessThanCriteriaSpec.groovy      |   2 +-
 .../grails/datastore/gorm/mongo/HasOneSpec.groovy  |   2 +-
 .../gorm/mongo/HintQueryArgumentSpec.groovy        |   2 +-
 .../datastore/gorm/mongo/InListQuerySpec.groovy    |   2 +-
 .../mongo/IndexAttributesAndCompoundKeySpec.groovy |   2 +-
 .../gorm/mongo/IndexWithInheritanceSpec.groovy     |   2 +-
 .../gorm/mongo/InheritanceQueryingSpec.groovy      |   2 +-
 ...nheritanceWithSingleEndedAssociationSpec.groovy |   2 +-
 .../datastore/gorm/mongo/InnerEnumSpec.groovy      |   2 +-
 .../grails/datastore/gorm/mongo/IsNullSpec.groovy  |   2 +-
 .../gorm/mongo/JakartaValidationSpec.groovy        |   2 +-
 .../datastore/gorm/mongo/LastUpdatedSpec.groovy    |   2 +-
 .../datastore/gorm/mongo/LikeQuerySpec.groovy      |   2 +-
 .../gorm/mongo/ListOneToManyOrderingSpec.groovy    |   2 +-
 .../datastore/gorm/mongo/MapOfDomainsSpec.groovy   |   2 +-
 .../datastore/gorm/mongo/MarkDirtyFalseSpec.groovy |   2 +-
 .../MongoDynamicPropertyOnEmbeddedSpec.groovy      |   2 +-
 .../gorm/mongo/MongoGormEnhancerSpec.groovy        |   2 +-
 .../gorm/mongo/MongoResultsListIndexSpec.groovy    |   2 +-
 .../datastore/gorm/mongo/MongoTypesSpec.groovy     |   2 +-
 .../datastore/gorm/mongo/NegateInListSpec.groovy   |   2 +-
 .../datastore/gorm/mongo/NegationEnumSpec.groovy   |   2 +-
 .../gorm/mongo/NullifyPropertySpec.groovy          |   2 +-
 .../gorm/mongo/NullsAreNotStoredSpec.groovy        |   2 +-
 .../gorm/mongo/ObjectIdPersistenceSpec.groovy      |   2 +-
 .../gorm/mongo/ObjectIdPropertySpec.groovy         |   2 +-
 .../gorm/mongo/OneToManyWithInheritanceSpec.groovy |   2 +-
 .../gorm/mongo/OneToOneIntegritySpec.groovy        |   2 +-
 .../gorm/mongo/OneToOneNoReferenceSpec.groovy      |   2 +-
 .../OptimisticLockingWithExceptionSpec.groovy      |   2 +-
 .../gorm/mongo/OrderWithPaginationSpec.groovy      |   2 +-
 .../datastore/gorm/mongo/ProjectionsSpec.groovy    |   2 +-
 .../QueriesWithIdenticallyNamedPartsSpec.groovy    |   2 +-
 .../gorm/mongo/ReadConcernArgumentSpec.groovy      |   2 +-
 .../gorm/mongo/ReadManyObjectsSpec.groovy          |   2 +-
 .../ResultsWithGroovyCollectionMethodsSpec.groovy  |   2 +-
 .../datastore/gorm/mongo/SchemalessSpec.groovy     |   2 +-
 .../datastore/gorm/mongo/SessionCachingSpec.groovy |   2 +-
 .../datastore/gorm/mongo/SetRetrievalSpec.groovy   |   2 +-
 .../datastore/gorm/mongo/SimpleHasManySpec.groovy  |   2 +-
 .../SingleEmbeddedAssignNullToNonNullSpec.groovy   |   2 +-
 .../datastore/gorm/mongo/StatelessSpec.groovy      |   2 +-
 .../gorm/mongo/SwitchDatabaseAtRuntimeSpec.groovy  |   2 +-
 .../datastore/gorm/mongo/TestSearchSpec.groovy     |   2 +-
 .../gorm/mongo/TransientPropertySpec.groovy        |   2 +-
 .../gorm/mongo/WhereQueryInCriteriaSpec.groovy     |   2 +-
 .../datastore/gorm/mongo/WriteConcernSpec.groovy   |   2 +-
 .../gorm/mongo/bugs/GPMongoDB295Spec.groovy        |   2 +-
 .../bugs/StringIdWithObjectIdStorageSpec.groovy    |   2 +-
 grails-data-mongodb/ext/build.gradle               |   1 +
 grails-data-mongodb/grails-plugin/build.gradle     |   1 +
 grails-data-mongodb/gson-templates/build.gradle    |   1 +
 grails-data-simple/build.gradle                    |   1 +
 grails-databinding-core/build.gradle               |   1 +
 grails-databinding/build.gradle                    |   1 +
 grails-datamapping-async/build.gradle              |   1 +
 .../tests/AbstractNonGormParentClassSpec.groovy    |   2 +-
 .../grails/gorm/tests/CircularCascadeSpec.groovy   |   2 +-
 .../gorm/tests/DeepValidateWithSaveSpec.groovy     |   4 +
 .../DetachedCriteriaAssociationQuerySpec.groovy    |   2 +-
 .../grails/gorm/tests/JpaQueryBuilderSpec.groovy   |   4 +
 .../grails/gorm/tests/ReadOnlyCriteriaSpec.groovy  |   4 +
 .../grails/gorm/tests/SingleResultSpec.groovy      |   4 +
 .../groovy/grails/gorm/tests/SubquerySpec.groovy   |   4 +
 .../TransactionalTransformOnServiceSpec.groovy     |   2 +-
 .../WhereMethodEmbeddedInAssociationSpec.groovy    |   4 +-
 .../grails/gorm/tests/WhereMethodSpec.groovy       |   4 +-
 .../gorm/tests/validation/ArrayMaxSizeSpec.groovy  |   2 +-
 .../gorm/AddToAndInjectedServiceSpec.groovy        |   2 +-
 .../gorm/AddToMethodWithBasicCollectionSpec.groovy |   2 +-
 .../AddToMethodWithEmbeddedCollectionSpec.groovy   |   2 +-
 .../datastore/gorm/AssignedIdentifierSpec.groovy   |   2 +-
 .../datastore/gorm/AsyncReadMethodsSpec.groovy     |   4 +
 .../gorm/AutoLinkOneToManyAssociationSpec.groovy   |   2 +-
 .../datastore/gorm/BasicTypeHasManySpec.groovy     |   2 +-
 .../datastore/gorm/BeforeUpdateEventSpec.groovy    |   2 +-
 ...idirectionalOneToManyWithInheritanceSpec.groovy |   2 +-
 .../grails/datastore/gorm/CacheAndJoinSpec.groovy  |   2 +-
 .../datastore/gorm/CircularManyToManySpec.groovy   |   2 +-
 .../datastore/gorm/CircularManyToOneSpec.groovy    |   2 +-
 .../datastore/gorm/CircularOneToManySpec.groovy    |   2 +-
 .../datastore/gorm/CompositeIdentifierSpec.groovy  |   2 +-
 .../gorm/CriteriaProjectedResultsSpec.groovy       |   2 +-
 .../datastore/gorm/CustomAutoTimestampSpec.groovy  |   2 +-
 .../gorm/CustomSequenceIdentifierSpec.groovy       |   2 +-
 .../gorm/CustomStringIdentifierSpec.groovy         |   2 +-
 .../gorm/CustomTypeMarshallingSpec.groovy          |   2 +-
 .../grails/datastore/gorm/DeindexingSpec.groovy    |   2 +-
 .../gorm/DetachedCriteriaJpaEntitySpec.groovy      |   2 +-
 .../grails/datastore/gorm/DirtyCheckingSpec.groovy |   2 +-
 .../datastore/gorm/DistinctProjectionSpec.groovy   |   4 +
 .../gorm/DomainWithPrimitiveGetterSpec.groovy      |   2 +-
 .../gorm/DynamicFinderHungarianNotationSpec.groovy |   2 +-
 .../datastore/gorm/EmbeddedAssociationSpec.groovy  |   2 +-
 .../gorm/EmbeddedNonEntityAssociationSpec.groovy   |   2 +-
 .../gorm/EmbeddedPropertyQuerySpec.groovy          |   2 +-
 .../grails/datastore/gorm/EnumHasManySpec.groovy   |   2 +-
 .../datastore/gorm/FindByDomainInListSpec.groovy   |   2 +-
 .../datastore/gorm/GormDirtyCheckingSpec.groovy    |   2 +-
 .../gorm/HasManyDefaultMappedBySpec.groovy         |   2 +-
 .../datastore/gorm/HasOneSetInverseSideSpec.groovy |   2 +-
 .../gorm/InOperatorWithAssociationsSpec.groovy     |   2 +-
 .../gorm/InheritanceWithOneToManySpec.groovy       |   2 +-
 .../gorm/ListOrderByHungarianNotationSpec.groovy   |   2 +-
 .../grails/datastore/gorm/ManyToManySpec.groovy    |   2 +-
 .../grails/datastore/gorm/MappedByNoneSpec.groovy  |   2 +-
 .../gorm/NestedAssociationQuerySpec.groovy         |   2 +-
 .../org/grails/datastore/gorm/NotLikeSpec.groovy   |   4 +
 .../grails/datastore/gorm/NotNullQuerySpec.groovy  |   2 +-
 .../datastore/gorm/OneToOneWithProxiesSpec.groovy  |   5 +
 .../org/grails/datastore/gorm/OrderBySpec.groovy   |  42 ++
 .../datastore/gorm/QueryAssociationSpec.groovy     |   5 +
 .../gorm/QueryNonIndexedPropertySpec.groovy        |   2 +-
 .../gorm/ReadOnlyCriteriaResultsSpec.groovy        |   2 +-
 .../gorm/SaveWithFailOnErrorDefaultSpec.groovy     |   2 +-
 .../datastore/gorm/UUIDTypeIdentifierSpec.groovy   |   2 +-
 .../grails/datastore/gorm/UUIIdentifierSpec.groovy |   2 +-
 .../datastore/mapping/EntityReflectorSpec.groovy   |   2 +-
 grails-datamapping-core/build.gradle               |   1 +
 grails-datamapping-rx/build.gradle                 |   1 +
 grails-datamapping-support/build.gradle            |   1 +
 grails-datamapping-tck/build.gradle                |   1 +
 .../testing/tck/base/GrailsDataTckManager.groovy   |  70 +--
 .../data/testing/tck/tests/AttachMethodSpec.groovy |   4 +
 ...intWorksWithTargetProxiesConstraintsSpec.groovy |   2 +-
 .../testing/tck/tests/CircularOneToManySpec.groovy |   4 +
 .../tck/tests/CommonTypesPersistenceSpec.groovy    |   4 +
 .../data/testing/tck/tests/ConstraintsSpec.groovy  |   2 +-
 .../testing/tck/tests/CriteriaBuilderSpec.groovy   |   5 +
 .../testing/tck/tests/CrudOperationsSpec.groovy    |   5 +
 .../data/testing/tck/tests/DeleteAllSpec.groovy    |   5 +
 .../testing/tck/tests/DetachedCriteriaSpec.groovy  |   5 +
 .../tests/DirtyCheckingAfterListenerSpec.groovy    |   2 +-
 .../testing/tck/tests/DirtyCheckingSpec.groovy     |   2 +-
 .../tck/tests/DisableAutotimeStampSpec.groovy      |   2 +-
 .../data/testing/tck/tests/DomainEventsSpec.groovy |   5 +
 .../grails/data/testing/tck/tests/EnumSpec.groovy  |   5 +
 .../testing/tck/tests/FindByExampleSpec.groovy     |   5 +
 .../data/testing/tck/tests/FindByMethodSpec.groovy |   5 +
 .../testing/tck/tests/FindOrCreateWhereSpec.groovy |   5 +
 .../testing/tck/tests/FindOrSaveWhereSpec.groovy   |   5 +
 .../data/testing/tck/tests/FindWhereSpec.groovy    |   5 +
 .../tck/tests/FirstAndLastMethodSpec.groovy        |   2 +-
 .../data/testing/tck/tests/GormEnhancerSpec.groovy |   5 +
 .../data/testing/tck/tests/GroovyProxySpec.groovy  |   5 +
 .../data/testing/tck/tests/InheritanceSpec.groovy  |   2 +-
 .../data/testing/tck/tests/ListOrderBySpec.groovy  |   5 +
 .../data/testing/tck/tests/NegationSpec.groovy     |   5 +
 .../data/testing/tck/tests/NotInListSpec.groovy    |   5 +
 .../testing/tck/tests/NullValueEqualSpec.groovy    |   5 +
 .../data/testing/tck/tests/OneToManySpec.groovy    |   5 +
 .../data/testing/tck/tests/OneToOneSpec.groovy     |   5 +
 .../testing/tck/tests/OptimisticLockingSpec.groovy |   5 +
 .../data/testing/tck/tests/OrderBySpec.groovy      |   5 +
 .../data/testing/tck/tests/PagedResultSpec.groovy  |   5 +
 .../tck/tests/PersistenceEventListenerSpec.groovy  |   2 +-
 .../tck/tests/PropertyComparisonQuerySpec.groovy   |   2 +-
 .../tck/tests/ProxyInitializationSpec.groovy       |   2 +-
 .../data/testing/tck/tests/ProxyLoadingSpec.groovy |   5 +
 .../tck/tests/QueryAfterPropertyChangeSpec.groovy  |   5 +
 .../tck/tests/QueryByAssociationSpec.groovy        |   5 +
 .../data/testing/tck/tests/QueryByNullSpec.groovy  |   5 +
 .../data/testing/tck/tests/QueryEventsSpec.groovy  |   3 +-
 .../data/testing/tck/tests/RangeQuerySpec.groovy   |   5 +
 .../data/testing/tck/tests/SaveAllSpec.groovy      |   5 +
 .../tck/tests/SessionCreationEventSpec.groovy      |   5 +
 .../data/testing/tck/tests/SizeQuerySpec.groovy    |   5 +
 .../testing/tck/tests/UniqueConstraintSpec.groovy  |   2 +-
 .../tck/tests/UpdateWithProxyPresentSpec.groovy    |   2 +-
 .../data/testing/tck/tests/ValidationSpec.groovy   |   6 +-
 .../data/testing/tck/tests/WhereLazySpec.groovy    |   2 +-
 .../testing/tck/tests/WithTransactionSpec.groovy   |   5 +
 grails-datamapping-validation/build.gradle         |   1 +
 grails-datasource/build.gradle                     |   1 +
 grails-datastore-async/build.gradle                |   1 +
 grails-datastore-core/build.gradle                 |   1 +
 .../DefaultMappingConfigurationBuilder.groovy      |  33 +-
 .../DefaultMappingConfigurationBuilderSpec.groovy  | 160 +++++++
 grails-datastore-web/build.gradle                  |   1 +
 grails-domain-class/build.gradle                   |   1 +
 grails-encoder/build.gradle                        |   1 +
 grails-events/core/build.gradle                    |   1 +
 grails-events/gpars/build.gradle                   |   1 +
 grails-events/plugin/build.gradle                  |   1 +
 grails-events/rxjava/build.gradle                  |   1 +
 grails-events/rxjava2/build.gradle                 |   1 +
 grails-events/rxjava3/build.gradle                 |   1 +
 grails-events/spring/build.gradle                  |   1 +
 grails-events/transforms/build.gradle              |   1 +
 grails-fields/build.gradle                         |   1 +
 .../forge/build/gradle/GradleRepository.java       |  11 +
 grails-geb/build.gradle                            |   1 +
 grails-gradle/build.gradle                         |   1 +
 grails-gradle/common/build.gradle                  |   1 +
 grails-gradle/model/build.gradle                   |   1 +
 grails-gradle/plugins/build.gradle                 |   1 +
 grails-gradle/tasks/build.gradle                   |   1 +
 grails-gsp/core/build.gradle                       |   1 +
 grails-gsp/grails-layout/build.gradle              |   1 +
 grails-gsp/grails-sitemesh3/build.gradle           |   3 +-
 grails-gsp/grails-taglib/build.gradle              |   1 +
 grails-gsp/grails-web-gsp-taglib/build.gradle      |   1 +
 grails-gsp/grails-web-gsp/build.gradle             |   1 +
 grails-gsp/grails-web-jsp/build.gradle             |   1 +
 grails-gsp/grails-web-taglib/build.gradle          |   1 +
 grails-gsp/plugin/build.gradle                     |   1 +
 grails-i18n/build.gradle                           |   1 +
 grails-interceptors/build.gradle                   |   1 +
 grails-logging/build.gradle                        |   1 +
 grails-mimetypes/build.gradle                      |   1 +
 grails-rest-transforms/build.gradle                |   1 +
 grails-scaffolding/build.gradle                    |   1 +
 grails-services/build.gradle                       |   1 +
 grails-shell-cli/build.gradle                      |   1 +
 .../cli/profile/commands/CreateAppCommand.groovy   |   4 +
 grails-spring/build.gradle                         |   1 +
 grails-test-core/build.gradle                      |   1 +
 grails-test-examples/gorm/build.gradle             |   1 +
 .../gorm/DirtyCheckBindingController.groovy}       |  14 +-
 .../domain/gorm/DirtyCheckedRecord.groovy}         |  16 +-
 .../groovy/gorm/DirtyCheckBindingSpec.groovy       |  67 +++
 .../groovy/gorm/AbstractDirtyCheckedRecord.groovy  |  22 +-
 .../groovy/com/example/pages/LoginPage.groovy      |   2 +-
 .../groovy/com/example/pages/LogoutPage.groovy     |   2 +-
 grails-test-suite-base/build.gradle                |   1 +
 ...ngHelperDomainClassSpecialPropertiesSpec.groovy | 128 ++++++
 .../web/binding/DirtyCheckBaseBindDataSpec.groovy  | 138 ++++++
 grails-testing-support-core/build.gradle           |   1 +
 grails-testing-support-datamapping/build.gradle    |   1 +
 grails-testing-support-dbcleanup-core/build.gradle |   1 +
 grails-testing-support-dbcleanup-h2/build.gradle   |   1 +
 .../build.gradle                                   |   1 +
 grails-testing-support-http-client/build.gradle    |   1 +
 grails-testing-support-mongodb/build.gradle        |   1 +
 grails-testing-support-views-gson/build.gradle     |   1 +
 grails-testing-support-web/build.gradle            |   1 +
 grails-url-mappings/build.gradle                   |   1 +
 grails-validation/build.gradle                     |   1 +
 grails-views-core/build.gradle                     |   1 +
 grails-views-gson/build.gradle                     |   1 +
 grails-views-markup/build.gradle                   |   1 +
 grails-web-boot/build.gradle                       |   1 +
 grails-web-common/build.gradle                     |   1 +
 grails-web-core/build.gradle                       |   1 +
 grails-web-databinding/build.gradle                |   1 +
 .../databinding/DefaultASTDatabindingHelper.java   |  11 +-
 grails-web-mvc/build.gradle                        |   1 +
 grails-web-url-mappings/build.gradle               |   1 +
 grails-wrapper/build.gradle                        |   1 +
 settings.gradle                                    |   8 +-
 389 files changed, 3395 insertions(+), 448 deletions(-)
 create mode 100644 .agents/skills/violation-fixer/SKILL.md
 create mode 100644 .github/workflows/codeanalysis.yml
 create mode 100644 .github/workflows/coverage.yml
 copy build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/{GrailsCodeStyleExtension.groovy => GrailsCodeAnalysisExtension.groovy} (61%)
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsCodeAnalysisPlugin.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsJacocoPlugin.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsViolationAggregationPlugin.groovy
 copy build-logic/plugins/src/main/resources/META-INF/{org.apache.grails.buildsrc.codestyle/checkstyle/checkstyle-suppressions.xml => org.apache.grails.buildsrc.grails-code-analysis/pmd/pmd.xml} (63%)
 rename build-logic/plugins/src/main/resources/META-INF/{org.apache.grails.buildsrc.codestyle => org.apache.grails.buildsrc.grails-code-style}/checkstyle/checkstyle-suppressions.xml (100%)
 rename build-logic/plugins/src/main/resources/META-INF/{org.apache.grails.buildsrc.codestyle => org.apache.grails.buildsrc.grails-code-style}/checkstyle/checkstyle.xml (98%)
 rename build-logic/plugins/src/main/resources/META-INF/{org.apache.grails.buildsrc.codestyle => org.apache.grails.buildsrc.grails-code-style}/codenarc/codenarc.groovy (100%)
 create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/GrailsCodeStylePluginSpec.groovy
 create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/GrailsJacocoPluginSpec.groovy
 create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/GrailsViolationAggregationPluginSpec.groovy
 delete mode 100644 gradle/boot4-disabled-integration-test-config.gradle
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/config/groovy/DefaultMappingConfigurationBuilderSpec.groovy
 copy grails-test-examples/gorm/grails-app/{domain/gorm/Product.groovy => controllers/gorm/DirtyCheckBindingController.groovy} (61%)
 copy grails-test-examples/{app1/grails-app/domain/functionaltests/binding/Project.groovy => gorm/grails-app/domain/gorm/DirtyCheckedRecord.groovy} (72%)
 create mode 100644 grails-test-examples/gorm/src/integration-test/groovy/gorm/DirtyCheckBindingSpec.groovy
 copy grails-data-graphql/core/src/main/groovy/org/grails/gorm/graphql/entity/dsl/helpers/Describable.groovy => grails-test-examples/gorm/src/main/groovy/gorm/AbstractDirtyCheckedRecord.groovy (60%)
 create mode 100644 grails-test-suite-web/src/test/groovy/org/grails/web/binding/DirtyCheckBaseBindDataSpec.groovy