Skip to content
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

Prepared Eclipse GEF Classic for 3.23 Devlopements #627 #628

Merged
merged 1 commit into from
Dec 17, 2024

Conversation

azoitl
Copy link
Contributor

@azoitl azoitl commented Dec 14, 2024

  • Update the version number of all features to 3.23.0
  • Bump maintenance version number of all plugins
  • Update the target platform for the API baseline to GEF Classic 3.23.0
  • Update the pom file target platform checking to GEF Classic 3.23.0
  • Update the development target platform to Eclipse 2025-03
  • Added changelog entry
  • Removed outdated api problem filters

#627

@azoitl azoitl requested a review from ptziegler December 14, 2024 18:38
@ptziegler
Copy link
Contributor

ptziegler commented Dec 16, 2024

Just out of interest: What version of the Eclipse IDE are you using?

I always find it weird that a new baseline requires adjustments to the Manifest versions and older versions of the API tooling report false positives due to improperly handling e.g. the Bundle-RequiredExecutionEnvironment entry.

CHANGELOG.md Outdated Show resolved Hide resolved
@azoitl
Copy link
Contributor Author

azoitl commented Dec 16, 2024

Just out of interest: What version of the Eclipse IDE are you using?

I always find it weird that a new baseline requires adjustments to the Manifest versions and older versions of the API tooling report false positives due to improperly handling e.g. the Bundle-RequiredExecutionEnvironment entry.

I'm ussing the Eclipse IDE for Committers:

Eclipse IDE for Eclipse Committers (includes Incubating components)
Version: 2024-12 (4.34.0)
Build id: 20241128-0757

I also don't know why this is necessary. I somehow inherited the process from my predecessor and as it worked I just followed it. Maybe I'm doing unnecessary or wrong things.

@ptziegler
Copy link
Contributor

Eclipse IDE for Eclipse Committers (includes Incubating components)
Version: 2024-12 (4.34.0)
Build id: 20241128-0757
Hm... then that version is probably fine.

I also don't know why this is necessary. I somehow inherited the process from my predecessor and as it worked I just followed it. Maybe I'm doing unnecessary or wrong things.

At least for the WindowBuilder project, I only ever increase the feature versions, unless the API tooling complains for whatever reason. In the end, I don't mind if the Manifests are also updated, as long as it it for a reason that makes sense to me...

@azoitl
Copy link
Contributor Author

azoitl commented Dec 17, 2024

@ptziegler I agree with you that my approach is strange. Changed it back and let's see how it turns out.

@ptziegler
Copy link
Contributor

Error:  org.apache.lucene.analysis-common 10.0.0.v20241213-1200 requires Execution Environment that matches (&(osgi.ee=JavaSE)(version=21)) but the current resolution context uses [a.jre.javase 17.0.0]
Error:  Cannot resolve target definition:
Error:    Software being installed: org.eclipse.sdk.feature.group 4.35.0.v20241215-2025
Error:    Missing requirement: org.apache.lucene.analysis-common 10.0.0.v20241213-1200 requires 'osgi.ee; (&(osgi.ee=JavaSE)(version=21))' but it could not be found
Error:    Cannot satisfy dependency: org.apache.lucene.analysis-smartcn 10.0.0.v20241213-1200 depends on: java.package; org.apache.lucene.analysis.en [10.0.0,11.0.0)
Error:    Cannot satisfy dependency: org.eclipse.help.base 4.4.700.v20241215-1800 depends on: osgi.bundle; org.apache.lucene.analysis-smartcn [9.5.0,11.0.0)
Error:    Cannot satisfy dependency: org.eclipse.help.feature.group 2.3.2100.v20241215-1800 depends on: org.eclipse.equinox.p2.iu; org.eclipse.help.base [4.4.700.v20241215-1800,4.4.700.v20241215-1800]
Error:    Cannot satisfy dependency: org.eclipse.platform.feature.group 4.35.0.v20241215-2025 depends on: org.eclipse.equinox.p2.iu; org.eclipse.help.feature.group [2.3.2100.v20241215-1800,2.3.2100.v20241215-1800]
Error:    Cannot satisfy dependency: org.eclipse.sdk.feature.group 4.35.0.v20241215-2025 depends on: org.eclipse.equinox.p2.iu; org.eclipse.platform.feature.group [4.35.0.v20241215-2025,4.35.0.v20241215-2025]

