Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
c8ab7ce
Update to JDK25
koppor Sep 29, 2025
9afbfe1
No more icon
koppor Sep 29, 2025
e6ec58d
Merge remote-tracking branch 'origin/main' into jdk25
koppor Sep 29, 2025
eeb401d
Try other icon file names
koppor Sep 29, 2025
5ee1ebf
Merge remote-tracking branch 'origin/main' into jdk25
koppor Sep 29, 2025
a0a1fb9
Lowercase
koppor Sep 29, 2025
d061dee
Merge remote-tracking branch 'origin/main' into jdk25
koppor Sep 29, 2025
e19eeea
Remove *** from build output
koppor Sep 29, 2025
4888971
Try to fix *.icns
koppor Sep 30, 2025
f714d92
Maybe all lowercase works
koppor Sep 30, 2025
d7f5171
Try to include more files
koppor Sep 30, 2025
e3554f2
Try JavaApp.icns
koppor Sep 30, 2025
4558156
Try two times JabRef.icns
koppor Sep 30, 2025
1234af3
Revert last changes
koppor Sep 30, 2025
8dd46b1
Relative path for jabref.icns
koppor Sep 30, 2025
84a9a01
Icon comes from other ways
koppor Sep 30, 2025
5daa552
Fix path to .icns
koppor Sep 30, 2025
49e6dae
Add missing dot
koppor Sep 30, 2025
03437b2
Disable modernizer
koppor Sep 30, 2025
7d3fd7a
No more JabKit (jbang works fine)
koppor Sep 30, 2025
20aa273
Try to fix icons
koppor Oct 1, 2025
b254b9a
Update JBang
koppor Oct 1, 2025
768bce0
Update JBang scripts
koppor Oct 1, 2025
9910ffe
Revert "Try to fix icons"
koppor Oct 1, 2025
2f73f53
Fix casing of JabRef.icns
koppor Oct 1, 2025
292adc2
Merge branch 'main' into jdk25
koppor Oct 1, 2025
e1de30a
Merge branch 'main' into jdk25
koppor Oct 1, 2025
50c9471
Merge remote-tracking branch 'upstream/main' into jdk25
Siedlerchr Oct 1, 2025
886c48b
Try to fix notarization
koppor Oct 1, 2025
9ec90b0
Fix notarization
koppor Oct 2, 2025
053582a
Remove default Rutnime-Info.plist* files
koppor Oct 2, 2025
2072159
Remove Info.plist*
koppor Oct 2, 2025
d392eaa
Remove Info-lite.plist*
koppor Oct 2, 2025
31221f5
Linebreak in README.md
koppor Oct 2, 2025
871bbca
Remove "public" for Java25 main methods
koppor Oct 2, 2025
7d68cf8
Really remove public for JDK25 main methods
koppor Oct 2, 2025
457f529
Fix "public"
koppor Oct 2, 2025
5ffaed3
Merge branch 'main' into jdk25
Siedlerchr Oct 6, 2025
010a2fe
Merge remote-tracking branch 'origin/main' into just-jdk25
koppor Oct 9, 2025
8b6885a
Merge remote-tracking branch 'origin/main' into just-jdk25
koppor Oct 11, 2025
a347b2f
Merge branch 'main' into just-jdk25
koppor Oct 22, 2025
634b4ac
Switch to Temurin in IntelliJ
koppor Oct 22, 2025
8389560
Merge remote-tracking branch 'origin/main' into just-jdk25
koppor Oct 30, 2025
a196c72
Add jabls to notarization
koppor Oct 30, 2025
6d8281d
Merge remote-tracking branch 'origin/main' into just-jdk25
koppor Oct 30, 2025
c001f38
Merge branch 'main' into just-jdk25
koppor Nov 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
// Install java.
// See https://github.com/devcontainers/features/tree/main/src/java#options for details.
"ghcr.io/devcontainers/features/java:1": {
"version": "24.0.2-amzn",
"version": "latest",
"installGradle": true,
"gradleVersion": "8.14.3",
"gradleVersion": "latest",
"jdkDistro": "Corretto"
}
}
Expand Down
52 changes: 28 additions & 24 deletions .github/workflows/binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ jobs:
- name: Setup JDK
uses: actions/setup-java@v5
with:
java-version: '24'
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Setup Gradle
Expand All @@ -226,15 +226,15 @@ jobs:
with:
p12-file-base64: ${{ secrets.OSX_SIGNING_CERT }}
p12-password: ${{ secrets.OSX_CERT_PWD }}
keychain-password: jabref
keychain-password: tEmPoRaRY-PaeSWD
- name: Setup macOS key chain for app id cert
if: (startsWith(matrix.os, 'macos')) && (needs.conditions.outputs.secretspresent == 'true')
uses: slidoapp/import-codesign-certs@1923310662e8682dd05b76b612b53301f431cd5d
with:
p12-file-base64: ${{ secrets.OSX_SIGNING_CERT_APPLICATION }}
p12-password: ${{ secrets.OSX_CERT_PWD }}
create-keychain: false
keychain-password: jabref
keychain-password: tEmPoRaRY-PaeSWD
- name: Build runtime image and installer
shell: bash
run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" :jabgui:jpackage
Expand Down Expand Up @@ -315,12 +315,7 @@ jobs:
# for rsync installed by chocolatey, we need the ssh.exe delivered with that installation
run: |
rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" -e 'C:\ProgramData\chocolatey\lib\rsync\tools\bin\ssh.exe -p 9922 -i sshkey -o StrictHostKeyChecking=no' jabgui/build/packages/${{ matrix.os }}/ [email protected]:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true
- name: Upload jabkkit to builds.jabref.org (Windows)
if: ${{ (steps.diskspace.outputs.available == 'true') && (matrix.os == 'windows-latest') }}
shell: cmd
run: |
rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" -e 'C:\ProgramData\chocolatey\lib\rsync\tools\bin\ssh.exe -p 9922 -i sshkey -o StrictHostKeyChecking=no' jabkit/build/packages/${{ matrix.os }}/ [email protected]:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true
- name: Upload jabls-cli to builds.jabref.org (Windows)
- name: Upload jabls to builds.jabref.org (Windows)
if: ${{ (steps.diskspace.outputs.available == 'true') && (matrix.os == 'windows-latest') }}
shell: cmd
run: |
Expand All @@ -330,12 +325,7 @@ jobs:
shell: bash
run: |
rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' jabgui/build/packages/${{ matrix.os }}/ [email protected]:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true
- name: Upload jabkit to builds.jabref.org (linux, macOS)
if: ${{ (steps.diskspace.outputs.available == 'true') && (startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu')) }}
shell: bash
run: |
rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' jabkit/build/packages/${{ matrix.os }}/ [email protected]:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true
- name: Upload jabls-cli to builds.jabref.org (linux, macOS)
- name: Upload jabls to builds.jabref.org (linux, macOS)
if: ${{ (steps.diskspace.outputs.available == 'true') && (startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu')) }}
shell: bash
run: |
Expand All @@ -348,7 +338,7 @@ jobs:
name: JabRef-${{ matrix.os }}-tbn
path: |
jabgui/build/packages/${{ matrix.os }}
jabkit/build/packages/${{ matrix.os }}
jabls-cli/build/packages/${{ matrix.os }}
compression-level: 0 # no compression
# endregion

Expand Down Expand Up @@ -421,9 +411,23 @@ jobs:
include:
- os: macos-15
displayName: macOS (ARM64)
path: 'jabgui'
prefix: 'JabRef'
suffix: '_arm64'
- os: macos-15-intel # intel image
- os: macos-15-intel
displayName: macOS
path: 'jabgui'
prefix: 'JabRef'
suffix: ''
- os: macos-15
displayName: macOS (ARM64)
path: 'jabls'
prefix: 'jabls'
suffix: '_arm64'
- os: macos-15-intel
displayName: macOS
path: 'jabls'
prefix: 'jabls'
suffix: ''
runs-on: ${{ matrix.os }}
steps:
Expand All @@ -434,21 +438,21 @@ jobs:
- name: Notarize dmg
shell: bash
run: |
cd jabgui
cd ${{ matrix.path }}
find . -type f
xcrun notarytool store-credentials "notarytool-profile" --apple-id "[email protected]" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}"
xcrun notarytool submit build/packages/${{ matrix.os }}/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg --keychain-profile "notarytool-profile" --wait
xcrun stapler staple build/packages/${{ matrix.os }}/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg
xcrun notarytool submit build/packages/${{ matrix.os }}/${{ matrix.prefix }}-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg --keychain-profile "notarytool-profile" --wait
xcrun stapler staple build/packages/${{ matrix.os }}/${{ matrix.prefix }}-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg
- name: Notarize pkg
shell: bash
run: |
cd jabgui
cd ${{ matrix.path }}
xcrun notarytool store-credentials "notarytool-profile" --apple-id "[email protected]" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}"
xcrun notarytool submit build/packages/${{ matrix.os }}/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg --keychain-profile "notarytool-profile" --wait
xcrun stapler staple build/packages/${{ matrix.os }}/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg
xcrun notarytool submit build/packages/${{ matrix.os }}/${{ matrix.prefix }}-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg --keychain-profile "notarytool-profile" --wait
xcrun stapler staple build/packages/${{ matrix.os }}/${{ matrix.prefix }}-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg
- name: Upload to builds.jabref.org
shell: bash
run: |
echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey
chmod 600 sshkey
rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' jabgui/build/packages/${{ matrix.os }}/ [email protected]:/var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }}/
rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' ${{ matrix.path }}/build/packages/${{ matrix.os }}/ [email protected]:/var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }}/
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ jobs:
- name: Setup JDK
uses: actions/setup-java@v5
with:
java-version: '24'
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Setup Gradle
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-openrewrite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Setup Gradle
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sbom-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
uses: actions/setup-java@v5
with:
distribution: 'corretto'
java-version: '24'
java-version: 25
check-latest: true
cache: 'gradle'

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests-code-fetchers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Setup Gradle
Expand Down
24 changes: 13 additions & 11 deletions .github/workflows/tests-code.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Run checkstyle reporter
Expand Down Expand Up @@ -92,7 +92,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Setup Gradle
Expand Down Expand Up @@ -130,6 +130,8 @@ jobs:
modernizer:
name: Modernizer
runs-on: ubuntu-latest
# Version 1.11.0 does not run on JDK25: "java.lang.reflect.InvocationTargetException"
if: false
steps:
- name: Checkout source
uses: actions/checkout@v5
Expand All @@ -139,7 +141,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Setup Gradle
Expand Down Expand Up @@ -257,7 +259,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Setup Gradle
Expand Down Expand Up @@ -293,7 +295,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Generate JBang cache key
Expand Down Expand Up @@ -342,7 +344,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Setup Gradle
Expand Down Expand Up @@ -392,7 +394,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Setup Gradle
Expand Down Expand Up @@ -441,7 +443,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Generate JBang cache key
Expand Down Expand Up @@ -485,7 +487,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Generate JBang cache key
Expand Down Expand Up @@ -562,7 +564,7 @@ jobs:
if: github.ref == 'refs/heads/main'
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Setup Gradle
Expand Down Expand Up @@ -608,7 +610,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: 'corretto'
check-latest: true
- name: Setup Gradle
Expand Down
2 changes: 1 addition & 1 deletion .jbang/CheckoutPR.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
//DEPS org.eclipse.jgit:org.eclipse.jgit.pgm:7.4.0.202509020913-r

public class CheckoutPR {
public static void main(String[] args) throws Exception {
static void main(String[] args) throws Exception {
GitHub github = new GitHubBuilder().build();
GHRepository repo = github.getRepository("JabRef/jabref");

Expand Down
2 changes: 1 addition & 1 deletion .jbang/CloneJabRef.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
//DEPS org.eclipse.jgit:org.eclipse.jgit.pgm:7.4.0.202509020913-r

public class CloneJabRef {
public static void main(String[] args) throws Exception {
static void main(String[] args) throws Exception {
Path targetDir;
if (args.length == 1) {
targetDir = Path.of(args[0]).toAbsolutePath();
Expand Down
4 changes: 2 additions & 2 deletions .jbang/JabKitLauncher.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

//DESCRIPTION jabkit - mange BibTeX files using JabRef

//JAVA 24
//JAVA 25
//RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED

//SOURCES ../jabkit/src/main/java/org/jabref/cli/converter/CygWinPathConverter.java
Expand Down Expand Up @@ -42,7 +42,7 @@

/// This class is required for [jbang](https://www.jbang.dev/)
public class JabKitLauncher {
public static void main(String[] args) {
static void main(String[] args) {
org.jabref.JabKit.main(args);
}
}
4 changes: 2 additions & 2 deletions .jbang/JabLsLauncher.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

//DESCRIPTION jabls - start a bibtex languageserver

//JAVA 24
//JAVA 25
//RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED

//SOURCES ../jabls-cli/src/main/java/org/jabref/languageserver/cli/ServerCli.java
Expand Down Expand Up @@ -54,7 +54,7 @@

/// This class is required for [jbang](https://www.jbang.dev/)
public class JabLsLauncher {
public static void main(String[] args) throws Exception {
static void main(String[] args) throws Exception {
org.jabref.languageserver.cli.ServerCli.main(args);
}
}
4 changes: 2 additions & 2 deletions .jbang/JabSrvLauncher.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

//DESCRIPTION jabsrv - serve BibTeX files using JabRef

//JAVA 24
//JAVA 25
//RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED

//SOURCES ../jabsrv-cli/src/main/java/org/jabref/http/server/cli/ServerCli.java
Expand Down Expand Up @@ -92,7 +92,7 @@

/// This class is required for [jbang](https://www.jbang.dev/)
public class JabSrvLauncher {
public static void main(String[] args) throws Exception {
static void main(String[] args) throws Exception {
org.jabref.http.server.cli.ServerCli.main(args);
}
}
2 changes: 1 addition & 1 deletion .moderne/moderne.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
specs: specs.moderne.ai/v1/cli
java:
selectedJdk: '24'
selectedJdk: '25'
2 changes: 1 addition & 1 deletion .sdkmanrc
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
java=24.0.2-tem
java=25-tem
#visualvm=2.1.10
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@ java {
// - build.gradle -> jacoco -> toolVersion (because JaCoCo does not support newest JDK out of the box. Check versions at https://www.jacoco.org/jacoco/trunk/doc/changes.html)
// - jitpack.yml
// - .devcontainer/devcontainer.json#L34 - there, also check if the gradleVersion matches the one of gradle/wrapper/gradle-wrapper.properties
// - .moderne/moderne.yml
// - .github/workflows/binaries*.yml
// - .github/workflows/publish.yml
// - .github/workflows/tests*.yml
// - .github/workflows/update-gradle-wrapper.yml
// - docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md
// - .jbang/Jab*.java
// - .moderne/moderne.yml
// - .sdkmanrc
languageVersion = JavaLanguageVersion.of(24)
// - build-support/src/main/java/*.java
// - docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md
languageVersion = JavaLanguageVersion.of(25)
// See https://docs.gradle.org/current/javadoc/org/gradle/jvm/toolchain/JvmVendorSpec.html for a full list
// Temurin does not ship jmods, thus we need to use another JDK -- see https://github.com/actions/setup-java/issues/804
// We also need a JDK without JavaFX, because we patch JavaFX due to modularity issues
Expand All @@ -24,5 +25,5 @@ java {
}

tasks.withType<JavaCompile>().configureEach {
options.release = 24
options.release = 25
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//JAVA 24
//JAVA 25+
//RUNTIME_OPTIONS --enable-native-access=ALL-UNNAMED

//DEPS com.fasterxml.jackson.core:jackson-databind:2.17.1
Expand Down Expand Up @@ -45,7 +45,7 @@ public class CitationStyleCatalogGenerator {

private static final Logger LOGGER = LoggerFactory.getLogger(CitationStyleCatalogGenerator.class);

public static void main(String[] args) {
static void main(String[] args) {
generateCitationStyleCatalog();
}

Expand Down
Loading
Loading