I haven't heard about the state of declarative in ...
# declarative-gradle
b
I haven't heard about the state of declarative in a while. Would be great if the team could give an update about it. Is it still planned? on track? ETA? People in the community have started investing into learning and trying it, yet it remains completely unclear whether it will be ever released. Is the Gradle team still committed to shipping DCL in this or another version?
p
What do you mean? A prototype is already shipped, and the current focus is XDCL.
➕ 1
b
Was this announced in a blog post that I missed?
t
there was a talk from Paul at Kotlinconf'26 on XDCL
b
Okay, I wasn't at Kotlinconf unfortunately. I've just checked the blog and the last update about DCL was from Sterling in April 2025.
t

youtube.com/watch?v=…▾

🙏 1
p
IMHO the biggest change/advantage of DCL is the forced split between user-facing types (Definition) and models for (advanced) build/plugin authors (BuildModel). In regular Gradle plugins, you use a mix of the two, resulting in confusing UX, for build authors and software developers. And of course DCL allows better IDE support. But I don’t get the point of XDCL: it is only for build authors to write the Definitions using another language, isn't it? 🤔
t
current DCL still has problems of "script definitions" - you could write a program in Kotlin interface defining definition. Also introspection/provenance is far from ideal. I've played with XDCL and would say it is a good direction
p
But you still need to write your binding, the logic and the BuildModel, don't you ?
s
Let me give you a quick update while we are preparing something bigger. Indeed, our current direction is what's provisionally called XDCL (we are renaming it, though). It is the second iteration inheriting from DCL. It absorbed the best ideas of the declarative language but steered away from schemas defined in JVM interfaces toward its own schema language, plus performance improvements, deeper analysis features, improved configuration reuse ("defaults" and more), plus a lot of work for better tooling, IDE support, and agentic interactions. As Philip correctly noted here, we are delaying the bigger improvements in the plugins' underlying build logic cooperation model until a little later, and out first release will use the mutable
Project
with a thin integration layer on top. We needed to separate the build models and stricter plugin interaction to be able to provide the benefits of the declarative language on the build author side sooner. We are excited to share more when we release the first EAP, which will already be usable in some real-life projects. Stay tuned for our announcement.
b
Thank you for the update. I'm very much looking forward to the EAP release.