jdaugherty commented on PR #14670:
URL: https://github.com/apache/grails-core/pull/14670#issuecomment-2831560525

   ### Jars with Differences
   
                
grails-async/core/build/libs/grails-async-core-7.0.0-SNAPSHOT-javadoc.jar
                grails-cache/build/libs/grails-cache-7.0.0-SNAPSHOT.jar
                
grails-controllers/build/libs/grails-controllers-7.0.0-SNAPSHOT.jar
                
grails-converters/build/libs/grails-converters-7.0.0-SNAPSHOT.jar
                grails-core/build/libs/grails-core-7.0.0-SNAPSHOT-javadoc.jar
                
grails-data-hibernate5/core/build/libs/grails-data-hibernate5-core-7.0.0-SNAPSHOT-javadoc.jar
                
grails-data-hibernate5/dbmigration/build/libs/grails-data-hibernate5-dbmigration-7.0.0-SNAPSHOT.jar
                
grails-data-hibernate5/grails-plugin/build/libs/grails-data-hibernate5-7.0.0-SNAPSHOT.jar
                
grails-data-mongodb/bson/build/libs/grails-data-mongodb-bson-7.0.0-SNAPSHOT.jar
                
grails-datamapping-core/build/libs/grails-datamapping-core-7.0.0-SNAPSHOT-javadoc.jar
                
grails-datamapping-core/build/libs/grails-datamapping-core-7.0.0-SNAPSHOT.jar
                
grails-datamapping-support/build/libs/grails-datamapping-support-7.0.0-SNAPSHOT.jar
                
grails-datamapping-tck-base/build/libs/grails-datamapping-tck-base-7.0.0-SNAPSHOT-javadoc.jar
                
grails-datamapping-tck-domains/build/libs/grails-datamapping-tck-domains-7.0.0-SNAPSHOT.jar
                
grails-datamapping-tck-tests/build/libs/grails-datamapping-tck-tests-7.0.0-SNAPSHOT-javadoc.jar
                
grails-datamapping-tck-tests/build/libs/grails-datamapping-tck-tests-7.0.0-SNAPSHOT.jar
                
grails-datastore-core/build/libs/grails-datastore-core-7.0.0-SNAPSHOT-javadoc.jar
                
grails-domain-class/build/libs/grails-domain-class-7.0.0-SNAPSHOT.jar
                grails-fields/build/libs/grails-fields-7.0.0-SNAPSHOT.jar
                
grails-gsp/core/build/libs/grails-gsp-core-7.0.0-SNAPSHOT-javadoc.jar
                
grails-gsp/grails-sitemesh3/build/libs/grails-sitemesh3-7.0.0-SNAPSHOT.jar
                
grails-gsp/grails-taglib/build/libs/grails-taglib-7.0.0-SNAPSHOT-javadoc.jar
                
grails-gsp/grails-web-gsp-taglib/build/libs/grails-web-gsp-taglib-7.0.0-SNAPSHOT.jar
                
grails-gsp/grails-web-gsp/build/libs/grails-web-gsp-7.0.0-SNAPSHOT-javadoc.jar
                grails-gsp/plugin/build/libs/grails-gsp-7.0.0-SNAPSHOT.jar
                
grails-interceptors/build/libs/grails-interceptors-7.0.0-SNAPSHOT.jar
                
grails-rest-transforms/build/libs/grails-rest-transforms-7.0.0-SNAPSHOT.jar
                
grails-scaffolding/build/libs/grails-scaffolding-7.0.0-SNAPSHOT.jar
                
grails-shell-cli/build/libs/grails-shell-cli-7.0.0-SNAPSHOT-javadoc.jar
                
grails-test-core/build/libs/grails-test-core-7.0.0-SNAPSHOT-javadoc.jar
                
grails-views-core/build/libs/grails-views-core-7.0.0-SNAPSHOT-javadoc.jar
                
grails-views-gson/build/libs/grails-views-gson-7.0.0-SNAPSHOT.jar
                
grails-views-markup/build/libs/grails-views-markup-7.0.0-SNAPSHOT-javadoc.jar
                
grails-views-markup/build/libs/grails-views-markup-7.0.0-SNAPSHOT.jar
                
grails-web-common/build/libs/grails-web-common-7.0.0-SNAPSHOT-javadoc.jar
                
grails-web-databinding/build/libs/grails-web-databinding-7.0.0-SNAPSHOT.jar
                
grails-web-url-mappings/build/libs/grails-web-url-mappings-7.0.0-SNAPSHOT-javadoc.jar
                
grails-web-url-mappings/build/libs/grails-web-url-mappings-7.0.0-SNAPSHOT.jar
   
   ### To investigate these issues, the following strategies can be employed: 
   1. diff the jars to find what's different by unzipping them and then:
   - for class files, decompile the class with IntelliJ and diff the result.  
Reordering of the fields seems to be the most common issue.
   - for binary files, use hex comparison to see how much is different
   2. ensure common execution order by adding output to the various *Transform 
classes.  Note: OrderedGormTransformation  runs all of transforms for 
annotations with an annotation `GormASTTransformationClass` 
   3. Ensure collections with reproducible order are used in transforms or any 
class changing an AST node. (I think most of this is done in this PR)
   
   
   ### Known Outstanding issues: 
   1. the TCK implementation causes differences in the javadoc.jar.  
   
   It appears the parent methods that spock adds to a spec, are out of order.  
Based on the previous TCK work, and how it loads the same class name depending 
on the project, it seems the best action here may be to finally work on an 
extension or custom runner to run TCK based tests.  
   
   The tests can continue to be shipped in a single jar file, but the base jar 
needs to do something different - maybe have a common class that's looked for 
and the behavior of the tests is influenced by that? 
   
   2. domains still are not reproducible.  I'm seeing reordering of the fields. 
 It's probably related to the transforms being applied to each AnnotatedNode in 
bulk instead of applying 1, then another.  Decoupling TransactionalTransform & 
TenantTransform may help here.
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to