Sergey Igushkin
06/03/2024, 2:56 PMpluginManagement
, plugins
, conventions
, settings content, project content), the aspects of each step and the connections between them.
This is now enough to evaluate the declarative settings file and then apply the conventions from it to the DCL build definitions – all on the client side.
Also, these changes allow clients to get the analysis results that are consistent with those in the Gradle process, without any guessing around the analysis setup and inputs.
Beside that, we have added the necessary infrastructure to produce a high-level representation of the build definition's data with the conventions blended into it.
Before, we were able to transfer the conventions from settings to the build definition at a lower level, which is enough to configure the model in the Gradle build but does not have a good set of abstractions for tooling.
Now the clients have just the right utility to understand what declarative configuration has been applied to a project overall and where each piece of it comes from – the conventions, the build file, or a result of their combination.
We are going to update the gradle-client demo app soon to show how it works, and later aid the IDE maintainers in their experiments on DCL integration, ensuring that they can reuse more of our logic and stay consistent with how things work in Gradle.
Stay tuned!