Skip to content

Refresh bench tooling and Claude profiles#1

Open
brettheap wants to merge 2 commits into
mainfrom
agent/bench-refresh-2026-07
Open

Refresh bench tooling and Claude profiles#1
brettheap wants to merge 2 commits into
mainfrom
agent/bench-refresh-2026-07

Conversation

@brettheap

@brettheap brettheap commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Summary

  • mount portable Claude account profiles where applicable
  • refresh the bench-specific runtime and administration toolchain
  • keep the bench aligned with the synchronized workBenches parent

Validation

  • git diff --check
  • changed shell scripts: bash -n
  • changed Dockerfile: docker buildx build --check

Summary by Sourcery

Update the Java development bench to newer tooling versions and align supporting configuration and cloud analysis scripts with the refreshed stack.

New Features:

  • Introduce support for OpenJDK 25 as the primary Java runtime in the bench environment.

Enhancements:

  • Upgrade Gradle and SonarQube plugin versions used by the bench to current releases.
  • Refresh devcontainer, Dockerfile, and SonarCloud helper scripts to match the updated runtime and tooling.
  • Adjust environment variables and setup messaging to reflect the new Java and Gradle versions.

Documentation:

  • Update README documentation to describe the new OpenJDK, Gradle, and SonarQube plugin versions and environment settings.

Copilot AI review requested due to automatic review settings July 13, 2026 00:14
@brettheap

Copy link
Copy Markdown
Contributor Author

@codex review

@sourcery-ai

sourcery-ai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

This PR refreshes the Java bench tooling to a newer JDK and Gradle stack, updates Sonar/SonarCloud and devcontainer/Docker layer configuration, and wires in portable Claude account profiles to keep this bench aligned with the shared workBenches parent.

File-Level Changes

Change Details Files
Update documented Java toolchain versions to match the refreshed bench runtime.
  • Bump advertised JDK from OpenJDK 21 to OpenJDK 25 in feature and container sections.
  • Update SonarQube Gradle plugin version from 7.3.0.8198 to 7.3.1.8318.
  • Adjust JAVA_HOME and GRADLE_HOME environment variable values to point at the new JDK 25 and Gradle 9.6.1 locations.
README.md
Align setup messaging and devcontainer configuration with the new JDK baseline and refreshed bench tooling.
  • Change setup script banner text to advertise OpenJDK 25 instead of 21.
  • Update devcontainer configuration to the latest bench runtime image, tooling, and mounted profiles (including Claude).
setup.sh
.devcontainer/devcontainer.json
Refresh the layered Docker image and CI helper scripts to use the updated Java/Gradle stack and Sonar/SonarCloud integration.
  • Update layer 2 Dockerfile to install and configure JDK 25, newer Gradle, and any bench-specific admin tooling.
  • Revise SonarCloud helper scripts for Gradle and Maven to match the new toolchain, environment variables, and project quality profile configuration.
Dockerfile.layer2
files/sonarcloud-java-gradle
files/sonarcloud-java-maven

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hey - I've left some high level feedback:

  • The README now lists Gradle 9.6.1 in GRADLE_HOME but still shows Gradle Version: 8.5 in the container details section; align these version references to avoid confusion.
  • After changing JAVA_HOME to the OpenJDK 25 path, ensure any remaining scripts, Dockerfiles, or devcontainer settings that reference the old 21 path are updated consistently to prevent mismatched runtime configurations.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The README now lists Gradle 9.6.1 in `GRADLE_HOME` but still shows `Gradle Version: 8.5` in the container details section; align these version references to avoid confusion.
- After changing `JAVA_HOME` to the OpenJDK 25 path, ensure any remaining scripts, Dockerfiles, or devcontainer settings that reference the old 21 path are updated consistently to prevent mismatched runtime configurations.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Refreshes the Java bench environment to newer runtime/tooling versions and updates devcontainer mounts to support portable Claude profiles, keeping the bench aligned with the parent workbenches stack.

Changes:

  • Upgrade the bench runtime/toolchain (OpenJDK 25, Gradle 9.6.1) and refresh several bundled CLIs/tools in Dockerfile.layer2.
  • Bump Sonar/JaCoCo-related helper script defaults and README examples to newer plugin versions.
  • Add a devcontainer bind mount for ~/.claude-profiles and update setup messaging/docs for the new JDK.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
setup.sh Updates startup messaging to reflect OpenJDK 25.
README.md Updates documented JDK and Sonar plugin versions; (needs additional doc sync for Gradle/Spring CLI versions).
files/sonarcloud-java-maven Bumps default JaCoCo + Sonar Maven plugin versions used by the helper script.
files/sonarcloud-java-gradle Bumps default Sonar Gradle plugin version used by the helper script.
Dockerfile.layer2 Upgrades JDK/Gradle and refreshes install approach (aria2, SDKMAN archive installs, tool version bumps).
.devcontainer/devcontainer.json Adds bind mount for portable Claude profiles.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
Comment on lines +8 to 10
- **OpenJDK 25** (LTS version)
- **Maven** - Dependency management and build tool
- **Gradle 8.5** - Modern build automation
Comment thread README.md
Comment on lines 223 to 227
- Base Image: dev-bench-base
- JDK Version: OpenJDK 21
- JDK Version: OpenJDK 25
- Maven Version: (from apt)
- Gradle Version: 8.5
- Spring Boot CLI: 3.2.0
Comment thread Dockerfile.layer2
Comment on lines +90 to 93
RUN curl -fsSL $CURL_RETRY_OPTS "https://get.sdkman.io" | bash \
&& bash -c "source $HOME/.sdkman/bin/sdkman-init.sh" \
&& mv /root/.sdkman /opt/sdkman \
&& chmod -R a+rx /opt/sdkman
Comment thread Dockerfile.layer2
"https://api.sdkman.io/2/broker/download/${candidate}/${version}/linuxx64"; \
unzip -q "$archive" -d "$extract_dir"; \
first_entry="$(find "$extract_dir" -mindepth 1 -maxdepth 1 | head -n1)"; \
entry_count="$(find "$extract_dir" -mindepth 1 -maxdepth 1 | wc -l)"; \

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d2783febca

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Dockerfile.layer2

# Set JAVA_HOME
ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
ENV JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Update devcontainer env to match installed tool paths

This switches the image to install only JDK 25, but the normal devcontainer/compose entrypoints still export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 and GRADLE_HOME=/opt/gradle/gradle-8.5 (.devcontainer/devcontainer.json and .devcontainer/docker-compose.yml). In the VS Code or setup.sh flow those environment values override the Dockerfile defaults, so Maven/Gradle and the Java extension will start with nonexistent tool paths even though the new binaries are on the image. Please update those devcontainer/compose settings with this version bump.

Useful? React with 👍 / 👎.

// AI Agent Credentials
"source=${localEnv:HOME}/.claude,target=/home/${localEnv:USER}/.claude,type=bind,consistency=cached",
"source=${localEnv:HOME}/.claude.json,target=/home/${localEnv:USER}/.claude.json,type=bind,consistency=cached",
"source=${localEnv:HOME}/.claude-profiles,target=/home/${localEnv:USER}/.claude-profiles,type=bind,consistency=cached",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Create the optional Claude profiles path before mounting

This adds a type=bind mount for $HOME/.claude-profiles, but the initializeCommand only pre-creates .agents, .pi, and .config/sonarqube. On hosts that have the existing Claude config but have not created portable profiles yet, Dev Containers/Docker --mount fails before the container starts because the bind source does not exist. Please either create this path during initialization or make the mount conditional/optional.

Useful? React with 👍 / 👎.

Comment thread Dockerfile.layer2
ARG SONAR_GRADLE_PLUGIN_VERSION=7.3.1.8318
ARG SPRINGBOOT_VERSION=4.1.0
ARG KOTLIN_VERSION=2.4.0
ARG GROOVY_VERSION=6.0.0-alpha-1

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Pin Groovy to a stable SDKMAN release

This makes the global groovy command install 6.0.0-alpha-1; upstream marks the Groovy 6 alpha line as not recommended for production use, so any Groovy/Grails/Spock scripts run from this bench can hit pre-release language or runtime changes. Since the image otherwise refreshes stable toolchain components, please pin this to the current stable Groovy line instead of an alpha release.

Useful? React with 👍 / 👎.

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