Skip to content
Open
Show file tree
Hide file tree
Changes from 74 commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
d55aff3
stage: clone hibernate5 modules to hibernate7 as baseline
jdaugherty May 11, 2026
4084938
Add missing hibernate7 test flags
jdaugherty May 11, 2026
ec859bf
rename spring orm source from hibernate5 -> hibernate7
jdaugherty May 12, 2026
214a291
hibernate6.gorm.suite -> hibernate7.gorm.suite
jdaugherty May 12, 2026
5ac6e2c
Add missing checks for hibernate7.gorm.suite
jdaugherty May 12, 2026
caa32c4
Remove import / switch back to javadoc
jdaugherty May 12, 2026
5112d89
Remove import / switch back to javadoc
jdaugherty May 12, 2026
ed0916d
Pull forward manager.addAllDomainClasses change
jdaugherty May 12, 2026
01c27f9
Pull forward package changes
jdaugherty May 12, 2026
c8cb43f
Pull forward base tck test
jdaugherty May 12, 2026
f18465a
fix codenarc violations
jdaugherty May 12, 2026
4c5c563
Fix import
jdaugherty May 12, 2026
fbe6d04
Fix negative check
jdaugherty May 13, 2026
ba6d0aa
Adopt gradle test aggregation reporting
jdaugherty May 14, 2026
0366b20
Pull forward liquibase-hibernate fork
jdaugherty May 14, 2026
a45a8e5
Skill file license cleanup
jdaugherty May 14, 2026
5f08705
Pull forward workflow target branch changes
jdaugherty May 14, 2026
4efa439
Pull forward styling fixes
jdaugherty May 14, 2026
4cbcd71
Pull forward hibernate6 reference removal
jdaugherty May 14, 2026
7771d73
Pull forward micronaut bom adoption for forge
jdaugherty May 14, 2026
d79c78b
Pull forward hibernate6 -> hibernate7 name fixes
jdaugherty May 14, 2026
fc7bfeb
Pull forward micronaut hibernate7 / hibernate5 bom split
jdaugherty May 14, 2026
153e555
Pull forward using testcontainers from the bom
jdaugherty May 14, 2026
954f89e
Pull forward styling changes in mongo
jdaugherty May 14, 2026
2641faf
Pull forward micronaut bom docs
jdaugherty May 14, 2026
89420e7
Pull forward code style settings
jdaugherty May 14, 2026
375e0b6
Pull forward hibernate7 doc ignore
jdaugherty May 14, 2026
02c169a
Pull forward license addition
jdaugherty May 14, 2026
88a5192
Pull forward remaining license for liquibase fork, bom selection, and…
jdaugherty May 14, 2026
ac007f3
Pull forward workaround for mongo (only use hibernate5 docs for now)
jdaugherty May 14, 2026
f9da7d5
Pull forward documentation update
jdaugherty May 14, 2026
d717f96
Pull forward dependency cleanup due to bom adoption
jdaugherty May 14, 2026
e3cad41
Pull forward async project cleanup
jdaugherty May 14, 2026
093f41e
Pull forward properties override, geb property override, workflow bra…
jdaugherty May 14, 2026
6c82efb
Pull forward styling fixes
jdaugherty May 14, 2026
4b5c6e9
Pull forward follow=true fix
jdaugherty May 14, 2026
a14af3a
Pull forward removal of transitive test dependency
jdaugherty May 14, 2026
8ab6e91
Pull forward removal of dead code
jdaugherty May 14, 2026
0a43922
Pull forward bom versions page
jdaugherty May 14, 2026
15f2be6
Pull forward test reformatting & domain defaults
jdaugherty May 14, 2026
81c434b
Pull forward styling changes
jdaugherty May 14, 2026
dbe666a
Pull forward bom adoption
jdaugherty May 14, 2026
4ba3d02
Pull forward bom envers
jdaugherty May 14, 2026
2c02980
Comment out dbmigration-core since it's really hibernate7 code
jdaugherty May 14, 2026
1c6a015
Fix WhereMethodSpec package import & bom ignores for micronaut
jdaugherty May 14, 2026
d8ca9dc
Pull forward spec changes
jdaugherty May 14, 2026
36d649e
Add missing license header
jdaugherty May 14, 2026
a951477
Remove invalid mappings
jdaugherty May 14, 2026
772415b
Pull forward multi-tenant test changes
jdaugherty May 14, 2026
37c2b90
Revert the hibernate7 code pull forward
jdaugherty May 14, 2026
bd741c6
Pull forward removal of Shared
jdaugherty May 14, 2026
7fc83fd
Pull forward test changes
jdaugherty May 14, 2026
58de59f
Pull forward compiler configuration since it's only a project rename
jdaugherty May 14, 2026
62befcd
Pull forward build artifact name changes
jdaugherty May 14, 2026
ee4ab14
Pull forward test changes
jdaugherty May 14, 2026
f76e090
Fix bad compareTo vs equals implementation
jdaugherty May 14, 2026
7ba9c67
Add missing domains
jdaugherty May 14, 2026
6bbe3b3
Pull forward test changes
jdaugherty May 14, 2026
982a4ea
Pull forward test styling
jdaugherty May 14, 2026
ec17b09
Fix tests for stage branch
jdaugherty May 14, 2026
7a410b3
Splitting analysis from style from code coverage & various associated…
jdaugherty May 16, 2026
af842ab
Add missing properties
jdaugherty May 17, 2026
f8d475c
Remove code analysis from forge since they dont' apply those plugins …
jdaugherty May 17, 2026
dfb255f
Updating analysis workflow
jdaugherty May 17, 2026
d959e4e
Expand test coverage for extending the criteria implementation with a…
jdaugherty May 17, 2026
5436ff0
Add more build directories to rat ignore config
jdaugherty May 17, 2026
340a1f1
Pull forward test lens fix
jdaugherty May 17, 2026
263f7ed
Fix bad merge
jdaugherty May 17, 2026
caeb724
Remove codememory skill reference for now
jdaugherty May 17, 2026
4eca4ca
Remove slf4j-simple
jdaugherty May 17, 2026
ada5f2a
Copy hibernate5 test to hibernate7
jdaugherty May 17, 2026
3fa03ac
Copy hibernate5 test to hibernate7
jdaugherty May 17, 2026
b04a50f
Copy hibernate5 test to hibernate7
jdaugherty May 17, 2026
1c61325
Merge branch '8.0.x' into 8.0.x-stage-hibernate7
jamesfredley May 20, 2026
39d64f1
Merge branch '8.0.x' into 8.0.x-stage-hibernate7
jamesfredley May 22, 2026
09f395c
Fix hibernate5Version property references in grails-test-examples/gra…
jamesfredley May 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 5 additions & 20 deletions .agents/skills/grails-developer/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,13 @@
<!--
SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
---
name: grails-developer
description: Comprehensive guide for Grails 7 development, covering web applications, REST APIs, GORM, controllers, services, views, plugins, and testing with Spock and Geb
license: Apache-2.0
compatibility: opencode, claude, grok, gemini, copilot, cursor, windsurf
metadata:
audience: developers
frameworks: grails
versions: 7
---
<!--
SPDX-License-Identifier: Apache-2.0

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
-->

