Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 213975

Summary: Subversive feature not installable from Ganymede Staging Update Site
Product: Community Reporter: Markus Knauer <mknauer>
Component: Cross-ProjectAssignee: Alexander Gurov <a.gurov>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: bjorn.freeman-benson, cross-project.inbox, david_williams, mober.at+eclipse, nboldt, pascal, slewis, thomas, wmitsuda
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:

Description Markus Knauer CLA 2007-12-28 05:02:03 EST
* Feature org.eclipse.team.svn 0.7.0.v20071221 requires plug-in "org.polarion.eclipse.team.svn.connector (2.0.0.v20071221)", or compatible.

* Feature org.eclipse.team.svn.projectset 0.7.0.v20071221 requires feature "com.csc.dip.projectset.feature".

Because of these unmet dependencies it is currently not possible to install any of the new Subversive features from the Ganymede Staging Update Site.
Comment 1 Alexander Gurov CLA 2008-01-08 04:22:08 EST
Unfortunately this solution is strictly required by licensing policies. Please read installation description at: http://www.eclipse.org/subversive/downloads.php
Comment 2 Martin Oberhuber CLA 2008-01-09 12:53:57 EST
I guess that if a feature already knows that it depends on another feature which is hosted on a different update site, it would be nice if that information would be actually used (e.g. when user presses "Select required", present him with a dialog that tells him that update site XYZ needs to be added to perform the requested operation; XYZ has different licensing; and so on).

