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]