RefreshVersions feedback thread
Have you tried refreshVersions ?
Please add your feedback in this thread.
If you find a bug,
- Please try to reproduce the bug in my fork of the Kotlin Libraries Playground, or in one of the samples in this repository
- Please run with
$ ./gradlew --scan refreshVersionsto provide a Build Scan URL
I have found an issue in the VersionsPropertyModel cc @LouisCAD
If you remove the empty lines between keys in versions.properties (which should be fine)
version.com.beust..klaxon=5.4
-
version.com.github.ajalt..mordant=1.2.1
-
version.com.github.ajalt.clikt..clikt=3.0.1
then you get this crash
java.lang.IllegalArgumentException: Expected a comment but found random text: version.com.github.ajalt..mordant=1.2.1
> Expected a comment but found random text: version.com.github.ajalt..mordant=1.2.1
Publishing build scan... https://gradle.com/s/ycurejabdd4qo
@jmfayard I think that deserves its own issue to keep the discussion focused. Please create it and I'll address it ASAP as it's a regression.
Please add your feedback in this thread.
I just found this today and I really like it, particularly from the perspective of just trying to make the overall dependency management process better for developers. Thanks for working on it. As far as feedback, I had three things I noticed while setting it up:
- It JUST WORKED. That isn't always the case with tools like this. Setup was seamless, bravo!!
- Dependencies that don't fall under the default list end up leaving a build file looking inconsistent
- Dependencies are split into a clean portion that's easy to skim and sort and an unclean portion that's less aesthetic
- Worse, the "unclean" portion confuses Android Studio, which gives false warnings that a version newer than
_is available - Suggestion: make it easier to add custom project-specific properties directly inside the
versions.propertiesfile, resulting in one clean look over the entire dependencies section - For ex: Add pre-processing for anything in version.properties that starts with
custom.then, a value ofcustom.jetbrains.exposed.core=0.28.1auto-generates a Propercase object that can be used in build.gradle[.kts]. In this case:implementation(Jetbrains.exposed.core)
- Version values cannot be easily used as strings
- Sometimes, versions are needed as strings (for ex: as values in extension objects like protoc for protobufs)
- Suggestion: modify the format of
versions.propertiesto be compatible with tools likeConfigSlurperand then populate all its contents into an object that's then available as an extension to the project along the lines of this (but written as part of the buildscript plugin):def parsed = new ConfigSlurper().parse(file('versions.properties').toURL()) project.ext.versions = parsed
Overall, I love this tool. I've migrated a project over to it in less time than it took me to leave this feedback!