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]