Extract caching logic into a separate gradle-actions-caching component#885
Merged
Extract caching logic into a separate gradle-actions-caching component#885
gradle-actions-caching component#885Conversation
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.
Member
Author
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.
I don't understand what you mean. The licensing notice is very clear about how this applies to the caching implementation.
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With this change, the caching functionality of
setup-gradleanddependency-submissionis now provided bygradle-actions-caching, a closed-source library distributed under our Terms of Use. The rest of the action implementation remains open source.Using
setup-gradleordependency-submissionwith caching enabled involves loading and using thegradle-actions-cachingcomponent, requiring acceptance of the Terms ofUse. 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-cachingor 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-gradlefits 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.
gradle-actions-cachingcomponent.@actions/cachinglibrary is still used to cache Gradle distributions that are downloaded and provisioned bysetup-gradle. This PR updates to the latest version of@actions/caching, and removes the patch that is no longer required.