-
-
Notifications
You must be signed in to change notification settings - Fork 230
chore: bump Gradle to 8.1.1, Kotlin to 1.8.21 #1418
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
Conversation
|
@robstoll , WDYT? I want this change so KSP generator can be included better into Atrium source code. |
| } | ||
| } | ||
|
|
||
| val jacocoAdditionalExtraName = "jacocoAdditional" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be replaced with a proper plugin, so it exposes a regular extension instead of relying on project.extra
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
feel free to improve it 👍
|
We cannot merge this into main currently because Kotlin 1.6 cannot guarantee language level 1.2
On top of my head, Kotlin 1.6 should be able to guarantee language level 1.4 So either already create a 1.1.0 branch or wait a bit until I have released 1.0.0 |
|
What are the projects that are stuck with language level 1.2 for test projects? Is it really that important to support that? |
|
we currently have the support and I would like to release 1.0.0 sooner than later. As said, we drop the support with 1.1.0 |
|
What is the 1.0.0 release date? At the same time, the current Gradle project structure is not welcoming to add subprojects of different types, so I would like to migrate to |
|
no worries, you can start right away, just create a corresponding branch, we will merge it into main once 1.0.0 is released. (I will release a RC-1 after the relocation PR is merged) |
|
@vlsi 1.0.0 is out, looking forward to a rebased version of this PR 🙂 |
...-logic-commons/gradle-plugin/src/main/kotlin/build-logic.kotlin-dsl-gradle-plugin.gradle.kts
Outdated
Show resolved
Hide resolved
build-logic/jvm/src/main/kotlin/build-logic.dokka-javadoc.gradle.kts
Outdated
Show resolved
Hide resolved
build-logic/jvm/src/main/kotlin/build-logic.test-junit5.gradle.kts
Outdated
Show resolved
Hide resolved
build-logic/publishing/src/main/kotlin/build-logic.publish-to-tmp-maven-repo.gradle.kts
Show resolved
Hide resolved
build-logic/root-build/src/main/kotlin/build-logic.root-build.gradle.kts
Outdated
Show resolved
Hide resolved
|
@vlsi see other PR regarding update to gradle 8.1 I already fixed a few issues there which you will encounter here as well |
|
The current error comes from I suggest reworking |
|
@robstoll , I think this is good enough. It fails with the following error that is out of my control: |
|
@vlsi sweet, thanks I'll take care of the rest 👍 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vlsi I am currently rebasing these changes (almost done: https://github.com/robstoll/atrium/tree/build-logic) and I have a few questions in addition.
| id("ch.tutteli.gradle.plugins.dokka") | ||
| } | ||
|
|
||
| fun AbstractDokkaTask.configurePlugins() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same as in /build.gradle.kts is there a way to mitigate duplication?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, you suggested using ch.tutteli.gradle.plugins.dokka, and I used it. In that case, I expect you could factor the logic into that plugin.
Of course, you can create build-logic.dokka.gradle.kts and factor Dokka configuration there, however, at this point it is more like your preference, and a lack of my interest in reverse-engineering ch.tutteli.gradle.plugins.dokka
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good, I am not familiar with build-logic and thought there might be a reason why it cannot be move to an own convention-plugin. Thanks for the explanation 👍
| @@ -0,0 +1,13 @@ | |||
| plugins { | |||
| id("java-platform") | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you know if this plugin is the cause that running ./gradlew build includes creating the javadoc?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do not think so. java-platform should be something that configures the project to serve as pom.xml (== type=pom, dependency-only project which can be used as a set of version constraints).
What do you mean by "creating javadocs"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recently migrated some of Apache JMeter javadocs to Dokka-generated javadocs, and here's the pattern I arrived to: https://github.com/apache/jmeter/blob/88423edfb1a354a6170ca608d3fb074bb5b7f2ff/build-logic/jvm/src/main/kotlin/build-logic.dokka-javadoc.gradle.kts#L30-L47
It might help if you want "remove javadoc-generated javadocs" (see altering default javadoc classifier and removing it from JAVADOC_ELEMENTS_CONFIGURATION_NAME configuration artifacts).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suddenly the build task depends on the javadoc task. I'll figure out why
| id("java") | ||
| id("ch.tutteli.gradle.plugins.junitjacoco") | ||
| id("com.github.vlsi.crlf") | ||
| id("com.github.vlsi.gradle-extensions") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vlsi I like the improved error reporting in case a gradle build fails due to some misconfiguration or whatever. Yet, it is too verbose regarding tests for my taste. Is there a way to disable the report for the individual tests? This basically clutters the output too much, having ~4500 tests for atrium-api-fluent alone. The summary would be enough (in this case I could disable the one of tutteli-plugin as yours looks nicer 🙂)

There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about the following?
# com.github.vlsi.gradle-extensions prints only failing or slow test results
slowTestLogThreshold=1000
slowSuiteLogThreshold=2000
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think the problem are slow tests, most prints mention 0.0sec
maybe the problem is that it prints a summary per suite as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The properties above are the thresholds, so if you increase them, it won't print tests that fit into the thresholds. The defaults are 0, 0 which might not be a best selection for projects that have many tests.
I think I would increase the default thresholds from 0, 0 to something less verbose.
The key idea there was to catch cases when a single test takes significant time.
Here's sample output in jqwik:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah ok, I was so sure that the default threshold would be above 0 that I did not even try it out. Sorry about that, going to adjust it then. I see the idea behind the threshold and IMO it makes sense to have something like that
I suggest upgrading Gradle and Koltin compiler versions and migrating to build-logic.
See https://github.com/apache/jmeter/tree/master/build-logic , https://docs.gradle.org/current/userguide/structuring_software_products.html
I confirm that I have read the Contributor Agreements v1.0, agree to be bound on them and confirm that my contribution is compliant.