Repository navigation
Add the Ben Manes versions plugin and upgrade the build dependencies - #88
Merged
Merged
Conversation
Apply io.github.ben-manes.versions 0.67.0 at the root (the old com.github.ben-manes.versions id is deprecated), so `./gradlew dependencyUpdates` reports newer versions for every project. A pre-release candidate is only offered when the current version is itself a pre-release. Upgrades (catalog plus the duplicated buildSrc pins): - Gradle wrapper 9.7.0 -> 9.9.0 (distribution SHA-256 pinned) - Spotless 8.9.0 -> 8.11.0 - Checkstyle 13.10.0 -> 14.4.0 - JUnit 6.0.1 -> 6.1.3 - Jackson 3.1.2 -> 3.2.4 config/checkstyle/checkstyle.xml is re-derived from checkstyle-14.4.0's bundled google_checks.xml with the one documented deviation (AbbreviationAsWordInName disabled). This also drops an undocumented relaxation: the old file had a bare JavadocParagraph, while upstream sets allowNewlineParagraph=false. Checkstyle 14's new whitespaceCharactersMustBeEscaped rule flagged four literal no-break spaces in jinja and tokenizer tests; they are now written as (the same strings). google-java-format stays at 1.28.0: 2.0.0 reformats 55 Java files (new lambda layout) and belongs in its own change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
verifyPublishedDependencies called project(':jmlx-ffi').version inside
doLast, which goes through Task.project at execution time. Gradle 9.9
warns that this becomes an error in Gradle 10. The ffi project is now
captured at configuration time and its version read lazily through a
provider, which is also declared as a task input. Reading the version
eagerly instead would see it before jmlx-ffi's build script sets it,
because jmlx-core is configured first.
`./gradlew check --warning-mode all` now reports no deprecations. A
tampered expectation still fails the guard.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Spotless 8.11.0 refuses google-java-format older than 1.30.0 on JVM 25, so with 1.28.0 both CI jobs failed at spotlessJava. The local check had passed only because the local Gradle daemon ran on Java 21. 1.36.1 is the newest release that works. 1.37.0 throws InvocationTargetException on every file under Spotless 8.11.0 (cause not diagnosed). 2.0.0 stays deferred, since it reformats 55 files. 1.36.1 changes no formatting: spotlessCheck is clean on JDK 25 and JDK 21, with no files rewritten. Verified with fresh daemons on both JVMs: `./gradlew check --rerun-tasks --warning-mode all` and `./gradlew -p buildSrc check --rerun-tasks` pass, with no deprecations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Applies the Ben Manes versions plugin (
io.github.ben-manes.versions0.67.0) at the root, so./gradlew dependencyUpdatesreports newer versions for every project. Pre-release candidates are only offered for dependencies that are already on a pre-release.Upgrades the build dependencies to their latest releases. Each is bumped in
gradle/libs.versions.tomland, where duplicated, inbuildSrc/build.gradle:config/checkstyle/checkstyle.xmlis re-derived from checkstyle-14.4.0's bundledgoogle_checks.xml. The only change from upstream is the one documented deviation:AbbreviationAsWordInNameis disabled.JavadocParagraph, while upstream setsallowNewlineParagraph=false.JavadocMethodnow checksprotectedas well aspublicmethods (accessModifierswaspublic), andmodule-info.javais no longer excluded, sojmlx-jinja's module descriptor is now checked. The codebase already passes both.whitespaceCharactersMustBeEscapedrule flagged four literal no-break spaces in jinja and tokenizer tests. They are now written as\u00A0; the strings are identical.jmlx-core'sverifyPublishedDependenciesno longer callsTask.projectat execution time. The ffi project is captured at configuration time and its version read lazily through a provider.AGENTS.md documents
dependencyUpdates, including what it can't see: thegoogle-java-formatversion and the duplicatedbuildSrcpins.Not included
google-java-format stays on 1.x. Spotless 8.11.0 refuses google-java-format older than 1.30.0 on JVM 25, so the first push failed CI at
spotlessJava; the third commit bumps it to 1.36.1.InvocationTargetExceptionon every file under Spotless 8.11.0 (cause not diagnosed).Testing
./gradlew check --rerun-tasks --continue --warning-mode alland./gradlew -p buildSrc check --rerun-taskspass. My first push was tested only on a Java 21 daemon, which is why it missed the JVM-25 Spotless failure.Task.projectcalled at execution time injmlx-core'sverifyPublishedDependencies(an error in Gradle 10), is fixed in the second commit. A tampered expectation still fails that guard../gradlew dependencyUpdatesreports no newer versions. It doesn't cover google-java-format, which is held at 1.36.1 (see Not included).gradlew.batwas regenerated bygradlew wrapper, and.gitattributeskeeps its CRLF line endings. It was not run on Windows, because the local Windows VM would not start.🤖 Generated with Claude Code