Skip to content

Commit 7b94d45

Browse files
sampottingerclaude
andauthored
Move to JDK 25 and Gradle 9.8.1. (#873)
* Move to JDK 25 and Gradle 9.8.1 Gradle 8.12 cannot read Java 25 class files (major version 69), so the build failed at script compilation. Upgrade the wrapper to 9.8.1, bump Mockito to 5.24.0 for a Byte Buddy that supports Java 25, and order warUnversioned after fatJar to satisfy Gradle 9 task validation. Update CI, Dockerfile and docs to JDK 25. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TQYQFuCCtK2eoeXYYK5L4P * Update remaining Java 21 references to Java 25 * Bump version to 0.2.5 and update cache busters --------- Co-authored-by: Samuel Pottinger <sam.pottinger@berkeley.edu> Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2 parents 3c75e46 + ba9bbc6 commit 7b94d45

17 files changed

Lines changed: 60 additions & 59 deletions

‎.devcontainer/Dockerfile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ FROM debian:bookworm-slim AS base
22

33
# Copy JDK from Eclipse Temurin
44
ENV JAVA_HOME=/opt/java/openjdk
5-
COPY --from=eclipse-temurin:21-jdk $JAVA_HOME $JAVA_HOME
5+
COPY --from=eclipse-temurin:25-jdk $JAVA_HOME $JAVA_HOME
66
ENV PATH="${JAVA_HOME}/bin:${PATH}"
77

88
# Install system dependencies needed for development

‎.github/workflows/build.yaml‎

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ jobs:
5353
git checkout ${{ github.sha }}
5454
- name: Setup Java
5555
run: |
56-
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
57-
echo "$JAVA_HOME_21_X64/bin" >> $GITHUB_PATH
56+
echo "JAVA_HOME=$JAVA_HOME_25_X64" >> $GITHUB_ENV
57+
echo "$JAVA_HOME_25_X64/bin" >> $GITHUB_PATH
5858
- name: Setup pnpm
5959
run: npm install -g pnpm@10.20.0
6060
- name: Install node deps
@@ -87,8 +87,8 @@ jobs:
8787
git checkout ${{ github.sha }}
8888
- name: Setup Java
8989
run: |
90-
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
91-
echo "$JAVA_HOME_21_X64/bin" >> $GITHUB_PATH
90+
echo "JAVA_HOME=$JAVA_HOME_25_X64" >> $GITHUB_ENV
91+
echo "$JAVA_HOME_25_X64/bin" >> $GITHUB_PATH
9292
- name: Build fat jar
9393
run: ./gradlew fatJar
9494
- name: Install sshpass
@@ -119,8 +119,8 @@ jobs:
119119
git checkout ${{ github.sha }}
120120
- name: Setup Java
121121
run: |
122-
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
123-
echo "$JAVA_HOME_21_X64/bin" >> $GITHUB_PATH
122+
echo "JAVA_HOME=$JAVA_HOME_25_X64" >> $GITHUB_ENV
123+
echo "$JAVA_HOME_25_X64/bin" >> $GITHUB_PATH
124124
- name: Check grammar
125125
run: ./gradlew generateGrammarSource
126126
- name: Check main style
@@ -143,8 +143,8 @@ jobs:
143143
git checkout ${{ github.sha }}
144144
- name: Setup Java
145145
run: |
146-
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
147-
echo "$JAVA_HOME_21_X64/bin" >> $GITHUB_PATH
146+
echo "JAVA_HOME=$JAVA_HOME_25_X64" >> $GITHUB_ENV
147+
echo "$JAVA_HOME_25_X64/bin" >> $GITHUB_PATH
148148
- name: Run tests
149149
run: ./gradlew test
150150
runEngineLocal:
@@ -163,8 +163,8 @@ jobs:
163163
git checkout ${{ github.sha }}
164164
- name: Setup Java
165165
run: |
166-
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
167-
echo "$JAVA_HOME_21_X64/bin" >> $GITHUB_PATH
166+
echo "JAVA_HOME=$JAVA_HOME_25_X64" >> $GITHUB_ENV
167+
echo "$JAVA_HOME_25_X64/bin" >> $GITHUB_PATH
168168
- name: Download fatJar
169169
run: |
170170
mkdir -p build/libs
@@ -201,8 +201,8 @@ jobs:
201201
git checkout ${{ github.sha }}
202202
- name: Setup Java
203203
run: |
204-
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
205-
echo "$JAVA_HOME_21_X64/bin" >> $GITHUB_PATH
204+
echo "JAVA_HOME=$JAVA_HOME_25_X64" >> $GITHUB_ENV
205+
echo "$JAVA_HOME_25_X64/bin" >> $GITHUB_PATH
206206
- name: Download fatJar
207207
run: |
208208
mkdir -p build/libs
@@ -242,8 +242,8 @@ jobs:
242242
git checkout ${{ github.sha }}
243243
- name: Setup Java
244244
run: |
245-
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
246-
echo "$JAVA_HOME_21_X64/bin" >> $GITHUB_PATH
245+
echo "JAVA_HOME=$JAVA_HOME_25_X64" >> $GITHUB_ENV
246+
echo "$JAVA_HOME_25_X64/bin" >> $GITHUB_PATH
247247
- name: Build war
248248
run: ./gradlew warUnversioned
249249
- name: Install sshpass
@@ -269,8 +269,8 @@ jobs:
269269
git checkout ${{ github.sha }}
270270
- name: Setup Java
271271
run: |
272-
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
273-
echo "$JAVA_HOME_21_X64/bin" >> $GITHUB_PATH
272+
echo "JAVA_HOME=$JAVA_HOME_25_X64" >> $GITHUB_ENV
273+
echo "$JAVA_HOME_25_X64/bin" >> $GITHUB_PATH
274274
- name: Setup pnpm
275275
run: npm install -g pnpm@10.20.0
276276
- name: Download war
@@ -307,8 +307,8 @@ jobs:
307307
git checkout ${{ github.sha }}
308308
- name: Setup Java
309309
run: |
310-
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
311-
echo "$JAVA_HOME_21_X64/bin" >> $GITHUB_PATH
310+
echo "JAVA_HOME=$JAVA_HOME_25_X64" >> $GITHUB_ENV
311+
echo "$JAVA_HOME_25_X64/bin" >> $GITHUB_PATH
312312
- name: Generate Javadoc
313313
run: ./gradlew javadoc
314314
- name: Install sshpass
@@ -419,8 +419,8 @@ jobs:
419419
git checkout ${{ github.sha }}
420420
- name: Setup Java
421421
run: |
422-
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
423-
echo "$JAVA_HOME_21_X64/bin" >> $GITHUB_PATH
422+
echo "JAVA_HOME=$JAVA_HOME_25_X64" >> $GITHUB_ENV
423+
echo "$JAVA_HOME_25_X64/bin" >> $GITHUB_PATH
424424
- name: Setup pnpm
425425
run: npm install -g pnpm@10.20.0
426426
- name: Install SSH client and sshpass
@@ -605,8 +605,8 @@ jobs:
605605
git checkout ${{ github.sha }}
606606
- name: Setup Java
607607
run: |
608-
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
609-
echo "$JAVA_HOME_21_X64/bin" >> $GITHUB_PATH
608+
echo "JAVA_HOME=$JAVA_HOME_25_X64" >> $GITHUB_ENV
609+
echo "$JAVA_HOME_25_X64/bin" >> $GITHUB_PATH
610610
- name: Publish
611611
env:
612612
USERNAME: ${{ github.actor }}

‎CONTRIBUTING.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ Please reach out if you have further questions about these guidelines or want to
104104
## Scope
105105
There are some limitations of scope for this project:
106106

107-
- The Java engine must remain compatible with Java 21+ to support TeaVM compilation to WebAssembly but earlier versions are not guaranteed to be supported.
107+
- The Java engine must remain compatible with Java 25+ to support TeaVM compilation to WebAssembly but earlier versions are not guaranteed to be supported.
108108
- Breaking changes to the QubecTalk language syntax should be discussed in an issue before implementation and require community input.
109109
- We must maintain both the browser-based application and standalone JAR/Docker execution paths but other execution modalities are currently out of scope.
110110
- Energy consumption can be modeled but energy mix for secondary emissions is currently considered out of scope.

‎DEVELOPING.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Kigali Sim is organized into three main components and most have additional READ
1212

1313
The **Java Engine** (`engine` directory) provides the primary computational mechanism for running simulations. There are different entrypoints depending on how Kiglai Sim is running like via WASM or JVM. That said, developers may wish to review the [Engine JavaDoc](https://kigalisim.org/guide/javadoc/org/kigalisim/engine/Engine.html). The **ECMAScript Editor** (`editor` directory) may be explored via the [Editor JSDoc](https://kigalisim.org/guide/jsdoc/). At a glance:
1414

15-
- Core simulation engine built with Java 21+
15+
- Core simulation engine built with Java 25+
1616
- Uses ANTLR4 for parsing the QubecTalk domain specific language (DSL)
1717
- Contains the authoritative QubecTalk.g4 grammar file
1818
- Compiled to WebAssembly using TeaVM for browser execution
@@ -37,7 +37,7 @@ Both dev containers and local setup are supported, per developer preference.
3737

3838
The project includes a dev container which is compatible with IntelliJ, VS Code, and GitHub Codespaces. As described in `.devcontainer`, this provides a reproducible development environment with dependencies required for most development activities pre-installed. Indeed, this guide was written from a dev container! It uses:
3939

40-
- Debian 12 (bookworm-slim) with Eclipse Temurin JDK 21
40+
- Debian 12 (bookworm-slim) with Eclipse Temurin JDK 25
4141
- Node.js 18.x LTS (official Debian package)
4242
- pnpm 10.20.0 (installed via npm)
4343
- Chromium browser (official Debian package) for running tests
@@ -56,7 +56,7 @@ The container configuration prioritizes security by using only official package
5656
### Local Setup
5757
You are very welcome to set up your own environment outside of a pre-prepared container. You will need the following:
5858

59-
- Java JDK 21 or higher (please use only OpenJDK or similar, see [Adoptium](https://adoptium.net/))
59+
- Java JDK 25 or higher (please use only OpenJDK or similar, see [Adoptium](https://adoptium.net/))
6060
- Node.js 18.x and pnpm
6161
- Python 3.x (for local development server)
6262

‎Dockerfile‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# Use Eclipse Temurin JDK 21 as base image
2-
FROM eclipse-temurin:21-jre
1+
# Use Eclipse Temurin JDK 25 as base image
2+
FROM eclipse-temurin:25-jre
33

44
# Install wget for downloading the jar file
55
RUN apt-get update && apt-get install -y wget

‎README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Kigali Sim
22
Open source engine for simulating substances, applications, and policies relevant to the Montreal Protocol and the Kigali Amendment.
33

4-
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) [![BSD Licensed](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![Build](https://github.com/SchmidtDSE/kigali-sim/actions/workflows/build.yaml/badge.svg?branch=deploy)](https://github.com/SchmidtDSE/kigali-sim/actions/workflows/build.yaml) ![Temurin 21 or higher](https://img.shields.io/badge/Java-Temurin%2021%2B-blue) [![status](https://joss.theoj.org/papers/eafc95ac66aae284563f36fa60f0261d/status.svg)](https://joss.theoj.org/papers/eafc95ac66aae284563f36fa60f0261d)
4+
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) [![BSD Licensed](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![Build](https://github.com/SchmidtDSE/kigali-sim/actions/workflows/build.yaml/badge.svg?branch=deploy)](https://github.com/SchmidtDSE/kigali-sim/actions/workflows/build.yaml) ![Temurin 25 or higher](https://img.shields.io/badge/Java-Temurin%2025%2B-blue) [![status](https://joss.theoj.org/papers/eafc95ac66aae284563f36fa60f0261d/status.svg)](https://joss.theoj.org/papers/eafc95ac66aae284563f36fa60f0261d)
55

66
<br>
77

@@ -179,7 +179,7 @@ This can be run using the editor tab at https://kigalisim.org/ or locally via `j
179179
Developers can continue their work by going to the [User Guide](https://kigalisim.org/guide/) which had information on other features. See also the [formal QubecTalk language specification](https://kigalisim.org/guide/qubectalk.pdf).
180180

181181
### LLM assistants
182-
If desired, AI coding assistants or chatbots can help in using Kigali Sim. We implement the [llms.txt specification](https://llmstxt.org), a standard that allows users to bring their own LLM assistants to the tool. Direct your AI to read `https://kigalisim.org/llms-full.txt?v=20260826` and / or `https://kigalisim.org/llms.txt?v=20260826`.
182+
If desired, AI coding assistants or chatbots can help in using Kigali Sim. We implement the [llms.txt specification](https://llmstxt.org), a standard that allows users to bring their own LLM assistants to the tool. Direct your AI to read `https://kigalisim.org/llms-full.txt?v=20261025` and / or `https://kigalisim.org/llms.txt?v=20261025`.
183183

184184
<br>
185185

‎docs/guide/tutorial_03a.html‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ <h2>Preparing for AI</h2>
5151
In this tutorial series, we have used <a href="https://claude.ai/">Claude</a>. However, in practice, most AI assistants can help with Kigali Sim using a standard called <a href="https://llmstxt.org/">llms.txt</a>. So, to get AI ready to go, please create a new chat session. Then, tell it to look up information about Kigali Sim through a message like this:
5252
</p>
5353

54-
<pre class="prompt-code"><code>Hello! I would like help with building a Kigali Sim simulation. Please read https://kigalisim.org/llms-full.txt?v=20260826 to learn more. Please stick to only features compatible with the UI editor.</code></pre>
54+
<pre class="prompt-code"><code>Hello! I would like help with building a Kigali Sim simulation. Please read https://kigalisim.org/llms-full.txt?v=20261025 to learn more. Please stick to only features compatible with the UI editor.</code></pre>
5555

5656
<p>
57-
Need a little cheat? <a href="tutorial_02.qta" download>Download the Tutorial 2</a> file here. Also, for more capable assistants like Claude, this is enough. However, some assistants cannot access the full internet or won't know how to work with this kind of file out of the box. If your assistant is having issues, instead, attach the <a href="https://kigalisim.org/llms-full.txt?v=20260826" download>Kigali Sim llms-full.txt</a> file as an attachment!
57+
Need a little cheat? <a href="tutorial_02.qta" download>Download the Tutorial 2</a> file here. Also, for more capable assistants like Claude, this is enough. However, some assistants cannot access the full internet or won't know how to work with this kind of file out of the box. If your assistant is having issues, instead, attach the <a href="https://kigalisim.org/llms-full.txt?v=20261025" download>Kigali Sim llms-full.txt</a> file as an attachment!
5858
</p>
5959

6060
<p>

‎docs/guide/tutorial_04a.html‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ <h2>Preparing for AI</h2>
6161
<strong>If you are new to the AI</strong> or just want to start fresh, create a new chat session. Then, tell it to look up information about Kigali Sim through a message like this:
6262
</p>
6363

64-
<pre class="prompt-code"><code>Hello! I would like help with building a Kigali Sim simulation. Please read https://kigalisim.org/llms-full.txt?v=20260826 to learn more. Please stick to only features compatible with the UI editor.</code></pre>
64+
<pre class="prompt-code"><code>Hello! I would like help with building a Kigali Sim simulation. Please read https://kigalisim.org/llms-full.txt?v=20261025 to learn more. Please stick to only features compatible with the UI editor.</code></pre>
6565

6666
<p>
67-
Need a little cheat? <a href="tutorial_03.qta" download>Download the Tutorial 3</a> file here. Also, for more capable assistants like Claude, this is enough. However, some assistants cannot access the full internet or won't know how to work with this kind of file out of the box. If your assistant is having issues, instead, attach the <a href="https://kigalisim.org/llms-full.txt?v=20260826" download>Kigali Sim llms-full.txt</a> file as an attachment!
67+
Need a little cheat? <a href="tutorial_03.qta" download>Download the Tutorial 3</a> file here. Also, for more capable assistants like Claude, this is enough. However, some assistants cannot access the full internet or won't know how to work with this kind of file out of the box. If your assistant is having issues, instead, attach the <a href="https://kigalisim.org/llms-full.txt?v=20261025" download>Kigali Sim llms-full.txt</a> file as an attachment!
6868
</p>
6969

7070
<p>

‎docs/guide/tutorial_06a.html‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@ <h2>Preparing for AI</h2>
5555
In this case, let's create a new chat session. Then, tell it to look up information about Kigali Sim through a message like this:
5656
</p>
5757

58-
<pre class="prompt-code"><code>Hello! I would like help with building a Kigali Sim simulation. Please read https://kigalisim.org/llms-full.txt?v=20260826 to learn more. Please stick to only features compatible with the UI editor.</code></pre>
58+
<pre class="prompt-code"><code>Hello! I would like help with building a Kigali Sim simulation. Please read https://kigalisim.org/llms-full.txt?v=20261025 to learn more. Please stick to only features compatible with the UI editor.</code></pre>
5959

6060
<p>
61-
Need a little cheat? <a href="tutorial_05.qta" download>Download the Tutorial 5</a> file here. Also, for more capable assistants like Claude, this is enough. However, some assistants cannot access the full internet or won't know how to work with this kind of file out of the box. If your assistant is having issues, instead, attach the <a href="https://kigalisim.org/llms-full.txt?v=20260826" download>Kigali Sim llms-full.txt</a> file as an attachment!
61+
Need a little cheat? <a href="tutorial_05.qta" download>Download the Tutorial 5</a> file here. Also, for more capable assistants like Claude, this is enough. However, some assistants cannot access the full internet or won't know how to work with this kind of file out of the box. If your assistant is having issues, instead, attach the <a href="https://kigalisim.org/llms-full.txt?v=20261025" download>Kigali Sim llms-full.txt</a> file as an attachment!
6262
</p>
6363

6464
<p>

0 commit comments

Comments
 (0)