Open lihaoyi opened 1 week ago
If I claim this, can others also claim or start work on the bounty?
@githubbin765 As mentioned in https://github.com/orgs/com-lihaoyi/discussions/5, bounties remain open until completed.
In this case I (just) broke up the bounty into two phases so it's not such a big all-or-nothing ticket, and I can break it up further if you think it would be useful.
But fundamentally there is no locking of bounties, so others can pick it up as well, and first PR wins (at my discretion)
I see, that makes sense. Changing the bounty rules based on specific participation seems like a good idea potentially. Ok I seem to have identified how to in-source the library may be able to complete translating remaining examples today for the first part of this. I will create two separate PRs one for the in-sourcing, another for examples.
I would suggest doing everything in (1) above in one PR: both the insourced library and the translated example/javalib/basic
. Easier to review together with the example tests validating that the insourcing works
The above isn't ChatGPT output. You also suggested using ChatGPT in the first post in order to help resolve this bounty. I shared the above because you stated wanting the example/javalib/basic examples converted to Kotlin and included on the docsite so I created a docsite format using Markdown. For the docsite, does the above look ok to you?
@githubbin765 I don't think the output you gave above is relevant to the bounty at hand. I'm going to clean up the thread to make space for any further discussion that may occur. Feel free to open a PR when you have the working examples and we can take it from there
@lihaoyi I see. I will do that. I will open a second PR for the second bounty with the doc site code.
@lihaoyi I may look into Part 2 as well. Do you have any ideas/suggestions about Kotlin libraries/frameworks you would like to see there?
@0xnm most of the rest of the kotlinlib/
examples are roughly mechanical translations of the javalib/
examples re-arranging the stuff you already have in kotlinlib/basic/
, but there are a few things that are worth calling out. Let me go through the folders below:
kotlinlib/builds/
should be pretty mechanical and not require anything new. It's mostly just a few different re-arrangements of the basic/
examples
kotlinlib/module/
should be mostly mechanical as well, except compilation-execution-flags
should include some example showing off Kotlin compiler flags (I assume they have some?) and 6-annotation-processors
should be replaced by some example showing a kotlin compiler plugin
kotlinlib/publishing/
is just one example and should be a mechanical conversion.
kotlinlib/testing/
should be mostly mechanical re-arrangements of stuff you already have in the test suite of the basic/
examples
kotlinlib/linting/
has a lot more flexibility in what we want to put in there. Let's have an example using an autoformatter (maybe https://github.com/facebook/ktfmt ?) and some linter (maybe https://github.com/pinterest/ktlint ?)
kotlinlib/web/
is also similarly flexible; maybe a hello world and todomvc example using https://github.com/ktorio/ktor ? There are a few examples online like https://github.com/jamowei/fritz2-ktor-todomvc that we may be able to adapt like I did for the Java micronaut/springboot todomvc examples in javalib/web/
. A Kotlin-JS example would also certainly be nice, but I'd call that a nice to have and not really core
TBH the list of stuff above seems like a lot. I'd be ok if you skipped the web/
folder and did all the other stuff. We can pick up the web stuff later in a separate ticket
From the maintainer Li Haoyi: I'm putting a 2000USD bounty on this issue, payable by bank transfer on a merged PR implementing this.
https://github.com/lefou/mill-kotlin/ exists, but it is a standalone project without many examples, and not enough for a newbie to pick up and begin using Mill with Kotlin. This ticket is to do the following:
kotlinlib
submoduleexample/javalib/{basic,builds,module,testing}
example integration tests, where reasonableAs this ticket is large, I am splitting the bounty into two parts:
mill-kotlin
in-sourced and theexample/javalib/basic
examples converted to Kotlin and included on the docsiteexample/javalib/{builds,module,testing,publishing}
converted to Kotlin and included on the docsiteThe end result is that we have a suite of tested example documentation demonstrating how to use the Mill build tool to build a large variety of Kotlin projects mirroring the example documentation for Java and Scala projects.
Some code may be adaptable from https://github.com/rife2/bld-kotlin. ChatGPT (or claude or whatever) would probably also be a great help translating the examples; I used it heavily when setting up the Java example tests, but in the end the human still needs to debug things and polish it up so it's presentable for pedagogical purposes