cowwoc commented on PR #389:
URL: 
https://github.com/apache/maven-build-cache-extension/pull/389#issuecomment-5040053744

   I rebased against the latest master and addressed the latest PR comments.
   
   I also want to point out that I updated the parameter metadata to replace 
the functional/behavioral annotation with `<cache-key>`.
   
   The name was changed because the old terminology described how a property 
affects plugin execution, while the actual decision we need is whether changing 
the property must affect cache reuse. `<cache-key>` states that decision 
directly and avoids ambiguity around properties such as compiler forking, 
memory limits, and warning handling.
    
   Semantics:
   
   - The default value is `false`.
   - `<cache-key>true</cache-key>` means the property participates in the 
generated cache key/reconciliation. Changing its value causes a cache miss.
   - `<cache-key>false</cache-key>` or an omitted annotation means that 
changing the property does not invalidate the cache.
   - A cache miss does not delete existing cache entries.
   
   The terminology migration itself preserved the final classifications: 
`functional` became `true`, and `behavioral` became `false`.
   
   This latest commit changes `<no-cache>` from `false` to `true` for the 
following properties:
   
   - `showWarnings` and `showDeprecation` for `compile` and `testCompile`: they 
can affect the build outcome when combined with `failOnWarning`.
   - `fork` for `compile` and `testCompile`: it can select a different compiler 
process or JDK, affecting output or success.
   - `maxmem` and `meminitial` for `compile` and `testCompile`: compiler memory 
settings can affect compilation success.
   - `failOnError` and `failOnWarning` for `compile` and `testCompile`: they 
directly change the success/failure outcome.
   - `forceJavacCompilerUse` for `compile` and `testCompile`: selecting the 
compiler implementation can affect generated output.
   - `staleMillis` for `compile` and `testCompile`: it can change which files 
are recompiled and therefore the generated files.
   - `useIncrementalCompilation` for `compile` and `testCompile`: it can change 
generated files and the build outcome.
   - `installAtEnd` for `install`: on reactor failure, it changes whether 
artifacts are installed and therefore changes project state.
   - `updateReleaseInfo` was removed because it does not seem to be valid 
parameter of the supported `install` goal.
   
   Please let me know if there are any concerns with the above changes.


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