Skip to content

Adopt a full modern gradle build#9292

Merged
yschimke merged 15 commits intosquare:masterfrom
yschimke:convention_plugin_2
Feb 3, 2026
Merged

Adopt a full modern gradle build#9292
yschimke merged 15 commits intosquare:masterfrom
yschimke:convention_plugin_2

Conversation

@yschimke
Copy link
Collaborator

@yschimke yschimke commented Feb 1, 2026

Switch to a modern gradle structure.

This went too far, but looks promising to adopt and quickly iterate on.

There is some risk of non-obvious changes, to follow up putting more guardrails in place before next release.

Use for 1 feature, publishing. And also move current buildSrc logic there.

First step to cleaning up build logic generally.
Testing what a modern structure would look like, and
what work would be required.
# Conflicts:
#	gradle/libs.versions.toml
#	module-tests/build.gradle.kts

dependencies {
// Logic for signatures should be moved to the applying module or configured via extension
// For now, we'll keep the standard ones and allow modules to add more
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏻

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ended up reconfiguring the okcurl one, to only use jvm. But we can us this as a starting point to define how this should work.

jlink = "0.7"
jetbrains-annotations = "26.0.2-1"
jnr-unixsocket = "0.38.24"
jsoup = "1.22.1"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like most of these are referenced only once, not saving much? Though I do enjoy uniformity

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep - we had inconsistencies, and it was hard to know where to look for versions.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if anything, I'd like to have a clear pattern and apply it even more consistently.

description = "Get 'gradlew jvmTest' to run the tests of JVM-only modules"
dependsOn(test)
}
plugins {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if anything I went overbooard. The dokka config could have stayed.

@yschimke yschimke marked this pull request as ready for review February 3, 2026 08:36
@yschimke yschimke changed the title [WIP] Experiment with a full modern gradle build Adopt a full modern gradle build Feb 3, 2026
@yschimke yschimke merged commit c4f96b7 into square:master Feb 3, 2026
24 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments