Skip to content
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

starting point for @LouisCAD #117

Closed
wants to merge 3 commits into from
Closed

starting point for @LouisCAD #117

wants to merge 3 commits into from

Conversation

jmfayard
Copy link
Member

@jmfayard jmfayard commented Oct 25, 2019

@ben-manes
Copy link

Curious, what is the desired difference using LouisCAD's? It seems to taken the same approach as the versions plugin, except it hasn't suffered through the evolution of Gradle and adding of requested features. The earliest version was merely a script task published on the Gradle forum. The core logic is tiny, so you could extract and embed directly.

The drawback of delegating to Gradle has been performance, because their team doesn't want to parallelizing metadata fetching like Maven does. That was decided years ago, briefly explored when jar downloads were parallelized, so it may be worth revisiting.

@jmfayard
Copy link
Member Author

jmfayard commented Oct 26, 2019

Hello @ben-manes nice to have you here!
@LouisCAD initial motivation is that he is doing Kotlin Multiplatform stuff, and as you know we have this un-resolved issue with it ben-manes/gradle-versions-plugin#334

I have not checked its solution in detail, but the core of it is at LouisCAD/Splitties@9f4a85e

Instead of copying the configuration implementation and its 42 dependencies to implementation-copy, it creates a new configuration for each dependency alone and then immediatly destroys it. Apparently that solves the issue.

Also Louis has an incredibly complex Gradle project with Android build variants and Kotlin Multiplatform and 40 modules. With an impressive total of 13.288 Gardle taks

https://scans.gradle.com/s/nqyakfjv6yqcu/performance/configuration

So performance is a big topic for him.

One idea we have is to let the users configure which versions should be aligned.
For example the 40 dependencies com.louiscad.splitties:splitties.* should all share the same version, so it's wasteful to resolve it 40 times, one is enough. Same for com.square.retrofit:.* or org.jetbrains.kotlinx:kotlinx-coroutines-.*

Also to be honest, another problem is that we both are not that good with Groovy and prefer to write in Kotlin.

@jmfayard
Copy link
Member Author

jmfayard commented Nov 5, 2019

replaced by #124

@jmfayard jmfayard closed this Nov 5, 2019
@jmfayard jmfayard deleted the splitties branch November 7, 2019 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants