Skip to content

Conversation

@trancexpress
Copy link
Contributor

No description provided.

@laeubi
Copy link
Contributor

laeubi commented Oct 7, 2025

/request-license-review

@github-actions
Copy link
Contributor

github-actions bot commented Oct 7, 2025

/request-license-review

⚠️ Failed to request review of not vetted licenses.

Workflow run (with attached summary files):
https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/actions/runs/18307234071

@laeubi
Copy link
Contributor

laeubi commented Oct 7, 2025

Build fails with

Target definition is not well-formed XML: The element type "version" must be terminated by the matching end-tag "</version>"

Copy link
Contributor

@merks merks left a comment

Choose a reason for hiding this comment

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

Probably we should avoid duplicates and unnecessary whitespace changes.

@trancexpress
Copy link
Contributor Author

/request-license-review

Let me get the build to work locally, then we can do this. Likely the set of libraries will change.

@merks
Copy link
Contributor

merks commented Oct 7, 2025

@trancexpress

I had similar problems locally when updating Orbit. Just at a glance I noticed you added 11 things but in Orbit I only added 10 things:

https://github.com/eclipse-orbit/orbit-simrel/blob/db315d1b0b270ed6e5350ce209cf8780bcf44a1a/maven-osgi/tp/Maven.target#L1337-L1468

Maybe I missed something? Or maybe one of the things you added was bogus (which happened to me too).

Maybe this summary helps:

image

https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/table.html

@trancexpress
Copy link
Contributor Author

I had similar problems locally when updating Orbit. Just at a glance I noticed you added 11 things but in Orbit I only added 10 things:

Maybe I missed something? Or maybe one of the things you added was bogus (which happened to me too).

One of the libraries is removed (junit-platform-runner), I overlooked that. Likely that is the difference.

@trancexpress
Copy link
Contributor Author

trancexpress commented Oct 7, 2025

[ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:5.0.0:validate-classpath (default-validate-classpath) on project org.eclipse.test: Execution default-validate-classpath of goal org.eclipse.tycho:tycho-compiler-plugin:5.0.0:validate-classpath failed: org.osgi.framework.BundleException: Bundle org.eclipse.test cannot be resolved:org.eclipse.test [147]
[ERROR]   Unresolved requirement: Import-Package: org.junit.platform.commons.util
[ERROR] 
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:5.0.0:validate-classpath (default-validate-classpath) on project org.eclipse.test: Execution default-validate-classpath of goal org.eclipse.tycho:tycho-compiler-plugin:5.0.0:validate-classpath failed: org.osgi.framework.BundleException: Bundle org.eclipse.test cannot be resolved:org.eclipse.test [147]
  Unresolved requirement: Import-Package: org.junit.platform.commons.util

With the latest changes.

Should be coming from here: https://mvnrepository.com/artifact/org.junit.platform/junit-platform-commons/6.0.0

Manifest-Version: 1.0
Build-Date: 2025-09-30
Build-Revision: 4f7959463a5bc1fc6a1150aefcbf1ff42927a18e
Build-Time: 09:57:55.923+0200
Built-By: JUnit Team
Bundle-ManifestVersion: 2
Bundle-Name: JUnit Platform Commons
Bundle-SymbolicName: junit-platform-commons
Bundle-Version: 6.0.0
Created-By: 25 (Eclipse Adoptium 25+36-LTS)
Export-Package: [..] org.junit.platform.commons.util;version="6.0.0";statu
 s=INTERNAL;mandatory:=status;uses:="org.apiguardian.api,org.jspecify.
 annotations,org.junit.platform.commons,org.junit.platform.commons.fun
 ction,org.junit.platform.commons.io,org.junit.platform.commons.suppor
 t.scanning"

https://docs.junit.org/snapshot/api/org.junit.platform.commons/org/junit/platform/commons/util/ExceptionUtils.html

DISCLAIMER Link icon

These utilities are intended solely for usage within the JUnit framework itself. Any usage by external parties is not supported. Use at your own risk!

$ git grep org.junit.platform.commons.util
eclipse.platform.releng/bundles/org.eclipse.test/META-INF/MANIFEST.MF: org.junit.platform.commons.util,
eclipse.platform.releng/bundles/org.eclipse.test/src/org/eclipse/test/LegacyXmlResultFormatter.java:import org.junit.platform.commons.util.ExceptionUtils;
	/**
	 * Read the stacktrace of the supplied {@link Throwable} into a String.
	 */
	public static String readStackTrace(Throwable throwable) {
		Preconditions.notNull(throwable, "Throwable must not be null");
		StringWriter stringWriter = new StringWriter();
		try (PrintWriter printWriter = new PrintWriter(stringWriter)) {
			throwable.printStackTrace(printWriter);
		}
		return stringWriter.toString();
	}

I guess we can replace the call with just the contents of the method... Its nothing special.

@iloveeclipse
Copy link
Member

I guess we can replace the call with just the contents of the method... Its nothing special.

Yes, please. It's even under same EPL.

@laeubi
Copy link
Contributor

laeubi commented Oct 7, 2025

I guess we can replace the call with just the contents of the method... Its nothing special.

I'm not sure what is the suggestion here? We should really not "reimplement" what JUnit already offers, if there is any issue in the usage of the JUnit in client code then it should be reported to JUnit team.

If it is in the code we use to run the JUnit platform then it exactly falls under

These utilities are intended solely for usage within the JUnit framework itself.

and we should just include whats required here.

@trancexpress
Copy link
Contributor Author

trancexpress commented Oct 7, 2025

I'm not sure what is the suggestion here? We should really not "reimplement" what JUnit already offers, if there is any issue in the usage of the JUnit in client code then it should be reported to JUnit team.

diff --git a/eclipse.platform.releng/bundles/org.eclipse.test/META-INF/MANIFEST.MF b/eclipse.platform.releng/bundles/org.eclipse.test/META-INF/MANIFEST.MF
index c77d2d68a4..f8ea7bbc71 100644
--- a/eclipse.platform.releng/bundles/org.eclipse.test/META-INF/MANIFEST.MF
+++ b/eclipse.platform.releng/bundles/org.eclipse.test/META-INF/MANIFEST.MF
@@ -20,7 +20,6 @@ Import-Package: org.junit.jupiter.api,
  org.junit.platform.launcher,
  org.junit.platform.launcher.core,
  org.junit.platform.commons,
- org.junit.platform.commons.util,
  org.junit.jupiter.engine
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-17
diff --git a/eclipse.platform.releng/bundles/org.eclipse.test/src/org/eclipse/test/LegacyXmlResultFormatter.java b/eclipse.platform.releng/bundles/org.eclipse.test/src/org/eclipse/test/LegacyXmlResultFormatter.java
index 0c4b1c3cba..bb2b0f4a24 100644
--- a/eclipse.platform.releng/bundles/org.eclipse.test/src/org/eclipse/test/LegacyXmlResultFormatter.java
+++ b/eclipse.platform.releng/bundles/org.eclipse.test/src/org/eclipse/test/LegacyXmlResultFormatter.java
@@ -15,7 +15,9 @@ package org.eclipse.test;
 
 import java.io.IOException;
 import java.io.OutputStream;
+import java.io.PrintWriter;
 import java.io.Reader;
+import java.io.StringWriter;
 import java.util.Date;
 import java.util.Map;
 import java.util.Optional;
@@ -333,7 +335,11 @@ public class LegacyXmlResultFormatter extends AbstractJUnitResultFormatter {
                                writer.writeAttribute(ATTR_TYPE, t.getClass().getName());
 
                                if (writeExceptionStackTrace) {
-                                       writer.writeCharacters(ExceptionUtils.readStackTrace(t));
+                                       StringWriter stringWriter = new StringWriter();
+                                       try (PrintWriter printWriter = new PrintWriter(stringWriter)) {
+                                               t.printStackTrace(printWriter);
+                                       }
+                                       writer.writeCharacters(stringWriter.toString());
                                }
                        }
                        writer.writeEndElement();

If it is in the code we use to run the JUnit platform then it exactly falls under

These utilities are intended solely for usage within the JUnit framework itself.

and we should just include whats required here.

This is not how I understand "internal" code, but what is your proposal? Do we have a way to avoid the error from my comment with some MANIFEST.MF change?

Or from your POV we ask the JUnit contributors to relax the restriction on the package?

@laeubi
Copy link
Contributor

laeubi commented Oct 7, 2025

If the code at eclipse call that function its of course possible to replace that call (and remove the import)
If it is a transitive dependency then we can not do much of it and need to include the dependency (as we do not activly use it by our self.

@iloveeclipse
Copy link
Member

It is not transitive, and just used internally in the test bundle.

@merks
Copy link
Contributor

merks commented Oct 7, 2025

As I understand it, we use just one method in one place . We do similar things elsewhere already, e.g., org.eclipse.core.internal.utils.Policy.debug(Throwable), so let's not lose sleep over "copying" some trivial method where any idiot programmer would come up with the same method implementation from a "clean room" design. Let's copy the one from org.eclipse.core.internal.utils.Policy.debug(Throwable), adapt it to our needs, and call it done.

@trancexpress
Copy link
Contributor Author

trancexpress commented Oct 7, 2025

OK, the platform build is successful with the current changes. I'm building with:

mvn -e clean install -pl :eclipse-sdk-prereqs,:org.eclipse.jdt.core.compiler.batch -Dmaven.repo.local=/tmp/.m2/repository -DlocalEcjVersion=99.99
mvn -e clean verify -Pbree-libs -DaggregatorBuild=true -DskipTests=true -Dmaven.repo.local=/tmp/.m2/repository -Dcbi-ecj-version=99.99

I'll check if anything is broken w.r.t. using JUnit tests.

Seems like more is needed to actually add the bundles to the SDK, I only find the JUnit 5 in the build:

$ ls -la ./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products/org.eclipse.sdk.ide/linux/gtk/x86_64/eclipse/plugins/*jupiter*
-rw-rw-r-- 1 sandreev users 242442 Oct  7 15:32 ./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products/org.eclipse.sdk.ide/linux/gtk/x86_64/eclipse/plugins/junit-jupiter-api_5.14.0.jar
-rw-rw-r-- 1 sandreev users 247833 Oct  7 15:32 ./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products/org.eclipse.sdk.ide/linux/gtk/x86_64/eclipse/plugins/junit-jupiter-api.source_5.14.0.jar
-rw-rw-r-- 1 sandreev users 341011 Oct  7 15:32 ./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products/org.eclipse.sdk.ide/linux/gtk/x86_64/eclipse/plugins/junit-jupiter-engine_5.14.0.jar
-rw-rw-r-- 1 sandreev users 168220 Oct  7 15:32 ./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products/org.eclipse.sdk.ide/linux/gtk/x86_64/eclipse/plugins/junit-jupiter-engine.source_5.14.0.jar
-rw-rw-r-- 1 sandreev users  28147 Oct  7 15:32 ./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products/org.eclipse.sdk.ide/linux/gtk/x86_64/eclipse/plugins/junit-jupiter-migrationsupport_5.14.0.jar
-rw-rw-r-- 1 sandreev users  24555 Oct  7 15:32 ./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products/org.eclipse.sdk.ide/linux/gtk/x86_64/eclipse/plugins/junit-jupiter-migrationsupport.source_5.14.0.jar
-rw-rw-r-- 1 sandreev users 661726 Oct  7 15:32 ./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products/org.eclipse.sdk.ide/linux/gtk/x86_64/eclipse/plugins/junit-jupiter-params_5.14.0.jar
-rw-rw-r-- 1 sandreev users 135369 Oct  7 15:32 ./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products/org.eclipse.sdk.ide/linux/gtk/x86_64/eclipse/plugins/junit-jupiter-params.source_5.14.0.jar
$ find . -name "*6.0.0*"
./eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/target/repository/plugins/junit-jupiter-api.source_6.0.0.jar
./eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/target/repository/plugins/junit-jupiter-api_6.0.0.jar
./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/repository/plugins/junit-jupiter-api.source_6.0.0.jar
./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/repository/plugins/junit-jupiter-api_6.0.0.jar

I don't see what though: https://bugs.eclipse.org/bugs/show_bug.cgi?id=521750

Maybe we are missing dependencies to the new bundles... For JUnit 5 they were added (I think) with: eclipse-jdt/eclipse.jdt@ddf4de8

@trancexpress
Copy link
Contributor Author

/request-license-review

@github-actions
Copy link
Contributor

github-actions bot commented Oct 7, 2025

/request-license-review

✔️ All licenses already successfully vetted.

Workflow run (with attached summary files):
https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/actions/runs/18315788241

@trancexpress
Copy link
Contributor Author

@merks maybe it will be faster to just ask you, where do we include JUnit now? So that its actually added in the SDK. I see its no longer in the JDT feature: eclipse-jdt/eclipse.jdt@bae402e

Copy link
Contributor

@merks merks left a comment

Choose a reason for hiding this comment

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

It looks okay. The whitespace change in the *.target is a nitty annoyance, but one we could overlook.

@trancexpress
Copy link
Contributor Author

It looks okay. The whitespace change in the *.target is a nitty annoyance, but one we could overlook.

But if I build from the aggregator repository, the resulting SDK doesn't have JUnit 6.

What next changes do we need so that JUnit 6 actually lands in the built product? I want to test what breaks, if anything.

@merks
Copy link
Contributor

merks commented Oct 7, 2025

@merks maybe it will be faster to just ask you, where do we include JUnit now? So that its actually added in the SDK. I see its no longer in the JDT feature: eclipse-jdt/eclipse.jdt@bae402e

The repository is configured by the SDK product which directs it to include all dependencies and all sources:

image

So it could be problematic which bundles actually would end up in the result. I'd be a bit concerned about that.

If we plan for JDT to support 5.x and 6.x the dependencies of the bundles themselves should be such that both versions are dragged into the final result (like for junit 4).

@merks
Copy link
Contributor

merks commented Oct 7, 2025

But if I build from the aggregator repository, the resulting SDK doesn't have JUnit 6.

That's kind of what I would expect (and hope). I would have assumed that consumers of junit 5 typically have upper bounds that exclude 6.x, but that seems most often not the case. E.g., things like this:

image

Is there some agree-to plan to abandon JUnit?

@iloveeclipse
Copy link
Member

iloveeclipse commented Oct 7, 2025

Is there some agree-to plan to abandon JUnit?

You mean JUnit 5? No. Otherwise we will lose the ability to run tests on Java < 17

@trancexpress
Copy link
Contributor Author

trancexpress commented Oct 7, 2025

But if I build from the aggregator repository, the resulting SDK doesn't have JUnit 6.

That's kind of what I would expect (and hope). I would have assumed that consumers of junit 5 typically have upper bounds that exclude 6.x, but that seems most often not the case. E.g., things like this:
image

So we need some plug-in to have a MANIFEST.MF that requires a JUnit 6 bundle ([6.0,7.0))? Then (assuming all are depended on) we would have the new bundles in the platform?

Is there some agree-to plan to abandon JUnit?

Which version of JUnit? If you mean JUnit 5, no, we will have it in parallel to JUnit 6 by the looks of it: eclipse-jdt/eclipse.jdt.ui#2530

Since JUnit 6 can't run on Java 8 and Java 11.

@merks
Copy link
Contributor

merks commented Oct 7, 2025

So we need some plug-in to have a MANIFEST.MF that requires a JUnit 6 bundle ([6.0,7.0))? Then (assuming all are depended on) we would have the new bundles in the platform?

Yes if some things require < 6 and nothing requires >=6 then the transitive closure does need 6.x so won’t include it.

So I think this PR is a step in the right direction for making 6.x available for upcoming jdt changes. Note that 6.x does not need to be in the I-build result. The root pom will be published and subsequent builds will have the target platform changes of this commit available and that is sufficient.

@trancexpress
Copy link
Contributor Author

So I think this PR is a step in the right direction for making 6.x available for upcoming jdt changes. Note that 6.x does not need to be in the I-build result. The root pom will be published and subsequent builds will have the target platform changes of this commit available and that is sufficient.

Should I look for the MANIFEST.MF from which this is coming from?

$ find . -name "*6.0.0*"
./eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/target/repository/plugins/junit-jupiter-api.source_6.0.0.jar
./eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/target/repository/plugins/junit-jupiter-api_6.0.0.jar
./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/repository/plugins/junit-jupiter-api.source_6.0.0.jar
./eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/repository/plugins/junit-jupiter-api_6.0.0.jar

Seems like something we should fix before merging, ensuring junit-jupiter-api is depended on only [5.0,6.0)] for the current code bases.

@merks
Copy link
Contributor

merks commented Oct 7, 2025

What I see is a bit of a horror show with mostly no bounds or no upper bounds even in places where you surely one would expect them:

image

I think "fixing" this as a prerequisite to this PR is an ocean boiling exercise. Maybe in fact nothing is broken? Maybe only a few things need attention in JDT/PDE?

Given M1 is out the door and M2 is some way off, we maybe should bite the bullet and try to move forward more quickly. The *.target changes are easy to revert...

@trancexpress trancexpress marked this pull request as ready for review October 7, 2025 16:47
@trancexpress
Copy link
Contributor Author

trancexpress commented Oct 7, 2025

OK, let me check then, maybe its simple. Matches I find for junit-jupiter-api (the one that is present in the built SDK with version 6.0.0), in the aggregator repository and its submodules:

In directory: eclipse.jdt.ui/
org.eclipse.jdt.junit.core/src/org/eclipse/jdt/internal/junit/buildpath/BuildPathSupport.java:                  "junit-jupiter-api", new VersionRange("[5.0.0,6.0.0)"), null, "junit-jupiter-api_5.*.jar", "junit-jupiter-api.source", "", //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$//$NON-NLS-5$
org.eclipse.jdt.junit.core/src/org/eclipse/jdt/junit/launcher/JUnitLaunchConfigurationDelegate.java:                                    if (!Arrays.stream(classpath).anyMatch(s -> s.contains("junit-jupiter-api") || s.contains("org.junit.jupiter.api"))) { //$NON-NLS-1$ //$NON-NLS-2$
org.eclipse.jdt.junit.core/src/org/eclipse/jdt/junit/launcher/JUnitLaunchConfigurationDelegate.java:                                                    JUnitRuntimeClasspathEntry x= new JUnitRuntimeClasspathEntry("junit-jupiter-api", null); //$NON-NLS-1$
org.eclipse.jdt.junit5.runtime/META-INF/MANIFEST.MF: junit-jupiter-api;bundle-version="5.4.0",
org.eclipse.jdt.text.tests/META-INF/MANIFEST.MF: junit-jupiter-api
org.eclipse.jdt.ui.tests.refactoring/META-INF/MANIFEST.MF: junit-jupiter-api
org.eclipse.jdt.ui.tests/META-INF/MANIFEST.MF: junit-jupiter-api
org.eclipse.jdt.ui.unittest.junit/src/org/eclipse/jdt/ui/unittest/junit/launcher/JUnitLaunchConfigurationDelegate.java:                                                 .anyMatch(s -> s.contains("junit-jupiter-api") || s.contains("org.junit.jupiter.api"))) { //$NON-NLS-1$ //$NON-NLS-2$
org.eclipse.jdt.ui.unittest.junit/src/org/eclipse/jdt/ui/unittest/junit/launcher/JUnitLaunchConfigurationDelegate.java:                                                 JUnitRuntimeClasspathEntry x = new JUnitRuntimeClasspathEntry("junit-jupiter-api", //$NON-NLS-1$
/data/tmp/jep4266/eclipse.platform.releng.aggregator
In directory: eclipse.pde/
ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/RequiredPluginsClasspathContainer.java:                       "junit-jupiter-api", // BSN of the bundle from Maven-Central
ui/org.eclipse.pde.junit.runtime.tests/pom.xml:                                                         <id>junit-jupiter-api</id>
ui/org.eclipse.pde.junit.runtime.tests/test-bundles/verification.tests.junit4.platform/META-INF/MANIFEST.MF: junit-jupiter-api;bundle-version="5.4.0"
ui/org.eclipse.pde.junit.runtime.tests/test-bundles/verification.tests.junit5/META-INF/MANIFEST.MF:Require-Bundle: junit-jupiter-api;bundle-version="5.4.0"
ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/java/JavaResolutionFactory.java:                                       return new String[] { "org.junit", "junit-jupiter-api" }; //$NON-NLS-1$ //$NON-NLS-2$
/data/tmp/jep4266/eclipse.platform.releng.aggregator
In directory: eclipse.platform/
runtime/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/harness/session/customization/CustomSessionConfigurationImpl.java:              addBundle(org.junit.jupiter.api.Test.class); // junit-jupiter-api
runtime/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/ConfigurationSessionTestSuite.java:             addBundle(org.junit.jupiter.api.Test.class); // junit-jupiter-api
/data/tmp/jep4266/eclipse.platform.releng.aggregator
In directory: eclipse.platform.releng.prereqs.sdk/
eclipse-sdk-prereqs.target:                               <artifactId>junit-jupiter-api</artifactId>
eclipse-sdk-prereqs.target:                               <artifactId>junit-jupiter-api</artifactId>
/data/tmp/jep4266/eclipse.platform.releng.aggregator
In directory: eclipse.platform.releng.tychoeclipsebuilder/
eclipse-junit-tests/eclipse-junit-tests.product:      <plugin id="junit-jupiter-api"/>
eclipse/apiexclude/exclude_list_external.txt:junit-jupiter-api
/data/tmp/jep4266/eclipse.platform.releng.aggregator
In directory: eclipse.platform.swt/
tests/org.eclipse.swt.tests.gtk/META-INF/MANIFEST.MF:Require-Bundle: junit-jupiter-api,
tests/org.eclipse.swt.tests/META-INF/MANIFEST.MF: junit-jupiter-api;bundle-version="5.12.0",
/data/tmp/jep4266/eclipse.platform.releng.aggregator
In directory: eclipse.platform.ui/
tests/org.eclipse.e4.ui.workbench.addons.swt.test/META-INF/MANIFEST.MF: junit-jupiter-api;bundle-version="5.11.4",
tests/org.eclipse.ui.genericeditor.tests/META-INF/MANIFEST.MF: junit-jupiter-api,
/data/tmp/jep4266/eclipse.platform.releng.aggregator
In directory: equinox/
Binary file bundles/org.eclipse.osgi.tests/test_files/containerTests/big.state matches
Binary file bundles/org.eclipse.osgi.tests/test_files/containerTests/sdk202509.state matches

Of these, the MANIFEST.MF matches are:

org.eclipse.jdt.junit5.runtime/META-INF/MANIFEST.MF: junit-jupiter-api;bundle-version="5.4.0",
org.eclipse.jdt.text.tests/META-INF/MANIFEST.MF: junit-jupiter-api
org.eclipse.jdt.ui.tests.refactoring/META-INF/MANIFEST.MF: junit-jupiter-api
org.eclipse.jdt.ui.tests/META-INF/MANIFEST.MF: junit-jupiter-api
ui/org.eclipse.pde.junit.runtime.tests/test-bundles/verification.tests.junit4.platform/META-INF/MANIFEST.MF: junit-jupiter-api;bundle-version="5.4.0"
ui/org.eclipse.pde.junit.runtime.tests/test-bundles/verification.tests.junit5/META-INF/MANIFEST.MF:Require-Bundle: junit-jupiter-api;bundle-version="5.4.0"
tests/org.eclipse.swt.tests.gtk/META-INF/MANIFEST.MF:Require-Bundle: junit-jupiter-api,
tests/org.eclipse.swt.tests/META-INF/MANIFEST.MF: junit-jupiter-api;bundle-version="5.12.0",
tests/org.eclipse.e4.ui.workbench.addons.swt.test/META-INF/MANIFEST.MF: junit-jupiter-api;bundle-version="5.11.4",
tests/org.eclipse.ui.genericeditor.tests/META-INF/MANIFEST.MF: junit-jupiter-api,

So concerning, at least in the aggregator repository:

org.eclipse.jdt.text.tests/META-INF/MANIFEST.MF: junit-jupiter-api
org.eclipse.jdt.ui.tests.refactoring/META-INF/MANIFEST.MF: junit-jupiter-api
org.eclipse.jdt.ui.tests/META-INF/MANIFEST.MF: junit-jupiter-api
tests/org.eclipse.swt.tests.gtk/META-INF/MANIFEST.MF:Require-Bundle: junit-jupiter-api,
tests/org.eclipse.ui.genericeditor.tests/META-INF/MANIFEST.MF: junit-jupiter-api,

I'll try adding version [5.0,6.0) for these and see if the 6.0 jar is gone.

The other matches seem to be outdated, I'm not sure how their versions are satisfied. We should have 5.14 in the platform.

@trancexpress
Copy link
Contributor Author

I'll try adding version [5.0,6.0) for these and see if the 6.0 jar is gone.

No difference, junit-jupiter-api_6.0.0.jar is still in the built repository.

If I build on master, the jar is not in the build results...

@merks
Copy link
Contributor

merks commented Oct 7, 2025

Personally I would merge and deal with the fallout afterwards. Do you need someone else to push the green button?

@trancexpress
Copy link
Contributor Author

trancexpress commented Oct 7, 2025

Personally I would merge and deal with the fallout afterwards.

Well the SDK itself doesn't have junit-jupiter-api 6.0.0, its "only" in the built repository. I also checked adding JUnit to a plug-in project and a Java project, running tests, that works fine - when using the built SDK.

Do you need someone else to push the green button?

@iloveeclipse are we merging this now? From my POV we are not in a rush here, I still need to add dependencies to JUnit 6 and check what happens with the built SDK - if there are bugs due to having 2 bundles with the same symbolic name of most JUnit 5/6 jars. So I'm not sure merging this now will help much with adding JUnit 6 support. But we will find problems with this particular change sooner...

@merks
Copy link
Contributor

merks commented Oct 7, 2025

To my thinking finding problems sooner rather than later is better.

@iloveeclipse
Copy link
Member

To my thinking finding problems sooner rather than later is better.

Agree. The change here shouldn't be breaking, and if it is, better to be informed ASAP. Let's merge ans see what happens with tests tomorrow.

@iloveeclipse iloveeclipse merged commit 44c1250 into eclipse-platform:master Oct 7, 2025
6 checks passed
@iloveeclipse
Copy link
Member

Let's merge ans see what happens with tests tomorrow.

SDK tests seem to be not affected, however looking on these strange failures I fear they could be related: eclipse-platform/eclipse.platform.ui#3382 (comment)

HannesWell added a commit to HannesWell/eclipse.platform.releng.aggregator that referenced this pull request Nov 25, 2025
The version of the org.eclipse.sdk.tests feature was increased twice in
this release cycle and therefore isn't properly updated in the release
preparation anymore.
To unbreak the release preparation it's misaligned version is
temporarily ignored/accepted.

Caused by
- eclipse-platform#3399
id="org.eclipse.sdk.tests"
label="%featureName"
version="4.38.0.qualifier"
version="4.38.100.qualifier"
Copy link
Member

Choose a reason for hiding this comment

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

This version increment should not be necessary (a enforced qualifier-update, if necessary at all, could probably have been sufficient).
In general this version should be aligned with the eclipse release version and the current state breaks the release preparation workflow (respectively the workflow detects the missing version increment and fails).

This is work-around with

HannesWell added a commit that referenced this pull request Nov 25, 2025
The version of the org.eclipse.sdk.tests feature was increased twice in
this release cycle and therefore isn't properly updated in the release
preparation anymore.
To unbreak the release preparation it's misaligned version is
temporarily ignored/accepted.

Caused by
- #3399
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.

5 participants