Skip to content

Feature: JFX 25#4013

Merged
infeo merged 11 commits intodevelopfrom
feature/jfx-25
Oct 14, 2025
Merged

Feature: JFX 25#4013
infeo merged 11 commits intodevelopfrom
feature/jfx-25

Conversation

@infeo
Copy link
Member

@infeo infeo commented Oct 14, 2025

This PR updates JavaFX to version 25.

Release notes of JavaFX 25 can be found here: https://gluonhq.com/products/javafx/openjfx-25-release-notes/

Noticeable changes:

  • (Linux) Minimum version of lib-gtk is now 3.20
  • Removal of Windows AArch64 build

Closes #3902.

@infeo infeo added this to the 1.18.0 milestone Oct 14, 2025
@coderabbitai
Copy link

coderabbitai bot commented Oct 14, 2025

Walkthrough

Updates CI workflows and configuration to JavaFX/OpenJFX 25 across Linux, macOS (x64 and arm64), and Windows (x64). Replaces OpenJFX JMOD download URLs and SHA256 hashes. Removes the -Djavafx.platform property from Maven invocations. Removes the --sun-misc-unsafe-memory-access=allow option from jpackage steps. Drops Windows ARM64 matrix entries and related artifacts in win-exe.yml. Bumps javafx.version in pom.xml to 25 and updates IntelliJ project JDK to 25 in .idea/misc.xml.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Possibly related PRs

Suggested labels

dependencies, java

Suggested reviewers

  • overheadhunter

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Out of Scope Changes Check ⚠️ Warning Although the PR correctly removes the sun-misc workaround, it also bundles unrelated updates such as bumping JavaFX versions, updating checksums, removing platform-specific Maven flags, and dropping Windows AArch64 builds that exceed the scope of issue #3902. Consider separating the version bump, build flag cleanups, and architecture removals into distinct PRs or tracking them under dedicated issues so that the sun-misc workaround removal remains isolated and easier to review.
✅ Passed checks (4 passed)
Check name Status Explanation
Title Check ✅ Passed The title “Feature: JFX 25” succinctly captures the primary update to JavaFX version 25, directly reflecting the main change in the changeset and providing clear context to reviewers without extraneous details.
Linked Issues Check ✅ Passed The pull request removes the --sun-misc-unsafe-memory-access=allow option from all relevant workflows as specified by issue #3902, effectively reverting the earlier workaround now that JavaFX 25 is in use.
Description Check ✅ Passed The description clearly relates to the changeset by stating the upgrade to JavaFX 25, linking to the official release notes, highlighting the GTK version requirement and removal of the Windows AArch64 build, and referencing the closed issue.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/jfx-25

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/win-exe.yml (1)

108-112: Bug: jlink help check uses command substitution; condition never executes as intended

The current if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "...") attempts to execute an empty string. Use negation over the pipeline (as in mac workflow).

Apply this diff:

-          if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then
-            JMOD_PATHS="${JAVA_HOME}/jmods;${JMOD_PATHS}"
-          fi
+          if ! ${JAVA_HOME}/bin/jlink --help 2>&1 | grep -q "Linking from run-time image enabled"; then
+            JMOD_PATHS="${JAVA_HOME}/jmods;${JMOD_PATHS}"
+          fi
🧹 Nitpick comments (3)
.github/workflows/mac-dmg.yml (2)

45-46: OpenJFX 25 URL/hash update looks good

Checksumming is enforced; jmods subset extracted correctly.

Optionally centralize OpenJFX version/URL/hash across workflows to avoid drift.


80-80: Dropping -Djavafx.platform is correct; verify JDK version alignment
CI is using Java 24.0.1+9 while pom.xml targets JavaFX 25—consider updating JAVA_VERSION to 25.x in your mac-dmg.yml workflow for consistency.

.github/workflows/win-exe.yml (1)

29-30: OpenJFX 25 URL/hash for Windows x64 looks good

Checksum verification and extraction are in place.

Consider adding curl resilience (e.g., -fL --retry 3 --retry-delay 2 --connect-timeout 30) to the download step for fewer flakey runs.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e50c949 and 49e3570.

⛔ Files ignored due to path filters (5)
  • dist/linux/appimage/build.sh is excluded by !**/dist/**
  • dist/linux/debian/control is excluded by !**/dist/**
  • dist/linux/debian/rules is excluded by !**/dist/**
  • dist/mac/dmg/build.sh is excluded by !**/dist/**
  • dist/win/build.ps1 is excluded by !**/dist/**
📒 Files selected for processing (10)
  • .github/workflows/appimage.yml (2 hunks)
  • .github/workflows/build.yml (1 hunks)
  • .github/workflows/debian.yml (2 hunks)
  • .github/workflows/mac-dmg-x64.yml (3 hunks)
  • .github/workflows/mac-dmg.yml (3 hunks)
  • .github/workflows/pullrequest.yml (1 hunks)
  • .github/workflows/release-check.yml (1 hunks)
  • .github/workflows/win-exe.yml (4 hunks)
  • .idea/misc.xml (1 hunks)
  • pom.xml (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2024-12-11T08:28:24.864Z
Learnt from: overheadhunter
PR: cryptomator/cryptomator#3641
File: .github/workflows/win-exe.yml:20-21
Timestamp: 2024-12-11T08:28:24.864Z
Learning: In the Cryptomator project, it's acceptable to update the JDK version (e.g., to JDK 23) while keeping the JavaFX version at an older version (e.g., JavaFX 22.0.2), as this has not caused problems in the past.

Applied to files:

  • pom.xml
🔇 Additional comments (4)
.github/workflows/mac-dmg.yml (1)

154-154: License generation simplification LGTM

Invocation without platform property is fine and consistent with other workflows.

.github/workflows/win-exe.yml (3)

100-100: Dropping -Djavafx.platform is correct; verify CI JDK vs JFX 25

Looks good. Please confirm building/packaging with JDK 24 is intended with JavaFX 25. Consider bumping CI to JDK 25 for consistency.

You can reuse the script provided in the mac workflow comment to audit pom and workflow JDK versions.


222-230: MSI license generation simplification LGTM

Consistent with other workflows; no platform flag needed.


319-327: EXE license generation simplification LGTM

Matches MSI step; good.

@infeo infeo self-assigned this Oct 14, 2025
@infeo infeo merged commit e3f6b5f into develop Oct 14, 2025
6 checks passed
@infeo infeo deleted the feature/jfx-25 branch October 14, 2025 11:15
@coderabbitai coderabbitai bot mentioned this pull request Oct 17, 2025
@coderabbitai coderabbitai bot mentioned this pull request Nov 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove "sun-misc-unsafe-memory-access=allow"

1 participant