Something for the P2 effort I'd guess.
Comment 3 Markus Knauer CLA 2008-01-09 13:53:18 EST
(In reply to comment #2)

Could this be solved by using 'associateSitesURL' in the site.xml? 
I assume that's against some license rules, but maybe it is somehow possible?

On the other hand: IMHO the Ganymede (like the Europa, Callisto) update site is meant as a single source of features that should work out of the box, and these features break that idea.

So I reopen this bug for further discussion.

Comment 4 Nick Boldt CLA 2008-01-09 14:16:32 EST
(In reply to comment #3)
> On the other hand: IMHO the Ganymede (like the Europa, Callisto) update site is
> meant as a single source of features that should work out of the box, and these
> features break that idea.

There was at least one feature in Europa that fell into this same 'not licensed here' trap. Can't recall offhand what feature it was (a Buckminster or Mylyn extension, maybe?), but the same solution held there too -- add the other update site, get the prereq, then install everything on top.

While this annoyance is about the same as the one where out-of-the-box Debian installs lack that special apt-get repository you need (and thus you have to add it yourself), having to hunt for the URL for 3rd party libs is a pain either way.

Could the platform provide discoveryURLs for all the Ganymede projects which require 3rd party update sites? That way at least the user could be told "you need to select multiple sites when updating" rather than "you need to go figure out where to get your 3rd party updates, because we don't have them here. Best of luck!"

Following the linux analogy, this is akin to providing commented/disabled repo sites (like for kernel sources and testing/unstable or universe/multiverse) which make it easier for the user to simply enable the site -- rather than having to google for it.

(As an added bonus, this solution requires minimal effort on the part of the platform team -- just a line or two of XML in the feature.xml for the platform runtime feature.) 
Comment 5 Bjorn Freeman-Benson CLA 2008-01-09 23:24:37 EST
(In reply to comment #3)
> (In reply to comment #2)
> 
> Could this be solved by using 'associateSitesURL' in the site.xml? 
> I assume that's against some license rules, but maybe it is somehow possible?

That is correct: the EMO, for legal reasons, does not allow Eclipse projects to use direct references to other update sites. Please talk to your Board representatives (Committer or Member as the case may be).
Comment 6 Martin Oberhuber CLA 2008-01-10 07:37:24 EST
I installed Subversive yesterday, and found that it was particularly problematic because there are dependencies both ways: From Ganymede to the external site, and from the external site to Ganymede. So my only chance was to add the external site (manually), and then have both sites activated simultaneously before pressing Next.

The other issue is that the Subversive Core (which is in Ganymede) cannot be installed at all without the extensions, and produces "Select Required" errors. I think that a user who goes to Ganymede and does a "Select all" on the update site should not be presented with any "Select Required" errors.

So what about this: would it be possible to change the Subversive Core such that
it does not require the external dependencies but can be installed alone
(it would not be functional in that case, or its only function could be
to alert the user somehow that the external additions are missing); and,
it could bring in the "discovery site" through its feature, such that when installed, the user will find the external site more easily.

Would such an approach be possible from a licensing point of view? The subversive feature.xml would reference the external site as discovery site.
How is ECF handling the external additions to its offering?
Comment 7 Alexander Gurov CLA 2008-01-10 09:55:23 EST
(In reply to comment #6)
> The other issue is that the Subversive Core (which is in Ganymede) cannot be
> installed at all without the extensions, and produces "Select Required" errors.

Unfortunately the Subversive plug-in cannot work without at least one of SVN connectors. In case if no connectors are available the main plug-in will produce only errors instead of SVN integration. So, installing Subversive without connectors have no sense.
Comment 8 Martin Oberhuber CLA 2008-01-10 09:59:38 EST
As said, all real subversive functionality should be disabled in that case, and the sole purpose of the installed core feature would be to make it easier for users to find and install the connectors.

For instance, Eclipse provides the new Welcome Experience since 3.3 -- newly installed features can contribute to the Welcome screen. On that Screen, Subversive could guide users to installing the missing connectors.
Comment 9 Nick Boldt CLA 2008-01-10 12:07:12 EST
(In reply to comment #8)
> As said, all real subversive functionality should be disabled in that case, and
> the sole purpose of the installed core feature would be to make it easier for
> users to find and install the connectors.
> 
> For instance, Eclipse provides the new Welcome Experience since 3.3 -- newly
> installed features can contribute to the Welcome screen. On that Screen,
> Subversive could guide users to installing the missing connectors.

+1. 

Whatever's in Ganymede should not produce installation errors. If you want to provide a Welcome page blurb, cheat sheet, wizard, or other UI in order to guide people in the process of adding the external update site, selecting both that and the Ganymede site, selecting the features on both sites, and thus successfully installing, I'm all for that.

Providing something that doesn't work and is non-intuitive (knowing you need to add a second update site, and not providing the URL OOTB is IMHO non-intuitive; select all + select required ==> cannot continue == doesn't work) is not a very good idea for Ganymede, since it impacts everyone, not just SVN users.

Of course the simplest route to market here would be to provide a simple plugin+feature which provides a toolbar button for 'install Subversive' which would pop up an HTML page with instructions. As a bonus, that feature would contain the update site, so users would thus not need to add it manually, just enable it. 

This is sort of like installing Monkey, in that once it's installed, you can use a toolbar button to add the examples to the workspace. 

Comment 10 Willian Mitsuda CLA 2008-01-11 14:46:21 EST
My $0,02, from a user point of view:

I just tried to install the new 0.7 release following the subversive download page:

- At first I found it strange to find 2 update sites in the download page.
- I picked just the first (in eclipse.org) because I found the second was for some alternative connector, and there was no information in that page stating you have to enter the 2 update sites (and this is not something usual).
- Ran the update, selected the SVN team provider and it gave me some of some cryptic, user friendly messages from update manager stating it depended of some org.polarion.etc plugin. Select required did nothing (obviously).
- After concluding that it was necessary to enter the other update site too, it gave me the required connector feature.
- But I selected the connector feature, and still gave me another dependency error stating it required another feature with another cryptic name.
- Then I finally gave up and clicked "select required" hoping it would resolve my problems using some kind of black magic... and it did.
- I finally figured out you have to select an combination of 3 features: the SVN team provider, the connector feature, and... the connector implementation!

Sorry, but it was my most painful experience trying to install a single plugin in eclipse, ever.

Having to click something or make the user take some unusual action after the "installation" itself just to complain with the legal issues just make me not to want install it anymore and perhaps search for alternatives.

Of course, it is understandable that the foundation have to worry with the legal issues. But actually you are throwing away the user experience into the trash just to complain with the existing restrictions.

How would you explain to (for example) some friend that are willing to try SVN in eclipse why he have to enter 2 update sites hosted in different locations and select a combination of 3 features just to be able to use SVN, where normal people expect to have some checkbox saying "install SVN support in eclipse"?
Comment 11 Alexander Gurov CLA 2008-01-18 11:55:40 EST
*** Bug 215832 has been marked as a duplicate of this bug. ***
Comment 12 Thomas Hallgren CLA 2008-01-20 08:48:54 EST
I wrote my comments to this as a blog article: http://thhal.blogspot.com/2008/01/eclipse-and-subversion.html
Comment 13 Alexander Gurov CLA 2008-01-21 10:29:11 EST
Today we've published new Subversive build which contains following changes:
1) Welcome pages are added: Overview, Tutorials, What's New (migration), First Steps
2) Mylyn integration could be easily installed not only in the scope of Ganymede update-site but in the scope of Subversive update-site also due to usage of associtesSiteURL option
3) Main Subversive feature now can be installed without connectors (but it means that user should install connectors later in order to work with SVN)
Comment 14 Nick Boldt CLA 2008-01-21 11:34:11 EST
(In reply to comment #13)
> Today we've published new Subversive build 

Should this new build replace what's in last week's Ganymede M4 build, so that the early adopters can start testing M4 in its entirety?

And, going forward, will the Subversive team be using the Ganymede Signoff [1] page for status notification? 

[1] http://wiki.eclipse.org/Ganymede/Signoffs
Comment 15 Alexander Gurov CLA 2008-01-23 03:42:06 EST
(In reply to comment #14)
> (In reply to comment #13)
> > Today we've published new Subversive build 
> Should this new build replace what's in last week's Ganymede M4 build, so that
> the early adopters can start testing M4 in its entirety?
> And, going forward, will the Subversive team be using the Ganymede Signoff [1]
> page for status notification? 
> [1] http://wiki.eclipse.org/Ganymede/Signoffs

Thank you for pointing to this [1].

Build v20080116 which contains corresponding changes available at URL's 

http://download.eclipse.org/releases/ganymede/staging/

and 

http://download.eclipse.org/technology/subversive/0.7/update-site/
Comment 16 David Williams CLA 2009-04-02 01:46:19 EDT
From what I can tell from the comments, this has been handled (as much as it's going to be). 

If I have misunderstood and there are still some actionable items here, feel free to re-open.