sam
06/17/2024, 2:59 PMOliver.O
06/17/2024, 7:40 PMAdam S
06/17/2024, 9:04 PMAdam S
06/17/2024, 9:09 PMsam
06/17/2024, 9:15 PMsam
06/17/2024, 9:15 PMAdam S
06/17/2024, 9:28 PMAdam S
06/17/2024, 9:28 PM@KotestInternal
and immediately update usages across the project. But if the project is split, changing a @KotestInternal
function becomes more uncertain, and would need some additional checks. Is the function still in use in another project? Does it need to go through a deprecation cycle? How can we check?sam
06/17/2024, 9:28 PMAdam S
06/17/2024, 9:30 PMsam
06/17/2024, 9:31 PMAdam S
06/17/2024, 9:31 PMI envisage most of those functions not being reusedAh okay, that helps
sam
06/17/2024, 9:32 PMAdam S
06/17/2024, 9:33 PMAdam S
06/17/2024, 9:34 PMAdam S
06/17/2024, 9:36 PMOliver.O
06/18/2024, 9:46 AMAdam S
06/18/2024, 10:03 AMsubprojects {}
and allprojects {}
), and subprojects don't modify other project's build config.
• Heavy use of convention plugins. These help separate out the nitty gritty build configuration from the declarative config (like the dependencies).
The result is that when working in a subproject it's much easier to see the relevant build config for that project - you can just check the build.gradle.kts
to see what conventions are applied, and what config is declared.
It's also much easier to add, move, refactor subprojects. They don't interact with each other in surprising ways. And it doesn't matter whether a subproject is nested or not (unlike Maven, or when using `subprojects {}`/`allprojects {}`).Adam S
06/18/2024, 10:03 AMAdam S
06/18/2024, 10:04 AMOliver.O
06/18/2024, 10:26 AMbuildSrc
with some caveats, though right now I can't find the relevant info that made me abandon them and use repository-based locals plugins instead for my own stuff. Is my buildSrc
aversion actually outdated and in fact they are pretty much safe to use now?
Also, I'm wondering whether we should improve Java API / JDK version management.Adam S
06/18/2024, 10:43 AM./build-logic/...
and includeBuild("build-logic")
instead of buildSrc?Adam S
06/18/2024, 10:47 AMAdam S
06/18/2024, 10:48 AMAdam S
06/18/2024, 10:50 AMOliver.O
06/18/2024, 11:01 AMdo you mean using something likeNo, I really have nothing like that. I have independent projects for my Gradle plugins, store them in a local repository and reference them by ID in theand./build-logic/...
instead of buildSrc?includeBuild("build-logic")
plugins
block like every public plugin out there.
Maybe this is less of an issue now, but my biggest obstacles were always the point where one of my plugins was interacting with the KGP (multiplatform) plugin. I don't remember exactly, but maybe this was related to the Gradle-embedded Kotlin version vs. the KGP plugin version.Oliver.O
06/18/2024, 11:04 AM