The Eclipse Platform updated to Lucene 10, which requires at least Java 21...

@azoitl
Copy link
Contributor Author

azoitl commented Dec 17, 2024

that means we also need to upgrade to java 21?

@ptziegler
Copy link
Contributor

ptziegler commented Dec 17, 2024

that means we also need to upgrade to java 21?

That's the part I still don't understand... Technically, the Platform still supports Java 17 if you use Lucene 9.x. But Orbit already has Lucene 10.x, which is then referenced via the Eclipse Help feature in the Eclipse SDK feature...
So effectively, all downstream projects have to at least build with Java 21 or they run into problems.

@merks
Copy link
Contributor

merks commented Dec 17, 2024

The help bundles have also changed their lower bound. There is no need for GEF to change bounds to use Java 21, but you do need your build to support it when using Eclipse 4.35. I think probably it's sufficent to change this in the Jenkinsfile and you might as well plan ahead for the promotion to require Java 21:

image

@ptziegler
Copy link
Contributor

As a workaround, this error is reduced to a warning if you include https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2025-03 in the target platform.

The 2025-03 staging repository doesn't contain org.apache.lucene.analysis-smartcn 9.12.1, which is why p2 can't use this Lucene version.

i.e. something like this should work with both Java 17 and Java 21:

<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
	<repository location="https://download.eclipse.org/staging/2025-03"/>
	<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2025-03"/>
	<unit id="org.eclipse.sdk.feature.group" version="0.0.0"/>
	<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="0.0.0"/>
</location>

As long as we support Java 17, we should also build and test against it... Whether we require Java 21 is then something I'd like to discuss separately.

@merks
Copy link
Contributor

merks commented Dec 17, 2024

For EMF I occasionally test it against older target platforms:

https://ci.eclipse.org/emf/job/all-target-platforms/

I'm not 100% sure how Tycho launches tests but it seems to me that if a test should respect the bounds specified if they are specified using the JRE in the toolchain.

@azoitl
Copy link
Contributor Author

azoitl commented Dec 17, 2024

Tycho is now happy and only issues a warning. However as I didn't increase the minor version api baseline check fails:

[ERROR] Failed to execute goal org.eclipse.tycho.extras:tycho-p2-extras-plugin:4.0.10:compare-version-with-baselines (compare-version-with-baseline) on project org.eclipse.draw2d: Only qualifier changed for (org.eclipse.draw2d/3.18.0.202412171210). Expected to have bigger x.y.z than what is available in baseline (3.18.0.202411181923) -> [Help 1]

@ptziegler
Copy link
Contributor

Tycho is now happy and only issues a warning. However as I didn't increase the minor version api baseline check fails:

I've seen that as well and while I still believe that the API tooling is wrong (as we haven't modified them), I don't think it makes sense to go bug hunting. So your initial PR likely contained everything that needed updating.

@merks
Copy link
Contributor

merks commented Dec 17, 2024

Note that the "only the qualifier has checked" problem can be caused simple by using a new version of ecj. This happens in the platform builds all the time because they often update their ecj version from recent integration builds.

 - Update the version number of all features to 3.23.0
 - Bump maintenance version number of all plugins
 - Update the target platform for the API baseline to GEF Classic 3.23.0
 - Update the pom file target platform checking to GEF Classic 3.23.0
 - Update the development target platform to Eclipse 2025-03
 - Added changelog entry
 - Removed outdated api problem filters

eclipse-gef#627
@azoitl
Copy link
Contributor Author

azoitl commented Dec 17, 2024

I know updated all versions that where complained by Tycho and kept all that where not complained. What do you think?

Copy link
Contributor

@ptziegler ptziegler left a comment

Choose a reason for hiding this comment

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

Looking good. Apologies for this constant back-and-forth with what to update.

@ptziegler ptziegler merged commit 2d4774a into eclipse-gef:master Dec 17, 2024
14 checks passed
@ptziegler ptziegler added this to the 3.23.0 milestone Dec 17, 2024
@azoitl
Copy link
Contributor Author

azoitl commented Dec 17, 2024

No need to apologize, I'm happy to better understand this and make it more correct.

@azoitl azoitl deleted the prepare3_23 branch December 17, 2024 15:41
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.

3 participants