From 28be33f9ec82d50e965010b2d9445056d4c5a89c Mon Sep 17 00:00:00 2001 From: Alexey Semenyuk Date: Tue, 29 Apr 2025 12:28:59 -0400 Subject: [PATCH 01/29] Fix JabRef-post-image.wsf to make it agnostic to the location of the project build directory --- build.gradle | 34 ++++++++++++++++++++++---- buildres/windows/JabRef-post-image.wsf | 12 ++++++--- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 6f5c74cae09..aa737a2c1a8 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ import org.gradle.internal.os.OperatingSystem import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform import org.jabref.build.xjc.XjcPlugin import org.jabref.build.xjc.XjcTask +import org.apache.tools.ant.filters.ReplaceTokens plugins { id 'application' @@ -811,6 +812,30 @@ tasks.register('deleteInstallerTemp', Delete) { delete "$buildDir/installer" } +def jpackageResourceDir; +if (OperatingSystem.current().isWindows()) { + jpackageResourceDir = "${buildDir}/jpackage-resource-dir" + tasks.register('copyJPackageResourceDir', Copy) { + from("${projectDir}/buildres/windows") { + include 'JabRef-post-image.wsf' + filter(ReplaceTokens, tokens: [jabRefRoot: "${projectDir}".replace('\\', '/')]) + } + from("${projectDir}/buildres/windows") { + exclude 'JabRef-post-image.wsf' + } + into jpackageResourceDir + } + jpackage.dependsOn copyJPackageResourceDir +} + +if (OperatingSystem.current().isLinux()) { + jpackageResourceDir = "${projectDir}/buildres/linux" +} + +if (OperatingSystem.current().isMacOsX()) { + jpackageResourceDir = "${projectDir}/buildres/mac" +} + jpackage.dependsOn deleteInstallerTemp jlinkZip.dependsOn jpackage jlink { @@ -933,8 +958,7 @@ jlink { '--win-shortcut', '--win-menu', '--win-menu-group', "JabRef", - '--temp', "$buildDir/installer", - '--resource-dir', "${projectDir}/buildres/windows", + '--resource-dir', jpackageResourceDir, '--license-file', "${projectDir}/buildres/LICENSE_with_Privacy.md", '--file-associations', "${projectDir}/buildres/windows/bibtexAssociations.properties" ] @@ -950,7 +974,7 @@ jlink { '--vendor', 'JabRef', '--app-version', "${project.version}", // '--temp', "$buildDir/installer", - '--resource-dir', "${projectDir}/buildres/linux", + '--resource-dir', jpackageResourceDir, '--linux-menu-group', 'Office;', '--linux-rpm-license-type', 'MIT', // '--license-file', "${projectDir}/LICENSE.md", @@ -963,7 +987,7 @@ jlink { if (OperatingSystem.current().isMacOsX()) { imageOptions = [ '--icon', "${projectDir}/src/main/resources/icons/jabref.icns", - '--resource-dir', "${projectDir}/buildres/mac" + '--resource-dir', jpackageResourceDir ] // Notarized mac images and packages are built on the pipeline only skipInstaller = true @@ -974,7 +998,7 @@ jlink { '--mac-package-name', "JabRef", '--app-version', "${project.version}", '--file-associations', "${projectDir}/buildres/mac/bibtexAssociations.properties", - '--resource-dir', "${projectDir}/buildres/mac" + '--resource-dir', jpackageResourceDir ] } } diff --git a/buildres/windows/JabRef-post-image.wsf b/buildres/windows/JabRef-post-image.wsf index 96717d1da55..762c9412cb6 100644 --- a/buildres/windows/JabRef-post-image.wsf +++ b/buildres/windows/JabRef-post-image.wsf @@ -9,13 +9,17 @@ // DEBUG Output // var shell = new ActiveXObject("WScript.Shell"); // shell.Popup(fileSystem.GetFolder(".")); - var jabRefRoot = fileSystem.GetFolder(".").ParentFolder.ParentFolder.ParentFolder.ParentFolder.Path; - var installerConfig = jabRefRoot + "/build/installer/config/"; + var jabRefRoot = fileSystem.GetFolder('@jabRefRoot@'); + // jpackage will run a copy of the script from the "config" directory. + var installerConfig = fileSystem.GetFile(WScript.ScriptFullName).ParentFolder; + + WScript.Echo("jabRefRoot: " + jabRefRoot) + WScript.Echo("installerConfig: " + installerConfig) // Copy additional installer resources - fileSystem.CopyFile(jabRefRoot + "/buildres/windows/JabRefTopBanner.bmp", installerConfig); + fileSystem.CopyFile(jabRefRoot + "/buildres/windows/JabRefTopBanner.bmp", installerConfig + "/JabRefTopBanner.bmp"); - var wxsFilePath = installerConfig + "main.wxs"; + var wxsFilePath = installerConfig + "/main.wxs"; wxsFile = fileSystem.OpenTextFile(wxsFilePath, 1); var contents = wxsFile.ReadAll(); wxsFile.Close(); From 65eb404b12173d34e6979cb62e5e01417e72cddb Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Tue, 29 Apr 2025 20:00:53 +0200 Subject: [PATCH 02/29] fix errors and convert to build dir from layout --- jabgui/build.gradle.kts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/jabgui/build.gradle.kts b/jabgui/build.gradle.kts index 7faf4473b9d..444b8cdea3d 100644 --- a/jabgui/build.gradle.kts +++ b/jabgui/build.gradle.kts @@ -259,18 +259,18 @@ tasks.named("jlinkZip") { } tasks.register("deleteInstallerTemp") { - delete(file("$buildDir/installer")) + delete(layout.buildDirectory.dir("installer")) } -var jpackageResourceDir: String = "" +var jpackageResourceDir: String = "" if (OperatingSystem.current().isWindows) { - jpackageResourceDir = "${buildDir}/jpackage-resource-dir" + jpackageResourceDir = "${layout.buildDirectory.get().asFile}/jpackage-resource-dir" tasks.register("copyJPackageResourceDir") { from("${projectDir}/buildres/windows") { include("JabRef-post-image.wsf") - filter(mapOf("jabRefRoot" to "${projectDir}".replace('\\', '/'))) + filter(mapOf("jabRefRoot" to "$projectDir".replace('\\', '/'))) } from("${projectDir}/buildres/windows") { exclude("JabRef-post-image.wsf") @@ -287,7 +287,6 @@ if (OperatingSystem.current().isWindows) { jpackageResourceDir = "${projectDir}/buildres/mac" } - jlink { // https://github.com/beryx/badass-jlink-plugin/issues/61#issuecomment-504640018 addExtraDependencies( @@ -440,7 +439,7 @@ jlink { ) requires( "org.tukaani.xz" - ); + ) uses( "ai.djl.engine.EngineProvider" ) @@ -523,7 +522,7 @@ jlink { "--win-shortcut", "--win-menu", "--win-menu-group", "JabRef", - "--temp", "$buildDir/installer", + "--temp", "${layout.buildDirectory.get()}/installer", "--resource-dir", jpackageResourceDir, "--license-file", "$projectDir/buildres/LICENSE_with_Privacy.md", "--file-associations", "$projectDir/buildres/windows/bibtexAssociations.properties" @@ -543,7 +542,7 @@ jlink { "--vendor", "JabRef", "--app-version", "$version", // "--temp", "$buildDir/installer", - "--resource-dir", jpackageResourceDir + "--resource-dir", jpackageResourceDir, "--linux-menu-group", "Office;", "--linux-rpm-license-type", "MIT", // "--license-file", "$projectDir/LICENSE.md", From aac904ff09c5bc837f16f57358c89a36ef13be4f Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 12:46:31 +0200 Subject: [PATCH 03/29] Use mise and JDK25-ea --- .github/workflows/deployment.yml | 14 ++++++++++---- .../buildlogic.java-common-conventions.gradle.kts | 6 ++++-- mise.toml | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 1c4f69bb59a..52636e63433 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -94,10 +94,16 @@ jobs: id: gitversion uses: gittools/actions/gitversion/execute@v3.2.1 - name: Setup JDK - uses: actions/setup-java@v4 - with: - java-version: '24' - distribution: 'liberica' + uses: jdx/mise-action@v2 + - name: Make JDK known to gradle (Linux, macOS) + if: (matrix.os != 'windows-latest') + shell: bash + # Hint by https://github.com/gradle/gradle/issues/29355#issuecomment-2598556970 + run: ln -s ~/.local/share/mise ~/.asdf + - name: Make JDK known to gradle (Window) + if: (matrix.os == 'windows-latest') + shell: bash + run: mv ~/.asdf ~/.local/share/mise - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Prepare merged jars and modules dir (macOS) diff --git a/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts b/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts index a8de214c1ae..480f93ec7fc 100644 --- a/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts @@ -35,6 +35,8 @@ testing { } java { + sourceCompatibility = JavaVersion.VERSION_24 + targetCompatibility = JavaVersion.VERSION_24 toolchain { // If this is updated, also update // - 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) @@ -45,10 +47,10 @@ java { // - .github/workflows/update-gradle-wrapper.yml // - docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md // - mise.toml - languageVersion = JavaLanguageVersion.of(24) + languageVersion = JavaLanguageVersion.of(25) // See https://docs.gradle.org/current/javadoc/org/gradle/jvm/toolchain/JvmVendorSpec.html for a full list // 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 - vendor = JvmVendorSpec.AZUL + // vendor = JvmVendorSpec.AZUL } } diff --git a/mise.toml b/mise.toml index bf6b352def6..7c340262ba5 100644 --- a/mise.toml +++ b/mise.toml @@ -1,2 +1,2 @@ [tools] -java = 'temurin-24' +"java" = { version = "openjdk-25.0.0-ea+20", release_type = "ea" } From 222c9ae9f87b90edb5f4318914063fd6bb766f3c Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 13:02:41 +0200 Subject: [PATCH 04/29] Fix path --- .github/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 52636e63433..3299902a470 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -103,7 +103,7 @@ jobs: - name: Make JDK known to gradle (Window) if: (matrix.os == 'windows-latest') shell: bash - run: mv ~/.asdf ~/.local/share/mise + run: mv ~/.local/share/mise ~/.asdf - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Prepare merged jars and modules dir (macOS) From 1a257753f3964a2274a1aeedad510f2727209ff5 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 13:10:42 +0200 Subject: [PATCH 05/29] Check if mise sets env vars --- .github/workflows/deployment.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 3299902a470..6d6856aa7b6 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -104,6 +104,8 @@ jobs: if: (matrix.os == 'windows-latest') shell: bash run: mv ~/.local/share/mise ~/.asdf + - run: java --version + - run: echo $JAVA_HOME - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Prepare merged jars and modules dir (macOS) From f2b7e15ff7424c13a49f75b2f9fdfd1a84518a92 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 13:17:39 +0200 Subject: [PATCH 06/29] Refine Java installation --- .github/workflows/deployment.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 6d6856aa7b6..921b466fc4f 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -93,19 +93,22 @@ jobs: - name: Run GitVersion id: gitversion uses: gittools/actions/gitversion/execute@v3.2.1 - - name: Setup JDK + - name: Setup JDK (to use in Gradle's Java toolchain) uses: jdx/mise-action@v2 - name: Make JDK known to gradle (Linux, macOS) if: (matrix.os != 'windows-latest') shell: bash # Hint by https://github.com/gradle/gradle/issues/29355#issuecomment-2598556970 run: ln -s ~/.local/share/mise ~/.asdf - - name: Make JDK known to gradle (Window) + - name: Make JDK known to gradle (Windows) if: (matrix.os == 'windows-latest') shell: bash run: mv ~/.local/share/mise ~/.asdf - - run: java --version - - run: echo $JAVA_HOME + - name: Setup JDK for gradle itself + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Prepare merged jars and modules dir (macOS) From 37590f8392cddb1b3781208e22fe754d1eba0187 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 13:34:10 +0200 Subject: [PATCH 07/29] Fix path on Windows --- .github/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 921b466fc4f..21dd4741f5d 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -103,7 +103,7 @@ jobs: - name: Make JDK known to gradle (Windows) if: (matrix.os == 'windows-latest') shell: bash - run: mv ~/.local/share/mise ~/.asdf + run: mv ~/AppData/Local/mise ~/.asdf - name: Setup JDK for gradle itself uses: actions/setup-java@v4 with: From 33fc6c3ca88ebf54481bf91fe264da06b712f57f Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 13:34:19 +0200 Subject: [PATCH 08/29] Use jdpackage from JDK25 --- .github/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 21dd4741f5d..0e039355986 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -138,7 +138,7 @@ jobs: cd jabgui # Use Java's packaging tool to create "JabRef.app" - jpackage \ + mise exec -- jpackage \ --module org.jabref/org.jabref.Launcher \ --module-path ${{env.JAVA_HOME}}/jmods/:build/jlinkbase/jlinkjars \ --add-modules org.jabref,org.jabref.merged.module \ From bd76b44fa9a1bd8008648177bae4b50fe38c93dd Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 13:43:54 +0200 Subject: [PATCH 09/29] Use mise everywhere --- .github/workflows/deployment.yml | 4 ++ .github/workflows/tests-fetchers.yml | 15 ++++- .github/workflows/tests.yml | 97 +++++++++++++++++++++------- 3 files changed, 89 insertions(+), 27 deletions(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 0e039355986..3deb538e385 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -93,6 +93,8 @@ jobs: - name: Run GitVersion id: gitversion uses: gittools/actions/gitversion/execute@v3.2.1 + + # region setup-JDK - name: Setup JDK (to use in Gradle's Java toolchain) uses: jdx/mise-action@v2 - name: Make JDK known to gradle (Linux, macOS) @@ -109,6 +111,8 @@ jobs: with: java-version: '21' distribution: 'temurin' + # endregion + - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Prepare merged jars and modules dir (macOS) diff --git a/.github/workflows/tests-fetchers.yml b/.github/workflows/tests-fetchers.yml index ed40aff67df..c90286ec836 100644 --- a/.github/workflows/tests-fetchers.yml +++ b/.github/workflows/tests-fetchers.yml @@ -52,11 +52,20 @@ jobs: with: submodules: 'true' show-progress: 'false' - - name: Set up JDK + + # region setup-JDK + - name: Setup JDK (to use in Gradle's Java toolchain) + uses: jdx/mise-action@v2 + - name: Make JDK known to gradle (Linux, macOS) + shell: bash + run: ln -s ~/.local/share/mise ~/.asdf + - name: Setup JDK for gradle itself uses: actions/setup-java@v4 with: - java-version: 24.0.1 - distribution: 'zulu' + java-version: '21' + distribution: 'temurin' + # endregion + - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run fetcher tests diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a06b7a28eb2..155c7f7f721 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -34,11 +34,20 @@ jobs: with: submodules: 'true' show-progress: 'false' - - name: Set up JDK + + # region setup-JDK + - name: Setup JDK (to use in Gradle's Java toolchain) + uses: jdx/mise-action@v2 + - name: Make JDK known to gradle (Linux, macOS) + shell: bash + run: ln -s ~/.local/share/mise ~/.asdf + - name: Setup JDK for gradle itself uses: actions/setup-java@v4 with: - java-version: 24.0.1 - distribution: 'zulu' + java-version: '21' + distribution: 'temurin' + # endregion + - name: Run checkstyle reporter uses: dbelyaev/action-checkstyle@master with: @@ -59,11 +68,20 @@ jobs: with: submodules: 'true' show-progress: 'false' - - name: Set up JDK + + # region setup-JDK + - name: Setup JDK (to use in Gradle's Java toolchain) + uses: jdx/mise-action@v2 + - name: Make JDK known to gradle (Linux, macOS) + shell: bash + run: ln -s ~/.local/share/mise ~/.asdf + - name: Setup JDK for gradle itself uses: actions/setup-java@v4 with: - java-version: 24.0.1 - distribution: 'zulu' + java-version: '21' + distribution: 'temurin' + # endregion + - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run OpenRewrite @@ -79,11 +97,20 @@ jobs: with: submodules: 'true' show-progress: 'false' - - name: Set up JDK + + # region setup-JDK + - name: Setup JDK (to use in Gradle's Java toolchain) + uses: jdx/mise-action@v2 + - name: Make JDK known to gradle (Linux, macOS) + shell: bash + run: ln -s ~/.local/share/mise ~/.asdf + - name: Setup JDK for gradle itself uses: actions/setup-java@v4 with: - java-version: 24.0.1 - distribution: 'zulu' + java-version: '21' + distribution: 'temurin' + # endregion + - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run modernizer @@ -178,11 +205,20 @@ jobs: with: submodules: 'true' show-progress: 'false' - - name: Set up JDK + + # region setup-JDK + - name: Setup JDK (to use in Gradle's Java toolchain) + uses: jdx/mise-action@v2 + - name: Make JDK known to gradle (Linux, macOS) + shell: bash + run: ln -s ~/.local/share/mise ~/.asdf + - name: Setup JDK for gradle itself uses: actions/setup-java@v4 with: - java-version: 24.0.1 - distribution: 'zulu' + java-version: '21' + distribution: 'temurin' + # endregion + - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run ${{ matrix.module }} tests @@ -221,11 +257,20 @@ jobs: with: submodules: 'true' show-progress: 'false' - - name: Set up JDK + + # region setup-JDK + - name: Setup JDK (to use in Gradle's Java toolchain) + uses: jdx/mise-action@v2 + - name: Make JDK known to gradle (Linux, macOS) + shell: bash + run: ln -s ~/.local/share/mise ~/.asdf + - name: Setup JDK for gradle itself uses: actions/setup-java@v4 with: - java-version: 24.0.1 - distribution: 'zulu' + java-version: '21' + distribution: 'temurin' + # endregion + - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run tests on PostgreSQL @@ -270,12 +315,20 @@ jobs: with: submodules: 'true' show-progress: 'false' - - name: Set up JDK - if: github.ref == 'refs/heads/main' + + # region setup-JDK + - name: Setup JDK (to use in Gradle's Java toolchain) + uses: jdx/mise-action@v2 + - name: Make JDK known to gradle (Linux, macOS) + shell: bash + run: ln -s ~/.local/share/mise ~/.asdf + - name: Setup JDK for gradle itself uses: actions/setup-java@v4 with: - java-version: 24.0.1 - distribution: 'zulu' + java-version: '21' + distribution: 'temurin' + # endregion + - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Update test coverage metrics @@ -302,11 +355,7 @@ jobs: - uses: actions/checkout@v4 with: show-progress: 'false' - - name: Set up JDK - uses: actions/setup-java@v4 - with: - java-version: 24.0.1 - distribution: 'zulu' + - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - run: ./gradlew traceRequirements From 80baef8e0e67bc89e852ab7a9671c5e923c27f91 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 13:44:09 +0200 Subject: [PATCH 10/29] Updating the gradle wrapper does not need any JDK --- .github/workflows/update-gradle-wrapper.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/update-gradle-wrapper.yml b/.github/workflows/update-gradle-wrapper.yml index 863cc801052..ca5a4c32cd8 100644 --- a/.github/workflows/update-gradle-wrapper.yml +++ b/.github/workflows/update-gradle-wrapper.yml @@ -12,12 +12,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup JDK - uses: actions/setup-java@v4 - with: - java-version: 24.0.1 - distribution: 'zulu' - - name: Update Gradle Wrapper uses: gradle-update/update-gradle-wrapper-action@v2 with: From b9439961563c38ed88efdcee1d42da449339ed54 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 13:56:43 +0200 Subject: [PATCH 11/29] Update byte-buddy --- jabgui/build.gradle.kts | 5 ++++- jabkit/build.gradle.kts | 5 ++++- jablib/build.gradle.kts | 5 ++++- jabsrv/build.gradle.kts | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/jabgui/build.gradle.kts b/jabgui/build.gradle.kts index 444b8cdea3d..929889a2487 100644 --- a/jabgui/build.gradle.kts +++ b/jabgui/build.gradle.kts @@ -122,7 +122,10 @@ dependencies { testImplementation("org.testfx:testfx-core:4.0.16-alpha") testImplementation("org.testfx:testfx-junit5:4.0.16-alpha") - testImplementation("org.mockito:mockito-core:5.17.0") + testImplementation("org.mockito:mockito-core:5.17.0") { + exclude(group = "net.bytebuddy", module = "byte-buddy") + } + testImplementation("net.bytebuddy:byte-buddy:1.17.5") // recommended by https://github.com/wiremock/wiremock/issues/2149#issuecomment-1835775954 testImplementation("org.wiremock:wiremock-standalone:3.12.1") diff --git a/jabkit/build.gradle.kts b/jabkit/build.gradle.kts index 5d2b49756a4..a4552fcf488 100644 --- a/jabkit/build.gradle.kts +++ b/jabkit/build.gradle.kts @@ -53,7 +53,10 @@ dependencies { implementation("org.apache.lucene:lucene-queryparser:${luceneVersion}") testImplementation(project(":test-support")) - testImplementation("org.mockito:mockito-core:5.17.0") + testImplementation("org.mockito:mockito-core:5.17.0") { + exclude(group = "net.bytebuddy", module = "byte-buddy") + } + testImplementation("net.bytebuddy:byte-buddy:1.17.5") } /* diff --git a/jablib/build.gradle.kts b/jablib/build.gradle.kts index ee05abfa73d..7be96a96f5e 100644 --- a/jablib/build.gradle.kts +++ b/jablib/build.gradle.kts @@ -207,7 +207,10 @@ dependencies { testImplementation("org.junit.jupiter:junit-jupiter-params:5.12.2") testImplementation("org.junit.platform:junit-platform-launcher:1.12.2") - testImplementation("org.mockito:mockito-core:5.17.0") + testImplementation("org.mockito:mockito-core:5.17.0") { + exclude(group = "net.bytebuddy", module = "byte-buddy") + } + testImplementation("net.bytebuddy:byte-buddy:1.17.5") testImplementation("org.xmlunit:xmlunit-core:2.10.0") testImplementation("org.xmlunit:xmlunit-matchers:2.10.0") diff --git a/jabsrv/build.gradle.kts b/jabsrv/build.gradle.kts index db5d285ebb0..e819f7982ab 100644 --- a/jabsrv/build.gradle.kts +++ b/jabsrv/build.gradle.kts @@ -61,7 +61,10 @@ dependencies { exclude(group = "org.antlr") } - testImplementation("org.mockito:mockito-core:5.17.0") + testImplementation("org.mockito:mockito-core:5.17.0") { + exclude(group = "net.bytebuddy", module = "byte-buddy") + } + testImplementation("net.bytebuddy:byte-buddy:1.17.5") } javafx { From 09c04a17560ad4d283bda1cfdc9c7a0b95ffb42f Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 14:44:40 +0200 Subject: [PATCH 12/29] More byte buddy --- test-support/build.gradle.kts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test-support/build.gradle.kts b/test-support/build.gradle.kts index 3f64ca5e1d5..d349f3182ef 100644 --- a/test-support/build.gradle.kts +++ b/test-support/build.gradle.kts @@ -17,7 +17,11 @@ dependencies { implementation("org.apache.logging.log4j:log4j-to-slf4j:2.24.3") implementation("org.junit.jupiter:junit-jupiter-api:5.12.2") - implementation("org.mockito:mockito-core:5.17.0") + + implementation("org.mockito:mockito-core:5.17.0") { + exclude(group = "net.bytebuddy", module = "byte-buddy") + } + implementation("net.bytebuddy:byte-buddy:1.17.5") implementation("org.jspecify:jspecify:1.0.0") } From 8f804eaaa8bf6b031f4b3c6001b1d0699eea418e Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 14:44:48 +0200 Subject: [PATCH 13/29] Try to set JAVA_HOME --- .github/workflows/deployment.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 3deb538e385..a1542fe504e 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -141,8 +141,10 @@ jobs: set -e cd jabgui + eval "$(mise hook-env)" + # Use Java's packaging tool to create "JabRef.app" - mise exec -- jpackage \ + jpackage \ --module org.jabref/org.jabref.Launcher \ --module-path ${{env.JAVA_HOME}}/jmods/:build/jlinkbase/jlinkjars \ --add-modules org.jabref,org.jabref.merged.module \ From 9289d9316785f282c6d5d40eaeb40f8e2f2509e0 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 14:45:26 +0200 Subject: [PATCH 14/29] Remove main.wxs --- jabgui/buildres/windows/main.wxs | 165 ------------------------------- 1 file changed, 165 deletions(-) delete mode 100644 jabgui/buildres/windows/main.wxs diff --git a/jabgui/buildres/windows/main.wxs b/jabgui/buildres/windows/main.wxs deleted file mode 100644 index 5c830545e1f..00000000000 --- a/jabgui/buildres/windows/main.wxs +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Installed - Not Installed - Not Installed - Not Installed - - Not Installed - - - Not Installed - - - Not Installed - - - - JP_UPGRADABLE_FOUND - - - JP_DOWNGRADABLE_FOUND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From dc293db69e556b5159f417d6429f1440add8cafc Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 14:45:37 +0200 Subject: [PATCH 15/29] Try quick hack for .kts --- jabgui/build.gradle.kts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jabgui/build.gradle.kts b/jabgui/build.gradle.kts index 929889a2487..caaa9a20ef7 100644 --- a/jabgui/build.gradle.kts +++ b/jabgui/build.gradle.kts @@ -273,7 +273,9 @@ if (OperatingSystem.current().isWindows) { tasks.register("copyJPackageResourceDir") { from("${projectDir}/buildres/windows") { include("JabRef-post-image.wsf") - filter(mapOf("jabRefRoot" to "$projectDir".replace('\\', '/'))) + filter(ReplaceTokens::class, mapOf("tokens" to mapOf( + "jabRefRoot" to project.projectDir.toString().replace('\\', '/') + ))) } from("${projectDir}/buildres/windows") { exclude("JabRef-post-image.wsf") From f5859d79c99860ad895ea874088e8633ba0d9fe1 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 15:01:44 +0200 Subject: [PATCH 16/29] Enable debugging OpenRewrite --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 155c7f7f721..4cb92d7a26e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -87,6 +87,8 @@ jobs: - name: Run OpenRewrite run: | ./gradlew rewriteDryRun + - run: cat build/reports/rewrite/rewrite.patch + if: failure() modernizer: name: Modernizer From 35a5a58ce37883f4b06df8a02d9e8c87b4e8dbec Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 15:16:52 +0200 Subject: [PATCH 17/29] Fix PATH and JAVA_HOME --- .github/workflows/deployment.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index a1542fe504e..e4f8b15ae47 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -141,7 +141,9 @@ jobs: set -e cd jabgui - eval "$(mise hook-env)" + # see https://github.com/jdx/mise/discussions/4973 + eval $(mise hook-env -f | grep 'export JAVA_HOME') + eval $(mise hook-env -f | grep 'export PATH') # Use Java's packaging tool to create "JabRef.app" jpackage \ From e9e7fbbf20728491db6922c93ae8cf4dee53d5d7 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 15:24:32 +0200 Subject: [PATCH 18/29] Fix brace --- .../pre-02-software.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/pre-02-software.md b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/pre-02-software.md index 90b48f7ce3e..8adb32ae38a 100644 --- a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/pre-02-software.md +++ b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/pre-02-software.md @@ -16,7 +16,7 @@ It is strongly recommended that you have git installed. ### macOS -* Use [homebrew](https://brew.sh/)) +* Use [homebrew](https://brew.sh/) * `brew install git git-gui` ### Windows From 5d0a2b5affa6542005d35b045f6818fe6ac76a8f Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 15:25:58 +0200 Subject: [PATCH 19/29] Fix typo --- .../intellij-11-code-into-ide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md index ac6ede9c529..de0a24b39b2 100644 --- a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md +++ b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md @@ -59,7 +59,7 @@ Then press the red minus button on top. This will make these directories "Unregistered roots:", which is fine. {% figure caption:"Directory Mappings having three unregistered roots" %} -![Directory Mappings having three repositories unregsitered](intellij-directory-mappings-unregistered-roots.png) +![Directory Mappings having three repositories unregistered](intellij-directory-mappings-unregistered-roots.png) {% endfigure %} ## Ensure that committing with other tools work From 2f4866a78835785f1df836ee478f8cfa46ef382c Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 15:26:26 +0200 Subject: [PATCH 20/29] Fix path --- .../intellij-11-code-into-ide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md index de0a24b39b2..5f89e30a923 100644 --- a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md +++ b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md @@ -52,7 +52,7 @@ Currently, it looks as follows: ![Directory Mappings including sub modules](intellij-directory-mappings-unmodified.png) {% endfigure %} -You need to tell IntelliJ to ignore the submodules `buildres\abbrv.jabref.org`, `jablib\src\main\resources\csl-locales`, and `jablib\src\main\resources\csl-styles`. +You need to tell IntelliJ to ignore the submodules `jablib\src\main\abbrv.jabref.org`, `jablib\src\main\resources\csl-locales`, and `jablib\src\main\resources\csl-styles`. Select all three (holding the Ctrl key). Then press the red minus button on top. From bf4328e3498bb9ee19e76a9c5cec8a925a4a7fc8 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 15:33:27 +0200 Subject: [PATCH 21/29] Add some debug --- .github/workflows/deployment.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index e4f8b15ae47..8a7f6b8579c 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -111,6 +111,15 @@ jobs: with: java-version: '21' distribution: 'temurin' + - name: Debug + run: | + echo $JAVA_HOME + mise hook-env -f + mise hook-env -f | grep 'export JAVA_HOME' + eval $(mise hook-env -f | grep 'export JAVA_HOME') + echo $JAVA_HOME + eval $(mise hook-env -f | grep 'export PATH') + echo $JAVA_HOME # endregion - name: Setup Gradle From 71f7f3ac73af87c2efa8cbcbcb2bde44fccc1cfd Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Wed, 30 Apr 2025 15:41:19 +0200 Subject: [PATCH 22/29] More debug - and try to fix --- .github/workflows/deployment.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 8a7f6b8579c..3c1956e235d 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -143,6 +143,15 @@ jobs: p12-password: ${{ secrets.OSX_CERT_PWD }} create-keychain: false keychain-password: jabref + - name: Debug + run: | + echo $JAVA_HOME + mise hook-env -f + mise hook-env -f | grep 'export JAVA_HOME' + eval $(mise hook-env -f | grep 'export JAVA_HOME') + echo $JAVA_HOME + eval $(mise hook-env -f | grep 'export PATH') + echo $JAVA_HOME - name: Build dmg and pkg (macOS) if: ((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && (steps.checksecrets.outputs.secretspresent == 'YES') shell: bash @@ -153,11 +162,12 @@ jobs: # see https://github.com/jdx/mise/discussions/4973 eval $(mise hook-env -f | grep 'export JAVA_HOME') eval $(mise hook-env -f | grep 'export PATH') + echo $JAVA_HOME # Use Java's packaging tool to create "JabRef.app" jpackage \ --module org.jabref/org.jabref.Launcher \ - --module-path ${{env.JAVA_HOME}}/jmods/:build/jlinkbase/jlinkjars \ + --module-path $JAVA_HOME/jmods/:build/jlinkbase/jlinkjars \ --add-modules org.jabref,org.jabref.merged.module \ --add-modules jdk.incubator.vector \ --dest build/distribution \ From 4b19e64fff34476c9f91418c05635425dcfa60e1 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 4 May 2025 20:16:02 +0200 Subject: [PATCH 23/29] Discard changes to .github/workflows/tests.yml --- .github/workflows/tests.yml | 99 +++++++++---------------------------- 1 file changed, 24 insertions(+), 75 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3d5d19ae2b1..0dd8de01c97 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -34,20 +34,11 @@ jobs: with: submodules: 'true' show-progress: 'false' - - # region setup-JDK - - name: Setup JDK (to use in Gradle's Java toolchain) - uses: jdx/mise-action@v2 - - name: Make JDK known to gradle (Linux, macOS) - shell: bash - run: ln -s ~/.local/share/mise ~/.asdf - - name: Setup JDK for gradle itself + - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: '21' - distribution: 'temurin' - # endregion - + java-version: 24.0.1 + distribution: 'zulu' - name: Run checkstyle reporter uses: dbelyaev/action-checkstyle@master with: @@ -68,27 +59,16 @@ jobs: with: submodules: 'true' show-progress: 'false' - - # region setup-JDK - - name: Setup JDK (to use in Gradle's Java toolchain) - uses: jdx/mise-action@v2 - - name: Make JDK known to gradle (Linux, macOS) - shell: bash - run: ln -s ~/.local/share/mise ~/.asdf - - name: Setup JDK for gradle itself + - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: '21' - distribution: 'temurin' - # endregion - + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run OpenRewrite run: | ./gradlew rewriteDryRun - - run: cat build/reports/rewrite/rewrite.patch - if: failure() modernizer: name: Modernizer @@ -99,20 +79,11 @@ jobs: with: submodules: 'true' show-progress: 'false' - - # region setup-JDK - - name: Setup JDK (to use in Gradle's Java toolchain) - uses: jdx/mise-action@v2 - - name: Make JDK known to gradle (Linux, macOS) - shell: bash - run: ln -s ~/.local/share/mise ~/.asdf - - name: Setup JDK for gradle itself + - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: '21' - distribution: 'temurin' - # endregion - + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run modernizer @@ -207,20 +178,11 @@ jobs: with: submodules: 'true' show-progress: 'false' - - # region setup-JDK - - name: Setup JDK (to use in Gradle's Java toolchain) - uses: jdx/mise-action@v2 - - name: Make JDK known to gradle (Linux, macOS) - shell: bash - run: ln -s ~/.local/share/mise ~/.asdf - - name: Setup JDK for gradle itself + - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: '21' - distribution: 'temurin' - # endregion - + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run ${{ matrix.module }} tests @@ -259,20 +221,11 @@ jobs: with: submodules: 'true' show-progress: 'false' - - # region setup-JDK - - name: Setup JDK (to use in Gradle's Java toolchain) - uses: jdx/mise-action@v2 - - name: Make JDK known to gradle (Linux, macOS) - shell: bash - run: ln -s ~/.local/share/mise ~/.asdf - - name: Setup JDK for gradle itself + - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: '21' - distribution: 'temurin' - # endregion - + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run tests on PostgreSQL @@ -317,20 +270,12 @@ jobs: with: submodules: 'true' show-progress: 'false' - - # region setup-JDK - - name: Setup JDK (to use in Gradle's Java toolchain) - uses: jdx/mise-action@v2 - - name: Make JDK known to gradle (Linux, macOS) - shell: bash - run: ln -s ~/.local/share/mise ~/.asdf - - name: Setup JDK for gradle itself + - name: Set up JDK + if: github.ref == 'refs/heads/main' uses: actions/setup-java@v4 with: - java-version: '21' - distribution: 'temurin' - # endregion - + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Update test coverage metrics @@ -357,7 +302,11 @@ jobs: - uses: actions/checkout@v4 with: show-progress: 'false' - + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - run: ./gradlew traceRequirements From d371a468fbdbaaa63c97683e4060a50ce9461073 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 4 May 2025 20:21:14 +0200 Subject: [PATCH 24/29] Discard changes to .github/workflows/tests-fetchers.yml --- .github/workflows/tests-fetchers.yml | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/.github/workflows/tests-fetchers.yml b/.github/workflows/tests-fetchers.yml index c90286ec836..ed40aff67df 100644 --- a/.github/workflows/tests-fetchers.yml +++ b/.github/workflows/tests-fetchers.yml @@ -52,20 +52,11 @@ jobs: with: submodules: 'true' show-progress: 'false' - - # region setup-JDK - - name: Setup JDK (to use in Gradle's Java toolchain) - uses: jdx/mise-action@v2 - - name: Make JDK known to gradle (Linux, macOS) - shell: bash - run: ln -s ~/.local/share/mise ~/.asdf - - name: Setup JDK for gradle itself + - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: '21' - distribution: 'temurin' - # endregion - + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run fetcher tests From 793ed12bacff0cba6045e1c3c50df543cdbda819 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 4 May 2025 20:23:16 +0200 Subject: [PATCH 25/29] Initial -jdk-ea version --- .github/workflows/deployment-ea.yml | 386 ++++++++++++++++++++++++++++ 1 file changed, 386 insertions(+) create mode 100644 .github/workflows/deployment-ea.yml diff --git a/.github/workflows/deployment-ea.yml b/.github/workflows/deployment-ea.yml new file mode 100644 index 00000000000..3c1956e235d --- /dev/null +++ b/.github/workflows/deployment-ea.yml @@ -0,0 +1,386 @@ +name: Deployment + +on: + push: + branches: + - main + - main-release + paths-ignore: + - 'docs/**' + - 'src/test/**' + - 'README.md' + tags: + - '*' + pull_request: + merge_group: + workflow_dispatch: + inputs: + notarization: + type: boolean + required: false + default: false + +env: + SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }} + AstrophysicsDataSystemAPIKey: ${{ secrets.AstrophysicsDataSystemAPIKey }} + IEEEAPIKey: ${{ secrets.IEEEAPIKey }} + BiodiversityHeritageApiKey: ${{ secrets.BiodiversityHeritageApiKey}} + OSXCERT: ${{ secrets.OSX_SIGNING_CERT }} + GRADLE_OPTS: -Xmx4g -Dorg.gradle.vfs.watch=false + JAVA_OPTS: -Xmx4g + +concurrency: + group: "${{ github.workflow }}-${{ github.head_ref || github.ref }}" + cancel-in-progress: true + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + # if you change the os version rename all other occurrences + - os: ubuntu-22.04 + displayName: linux + archivePortable: tar -c -C jabgui/build/distribution JabRef | pigz --rsyncable > jabgui/build/distribution/JabRef-portable_linux.tar.gz && rm -R jabgui/build/distribution/JabRef + archivePortableJabKit: tar -c -C jabkit/build/distribution jabkit | pigz --rsyncable > jabkit/build/distribution/jabkit-portable_linux.tar.gz && rm -R jabkit/build/distribution/jabkit + - os: windows-latest + displayName: windows + archivePortable: 7z a -r jabgui/build/distribution/JabRef-portable_windows.zip ./jabgui/build/distribution/JabRef && rm -R jabgui/build/distribution/JabRef + archivePortableJabKit: 7z a -r jabkit/build/distribution/jabkit-portable_windows.zip ./jabkit/build/distribution/jabkit && rm -R jabkit/build/distribution/jabkit + - os: macos-13 # intel image + displayName: macOS + suffix: '' + - os: macos-14 + displayName: macOS (ARM64) + suffix: '_arm64' + runs-on: ${{ matrix.os }} + outputs: + major: ${{ steps.gitversion.outputs.Major }} + minor: ${{ steps.gitversion.outputs.Minor }} + branchname: ${{ steps.gitversion.outputs.branchName }} + name: ${{ matrix.displayName }} installer and portable version + steps: + - name: Check secrets presence + id: checksecrets + shell: bash + run: | + if [ "$BUILDJABREFPRIVATEKEY" == "" ]; then + echo "secretspresent=NO" >> $GITHUB_OUTPUT + echo "❌ Secret BUILDJABREFPRIVATEKEY not present" + else + echo "secretspresent=YES" >> $GITHUB_OUTPUT + echo "✔️ Secret BUILDJABREFPRIVATEKEY present" + fi + env: + BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }} + - name: Fetch all history for all tags and branches + uses: actions/checkout@v4 + with: + fetch-depth: 0 + submodules: 'true' + show-progress: 'false' + - name: Install pigz and cache (linux) + if: (matrix.os == 'ubuntu-22.04') + uses: awalsh128/cache-apt-pkgs-action@latest + with: + packages: pigz + version: 1.0 + - name: Install GitVersion + uses: gittools/actions/gitversion/setup@v3.2.1 + with: + versionSpec: "5.x" + - name: Run GitVersion + id: gitversion + uses: gittools/actions/gitversion/execute@v3.2.1 + + # region setup-JDK + - name: Setup JDK (to use in Gradle's Java toolchain) + uses: jdx/mise-action@v2 + - name: Make JDK known to gradle (Linux, macOS) + if: (matrix.os != 'windows-latest') + shell: bash + # Hint by https://github.com/gradle/gradle/issues/29355#issuecomment-2598556970 + run: ln -s ~/.local/share/mise ~/.asdf + - name: Make JDK known to gradle (Windows) + if: (matrix.os == 'windows-latest') + shell: bash + run: mv ~/AppData/Local/mise ~/.asdf + - name: Setup JDK for gradle itself + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + - name: Debug + run: | + echo $JAVA_HOME + mise hook-env -f + mise hook-env -f | grep 'export JAVA_HOME' + eval $(mise hook-env -f | grep 'export JAVA_HOME') + echo $JAVA_HOME + eval $(mise hook-env -f | grep 'export PATH') + echo $JAVA_HOME + # endregion + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Prepare merged jars and modules dir (macOS) + # prepareModulesDir is executing a build, which should run through even if no upload to builds.jabref.org is made + if: (matrix.os == 'macos-13') || (matrix.os == 'macos-14') || (steps.checksecrets.outputs.secretspresent == 'NO') + run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" :jabgui:prepareModulesDir + - name: Setup macOS key chain + if: ((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && (steps.checksecrets.outputs.secretspresent == 'YES') + uses: slidoapp/import-codesign-certs@1923310662e8682dd05b76b612b53301f431cd5d + with: + p12-file-base64: ${{ secrets.OSX_SIGNING_CERT }} + p12-password: ${{ secrets.OSX_CERT_PWD }} + keychain-password: jabref + - name: Setup macOS key chain for app id cert + if: ((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && (steps.checksecrets.outputs.secretspresent == 'YES') + 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 + - name: Debug + run: | + echo $JAVA_HOME + mise hook-env -f + mise hook-env -f | grep 'export JAVA_HOME' + eval $(mise hook-env -f | grep 'export JAVA_HOME') + echo $JAVA_HOME + eval $(mise hook-env -f | grep 'export PATH') + echo $JAVA_HOME + - name: Build dmg and pkg (macOS) + if: ((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && (steps.checksecrets.outputs.secretspresent == 'YES') + shell: bash + run: | + set -e + cd jabgui + + # see https://github.com/jdx/mise/discussions/4973 + eval $(mise hook-env -f | grep 'export JAVA_HOME') + eval $(mise hook-env -f | grep 'export PATH') + echo $JAVA_HOME + + # Use Java's packaging tool to create "JabRef.app" + jpackage \ + --module org.jabref/org.jabref.Launcher \ + --module-path $JAVA_HOME/jmods/:build/jlinkbase/jlinkjars \ + --add-modules org.jabref,org.jabref.merged.module \ + --add-modules jdk.incubator.vector \ + --dest build/distribution \ + --name JabRef \ + --app-version ${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }} \ + --verbose \ + --mac-sign \ + --vendor "JabRef e.V." \ + --mac-package-identifier JabRef \ + --mac-package-name JabRef \ + --type app-image \ + --mac-signing-key-user-name "JabRef e.V. (6792V39SK3)" \ + --mac-package-signing-prefix org.jabref \ + --mac-entitlements buildres/mac/jabref.entitlements \ + --icon src/main/resources/icons/jabref.icns \ + --resource-dir buildres/mac \ + --file-associations buildres/mac/bibtexAssociations.properties \ + --jlink-options --bind-services \ + --java-options --add-exports=javafx.base/com.sun.javafx.event=org.jabref.merged.module \ + --java-options --add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module \ + --java-options --add-opens=javafx.graphics/javafx.scene=org.jabref.merged.module \ + --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref.merged.module \ + --java-options --add-opens=javafx.controls/javafx.scene.control.skin=org.jabref.merged.module \ + --java-options --add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module \ + --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref \ + --java-options --add-exports=javafx.base/com.sun.javafx.event=org.jabref \ + --java-options --add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref \ + --java-options --add-opens=javafx.graphics/javafx.scene=org.jabref \ + --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref \ + --java-options --add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref \ + --java-options --add-opens=javafx.base/javafx.collections=org.jabref \ + --java-options --add-opens=javafx.base/javafx.collections.transformation=org.jabref \ + --java-options --add-modules=jdk.incubator.vector + + # Add additional files / directories + cp buildres/mac/jabrefHost.py build/distribution/JabRef.app/Contents/ + cp -R buildres/mac/native-messaging-host build/distribution/JabRef.app/Contents/ + + # Sign the final artifact + codesign --force --deep --sign "Developer ID Application: JabRef e.V. (6792V39SK3)" \ + --entitlements buildres/mac/jabref.entitlements \ + --options runtime --timestamp build/distribution/JabRef.app + + # pack dmg and pkg + hdiutil create -volname "JabRef" -srcfolder build/distribution/JabRef.app -ov -format UDZO build/distribution/JabRef${{ matrix.suffix }}.dmg + productbuild --component build/distribution/JabRef.app /Applications --sign "Developer ID Installer: JabRef e.V. (6792V39SK3)" build/distribution/JabRef${{ matrix.suffix }}.pkg + + # Cleanup unpacked file + rm -rf build/distribution/JabRef.app + - name: Build runtime image and installer (linux, Windows) + if: (matrix.os != 'macos-13') && (matrix.os != 'macos-14') && (steps.checksecrets.outputs.secretspresent == 'YES') + shell: bash + run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" :jabgui:jpackage + - name: Build JabKit + if: (steps.checksecrets.outputs.secretspresent == 'YES') + shell: bash + run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" :jabkit:jpackage + - name: Remove JabKit build for macOS + if: (matrix.os == 'macos-13') || (matrix.os == 'macos-14') + run: rm -rf jabkit/build/distribution/jabkit.app + - name: Package application image (linux, Windows) + if: (matrix.os != 'macos-13') && (matrix.os != 'macos-14') && (steps.checksecrets.outputs.secretspresent == 'YES') + shell: bash + run: | + set -e + ${{ matrix.archivePortable }} + ${{ matrix.archivePortableJabKit }} + - name: Rename files + if: (matrix.os != 'macos-13') && (matrix.os != 'macos-14') && (steps.checksecrets.outputs.secretspresent == 'YES') + shell: pwsh + run: | + get-childitem -Path jabgui/build/distribution/* | rename-item -NewName {$_.name -replace "${{ steps.gitversion.outputs.AssemblySemVer }}","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}"} + get-childitem -Path jabgui/build/distribution/* | rename-item -NewName {$_.name -replace "portable","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-portable"} + - name: Repack deb file for Debian + if: (matrix.os == 'ubuntu-22.04') && (steps.checksecrets.outputs.secretspresent == 'YES') + shell: bash + run: | + cd jabgui/build/distribution + ar x jabref_${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}_amd64.deb + zstd -d < control.tar.zst | xz > control.tar.xz + zstd -d < data.tar.zst | xz > data.tar.xz + ar -m -c -a sdsd jabref_${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}_amd64_repackaged.deb debian-binary control.tar.xz data.tar.xz + rm debian-binary control.tar.* data.tar.* + mv -f jabref_${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}_amd64_repackaged.deb jabref_${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}_amd64.deb + - name: Setup rsync (macOS) + if: ${{ (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (steps.checksecrets.outputs.secretspresent == 'YES') && (((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && !((startsWith(github.ref, 'refs/tags/') || inputs.notarization == true))) }} + run: brew install rsync + - name: Setup rsync (Windows) + if: (matrix.os == 'windows-latest') && (steps.checksecrets.outputs.secretspresent == 'YES') && (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) + # We want to have rsync available at this place to avoid uploading and downloading from GitHub artifact store (taking > 5 minutes in total) + # We cannot use "action-rsyncer", because that requires Docker which is unavailable on Windows + # We cannot use "setup-rsync", because that does not work on Windows + # We do not use egor-tensin/setup-cygwin@v4, because it replaces the default shell + run: choco install --no-progress rsync + - name: Setup SSH key + if: ${{ (steps.checksecrets.outputs.secretspresent == 'YES') && (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (!((startsWith(github.ref, 'refs/tags/') || (inputs.notarization == true)))) }} + run: | + echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey + chmod 600 sshkey + - name: Upload to builds.jabref.org (Windows) + if: (matrix.os == 'windows-latest') && (steps.checksecrets.outputs.secretspresent == 'YES') && (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) + shell: cmd + # 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/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true + 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/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true + - name: Upload to builds.jabref.org (linux, macOS) + # macOS: Negated condition of "Upload to GitHub workflow artifacts store (macOS)" + # Reason: We either upload the non-notarized files - or notarize the files later (and upload these later) + # needs to be on one line; multi line does not work + if: ${{ (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (steps.checksecrets.outputs.secretspresent == 'YES') && ((matrix.os == 'ubuntu-22.04') || (matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && !((startsWith(github.ref, 'refs/tags/') || inputs.notarization == true)) }} + 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/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true + 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/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true + - name: Upload to GitHub workflow artifacts store (macOS) + if: ((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && (steps.checksecrets.outputs.secretspresent == 'YES') && (startsWith(github.ref, 'refs/tags/') || inputs.notarization == true) + uses: actions/upload-artifact@v4 + with: + # tbn = to-be-notarized + name: JabRef-macOS-tbn-${{ matrix.os }} + path: build/distribution + compression-level: 0 # no compression + - name: Upload to GitHub workflow artifacts store + if: (steps.checksecrets.outputs.secretspresent != 'YES') + uses: actions/upload-artifact@v4 + with: + name: JabRef-${{ matrix.os }} + path: build/distribution + compression-level: 0 # no compression + announce: + name: Comment on pull request + runs-on: ubuntu-22.04 + needs: [build] + if: ${{ github.event_name == 'pull_request' }} + steps: + - name: Check secrets presence + id: checksecrets + shell: bash + run: | + if [ "$BUILDJABREFPRIVATEKEY" == "" ]; then + echo "secretspresent=NO" >> $GITHUB_OUTPUT + echo "❌ Secret BUILDJABREFPRIVATEKEY not present" + else + echo "secretspresent=YES" >> $GITHUB_OUTPUT + echo "✔️ Secret BUILDJABREFPRIVATEKEY present" + fi + env: + BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }} + - name: Comment PR + if: (steps.checksecrets.outputs.secretspresent == 'YES') + uses: thollander/actions-comment-pull-request@v3 + with: + message: | + The build of this PR is available at . + comment-tag: download-link + mode: recreate + notarize: # outsourced in a separate job to be able to rerun if this fails for timeouts + name: macOS notarization + strategy: + # Ensure that calls to Apple are sequentially made + max-parallel: 1 + matrix: + include: + - os: macos-13 # intel image + displayName: macOS + suffix: '' + - os: macos-14 + displayName: macOS (ARM64) + suffix: '-arm64' + runs-on: ${{ matrix.os }} + needs: [build] + if: ${{ startsWith(github.ref, 'refs/tags/') || inputs.notarization == true }} + steps: + - name: Check secrets presence + id: checksecrets + shell: bash + run: | + if [ "$BUILDJABREFPRIVATEKEY" == "" ]; then + echo "secretspresent=NO" >> $GITHUB_OUTPUT + echo "❌ Secret BUILDJABREFPRIVATEKEY not present" + else + echo "secretspresent=YES" >> $GITHUB_OUTPUT + echo "✔️ Secret BUILDJABREFPRIVATEKEY present" + fi + env: + BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }} + - name: Download from GitHub workflow artifacts store (macOS) + if: (steps.checksecrets.outputs.secretspresent == 'YES') + uses: actions/download-artifact@v4 + with: + name: JabRef-macOS-tbn-${{ matrix.os }} + path: jabgui/build/distribution/ + - name: Notarize dmg + if: (steps.checksecrets.outputs.secretspresent == 'YES') + shell: bash + run: | + cd jabgui + xcrun notarytool store-credentials "notarytool-profile" --apple-id "vorstand@jabref.org" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}" + xcrun notarytool submit build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg --keychain-profile "notarytool-profile" --wait + xcrun stapler staple build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg + - name: Notarize pkg + if: (steps.checksecrets.outputs.secretspresent == 'YES') + shell: bash + run: | + cd jabgui + xcrun notarytool store-credentials "notarytool-profile" --apple-id "vorstand@jabref.org" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}" + xcrun notarytool submit build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg --keychain-profile "notarytool-profile" --wait + xcrun stapler staple build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg + - name: Upload to builds.jabref.org + if: (steps.checksecrets.outputs.secretspresent == 'YES') + 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/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }}/ From 3173d4371506f3bec3ddcb01fa8f3b9ffe832434 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 4 May 2025 20:24:24 +0200 Subject: [PATCH 26/29] Discard changes to .github/workflows/deployment.yml --- .github/workflows/deployment.yml | 46 +++----------------------------- 1 file changed, 4 insertions(+), 42 deletions(-) diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 3c1956e235d..1c4f69bb59a 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -93,35 +93,11 @@ jobs: - name: Run GitVersion id: gitversion uses: gittools/actions/gitversion/execute@v3.2.1 - - # region setup-JDK - - name: Setup JDK (to use in Gradle's Java toolchain) - uses: jdx/mise-action@v2 - - name: Make JDK known to gradle (Linux, macOS) - if: (matrix.os != 'windows-latest') - shell: bash - # Hint by https://github.com/gradle/gradle/issues/29355#issuecomment-2598556970 - run: ln -s ~/.local/share/mise ~/.asdf - - name: Make JDK known to gradle (Windows) - if: (matrix.os == 'windows-latest') - shell: bash - run: mv ~/AppData/Local/mise ~/.asdf - - name: Setup JDK for gradle itself + - name: Setup JDK uses: actions/setup-java@v4 with: - java-version: '21' - distribution: 'temurin' - - name: Debug - run: | - echo $JAVA_HOME - mise hook-env -f - mise hook-env -f | grep 'export JAVA_HOME' - eval $(mise hook-env -f | grep 'export JAVA_HOME') - echo $JAVA_HOME - eval $(mise hook-env -f | grep 'export PATH') - echo $JAVA_HOME - # endregion - + java-version: '24' + distribution: 'liberica' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Prepare merged jars and modules dir (macOS) @@ -143,15 +119,6 @@ jobs: p12-password: ${{ secrets.OSX_CERT_PWD }} create-keychain: false keychain-password: jabref - - name: Debug - run: | - echo $JAVA_HOME - mise hook-env -f - mise hook-env -f | grep 'export JAVA_HOME' - eval $(mise hook-env -f | grep 'export JAVA_HOME') - echo $JAVA_HOME - eval $(mise hook-env -f | grep 'export PATH') - echo $JAVA_HOME - name: Build dmg and pkg (macOS) if: ((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && (steps.checksecrets.outputs.secretspresent == 'YES') shell: bash @@ -159,15 +126,10 @@ jobs: set -e cd jabgui - # see https://github.com/jdx/mise/discussions/4973 - eval $(mise hook-env -f | grep 'export JAVA_HOME') - eval $(mise hook-env -f | grep 'export PATH') - echo $JAVA_HOME - # Use Java's packaging tool to create "JabRef.app" jpackage \ --module org.jabref/org.jabref.Launcher \ - --module-path $JAVA_HOME/jmods/:build/jlinkbase/jlinkjars \ + --module-path ${{env.JAVA_HOME}}/jmods/:build/jlinkbase/jlinkjars \ --add-modules org.jabref,org.jabref.merged.module \ --add-modules jdk.incubator.vector \ --dest build/distribution \ From ae52cce15bd23c513031191d1fb3d28d866abc86 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 4 May 2025 20:24:42 +0200 Subject: [PATCH 27/29] Discard changes to mise.toml --- mise.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mise.toml b/mise.toml index 7c340262ba5..bf6b352def6 100644 --- a/mise.toml +++ b/mise.toml @@ -1,2 +1,2 @@ [tools] -"java" = { version = "openjdk-25.0.0-ea+20", release_type = "ea" } +java = 'temurin-24' From a9b85bb70de8287dff06f6ef9f35f007381a5263 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 4 May 2025 20:25:28 +0200 Subject: [PATCH 28/29] Downgrad regular toolchain --- .../main/kotlin/buildlogic.java-common-conventions.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts b/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts index 480f93ec7fc..2eeebbe70af 100644 --- a/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts @@ -47,7 +47,7 @@ java { // - .github/workflows/update-gradle-wrapper.yml // - docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md // - mise.toml - languageVersion = JavaLanguageVersion.of(25) + languageVersion = JavaLanguageVersion.of(24) // See https://docs.gradle.org/current/javadoc/org/gradle/jvm/toolchain/JvmVendorSpec.html for a full list // 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 From cefcece65eac53f4ba72b6a3c7430b4b6a502154 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 4 May 2025 20:34:49 +0200 Subject: [PATCH 29/29] Try to update to JDK-ea using mise --- .github/workflows/deployment-ea.yml | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/.github/workflows/deployment-ea.yml b/.github/workflows/deployment-ea.yml index 3c1956e235d..674f26c9478 100644 --- a/.github/workflows/deployment-ea.yml +++ b/.github/workflows/deployment-ea.yml @@ -94,9 +94,22 @@ jobs: id: gitversion uses: gittools/actions/gitversion/execute@v3.2.1 + - name: Tell gradle to use JDK25 + run: sed -i "s/JavaLanguageVersion.of(25)/JavaLanguageVersion.of(24)/" build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts + # region setup-JDK - - name: Setup JDK (to use in Gradle's Java toolchain) + - name: Setup JDK 25 for "java toolchain" of Gradle uses: jdx/mise-action@v2 + with: + mise_toml: | + [tools] + java = { version = "openjdk-25.0.0-ea+21", release_type = "ea" } + - name: Debug + run: | + set -x + set -e + echo $JAVA_HOME + java --version - name: Make JDK known to gradle (Linux, macOS) if: (matrix.os != 'windows-latest') shell: bash @@ -111,15 +124,6 @@ jobs: with: java-version: '21' distribution: 'temurin' - - name: Debug - run: | - echo $JAVA_HOME - mise hook-env -f - mise hook-env -f | grep 'export JAVA_HOME' - eval $(mise hook-env -f | grep 'export JAVA_HOME') - echo $JAVA_HOME - eval $(mise hook-env -f | grep 'export PATH') - echo $JAVA_HOME # endregion - name: Setup Gradle @@ -146,6 +150,7 @@ jobs: - name: Debug run: | echo $JAVA_HOME + cat mise.toml mise hook-env -f mise hook-env -f | grep 'export JAVA_HOME' eval $(mise hook-env -f | grep 'export JAVA_HOME')