Hi folks, Some of you have noticed that I have fixed the binary compatibility reports on master. I also fixed checkstyle and CodeNarc, which were failing to execute. I did not, however, fixed the many errors we see when running those, nor the ones with spotbugs. It's a bit annoying because it makes the "build" task fail, but we can live with that for some time.
Some of you noticed, because this is the first time I introduce a Gradle Kotlin DSL script for this. Let me explain why: first, it gives a better user experience: completion in the IDE is working, and you can navigate to sources. Second, its syntax is so close to the Groovy one that if I had replaced .kts with .groovy, I bet hardly anyone would have noticed. To me it's a step towards a better build: we should'nt see this as a threat to Groovy, and I'm not saying that it wouldn't have been possible to achieve the same thing with Groovy, but this is the reality now: the Kotlin DSL for Gradle gives a better UX than the Groovy one. I think it' going to be particularly important for newcomers in the future. And as I am the main maintainer of the build, it's also important to me, given the little amount of time I can give to this project. My plan is to migrate the build to Kotlin, slowly but surely, and as part of this effort, remove a lot of the bad practices we're using, or internal APIs. Publishing for example is in a terrible state. But coming back to this build script: take a look at it and tell me if it's not as clear, or even more readable than the Groovy one (you can compare with the old binarycompatibility.groovy file). Also, I strongly believe that's an opportunity for us to learn from Kotlin and maybe borrow some if its features So I'm asking you to vote on *keeping* this .kts file, and actually migrating the build incrementally. If you see Kotlin as a threat, I'd understand but would be disappointed. Thanks,