Skip to content

Migrate framework to Eclipse E4.41 and update other dependencies - #778

Open
schuessf wants to merge 7 commits into
devfrom
wip/fs/update-target
Open

schuessf wants to merge 7 commits into
devfrom
wip/fs/update-target

Conversation

@schuessf

@schuessf schuessf commented Mar 24, 2026

Copy link
Copy Markdown
Member

#757 previously updated the Eclipse dependencies to E4.37 and consolidated the target files. Building on that work, this update updates the Eclipse dependencies further to E4.41.

To achieve this, several unused feature groups (including some that no longer exist) have been removed from the target file, and the feature.xml files were cleaned up as well. Both changes should simplify future dependency updates.

Additionally, the Maven plugins, covering both the build process and regular dependencies, have been updated.

Note: This PR updates the version number of org.eclipse.equinox.launcher in several files within the Ultimate repo (e.g., Ultimate.py). However, the tool info module in benchexec still needs to be updated, as it also depends on the exact version number (see here), which was also forgotten for the changes in #757. To avoid having to make such changes for every future dependency update, I already implemented a wildcard-based solution: ultimate-pa/benchexec@88b9aa5. If you agree with that approach, I can also open a PR for benchexec.

@schuessf schuessf added enhancement core dependencies Pull requests that update a dependency file labels Mar 24, 2026

@danieldietsch danieldietsch left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Wrt. to benchexec just using any launcher: I think that is ok, but I would not take the highest launcher if it finds multiple ones, but rather crash. It might be that someone copied a newer Ultimate over an older one, and by some miracle it launches. I would prefer then that the wrapper script crashes and tells us that there are multiple launchers.


<requires>
<import feature="BA_FeatureDependenciesCommon"/>
<import feature="BA_FeatureUltimateCommon"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why all these changes to the feature dependencies (also in other features)?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@bahnwaerter changed this in b5bba47, but I don't quite remember why 😉

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I've simplified the feature imports. Transitive dependencies are now supported. This means that an Ultimate product primarily depends on its Ultimate features (e.g., Ultimate Libraries). These, in turn, may depend on further external dependencies. These should then be imported transitively to keep the imports modular. Explicitly listing all transitively dependent imports is no longer necessary.

@schuessf

schuessf commented Mar 24, 2026

Copy link
Copy Markdown
Member Author

Wrt. to benchexec just using any launcher: I think that is ok, but I would not take the highest launcher if it finds multiple ones, but rather crash. It might be that someone copied a newer Ultimate over an older one, and by some miracle it launches.

Sure, I changed it like that (ultimate-pa/benchexec@43634d7).

I would prefer then that the wrapper script crashes and tells us that there are multiple launchers.

Currently, the wrapper script simply runs the specified version of org.eclipse.equinox.launcher without looking for other potentially present versions. I could also adapt adapted it to use wildcards (similar to the change in benchexec), but the version number would still need to be updated in several other files (incl. WebBackend.ini, where a wildcard-based solution is not possible).

@schuessf
schuessf force-pushed the wip/fs/update-target branch from 1adc081 to a0352e1 Compare April 8, 2026 12:40
@schuessf

Copy link
Copy Markdown
Member Author

For reference, I just opened a benchexec PR already: sosy-lab/benchexec#1263
(this allows us to use the current version of Ultimate, and also for this PR)

@schuessf

Copy link
Copy Markdown
Member Author

I just tried to upgrade to Eclipse 2026-09 (E4.41), which was just released. If everything works as expected, I will merge this PR soon.

@bahnwaerter

Copy link
Copy Markdown
Member

The migration to Eclipse 2026-09 (E4.41) should go smoothly, as this release is still based on Java 21. Therefore, there is no need to adjust any configurations of the Eclipse projects (e.g. classpaths).

@schuessf
schuessf force-pushed the wip/fs/update-target branch from d577af6 to 5032fde Compare September 16, 2026 19:36
@schuessf schuessf changed the title Migrate framework to Eclipse E4.39 and update other dependencies Migrate framework to Eclipse E4.41 and update other dependencies Sep 16, 2026
@schuessf

Copy link
Copy Markdown
Member Author

The nightly tests looked fine. As @bahnwaerter already suggested, on dev there are some regression tests writing to standard error (ClassNotFoundException: org.glassfish.jaxb.runtime.v2.JAXBContextFactory cannot be found by com.sun.xml.bind.jaxb-osgi.source_4.0.5, see e.g., here) and this is no more the case for this PR (see here). I just rebased the PR again, and I will merge it after another nightly.

@bahnwaerter

bahnwaerter commented Sep 16, 2026

Copy link
Copy Markdown
Member

That's great to hear that this JAXB exception no longer occurs. The JAXB 4.0.5 package is indeed incorrectly packaged. It is incorrectly referencing the source package (even though this should only be optional). It's great that this problem has now been fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core dependencies Pull requests that update a dependency file enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants