tschuchortdev / kotlin-compile-testing

A library for testing Kotlin and Java annotation processors, compiler plugins and code generation
Mozilla Public License 2.0
659 stars 63 forks source link

Don't set strictJavaNullabilityAssertions unless requested #238

Closed ZacSweers closed 2 years ago

ZacSweers commented 2 years ago

This API is actually removed in Kotlin 1.6.20 and normally configured via freeCompilerArg. This makes testing Kotlin 1.6.20 easier

tschuchortdev commented 2 years ago

Thanks!

ZacSweers commented 2 years ago

Would you consider cutting a patch release with this so folks can test kotlin 1.6.20-M1?

tschuchortdev commented 2 years ago

The latest snapshot is on 1.6.20, is that enough for you or do you need a stable pre-release? To make a pre-release I'd probably have to touch the release scripts and Sonatype again and that is always dreadful.

ZacSweers commented 2 years ago

We run continuous tests against upcoming versions in scheduled CI jobs, which means snapshots aren't an option since they change

ZacSweers commented 2 years ago

Have you considered using a simpler maven publishing tool like this? I'd like to continue contributing here (especially since this was originally spun off from test infra we wrote in Moshi), but I may be forced to maintain a fork or write my own due to the slow uptake of Kotlin/KSP versions in releases.

tschuchortdev commented 2 years ago

I'm currently using this plugin for publishing, which is the endorsed Gradle plugin as far as I remember. There have been many plugins that I tried out (I may actually have been using the one that you linked at some time) and they all suffer from the same problem: Sonatype is notoriously slow and unreliable and was never made to be used in an automated way. It takes like 10 minutes to upload a release because dozens of retries with long timeouts are necessary to make it somewhat reliable. The Gradle plugin is not the problem though, it's all other the stuff around it. I've been sticking to a relatively simple low automation solution for now but it has become apparent that it's probably not enough anymore. It can make automated snapshot releases and half automated maven central plus Github releases, but you still have to checkout, change the version number, change all the version strings in the README, write changelogs and so on. Pre-releases are not supported by this very simple scripting and I don't know how to upload them to Sonatype. I can publish you a pre-release right now but it will be mixed in with the regular releases, which is not so great for other users (particularly those with automatic dependency upgrades).

If you'd like, I can make you a maintainer of the project and you can cut new releases whenever you need them. Honestly, oftentimes I am just not in the mood to do anything after work and studying.