Skip to content

Modernize build: Gradle 8.10, Java 11, Lombok 1.18.30#77

Open
rl-enjoyer wants to merge 2 commits intoFlipping-Utilities:masterfrom
rl-enjoyer:modernize-build
Open

Modernize build: Gradle 8.10, Java 11, Lombok 1.18.30#77
rl-enjoyer wants to merge 2 commits intoFlipping-Utilities:masterfrom
rl-enjoyer:modernize-build

Conversation

@rl-enjoyer
Copy link
Copy Markdown

@rl-enjoyer rl-enjoyer commented Mar 24, 2026

Summary

Align the build config with the current RuneLite plugin template:

  • Gradle 6.6.1 → 8.10 (fixes local builds on Java 17+/21)
  • Java target sourceCompatibility = '1.8'options.release.set(11) (matches what the plugin hub forces via target_init.gradle)
  • Lombok 1.18.4 → 1.18.30
  • Repo URL http://repo.runelite.nethttps://repo.runelite.net

Motivation

The old Gradle 6.6.1 can't run on Java 17+ due to class file version incompatibilities (Unsupported class file major version 65). This means contributors on modern JDKs can't build or run tests locally. The plugin hub already overrides the Java target to 11, so this just makes local dev match production.

Test

  • ./gradlew build passes cleanly on Java 21
  • ./gradlew test — all existing tests pass
  • No source code changes, just build config

Summary by CodeRabbit

  • Chores
    • Updated Gradle from 6.6.1 to 8.10.
    • Upgraded Lombok to 1.18.30 and centralized its version.
    • Switched Maven repository endpoint to HTTPS.
    • Set Java compilation target to Java 11 and enforced UTF-8 encoding.

Align with current RuneLite plugin template:
- Gradle 6.6.1 → 8.10 (fixes build on Java 17+/21)
- sourceCompatibility 1.8 → options.release.set(11) (matches plugin hub)
- Lombok 1.18.4 → 1.18.30
- Repo URL http → https

The plugin hub's target_init.gradle already forces Java 11 on all
plugins, so this just makes local development match production.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 24, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 11a52211-4c44-4904-9dbb-44a592a56f8a

📥 Commits

Reviewing files that changed from the base of the PR and between d9ff265 and 9e1c9b2.

📒 Files selected for processing (1)
  • build.gradle
🚧 Files skipped from review as they are similar to previous changes (1)
  • build.gradle

📝 Walkthrough

Walkthrough

Build configuration updates: Gradle wrapper upgraded from 6.6.1 to 8.10, Lombok bumped from 1.18.4 to 1.18.30, RuneLite Maven repository URL changed to HTTPS, and Java compilation set to release 11 (removed explicit sourceCompatibility 1.8).

Changes

Cohort / File(s) Summary
Build Configuration
build.gradle
Added lombokVersion = '1.18.30', replaced hardcoded Lombok version with ${lombokVersion} for compileOnly and annotationProcessor, changed RuneLite repo URL to https://repo.runelite.net, removed sourceCompatibility = '1.8', and set options.release.set(11) for JavaCompile tasks while keeping UTF-8 encoding.
Gradle Wrapper
gradle/wrapper/gradle-wrapper.properties
Updated Gradle wrapper distribution from gradle-6.6.1-bin.zip to gradle-8.10-bin.zip.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I nudged the build and gave it a nudge,
Gradle leapt higher with a confident tudge,
Lombok trimmed its whiskers, spry and neat,
HTTPS hugs every download we meet,
Java 11's the burrow where new bytes sleep.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Modernize build: Gradle 8.10, Java 11, Lombok 1.18.30' clearly and specifically summarizes the main changes: upgrading Gradle, Java target version, and Lombok dependency to their new versions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@rl-enjoyer
Copy link
Copy Markdown
Author

Test output — ./gradlew clean test on Java 21

> Task :clean
> Task :compileJava
> Task :processResources
> Task :classes
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses
> Task :test

