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

borinquenkid pushed a commit to branch 8.0.x-hibernate7
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 998ea6d467e0535ee91b6b36b785a3770e2edebd
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Thu Jun 18 15:35:59 2026 -0500

    docs: update hibernate-developer SKILL.md — clarify migration scope, 
parallel-fork note, known status
    
    - Scope: distinguish framework-internal migration work (in scope) from
      user-facing app migration docs (out of scope, belongs in grails-doc)
    - Parallel execution: explain why globally unique entity names matter —
      HibernateDatastore caches by simple name, maxParallelForks > 1 means
      two specs with same-named entities in the same fork corrupt each other
    - Known Status: mark binder migration as complete; remove stale bullets
    
    Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
---
 .agents/skills/hibernate-developer/SKILL.md | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/.agents/skills/hibernate-developer/SKILL.md 
b/.agents/skills/hibernate-developer/SKILL.md
index 052ff2f06c..ae3197ba97 100644
--- a/.agents/skills/hibernate-developer/SKILL.md
+++ b/.agents/skills/hibernate-developer/SKILL.md
@@ -12,9 +12,9 @@ Licensed to the Apache Software Foundation (ASF) under one or 
more contributor l
 ## What I Do
 
 - Provide repository-specific guidance for the `grails-data-hibernate7` 
project.
-- Help with Hibernate 7 migration work in domain binding, mapping metadata, 
identifiers, generators, collections, and second-pass binding.
 - Guide changes around `GrailsDomainBinder`, `GrailsPropertyBinder`, 
`IdentityBinder`, `VersionBinder`, collection binders, and related utilities.
-- Keep changes aligned with the testing constraints and migration status used 
by the Hibernate 7 modules in this repository.
+- Keep changes aligned with the testing constraints used by the Hibernate 7 
modules in this repository.
+- Help with migration work inside this framework module (e.g., porting 
domain-binding behaviour from H5 to H7, updating binder internals, fixing H7 
regressions). Does not cover user-facing application migration guides; those 
belong in `grails-doc`.
 
 ## When to Use Me
 
@@ -90,7 +90,7 @@ When touching `grails-data-hibernate7`, test through real 
Hibernate wiring rathe
 - Use `HibernateGormDatastoreSpec` for Hibernate 7 integration and 
domain-binding specifications.
 - Prefer `manager.registerDomainClasses(...)` in `setupSpec()` to register 
entities for specs.
 - Define test entities as top-level classes in the same Groovy spec file.
-- Ensure test domain class names are globally unique within the package to 
avoid shared mapping metadata collisions when specs run in parallel.
+- Ensure test domain class names are globally unique within the package. The 
test suite uses `maxParallelForks > 1`, so multiple specs can run concurrently 
in the same JVM fork. `HibernateDatastore` caches mapping metadata by entity 
class name, so two specs registering a domain class with the same simple name 
in the same package can overwrite each other's mappings and cause flaky 
failures.
 - Prefer real entities over heavy mocking for binder logic.
 
 ## Change Workflow
@@ -110,9 +110,8 @@ When touching `grails-data-hibernate7`, test through real 
Hibernate wiring rathe
 
 ## Known Status and Constraints
 
-- The Hibernate 7 binder migration is largely in migrated state across the 
main binders, collection types, second-pass binders, generators, and utilities.
-- Unidirectional many-to-many support in `CollectionSecondPassBinder` is 
implemented.
-- `GrailsIncrementGenerator` reflection hacks remain a known temporary 
compromise until a later Hibernate upgrade removes the need.
+- The Hibernate 7 binder migration is complete: all main binders, collection 
types, second-pass binders, generators, and utilities have been migrated.
+- `GrailsIncrementGenerator` retains reflection-based workarounds for 
accessing Hibernate 7 internals; avoid broad refactors in that class unless 
explicitly targeting that area.
 
 ## Source of Truth
 

Reply via email to