## What I Do

Expand Down
26 changes: 5 additions & 21 deletions .agents/skills/groovy-developer/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,13 @@
<!--
SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
---
name: groovy-developer
description: Expert guide for Groovy 4 development, covering concise syntax, closures, DSLs, metaprogramming, static compilation, and integration with Java 17 and Grails
license: Apache-2.0
compatibility: opencode, claude, grok, gemini, copilot, cursor, windsurf
metadata:
audience: developers
languages: groovy, java
versions: 4.0
paradigms: dynamic, static, functional, object-oriented, DSL-oriented
---
<!--
SPDX-License-Identifier: Apache-2.0

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
-->

## What I Do

Expand Down
25 changes: 5 additions & 20 deletions .agents/skills/java-developer/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,13 @@
<!--
SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
---
name: java-developer
description: Guide for developing in Java 17 LTS, including modern features, best practices, and integration with Groovy/Grails projects
license: Apache-2.0
compatibility: opencode, claude, grok, gemini, copilot, cursor, windsurf
metadata:
audience: developers
languages: java
versions: 17
---
<!--
SPDX-License-Identifier: Apache-2.0

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
-->

## What I Do

Expand Down
142 changes: 142 additions & 0 deletions .agents/skills/test-fixer/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
---
name: test-fixer
description: Guide for running, reviewing, and fixing test failures across grails-core modules using Gradle test reports
license: Apache-2.0
---
<!--
SPDX-License-Identifier: Apache-2.0

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
-->

