Add arm 64 linux runner#13258
Conversation
|
Still some issues with the module exporting: The correct architecture should be picked because the architecture check print gives the right infomration
|
|
@jjohannes Sorry to bother you again, but do you have any idea why the arm build is failing. Am I missing something? I just added a new target for arm in the conventions gradle. Locally on my computer I see that the task is registered.
|
|
@Siedlerchr your change is correct. It should not lead to The error indicates that it uses the original Jar and not the transformed one (of One idea: There are sometimes timing problems with the transformation mechanisms if other plugins access things too eagerly. Maybe something like this is happening. Maybe it does not work 100% well together with For now, maybe it helps just rerunning the build. The only thing that is different in the target is that it is completely new and the Jars have never been downloaded/cached before. Although I don't understand why the other things work well in the GH context where things may always be rebuilt... A temporary remedy could also be to first run a |
|
|
||
| // Source: https://github.com/jjohannes/java-module-system/blob/main/gradle/plugins/src/main/kotlin/targets.gradle.kts | ||
| // Configure variants for OS | ||
| // Configure variants for OS. target name can be any just must |
There was a problem hiding this comment.
The added sentence seems to be incomplete?
….gradle.kts Co-authored-by: Oliver Kopp <kopp.dev@gmail.com>
But we patch it in Thus, it seems an issue with https://github.com/gradlex-org/extra-java-module-info, isn't it @jjohannes ? |
Additionally: - Fix LTWA generation csv file re-download
| public class CitationStyleCatalogGenerator { | ||
| private static final String STYLES_ROOT = "/csl-styles"; | ||
| private static final String CATALOG_PATH = "build/resources/main/citation-style-catalog.json"; | ||
| private static final String CATALOG_PATH = "build/generated/resources/citation-style-catalog.json"; |
There was a problem hiding this comment.
Are you sure this is correct? This will break at runtime I think
There was a problem hiding this comment.
No, because this is part of the source sets - see the whole diff for build.gradle.kts
| displayName: macOS (ARM64) | ||
| suffix: '_arm64' | ||
| runs-on: ${{ matrix.os }} | ||
| runs-on: ${{ matrix.os == 'ubuntu-22.04-arm' && 'ubuntu-22.04' || matrix.os }} |
There was a problem hiding this comment.
this is the wrong approach, it loads the wrong jdk
If we stay on cross compiling:
- JDK does has to match runner OS (currently happening)
- JMODs of target OS have to be downloaded
- jpackage (jlink?) has to be taught to use the downloaded JMODs instead of the ones shipped with the JDK.
Reason: .class files are portable, JMODs are platform-specific. Exceptional behavior for javafx jars is handled by some gradlex plugin.
There was a problem hiding this comment.
- is wrong. It download amd jdk for arm -> wrong
I did a PR here to test this with ubuntu arm and it seemed to work jjohannes/java-module-system#2
There was a problem hiding this comment.
I think, we need to work on gradlex-org/java-module-packaging#57 (comment)
There was a problem hiding this comment.
jpackage (jlink?) has to be taught to use the downloaded JMODs instead of the ones shipped with the JDK.
Is this possible? (If yes, do you have a link to documentation how to do this?)
My understanding it that it is not. That's why the packaging task has the validation that fails if you run it on the wrong os/arch.
There was a problem hiding this comment.
@jjohannes thank you so much for the effort taken!! We should have known it, because we switch back and forth JDKs and are "aware" of JavaFX being packed. Maybe we try with our good old friend LibericaJDK without (!) JavaFX. - Thank you again for your patience. We will pick up from here.
There was a problem hiding this comment.
I took another look at the pipeline today and it seesm that gradle downloads the zulu java with javafx https://api.foojay.io/disco/v3.0/ids/796901cbf89fc850a3f3bb8ddfe4506c/redirect
That resolves to zulu24.30.13-ca-fx-jdk24.0.1
There was a problem hiding this comment.
gradle downloads zulu, because we use the foojay gradle toolchain plugin. You changed to amazon at 3a3097a (#13258).
There was a problem hiding this comment.
Background: We try to keep the runtime for the build system (gradle) and the compiler used by gradle (JDK in toolchain) in version sync, but not necessarily always in JDK sync. Sometimes, we even update the JDK used by gradle (See gradle/gradle#33310).
There was a problem hiding this comment.
Yes, the problem was that gradle downloads a zulu version which includes javafx through the foojay resolver plugin and thus we didn't use the openjfx from maven central
|
On maven central, only linux amd64 build should be published; reason: JabRef .class files are re-usable across different platforms; no need to publish for mac, linux, windows. Therefore, I had the excact check for ubuntu-22.04 (and removed startsWith) |
I don't see any changes I did for this. Maybe I overlooked something? |
|
|
@trag-bot didn't find any issues in the code! ✅✨ |
|
The build of this PR is available at https://builds.jabref.org/pull/13258/merge. |
|
I merge now and we do a follow up |
* upstream/main: New Crowdin updates (JabRef#13330) Add arm 64 linux runner (JabRef#13258) Rename strings and variables in New Entry (JabRef#13312) Let consistency checker yield a return code (JabRef#13329) Update LETTER fragment to resolve Windows parsing issue (JabRef#13327) Add support for "dev: no-bot-comments" Update dependency org.hibernate.validator:hibernate-validator to v9.0.1.Final (JabRef#13322) Endnote XML Exporter: Move factory initialization to constructor (JabRef#13321) Refine assignment reminder (JabRef#13315) Add welcome message to first time contributors (JabRef#13314) New Crowdin updates (JabRef#13311) Added a setting to show File annotations' tab only when the PDF actually contains highlights or comments (JabRef#13279) Update dependency org.postgresql:postgresql to v42.7.7 (JabRef#13306) Refine PULL_REQUEST_TEMPLATE.md (JabRef#13304) Move module tweaking of merged module to launcher (JabRef#13303) Speed up gradle update (JabRef#13300) testImplementation is enough (JabRef#13299)
* upstream/main: New Crowdin updates (JabRef#13330) Add arm 64 linux runner (JabRef#13258) Rename strings and variables in New Entry (JabRef#13312) Let consistency checker yield a return code (JabRef#13329) Update LETTER fragment to resolve Windows parsing issue (JabRef#13327) Add support for "dev: no-bot-comments" Update dependency org.hibernate.validator:hibernate-validator to v9.0.1.Final (JabRef#13322) Endnote XML Exporter: Move factory initialization to constructor (JabRef#13321) Refine assignment reminder (JabRef#13315) Add welcome message to first time contributors (JabRef#13314)





Fixes #10842
https://github.com/actions/partner-runner-images/blob/main/images/arm-ubuntu-22-image.md
In about one to three sentences, describe the changes you have made: what, where, why, ...
Steps to test
Describe how reviewers can test this fix/feature. Ideally, think of how you would guide a beginner user of Jabef to try out your change.
You can add screenshots or videos (using Loom or by just adding .mp4 files).
Mandatory checks
CHANGELOG.mddescribed in a way that is understandable for the average user (if change is visible to the user)