Two over-precise claims from #209 — both in the merged commit message, so they cannot be edited in place
Category: correctness of a durable claim (precision, not behaviour)
Found by: the #209 re-reviewer, raised non-blocking and approved around. Recorded here so the record is
correctable rather than lost.
PR #209 (merged 2cd2559) declined gradle/actions/setup-gradle — whose v6 moved caching into a
non-MIT component — and kept only gradle/actions/wrapper-validation@v6. That decision is correct and
was verified from Gradle's own artifacts, five independent ways: the DISTRIBUTION.md component map
places wrapper validation inside the MIT "Action Runner"; LICENSE/NOTICE scope the carve-out to the
single gradle-actions-caching component; wrapper-validation/action.yml has no cache input at all
(3 inputs), so caching is structurally impossible rather than merely switched off; the bundle greps 0/0/0/0
against setup-gradle's 1/1/1/2; and — the strongest — setup-gradle reaches the component through a
runtime dynamic await import(".../sources/vendor/gradle-actions-caching/index.js") guarded by
isCacheDisabled() / provider==="basic" / else, a call site wrapper-validation does not have.
Nothing below disturbs that conclusion. Both items are wording that claims more than the evidence supports.
1. "No gradle.com Terms of Use are accepted anywhere in this repository" — overshoots
The proprietary blob (2,318,919 bytes) physically ships in the action checkout, and
licenses/gradle-actions-caching-license.txt binds on "downloading, installing, or using". So something
is downloaded even though nothing loads it.
This is not a defect in the decision: Gradle's own documented opt-out (cache-provider: basic) downloads
the identical blob, so "present but never loaded" is the vendor's own standard for declining, and #209
clears it by a wider margin — it removes the call site entirely rather than switching a flag.
Correct wording: "…accepted by anything this repository executes; the proprietary component is present
in the action checkout but is never loaded."
Appears in both the PR body and the merged commit message for 2cd2559. The commit message cannot be
amended on main, which is exactly why this is written down.
2. "A superset of gradle-home-cache-includes' default" — not a superset
caches + wrapper is described as a superset of that default. It is not: the default is
caches\nnotifications\n, so the new set drops notifications while adding wrapper. Immaterial in
effect — nothing depends on cached notifications — but "superset" is a false relation and will mislead
whoever next tunes the cache.
Also confirmed accurate, so nobody re-derives it
The capability audit against setup-gradle@v4's 41 parsed defaults is right on every row: validate-wrappers
was silently ON and is preserved; gradle-version, dependency-graph, build-scan-publish and
arguments were genuinely unused; add-job-summary and cache cleanup/dedup are lost and disclosed.
The release.yml worst case is clean — all four Gradle invocations use ./gradlew, with zero bare
gradle calls across all four workflows, so the lost Gradle-installation capability is inert on the publish
path.
Effort: trivial — two sentences. Suitable to ride along on any later CI touch rather than its own PR.
Refs #207, Refs #231.
Two over-precise claims from #209 — both in the merged commit message, so they cannot be edited in place
Category: correctness of a durable claim (precision, not behaviour)
Found by: the #209 re-reviewer, raised non-blocking and approved around. Recorded here so the record is
correctable rather than lost.
PR #209 (merged
2cd2559) declinedgradle/actions/setup-gradle— whose v6 moved caching into anon-MIT component — and kept only
gradle/actions/wrapper-validation@v6. That decision is correct andwas verified from Gradle's own artifacts, five independent ways: the
DISTRIBUTION.mdcomponent mapplaces wrapper validation inside the MIT "Action Runner";
LICENSE/NOTICEscope the carve-out to thesingle
gradle-actions-cachingcomponent;wrapper-validation/action.ymlhas no cache input at all(3 inputs), so caching is structurally impossible rather than merely switched off; the bundle greps 0/0/0/0
against
setup-gradle's 1/1/1/2; and — the strongest —setup-gradlereaches the component through aruntime dynamic
await import(".../sources/vendor/gradle-actions-caching/index.js")guarded byisCacheDisabled() / provider==="basic" / else, a call sitewrapper-validationdoes not have.Nothing below disturbs that conclusion. Both items are wording that claims more than the evidence supports.
1. "No gradle.com Terms of Use are accepted anywhere in this repository" — overshoots
The proprietary blob (2,318,919 bytes) physically ships in the action checkout, and
licenses/gradle-actions-caching-license.txtbinds on "downloading, installing, or using". So somethingis downloaded even though nothing loads it.
This is not a defect in the decision: Gradle's own documented opt-out (
cache-provider: basic) downloadsthe identical blob, so "present but never loaded" is the vendor's own standard for declining, and #209
clears it by a wider margin — it removes the call site entirely rather than switching a flag.
Correct wording: "…accepted by anything this repository executes; the proprietary component is present
in the action checkout but is never loaded."
Appears in both the PR body and the merged commit message for
2cd2559. The commit message cannot beamended on
main, which is exactly why this is written down.2. "A superset of
gradle-home-cache-includes' default" — not a supersetcaches+wrapperis described as a superset of that default. It is not: the default iscaches\nnotifications\n, so the new set dropsnotificationswhile addingwrapper. Immaterial ineffect — nothing depends on cached notifications — but "superset" is a false relation and will mislead
whoever next tunes the cache.
Also confirmed accurate, so nobody re-derives it
The capability audit against
setup-gradle@v4's 41 parsed defaults is right on every row:validate-wrapperswas silently ON and is preserved;
gradle-version,dependency-graph,build-scan-publishandargumentswere genuinely unused;add-job-summaryand cache cleanup/dedup are lost and disclosed.The
release.ymlworst case is clean — all four Gradle invocations use./gradlew, with zero baregradlecalls across all four workflows, so the lost Gradle-installation capability is inert on the publishpath.
Effort: trivial — two sentences. Suitable to ride along on any later CI touch rather than its own PR.
Refs #207, Refs #231.