Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Gradle's configuration cache #536

Open
melix opened this issue Mar 9, 2023 · 1 comment
Open

Support Gradle's configuration cache #536

melix opened this issue Mar 9, 2023 · 1 comment
Assignees
Labels
type: improvement A minor improvement to an existing feature

Comments

@melix
Copy link
Contributor

melix commented Mar 9, 2023

Currently our build plugins prevent us from using Gradle's configuration cache. It would be good to support it, as this would speed up things, especially in the IDE when running tests.

See https://docs.gradle.org/current/userguide/performance.html#enable_configuration_cache

@melix melix added the type: improvement A minor improvement to an existing feature label Mar 9, 2023
@melix melix self-assigned this Mar 9, 2023
@melix
Copy link
Contributor Author

melix commented Mar 9, 2023

In progress

melix added a commit that referenced this issue Mar 9, 2023
This commit is a potential breaking change: it converts the publishing
plugin to Java (to make things easier to maintain), and removed in
the process support for the `extraPomInfo`, `startPomInfo` and
`pomInfo` closures which were used to tweak the generated pom files. If
tweaking is required, then this must be done via the type-safe API
instead.

Relates to #536
melix added a commit that referenced this issue Mar 10, 2023
This commit is a potential breaking change: it converts the publishing
plugin to Java (to make things easier to maintain), and removed in
the process support for the `extraPomInfo`, `startPomInfo` and
`pomInfo` closures which were used to tweak the generated pom files. If
tweaking is required, then this must be done via the type-safe API
instead.

Relates to #536
melix added a commit that referenced this issue Apr 5, 2023
* Convert the publishing plugin to Java

This commit is a potential breaking change: it converts the publishing
plugin to Java (to make things easier to maintain), and removed in
the process support for the `extraPomInfo`, `startPomInfo` and
`pomInfo` closures which were used to tweak the generated pom files. If
tweaking is required, then this must be done via the type-safe API
instead.

Relates to #536

* WIP: Make catalog publishing compatible with config cache

* Make BOM generation compatible with the configuration cache

This was a bit tricky, because we defer configuraton of the model
until the task is actually required (via our model builder). This
caused a number of things to be captured by the configuration cache,
like the extension, version catalog, or even project.

The solution was to use providers, so that the result of the provider
can be serialized.

* Fix compatibility of the docs generation with config cache

* Fix compatibility of the createReleasesDropdown task with CC

It seems that the Groovy closures which are serialized by the
configuration cache do not resolve properly the delegates, leading
to strange errors like `logger` not found or `versionsJson` not
found.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: improvement A minor improvement to an existing feature
Projects
None yet
Development

No branches or pull requests

1 participant