Bug 562482 - Ensure EGit installs out-of-the-box on EPPs without mylyn
Summary: Ensure EGit installs out-of-the-box on EPPs without mylyn
Status: NEW
Alias: None
Product: EGit
Classification: Technology
Component: Mylyn (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-25 13:00 EDT by Thomas Wolf CLA
Modified: 2022-09-07 09:00 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Wolf CLA 2020-04-25 13:00:53 EDT
See https://www.eclipse.org/lists/epp-dev/msg05871.html . After a short discussion Mylyn gets removed from most EPPs: https://git.eclipse.org/r/#/c/161423/ .

At the very least we should restructure the EGit update site such that the Mylyn integration is not in the main category. Otherwise people will just set the checkmark on the main category and the p2 will determine that it cannot install the EGit Mylyn components.

Perhaps rename the "experimental features (incubation)" category to "additional features" and move it there.

BTW, that "incubation" category shows in Eclipse a description "Git integration for Eclipse - experimental features  (incubation) 1.0.0.7_7E-cLUg-6773733A7A3K79" (select it, then look at the Details pane). Where does that strange suffix come from?
Comment 1 Thomas Wolf CLA 2020-05-08 10:59:03 EDT
Just tested this with the M2 Java package: https://www.eclipse.org/downloads/packages/release/2020-06/m2/eclipse-ide-java-developers and the EGit nightly update site.

First, the Mylyn removal apparently isn't complete; it does include the Mylyn Task list (apparently pulled in from Mylyn Wikitext).

Second, of course EGit is no longer installable by simply checking the "Git integration for Eclipse" category: if "Contact all update sites" is unchecked. p2 doesn't find Mylyn Team then.

If "Contact all update sites" _is_ checked, installation would work, but would pull in Mylyn.
Comment 2 Thomas Wolf CLA 2020-05-21 12:08:59 EDT
I don't see a way to structure the EGit p2 update site such that it installs without problems on both a 2020-03 including Mylyn (and EGit 5.7.0) and 2020-06-M2 (not including Mylyn, including EGit 5.8.0-m2).

The goal is to have a clean install with only the EGit category checked, and "Contact all update sites" unchecked.

If I restructure as proposed in comment 0, it upgrades cleanly on the 2020-06-M2 without Mylyn.

But on the 2020-03 (including Mylyn, and including the EGit Mylyn Task integration from EGit 5.7.0) the installer fails to find a solution. The user would have to know what he's doing and build his own solution (upgrade items already installed).

So that's not any better (or arguably even worse).
Comment 3 Michael Keppler CLA 2020-05-24 14:15:27 EDT
Did you try adding a new P2 repo reference to the category.xml, pointing to the mylyn update site?

I must admit I don't know if that _should_ work or not, since I'm not clear whether referenced update sites are still visited or not, when the "contact all update sites" check box is unchecked.

I thought the eclipse.e4.ui reference in the same file was added to make the smart import wizard installation work out of the box, and that was a similar dependency problem, wasn't it?
Comment 4 Thomas Wolf CLA 2020-05-25 05:35:20 EDT
What I'd want is

1. Update EGit Mylyn if it's already installed, whether checked or not
2. Install EGit Mylyn if checked and Mylyn is already installed
3. Don't install EGit Mylyn if Mylyn not installed and the user hasn't
   configured a Mylyn update site (which would indicate that he'd be fine
   with EGit pulling in Mylyn into his Eclipse).

If we simply add the Mylyn update site to our repo, having the EGit Mylyn components checked will pull in Mylyn into the user's Eclipse. With EGit Mylyn in the main EGit category, the chances of that happening are rather high.

With EGit Mylyn in some other category (3) works unless the user explicitly checks EGit Mylyn, but (1) fails if he just checks the main EGit category. So the user would have to open the other category and check EGit Mylyn explicitly. Whence the "whether checked or not" in (1): if we can have that, we can move EGit Mylyn to some other category and still have updates work.
Comment 5 Michael Keppler CLA 2020-05-25 11:20:17 EDT
I'm also in favor of renaming the incubation category and moving it there.

That said, for the update sites there is one more thing to try: features can also point to additional update sites, as I just remembered (tab "Information -> Sites to visit"). However, I have never used that myself. I would assume it works the same like the URL in the category.xml, but not for _every_ feature in the update site, _only_ for the feature containing the URL.

I suggest we add the update site there, rename/move the categories and continue investigating from there, since both steps seem reasonable, independent of whether they give the full solution.

If all else fails, we could also try p2 instructions as mentioned here: https://stackoverflow.com/questions/8254116/adding-update-site-urls-to-find-third-party-dependencies-during-install. I've only used p2 instructions myself to add update site URLs to the user's list of configured update sites when installing a feature, so I'm not able to judge this suggestion.
Comment 6 Michael Keppler CLA 2020-05-26 11:19:30 EDT
One more aspect for the discussion: Where are the packages defined that go into the EPP bundles? We also need to remove egit.mylyn from all of those. See https://www.eclipse.org/downloads/packages/release/2020-03/r/eclipse-ide-eclipse-committers (and use the expandable "detailed features list" toggle there).

And while we are at that, I'm wondering if it is intentional that the gitflow feature is also installed in all the EPP bundles that include egit. I thought this is an optional feature, not to be installed by default.
Comment 7 Thomas Wolf CLA 2020-05-26 13:04:36 EDT
The Committers' Eclipse and the PHP Eclipse are the two that got to keep Mylyn.
Comment 8 Thomas Wolf CLA 2020-05-26 16:40:35 EDT
More to the point: the features to include in the packages are defined in the epp.product files.

I see _three_ packages (JEE, PHP, and Committers) that still have Mylyn, and those three also have egit.mylyn. None of the others do.

egit.gitflow is included in most (but not all) packages, but ultimately that's the responsibility of whoever maintains these packages.

So the initial package setup looks OK.
Comment 9 Matthias Sohn CLA 2020-06-07 17:27:39 EDT
I don't see a way how we could add the url to the mylyn update site so that this works for several versions of Eclipse since we don't know which version of Mylyn we should include if we target more than only the latest version. Currently EGit can be installed into Eclipse versions starting from Neon (4.6) up to 2020-06 (4.16).
It looks like the only way to achieve that is to rely on the url of the respective Eclipse release's release train repository which contains mylyn as long as mylyn participates in the release train.
Comment 10 Eclipse Genie CLA 2020-06-08 02:48:28 EDT
New Gerrit change created: https://git.eclipse.org/r/164404
Comment 11 Eclipse Genie CLA 2020-06-08 15:01:46 EDT
Gerrit change https://git.eclipse.org/r/164404 was merged to [stable-5.8].
Commit: http://git.eclipse.org/c/egit/egit.git/commit/?id=d131f3ceaadd67dbb17a559e4ba82e083af1469f
Comment 12 Thomas Wolf CLA 2022-06-19 08:47:15 EDT
Mylyn is no longer maintained and no longer included in EPPs. EGit will drop its Mylyn integration for release 6.3 with [1].

I have now changed the egit builds _not_ to trigger egit-github builds anymore via a config change on Jenkins.

[1] https://git.eclipse.org/r/c/egit/egit/+/194240
Comment 13 Matthias Sohn CLA 2022-06-20 04:24:23 EDT
(In reply to Thomas Wolf from comment #12)
> Mylyn is no longer maintained and no longer included in EPPs. EGit will drop
> its Mylyn integration for release 6.3 with [1].
> 
> I have now changed the egit builds _not_ to trigger egit-github builds
> anymore via a config change on Jenkins.
> 
> [1] https://git.eclipse.org/r/c/egit/egit/+/194240

in comments on https://git.eclipse.org/r/c/egit/egit/+/194240 we agreed that we will also delete all mylyn dependent bundles (basically the EGit Github connector) in the egit-github repo and only the github REST API client and its tests will stay in this repository:

org.eclipse.egit.github.core
org.eclipse.egit.github.core.test

This would require that we continue running builds on this repo.
Comment 14 Thomas Wolf CLA 2022-06-20 04:28:28 EDT
(In reply to Matthias Sohn from comment #13)
 
> This would require that we continue running builds on this repo.

Yes, but they don't need to be triggered by the EGit build. egit-github will become completely independent from EGit. The REST API bundle has no dependencies on EGit or JGit. Its build script may need to be adapted perhaps.
Comment 15 Eclipse Genie CLA 2022-06-20 04:38:36 EDT
New Gerrit change created: https://git.eclipse.org/r/c/egit/egit-github/+/194298
Comment 16 Matthias Sohn CLA 2022-06-20 04:41:15 EDT
(In reply to Thomas Wolf from comment #14)
> (In reply to Matthias Sohn from comment #13)
>  
> > This would require that we continue running builds on this repo.
> 
> Yes, but they don't need to be triggered by the EGit build. egit-github will
> become completely independent from EGit. The REST API bundle has no
> dependencies on EGit or JGit. Its build script may need to be adapted
> perhaps.

ok, understood
Comment 18 Eclipse Genie CLA 2022-09-07 09:00:25 EDT
New Gerrit change created: https://git.eclipse.org/r/c/egit/egit/+/195627