-
-
Notifications
You must be signed in to change notification settings - Fork 107
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
Long term plan: focus on refreshVersions #104
Comments
Hi, My question is: I read that you plan to still support buildSrcVersions, which is great. Do you plan to change the syntax of |
Hi @DanySK,
Consequently, this project is going to focus on updating the versions of the dependencies, and the structure will be split in two parts:
Our goal for this plugin is to provide good defaults as well as a properly defined configurability so the new versions can be easily discovered with human readable For the Splitties plugin, it is to make the I hope it now makes sense to you and that you no longer find the planned future behavior "much worse". In the meantime, while we're preparing and testing the upcoming versions of the two Gradle plugins, I recommend you to keep using the version that supports We will provide updates in this issue as we make progress on these two Gradle plugins. |
See also is buildSrcVersions gone? #119 What is true is that the two plugins are not identical aymore. |
I use
How will this work (ideally preserving the nice IDE completion of version names) with the grand new plan which - as I understand it - will no longer have a |
@nkiesel the plugins version will be set in the file |
I understand how the
Will Gradle know that this |
You would declare the plugins without the version. plugins { How exactly gradle recognize the versions file is not finalized yet. Currently it's a one liner to include an utility file inside settings.gradle |
Hi @LouisCAD and @jmfayard, My "much worse" is referred to my use cases (often large projects), and limited to the comparison between using buildSrcVersions alone vs. using refreshVersions alone, and it does not take into account other in-development plugins. The main drawback that keeps me from switching is to have to give up the nice compile time reference to the library and the somewhat cumbersome way the Kotlin DSL for gradle uses to access properties:
vs
If I understand correctly, there will be some way to rebuild the former based on a plugin which is now in-development. Is there a preview of how the |
@DanySK I have a sample project that shows the new system here You won't need to use manually To make Android studio happy, you just need an initial version which can be either You can still define the dependencies (with a placeholder version) in a separate file like |
I'm not very much concerned about Android Studio or IntelliJ or any specific IDE. dependencies {
// module referenced by plugin, version by property file
implementation(Libs.veryCommonAndroidLibrary)
implementation("group:artifact") // Version auto-loaded from property file
} Correct? Sorry for the many questions, I'm not in hurry to migrate, but I'd like to understand the system as soon as possible, as I may adopt it early and possibly provide some feedback or suggestions: the plugin is useful, so helping evolving it may have positive feedback on my projects as well. Also, in case I find time to develop a dependabot extension for gradle builds using your plugin, I'd like to focus where the project is focused, rather than investing time in supporting a deprecated product :) |
@DanySK you are exactly correct. |
I'll likely need to do some manual parsing in order to generate one PR per update, but looks neat. |
Taking back from your example, @DanySK:
it's more likely that it'd not work unless the version placeholder (appending Dependencies declared in constants from This is where I'm headed (experimenting with the new updater), but things might change before we settle the behavior. |
Thanks. So the prospected look of it would be something like: implementation("group:artifact:_") // Version auto-loaded from property file Looks fine as well, not much of a change. Would it make sense in your opinion to create an automatically maintained separate library / plugin which scans the most common repositories (Central, JCenter, Jitpack, Gradle plugin portal, etc) and provides names as variables? implementation(${com_google.guava}:_) // returns the string com:google:guava, but can be looked up in the IDE |
@DanySK Yes, that's the plugin This plugin is for Android dependencies. |
Actually, Splitties is moving to be a multiplatform project (although the biggest work I did there hasn't made it to a non dev release yet), so I'd make the plugin not target just Android in the near future. That said, it might make sense to have a backend focused plugin for the popular dependency constants, which might or might not be in Splitties. |
The long-term plan for v1.0 is to focus on
:refreshVersions
instead of:buildSrcVersions
refreshVersions
Starting from release 0.8.0 the plugin is now called and contain only the task
refreshVersions
buildSrcVersions
We are not quite ready yet to extract the useful parts of
buildSrcVersions
to another plugin, so if you need the features from buildSrcVersions, stay with this for now:Next step
The file
buildSrc/src/main/Libs.kt
is still useful right now, but I am working on a better solution in collaboration with this projecthttps://github.com/LouisCAD/Splitties
Later plans
buildSrcVersions { ... }
torefreshVersions { ... }
:refreshVersions
buildSrcVersions
for my existing users who need their current featuresThe text was updated successfully, but these errors were encountered: