Write an example Mill build for `arrow-kt/arrow` (1500USD Bounty)
From the maintainer Li Haoyi: I'm putting a 1500USD bounty on this issue, payable by bank transfer on a merged PR implementing this.
The goal of this ticket is to write an example Mill build for https://github.com/arrow-kt/arrow, in the spirit of the other example Mill builds for:
- Mockito https://github.com/com-lihaoyi/mill/tree/main/example/thirdparty/mockito
- Netty https://github.com/com-lihaoyi/mill/tree/main/example/thirdparty/netty
- Gatling https://github.com/com-lihaoyi/mill/tree/main/example/thirdparty/gatling
The other three examples cover Java and Scala for Gradle/Maven/SBT, the end goal of writing an example for arrow-kt is to have a reference example for Kotlin and Gradle-Kotlin
The goal of the example build isn't to reach 100% compatibility as a drop-in replacement for the original build. Rather, it is to be able to demonstrate a "representative" build: able to do most of the core, interesting functionality, without necessarily reproducing every quirk of the original.
In particular, the example build should be able to compile, package, and run most existing tests. The only exception would be functionality not supported by Mill: e.g. using different JVM versions (at least until https://github.com/com-lihaoyi/mill/issues/3480 lands), Kotlin-JS (until https://github.com/com-lihaoyi/mill/issues/3611 lands), or android stuff (until https://github.com/com-lihaoyi/mill/issues/3550 lands).
Arrow's gradle build has 1 root build.gradle.kts and 20 sub-folder build.gradle.kts files, which should translate into 1 Mill RootModule and 20 nested modules.
Once the build is complete, and all modules compile and pass tests, the pull request should come with an ad-hoc performance comparison between the old Gradle build and the new example Mill build, in the spirit of the existing comparisons with Maven https://mill-build.org/mill/comparisons/maven.html Gradle https://mill-build.org/mill/comparisons/gradle.html and SBT https://mill-build.org/mill/comparisons/sbt.html. It should also contain a writeup of what parts of the build were not covered in the example, and why (e.g. due to features not supported in Mill)
@lihaoyi I would like to give this a shot.
@chaitanyawaikar go for it
PS - @chaitanyawaikar, are you doing this? or can I?
Just directly raise PRs. Bounties remain up for grabs until they are closed
On Sat, 12 Oct 2024 at 11:44 PM, Rahat @.***> wrote:
@lihaoyi https://github.com/lihaoyi Do you assign these issues, or can someone directly raise the PRs? Asking because I want to give it a try...
— Reply to this email directly, view it on GitHub https://github.com/com-lihaoyi/mill/issues/3670#issuecomment-2408708023, or unsubscribe https://github.com/notifications/unsubscribe-auth/AE5HBDAYOO6YOOJAJIGV6E3Z3GJ4RAVCNFSM6AAAAABPNKR3KWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBYG4YDQMBSGM . You are receiving this because you are subscribed to this thread.Message ID: @.***>
PR in progress - https://github.com/com-lihaoyi/mill/pull/3726
PS - @chaitanyawaikar, are you doing this? or can I?
@rahat2134 I would require one more week and would let you know if I am not able to proceed. Thanks