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

Dependency Updates #2209

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions eclipse.platform.releng.prereqs.sdk/eclipse-sdk-prereqs.target
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>2.2</version>
<version>3.0</version>
<type>jar</type>
</dependency>
<dependency>
Expand All @@ -198,13 +198,13 @@
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.13</version>
<version>2.0.15</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.13</version>
<version>2.0.15</version>
<type>jar</type>
</dependency>
<dependency>
Expand All @@ -220,13 +220,13 @@
<dependency>
<groupId>jakarta.el</groupId>
<artifactId>jakarta.el-api</artifactId>
<version>3.0.3</version>
<version>6.0.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>4.0.4</version>
<version>6.1.0</version>
<type>jar</type>
</dependency>
<dependency>
Expand Down Expand Up @@ -310,19 +310,19 @@
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>jakarta.el</artifactId>
<version>3.0.4</version>
<version>4.0.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.mortbay.jasper</groupId>
<artifactId>apache-el</artifactId>
<version>9.0.90</version>
<version>10.1.25</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.mortbay.jasper</groupId>
<artifactId>apache-jsp</artifactId>
<version>9.0.90</version>
<version>10.1.25</version>
<type>jar</type>
</dependency>
</dependencies>
Expand Down Expand Up @@ -776,7 +776,7 @@
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
<version>20040616</version>
Copy link
Contributor

Choose a reason for hiding this comment

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

This seems wrong.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, Maven Central is a bit of a dumping ground where no mistake is ever really gone. The Orbit generators have been carefully tailored to avoid such things, and sometimes special rules (pattern arguments to the generator) are needed to exclude things.

<type>jar</type>
</dependency>
<dependency>
Expand All @@ -798,25 +798,25 @@
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>1.3.5</version>
<version>3.0.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>2.1.1</version>
<version>3.0.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>jakarta.inject</groupId>
<artifactId>jakarta.inject-api</artifactId>
<version>1.0.5</version>
<version>2.0.1.MR</version>
Copy link
Contributor

Choose a reason for hiding this comment

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

We do want to keep the older version (together with newer) here.

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm pretty sure this will break dependencies. And I don't think a .MR version even makes sense:

image

<type>jar</type>
</dependency>
<dependency>
<groupId>jakarta.inject</groupId>
<artifactId>jakarta.inject-api</artifactId>
<version>2.0.1</version>
<version>2.0.1.MR</version>
Copy link
Contributor

Choose a reason for hiding this comment

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

What's MR here?

Copy link
Contributor

Choose a reason for hiding this comment

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

I think the ordering is maybe not implemented correctly?

Copy link
Contributor

Choose a reason for hiding this comment

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

I have checked this one (also will double check with maven devs) but think it is actually correct as MR is only a random qualifier for maven and qualifier > no qualifier (like in OSGi). To make it a real MilestoneRelease it has to be M directly followed by a number (e.g. M1).

What came into my mind would be to have an ignore list of "bad" versions, but semantically this seems correct.

Copy link
Contributor

Choose a reason for hiding this comment

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

Indeed, the Orbit generator has a bunch of rules about bad qualifiers as opposed to expected qualifiers.

image

It's rather adhoc.

Recently I had to add support for including M/RC in the updates, but those are updated if and only if the current version is a M/RC version so that once one is using a released version one is not switched to a M version even if it is greater.

The ordering rules are quite complicated so I keep a test program around where I can test the actual maven implementation's behavior. E.g.,

		System.out.println("###" + new TreeSet<ArtifactVersion>(Arrays.asList(new ArtifactVersion[] { //
				new DefaultArtifactVersion("2.0.1"), //
				new DefaultArtifactVersion("2.0.1.M1"), //
				new DefaultArtifactVersion("2.0.1-M1"), //
				new DefaultArtifactVersion("2.0.1-SNAPSHOT"), //
				new DefaultArtifactVersion("2.0.1.MR"), //
				new DefaultArtifactVersion("2.0.1-MR"), //
				new DefaultArtifactVersion("2.0.1-alpha"), //
				new DefaultArtifactVersion("2.0.1-beta"), //
				new DefaultArtifactVersion("2.0.1-RC11") //
		})));

It prints out the following, so quite a few rules for qualifiers with special meaning and well as the fact that that - versus . for the qualifier separator is considered equal for compareTo if not actually for .equals:

###[2.0.1-alpha, 2.0.1-beta, 2.0.1.M1, 2.0.1-RC11, 2.0.1-SNAPSHOT, 2.0.1, 2.0.1.MR]

Copy link
Contributor

Choose a reason for hiding this comment

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

so that once one is using a released version one is not switched to a M version even if it is greater.

M Versions are not greater than releases, but using MR is simply wrong as this is not a special qualifier for maven (while M1, M2, ... R1, R2, ... and alike) are.

The rule is that you either has to write it out (long form e.g. -alpha) or single char followed by a number.

And _, . and - are considered equal.

<type>jar</type>
</dependency>
<dependency>
Expand Down