Skip to content

Extract caching logic into a separate gradle-actions-caching component#885

Merged
bigdaz merged 1 commit intomainfrom
extract-caching
Mar 18, 2026
Merged

Extract caching logic into a separate gradle-actions-caching component#885
bigdaz merged 1 commit intomainfrom
extract-caching

Conversation

@bigdaz
Copy link
Copy Markdown
Member

@bigdaz bigdaz commented Mar 18, 2026

With this change, the caching functionality of setup-gradle and dependency-submission is now provided by gradle-actions-caching, a closed-source library distributed under our Terms of Use. The rest of the action implementation remains open source.

Using setup-gradle or dependency-submission with caching enabled involves loading and using the gradle-actions-caching component, requiring acceptance of the Terms of
Use
. There are no functional changes to caching provided by these actions: all workflows will continue to function as before.

The non-caching aspects of action implementation remain open source. By running these actions with caching disabled they can be used without ever loading gradle-actions-caching or accepting the license terms.

Supporting the caching infrastructure in this project requires a substantial engineering investment by Gradle Technologies, which we can sustain thanks to Develocity, our commercial offering. Caching technologies are a core part of the Develocity offering, and the caching in setup-gradle fits squarely in that space.

This licensing change lets us continue to build advanced capabilities that go beyond what we would offer as open source. Proper production-ready Configuration Cache support will be the first capability. Improving build performance for self-hosted runners will follow.

We may introduce functionality restrictions in future updates. However, caching functionality will remain free for public repositories. We have a long-standing commitment to open source, as maintainers of Gradle Build Tool, and by sponsoring the open source community with free Develocity licenses. Public repositories are primarily used by open source projects, and we remain committed to supporting them.

  • Implementation of caching logic to save and restore Gradle User Home content has been removed, replaced by the gradle-actions-caching component.
  • The @actions/caching library is still used to cache Gradle distributions that are downloaded and provisioned by setup-gradle. This PR updates to the latest version of @actions/caching, and removes the patch that is no longer required.
  • License notices are now displayed in documentation, logs and the generated Job Summary.

Base automatically changed from remove-config-cache to main March 18, 2026 20:27
With this change, the caching functionality of `setup-gradle` and
`dependency-submission` is now provided by `gradle-actions-caching`, a
closed-source library distributed under our [Terms of
Use](https://gradle.com/legal/terms-of-use/). The rest of the action
implementation remains open source.

Using `setup-gradle` or `dependency-submission` with caching enabled
involves loading and using the `gradle-actions-caching` component,
requiring acceptance of the [Terms of
Use](https://gradle.com/legal/terms-of-use/). There are no functional
changes to caching provided by these actions: all workflows will
continue to function as before.

The non-caching aspects of action implementation remain open source. By
running these actions with caching disabled they can be used without
ever loading `gradle-actions-caching` or accepting the license terms.

Supporting the caching infrastructure in this project requires a
substantial engineering investment by Gradle Technologies, which we can
sustain thanks to Develocity, our commercial offering. Caching
technologies are a core part of the Develocity offering, and the caching
in `setup-gradle` fits squarely in that space.

This licensing change lets us continue to build advanced capabilities
that go beyond what we would offer as open source. Proper
production-ready Configuration Cache support will be the first
capability. Improving build performance for self-hosted runners will
follow.

We may introduce functionality restrictions in future updates. However,
caching functionality will remain free for public repositories.
We have a long-standing commitment to open source, as maintainers of
Gradle Build Tool, and by [sponsoring the open source
community](https://gradle.com/oss-sponsored-by-develocity/) with free
Develocity licenses. Public repositories are primarily used by open
source projects, and we remain committed to supporting them.

- Implementation of caching logic to save and restore Gradle User Home
content has been removed, replaced by the `gradle-actions-caching`
component.
- The `@actions/caching` library is still used to cache Gradle
distributions that are downloaded and provisioned by `setup-gradle`.
This PR updates to the latest version of `@actions/caching`, and removes
the patch that is no longer required.
- License notices are now displayed in documentation, logs and the
generated Job Summary.
@bigdaz bigdaz merged commit a0ee12f into main Mar 18, 2026
363 of 368 checks passed
@bigdaz bigdaz deleted the extract-caching branch March 18, 2026 20:57
@rlconst
Copy link
Copy Markdown

rlconst commented Mar 24, 2026

There's also a note about substituting cache logic in #831, #25, #279. The changelog about cache looks very scary and don't have any relevant details, linked to ToS without even mentioning cache at all. What if I won't update to action v6? Please address these concerns.

@bigdaz
Copy link
Copy Markdown
Member Author

bigdaz commented Mar 24, 2026

There's also a note about substituting cache logic in #831, #25, #279.

This PR introduces a CacheService API and service loader mechanism, making it feasible to add other caching implementations in the future. While don't have plans to offer this functionality, the community may decide to take this on.

linked to ToS without even mentioning cache at all

I don't understand what you mean. The licensing notice is very clear about how this applies to the caching implementation.

What if I won't update to action v6?

Of course this is your prerogative. I expect that v5 will continue to function for some time, but will not be actively maintained us for security vulnerabilities and Node JS versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants