jdaugherty opened a new pull request, #16549:
URL: https://github.com/apache/grails-core/pull/16549

   ## Description
   
   Remove the generated timestamp comment from properties files processed by 
`PropertyFileUtils`, including when `SOURCE_DATE_EPOCH` is set.
   
   Previously, the utility replaced the timestamp with a `SOURCE_DATE_EPOCH` 
comment and defaulted to the start of the current UTC day. Otherwise identical 
JARs could therefore change between days and invalidate downstream build 
caches. Omitting the comment entirely makes these files independent of build 
dates and epoch values.
   
   This applies to the existing callers that generate 
`META-INF/grails.build.info`, `META-INF/grails.factories`, 
`gsp/views.properties`, and the merged Groovy extension descriptor in Forge. 
Descriptive comments, property values, and the public utility methods are 
preserved.
   
   The change keeps the existing timestamp filter in the dependency-free common 
module. Spring provides `CollectionFactory.createSortedProperties(true)`, but 
it omits all comments and would require adding a Spring dependency here.
   
   Related: #16546. This addresses the same cache-invalidation problem on 
`7.0.x` by removing the timestamp comment entirely.
   
   ## Tests and documentation
   
   - Updated coverage for both file and stream APIs, Java and Ant timestamp 
formats, and unset, empty, zero, and nonzero `SOURCE_DATE_EPOCH` values.
   - Added round-trip coverage for Unicode, escaped keys and values, 
descriptive comments, and date-valued properties.
   - Updated the Grails Guide and release documentation.
   
   ## Verification
   
   All 18 module tests passed. The regression assertions were also verified to 
fail against the original implementation.
   
   Passed from `grails-gradle/`:
   
   ```bash
   ./gradlew :grails-gradle-common:clean :grails-gradle-common:test 
:grails-gradle-common:codeStyle 
:grails-gradle-common:validateDependencyVersions 
:grails-gradle-common:projectHealth --console=plain
   ```
   
   Dependency health passed with advisory dependency-declaration suggestions. 
`git diff --check` passed.
   
   The root command `./gradlew clean aggregateViolations 
:grails-test-report:check --continue` could not run because 
`aggregateViolations` is not available on `7.0.x`; module-level verification 
was used instead.


-- 
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