Skip to content

Fetch dependencies using Ivy#1216

Open
tresf wants to merge 44 commits intomasterfrom
ivy
Open

Fetch dependencies using Ivy#1216
tresf wants to merge 44 commits intomasterfrom
ivy

Conversation

@tresf
Copy link
Copy Markdown
Contributor

@tresf tresf commented Nov 11, 2023

Removes dependant libraries from the source repository and fetches them from Maven Central using ivy.

Closes #1387 #1253

@tresf

This comment was marked as outdated.

@tresf

This comment was marked as outdated.

@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Dec 7, 2024

Once mainline has received the new Headless support, we can move to Ivy for good.

This has progressed since opening this PR: #1225 (comment). Since "Headless" requires Java 21 or higher, this PR must be merged with #1222 in order to test the headless libraries.

@tresf tresf changed the base branch from master to jdk21 December 7, 2024 19:02
Base automatically changed from jdk21 to master December 10, 2024 21:35
@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Dec 11, 2024

This PR is in surprisingly good shape... One outstanding issue is that the JavaFX version that we bundle is currently broken for vector (rasterize: false) prints. We're tracking this with the FX team in SUPQZ-20. We'll need a patch to JavaFX before we can continue testing.

javafx.version=24-headless+0-2024-12-02-101029

@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Mar 4, 2025

We're tracking this with the FX team in SUPQZ-20. We'll need a patch to JavaFX before we can continue testing.

The FX team has provided a patch for vector HTML prints, bumping the version and re-testing.

@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Mar 4, 2025

We're tracking this with the FX team in SUPQZ-20. We'll need a patch to JavaFX before we can continue testing.

The FX team has provided a patch for vector HTML prints, bumping the version and re-testing.

So vector prints are fixed, but I've found a bug with raster prints. From what I can tell this issue existed in the last FX snapshot version and I missed it. @akberenz and I spent an hour or so on it, but something with setZoom seems to cause the height on our rasterized-fitted tests to render way too tall. Our tests didn't catch this because the snapshot is actually succeeding, just at an unusual height. Something with the page height calculation is returning values that appear to be using zoom levels from previous snapshots.

@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Mar 5, 2025

We're tracking this with the FX team in SUPQZ-20. We'll need a patch to JavaFX before we can continue testing.

The FX team has provided a patch for vector HTML prints, bumping the version and re-testing.

So vector prints are fixed, but I've found a bug with raster prints. From what I can tell this issue existed in the last FX snapshot version and I missed it. @akberenz and I spent an hour or so on it, but something with setZoom seems to cause the height on our rasterized-fitted tests to render way too tall. Our tests didn't catch this because the snapshot is actually succeeding, just at an unusual height. Something with the page height calculation is returning values that appear to be using zoom levels from previous snapshots.

I was able to reproduce this bug on master branch, so this is no longer a blocker; testing is ready to continue.

@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Mar 25, 2025

Tested macOS, Windows 11, Ubuntu 24.04.

No regressions found. Now we wait for a JDK21 JavaFX "Headless" backport.

@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Aug 1, 2025

Tested macOS, Windows 11, Ubuntu 24.04.

No regressions found. Now we wait for a JDK21 JavaFX "Headless" backport.

Update from the JavaFX team:

Hi Tres, the Headless platform is now merged, and it will be part of JavaFX 26. It goes a bit against the spirit of LTS releases to backport this to 17/21, but there will be little to no technical issues to backport this to 17/21, and even 11 should be doable, I believe. Might be better that we do this in specific versions though. Almost all code for the headless platform is new code in a separate package, so there won't be merge conflicts. The only changes that need to be applied when backporting are due to API changes in parent or related classes.

... so now we await an LTS release.

@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Sep 23, 2025

Slight update... JDK25 LTS has been released! This means we can update to JavaFX 26-ea. Sadly, testing is failing for vector HTML prints (using the maven mirrors). I've reached out to Gluon for help.

@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Oct 6, 2025

Slight update... JDK25 LTS has been released! This means we can update to JavaFX 26-ea. Sadly, testing is failing for vector HTML prints (using the maven mirrors). I've reached out to Gluon for help.

Filed upstream bug report SUPQZ-23. Meanwhile, I've bumped this branch to use the last-working-snapshot version so we can proceed with this branch.

@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Nov 3, 2025

Slight update... JDK25 LTS has been released! This means we can update to JavaFX 26-ea. Sadly, testing is failing for vector HTML prints (using the maven mirrors). I've reached out to Gluon for help.

Filed upstream bug report SUPQZ-23. Meanwhile, I've bumped this branch to use the last-working-snapshot version so we can proceed with this branch.

Upstream says this is fixed, will bump and retest.

The latest releases of JavaFX 26+ea are passing. Looks like ivy branch will soon see the light of day. 🤞

@tresf tresf mentioned this pull request Jan 15, 2026
10 tasks
@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Jan 20, 2026

@Vzor- wrote us some unit tests using TestNG that will fail if we have as much as a single-pixel difference between two raw tests by comparing PDF, image and HTML printing to some baselines. These changes are now live on master branch. I've cherry-picked these to the ivy branch and noticed the following:

  • ✅ Image tests pass
  • ✅ PDF tests pass
  • 🚫 HTML tests fails

Further inspection shows some subtle differences in the way fonts and sub-pixel edges are rendered between JavaFX 19 and JavaFX 26 (pictured below). These are sane. I'm updating the baselines here to match those of JavaFX 26, which will fix the CI.

Before After Diff
before-on-master after-with-ivy overlay using compare

@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Jan 20, 2026

Windows tests are still failing... Weird.

@tresf
Copy link
Copy Markdown
Contributor Author

tresf commented Apr 4, 2026

Hmm... CI is failing but from what I can tell, there's something wrong with the JDK version in the runner. I've opened a dedicated issue with the setup-java@v5 repo here: actions/setup-java#997

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.

Linux Headless: Unable to start JavaFX service

1 participant