build reproducibility & verification issues after testing 7.0.0-RC2 #15055
+50
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
@matrei noticed that he was having reproducibility issues for grails-redis when run under docker desktop. These issues did not exist for me under orbstack or when running locally.
Debugging this, the source jars were different because the file listings inside of the source jars were different. Specifically, the listing across source sets - sometimes grails-app/init would be first and sometimes it would be later.
Digging into this, we do define the source / resource directories based on file system order instead of a deterministic order. This PR sorts those to help these issues in the future (we may need to open an upstream gradle bug when using reproducibleFileOrder=true if this continues). From what I can tell, the gradle source uses lists / linkedHashSets so as long as it's added in the same order, it's processed in the order.
@matrei noted the reproducible script was failing because after a manual diff of all files, no differences were found. The script did not exit properly or ensure a diff file existed. @paulk-asert has previously mentioned these issues in prior releases but I couldn't reproduce. Going forward this should resolve this.
As part of 7.0.0-RC2 we started verifying both the grails github action files & the svn files to make sure they are identical. We now will verify the KEYS files are identical so they're always kept in sync with grails-core.