refreshVersions icon indicating copy to clipboard operation
refreshVersions copied to clipboard

RefreshVersions feedback thread

Open jmfayard opened this issue 5 years ago • 3 comments

Have you tried refreshVersions ?

Please add your feedback in this thread.

If you find a bug,

jmfayard avatar Oct 30 '20 17:10 jmfayard

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 avatar Oct 30 '20 17:10 jmfayard

@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.

LouisCAD avatar Oct 30 '20 17:10 LouisCAD

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:

  1. It JUST WORKED. That isn't always the case with tools like this. Setup was seamless, bravo!!
  2. 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.properties file, 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 of custom.jetbrains.exposed.core=0.28.1 auto-generates a Propercase object that can be used in build.gradle[.kts]. In this case: implementation(Jetbrains.exposed.core)
  3. 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.properties to be compatible with tools like ConfigSlurper and 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!

gmale avatar Apr 22 '21 22:04 gmale