eclipse-equinox / equinox.bundles

Eclipse Public License 2.0
8 stars 16 forks source link

Move equinox.server.p2 into p2 repository #42

Closed HannesWell closed 2 years ago

HannesWell commented 2 years ago

In https://github.com/eclipse-equinox/equinox.bundles/pull/40#issuecomment-1116670974 it was discussed to move the o.e.equinox.server.p2 feature into the p2 repository since it mainly consists of p2 plug-ins and therefore should reside in the same repository.

This the removal part of the move. The feature is added to p2 in https://github.com/eclipse-equinox/p2/pull/62.

HannesWell commented 2 years ago

Fails with:

[ERROR] Cannot resolve project dependencies:
[ERROR]   Software being installed: org.eclipse.equinox.serverside.sdk.feature.group 3.23.400.qualifier
[ERROR]   Missing requirement: org.eclipse.equinox.server.p2.feature.group 1.12.500.v20220426-1329 requires 'org.eclipse.equinox.p2.iu; org.eclipse.equinox.preferences [3.9.200.v20220426-1329,3.9.200.v20220426-1329]' but it could not be found
[ERROR]   Missing requirement: org.eclipse.equinox.server.p2.feature.group 1.12.500.v20220502-1248 requires 'org.eclipse.equinox.p2.iu; org.eclipse.equinox.preferences [3.10.0.v20220502-1248,3.10.0.v20220502-1248]' but it could not be found
[ERROR]   Missing requirement: org.eclipse.equinox.server.p2.feature.group 1.12.500.v20220503-2330 requires 'org.eclipse.equinox.p2.iu; org.eclipse.equinox.preferences [3.10.0.v20220503-1634,3.10.0.v20220503-1634]' but it could not be found
[ERROR]   Cannot satisfy dependency: org.eclipse.equinox.serverside.sdk.feature.group 3.23.400.qualifier depends on: org.eclipse.equinox.p2.iu; org.eclipse.equinox.server.p2.feature.group 0.0.0

We probably have to wait for a quiet day (or at least after an I-build?) or have to force this into the repo?

mickaelistria commented 2 years ago

What is this org.eclipse.equinox.serverside.sdk feature? does it really have to depend on p2? cc @tjwatson

tjwatson commented 2 years ago

What is this org.eclipse.equinox.serverside.sdk feature? does it really have to depend on p2? cc @tjwatson

I honestly never understood how that feature got used "for real". IIRC it was an attempt to allow p2 to be used to manage an installation based inside of a WAR that embeds the equinox platform.

Perhaps something we should announce for removal.

HannesWell commented 2 years ago

What is this org.eclipse.equinox.serverside.sdk feature? does it really have to depend on p2? cc @tjwatson

I honestly never understood how that feature got used "for real". IIRC it was an attempt to allow p2 to be used to manage an installation based inside of a WAR that embeds the equinox platform.

Perhaps something we should announce for removal.

If there is no real use case I'm also in favor to remove it.

For now I thought more about the failure cause and it looks like this is a general problem because with the suggested move (but the same applies for the suggested simplification in PR https://github.com/eclipse-equinox/equinox.bundles/pull/40): The serverside.sdk feature requires the server.p2 feature (from now on) from the equinox.p2-git-repo which it therefore fetches from the I-Build artifact-repo. That feature references a bundle that resides in this repo, but the reference is with a specific build-qualifier while the bundle in the reactor has the generic build-qualifier .qualifier.

I think this could only be solved in Tycho if the resolution of the feature content is also delayed to the time the feature is build and the final build-qualifier of the plug-in is therefore known? cc @laeubi

laeubi commented 2 years ago

This is expected behavior if you use "include" (either feature or bundle) as it resolves to the current build content and thus is resolved at build time. If you don't want that, you should add the bundle/feature as a dependency.

vogella commented 2 years ago

If there is no real use case I'm also in favor to remove it.

Please remove it, in the past I tried to make sense out of it and failed. In the past we had this, if you don't know that this is for, lets not touch it mentality in the project but of course it is better to get rid of stuff we don't know that it is for than to keep dragging its weight along. If it is important for someone this person will speak up after removal and we can restore.

merks commented 2 years ago

I couldn't figure out what it does either....

akurtakov commented 2 years ago

That makes all of us not making any sense of it. IMHO it should be asked at equinox-dev for concrete example how someone uses it and remove after no one provides such.

HannesWell commented 2 years ago

Alright, I created a draft for the removal and announced it on the mailing list:

mickaelistria commented 2 years ago

Should we close this issue as we agreed to simply remove this code?

HannesWell commented 2 years ago

Should we close this issue as we agreed to simply remove this code?

No, I think we should continue with this. We agreed to remove serverside.sdk feature, but this PR is about moving the org.eclipse.equinox.server.p2 to the p2 git-repo. And in contrast to the serverside.sdk the equinox.server.p2 feature seems to be used more often. At least it is used directly instead of the serverside.sdk in https://github.com/eclipse-rap/org.eclipse.rap.tools/pull/8. Furthermore I'm not sure if we would stop publishing some of the p2 plug-ins if the equinox.server.p2 feature would be completely removed.

mickaelistria commented 2 years ago

We agreed to remove serverside.sdk feature, but this PR is about moving the org.eclipse.equinox.server.p2 to the p2 git-repo.

Ack

HannesWell commented 2 years ago

The o.e.equinox.server.p2 feature has been added to the p2-git repo in https://github.com/eclipse-equinox/p2/pull/62, so it is time to submit this PR.