Prototype migration of dependencies to a TOML file#144
Prototype migration of dependencies to a TOML file#144yevhenii-nadtochii wants to merge 17 commits intomasterfrom
Conversation
Codecov Report
@@ Coverage Diff @@
## master #144 +/- ##
=========================================
Coverage 94.61% 94.61%
Complexity 341 341
=========================================
Files 52 52
Lines 892 892
Branches 18 18
=========================================
Hits 844 844
Misses 43 43
Partials 5 5 |
alexander-yevsyukov
left a comment
There was a problem hiding this comment.
It looks as a significant improvement to me. Please also see a couple of comments and questions.
buildSrc/src/main/kotlin/io/spine/internal/dependency/CheckStyle.kt
Outdated
Show resolved
Hide resolved
buildSrc/src/main/kotlin/io/spine/internal/gradle/checkstyle/CheckStyleConfig.kt
Outdated
Show resolved
Hide resolved
armiol
left a comment
There was a problem hiding this comment.
I would like to understand three things:
- How does this work in a multi-module project?
- How this is shared between repositories?
- How does one override the version?
Honestly, I don't like the idea of having the fragile .toml text file. There will be no auto-completion, for instance. And it's a bit repetitive inside.
Also, I don't like the idea of broken apply(from = ""). It's not only the version.gradle.kts that would be great to have as a simple place to hold the important versions. It's about the whole mechanism becoming inavailable to us.
Looking forward to the next step of prototyping.
|
|
Please consider this use-case. This is a project which has two different sets of modules — as it's the most feasible way to launch the truly-integration tests. Also, if we aren't able to use the |
|
A case, when we have a nested, independent Gradle build, is very similar to In I've removed Also, opting out of this file can lead to manual syncing between versions declared in |
This PR is a prototype. It is not going to be merged.
It addresses #359.
Information on this matter:
The PR prototypes a straightforward approach of migration to Version Catalog. This approach suggests declaration of all dependencies in a single TOML file. The original file can "live" in
configrepository and be propagated to other repos bypullscript. The version override is done just in this file.This PR unveiled some pluses and minuses of brand-new Version Catalog. And in particular, of a plain TOML file. But more importantly, it confirmed the viability of this solution for us.
The issues below are relevant to this prototype:
Programmatically-declared dependencies are still preferable for us, and we struggle for this. But, it was much easier and simpler to "try out" version catalog, using the simplest approach firstly.
The next prototype to implement is a programmatically-declared catalog in a form of a published plugin for
Settings.