-
Notifications
You must be signed in to change notification settings - Fork 177
Fix svg fragment build #2077
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix svg fragment build #2077
Conversation
Ensure that the applicable implementation fragments are available for svg fragment Part of eclipse-platform/eclipse.platform.releng.aggregator#3006
In case this does not solve the problem, we may adopt what we found when taking a look at the same problem popping up when trying to get the aggregator build working with GHA: eclipse-platform/eclipse.platform.releng.aggregator#2999 |
FYI. We tested this with a local build where it worked. |
Test Results 539 files ±0 539 suites ±0 29m 45s ⏱️ -3s For more details on these failures, see this check. Results for commit 626d012. ± Comparison against base commit dcc8cd1. |
I see the ci build successfully built the svg jar. |
Alright. You just need to make sure that you locally build against a clean m2 cache as otherwise the SWT fragments will be taken from there. |
Windows test failure unrelated. Merging. |
Can you explain what you believe is the potential problem? Why would the fragments come from the cache instead of the reactor. Isn't it the case that the classpath seen by the fragment comes from the host, org.eclipse.swt, and it has very strict requirements on the specific current versions of the swt fragments via its p2.inf? |
I have to admit that I did not really understand the caused yet but just started analyzing the symptoms to get some overview. What I found is that when installing the SWT bundles/fragments to the used m2 cache before executing the aggregator build, it work, whereas without the preceding installation it fails with the error we have seen here. What we also see is that when executing the aggregator build with profile build-individual-bundles, the build order is correct and SVG fragment is successfully built after the native fragments. When taking a look at the SWT fix, I think it might even be the right thing to do. If I am not mistaken, we basically wanted to achieve the exact same thing with using the local-build-fragment as parent but that only works with the above mentioned profile being activated, which is not the case for the aggregator build. What just came into my mind: when having these requirements via p2.inf added, can you still just install, e.g., the native Windows fragment and the SVG fragment to start an application or will you be forced to now have all native fragments installed? |
Keep in mind that the host has the same requirements on the fragments: They are just augmented with a slightly more complex filter:
The additional Adding these almost-the-same requirements to the svg fragment will have no different impact at install time other than to force the appropriate native fragment to be installed, which is kind of redundant because the those must also be installed because the host already has the necessary requirements. Moreover the host has very strict version range requirements, so the svg requirements without version constraints are not actually going to allow an arbitrary version of the fragment to be installed because the host ensures that an exactly-matching native one is installed. So the only purpose of these requirements is to convince Tycho to build the native fragments before the svg fragment which is the goal here. I don't think this will impact which version of fragment (from reactor or from .m2 cache) s used to compile the code. |
Thank you for the great explanation!
That's the part I mentally skipped as I thought there would be a requirement to all fragments and not only the one fitting the current platform. And the So everything is obviously fine as is. We originally added the |
Ensure that the applicable implementation fragments are available for svg fragment
Part of
eclipse-platform/eclipse.platform.releng.aggregator#3006