-
Notifications
You must be signed in to change notification settings - Fork 0
Prototype migration of dependencies to a TOML file #144
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
base: master
Are you sure you want to change the base?
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
alexander-yevsyukov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
armiol
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.