## What I Do

- Guide targeted and full test runs across grails-core modules.
- Help interpret Gradle HTML and XML test reports.
- Help triage failing specs, static state pollution, and module-specific regressions.

## When to Use Me

Activate this skill when:

- Running a failing module or specific spec.
- Preparing a commit and verifying affected module tests.
- Triaging regressions after a dependency upgrade or refactor.
- Reviewing aggregate test results from `:grails-test-report`.

---

## Key Tasks

### Targeted Testing Recommended

To save time, run only related tests:

```bash
./gradlew :grails-data-hibernate7-core:test --tests "grails.gorm.tests.BasicCollection*"
```

### Full Run

```bash
./gradlew test --continue
```

Use `--continue` when you need later modules to run after an earlier module fails.

---

## Aggregate Test Reports

The `grails-test-report` project owns repository test aggregation.

```bash
./gradlew :grails-test-report:check --continue
```

This generates:

- Unit HTML: `grails-test-report/build/reports/tests/test/index.html`
- Unit Markdown: `grails-test-report/build/reports/tests/test.md`
- Integration HTML: `grails-test-report/build/reports/tests/integrationTest/index.html`
- Integration Markdown: `grails-test-report/build/reports/tests/integrationTest.md`
- Combined HTML: `grails-test-report/build/reports/tests/combined/index.html`
- Combined Markdown: `grails-test-report/build/reports/tests/combined.md`

The aggregate report includes root subprojects that define matching `test` or `integrationTest` tasks.

The collected unit and integration `Test` tasks are finalized by their matching aggregate report tasks. Reports are attempted after failures and after targeted module test runs, but they summarize the XML results currently available on disk. Use `--continue` for full-suite runs so Gradle keeps scheduling later test tasks after an earlier failure; without it, reports can be partial. Run `clean` first when stale XML results should be excluded.

---

## Running Tests for a Specific Module

```bash
# All tests in a module
./gradlew :grails-data-hibernate7-dbmigration:test

# A specific spec
./gradlew :grails-data-hibernate7-dbmigration:test \
--tests "org.grails.plugins.databasemigration.command.DbmGenerateGormChangelogCommandSpec"

# A specific feature method
./gradlew :grails-data-hibernate7-core:test \
--tests "org.grails.orm.hibernate.FooSpec.my feature name"

# Force rerun even if Gradle thinks it is up-to-date
./gradlew :grails-data-hibernate7-core:test --rerun-tasks
```

---

## Test Source Layout

| Source set | Directory | Task |
|------------|-----------|------|
| Unit tests | `src/test/groovy/` | `test` |
| Integration tests | `src/integration-test/groovy/` | `integrationTest` |

Most specs in grails-core are unit tests (`src/test/groovy/`) run by the `test` task. A small number of modules use `integrationTest` for full Spring context tests.

---

## Parallel Test Execution

Tests run in parallel (`maxParallelForks` defaults to `4` on CI and to `availableProcessors * 3/4` otherwise; override with `-PmaxTestParallel`). This can cause:

- Static state pollution: one test mutating a static field that another test reads.
- Port conflicts: multiple test JVMs binding the same port.
- `@Shared` field contamination: shared state not properly cleaned up between feature methods.

To diagnose flaky failures, rerun with forced serial execution:

```bash
./gradlew :module:test -PmaxTestParallel=1 --rerun-tasks
```

---

## Test Configuration Flags

| Property | Effect |
|----------|--------|
| `skipTests` | Skips all `Test` tasks (build only) |
| `maxTestParallel=N` | Override parallel fork count |
| `onlyFunctionalTests` | Run only functional test suites |
| `skipHibernate7Tests` | Skip H7-specific test suites |
| `onlyMongodbTests` | Run only MongoDB test suites |
| `onlyCoreTests` | Run only core module tests |

---

## XML Report Location

Gradle writes JUnit XML test results to:

```text
<module>/build/test-results/
├── test/
│ └── TEST-org.grails.SomeSpec.xml
└── integrationTest/
└── TEST-org.grails.SomeIntegrationSpec.xml
```
Loading
Loading