BUILD SUCCESSFUL in 2s
5 actionable tasks: 5 executed
$ java -version
openjdk version "21.0.10" 2026-01-20
OpenJDK Runtime Environment (build 21.0.10+7-Ubuntu-124.04)
OpenJDK 64-Bit Server VM (build 21.0.10+7-Ubuntu-124.04, mixed mode, sharing)

All existing tests pass, no source changes — just build config.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
build.gradle (1)

17-18: LGTM! Lombok upgraded to 1.18.30.

This version properly supports Java 11 through 21, aligning with the Java release target change.

🧹 Optional: Extract Lombok version to a variable for DRY
+def lombokVersion = '1.18.30'
+
 dependencies {
     compileOnly group: 'net.runelite', name:'client', version: runeLiteVersion
-    compileOnly 'org.projectlombok:lombok:1.18.30'
-    annotationProcessor 'org.projectlombok:lombok:1.18.30'
+    compileOnly "org.projectlombok:lombok:${lombokVersion}"
+    annotationProcessor "org.projectlombok:lombok:${lombokVersion}"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@build.gradle` around lines 17 - 18, The Lombok version is duplicated in
build.gradle; define a single property (e.g., lombokVersion) in the Gradle
extra/extension properties (or in the plugins block) and replace both hard-coded
coordinates ('org.projectlombok:lombok:1.18.30') used in compileOnly and
annotationProcessor with the property reference (e.g.,
"org.projectlombok:lombok:${lombokVersion}") so the version is maintained in one
place across the build.
gradle/wrapper/gradle-wrapper.properties (1)

3-3: Gradle 8.10 is a solid upgrade, but Gradle 9.4.1 is now available as the latest stable.

The upgrade from 6.6.1 to 8.10 enables building on modern JDKs (17/21) and aligns with the RuneLite plugin template. The binary-only distribution (-bin.zip) is appropriate. Consider upgrading to Gradle 9.4.1 (the current latest stable as of March 2026) for access to the newest features and improvements.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@gradle/wrapper/gradle-wrapper.properties` at line 3, Update the Gradle
wrapper distributionUrl to the latest stable (9.4.1) by replacing the current
distributionUrl value; specifically change the distributionUrl property (the
line starting with "distributionUrl=" in gradle-wrapper.properties) from the
gradle-8.10-bin.zip URL to the gradle-9.4.1-bin.zip URL, keeping the same
https://services.gradle.org/distributions/ prefix and the "-bin.zip" artifact.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@build.gradle`:
- Around line 17-18: The Lombok version is duplicated in build.gradle; define a
single property (e.g., lombokVersion) in the Gradle extra/extension properties
(or in the plugins block) and replace both hard-coded coordinates
('org.projectlombok:lombok:1.18.30') used in compileOnly and annotationProcessor
with the property reference (e.g., "org.projectlombok:lombok:${lombokVersion}")
so the version is maintained in one place across the build.

In `@gradle/wrapper/gradle-wrapper.properties`:
- Line 3: Update the Gradle wrapper distributionUrl to the latest stable (9.4.1)
by replacing the current distributionUrl value; specifically change the
distributionUrl property (the line starting with "distributionUrl=" in
gradle-wrapper.properties) from the gradle-8.10-bin.zip URL to the
gradle-9.4.1-bin.zip URL, keeping the same
https://services.gradle.org/distributions/ prefix and the "-bin.zip" artifact.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3c0ddda2-0b94-4eb5-8e46-7b839b70fbf1

📥 Commits

Reviewing files that changed from the base of the PR and between ea51a0d and d9ff265.

📒 Files selected for processing (2)
  • build.gradle
  • gradle/wrapper/gradle-wrapper.properties

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@rl-enjoyer
Copy link
Copy Markdown
Author

rl-enjoyer commented Mar 24, 2026

Addressed the Lombok version variable nitpick in 9e1c9b2.

Re: Gradle 9.x — intentionally staying on 8.10 to match the RuneLite plugin hub template. Jumping to 9.x could introduce breaking API changes and would diverge from what RuneLite itself uses. Happy to bump it in a follow-up if/when the template moves to 9.x.

(comment from claude)

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.

1 participant