Bug 348899 - [scm] provide core connector for Subclipse
Summary: [scm] provide core connector for Subclipse
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: 0.8   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: 0.9   Edit
Assignee: Alvaro Sanchez-Leon CLA
QA Contact:
URL:
Whiteboard:
Keywords: plan
Depends on:
Blocks: 348897
  Show dependency tree
 
Reported: 2011-06-09 10:22 EDT by Alvaro Sanchez-Leon CLA
Modified: 2011-10-14 07:06 EDT (History)
6 users (show)

See Also:


Attachments
patch (3.02 KB, patch)
2011-07-14 00:31 EDT, Alvaro Sanchez-Leon CLA
no flags Details | Diff
mylyn/context/zip (55.76 KB, application/octet-stream)
2011-07-14 00:31 EDT, Alvaro Sanchez-Leon CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alvaro Sanchez-Leon CLA 2011-06-09 10:22:00 EDT
This task will keep track of the progress related to the implementation of the core connector for projects associated to the subclipse team provider.

This will need a cq as subclipse is not an eclipse project.
Comment 1 Steffen Pingel CLA 2011-06-09 10:35:27 EDT
Wayne, what are the steps that we need to take in terms of IP approval? We would want to build against Subclipse and distribute a feature that requires Subclipse but not redistribute Subclipse itself. I think that Buckminster does something similar with their Subclipse support.
Comment 2 Wayne Beaton CLA 2011-06-09 10:44:59 EDT
We'll need a WORKSWITH dependency on Subclipse on the basis that "The Eclipse software does not require the third party software to be present.  If the third 
party software happens to be present, the Eclipse software may call or invoke it." [1]

I'll follow up with Buckminster; they'll need to do the same thing.

[1] http://www.eclipse.org/org/documents/Eclipse_Policy_and_Procedure_for_3rd_Party_Dependencies_Final.pdf
Comment 3 Steffen Pingel CLA 2011-06-09 11:26:58 EDT
Thanks Wayne. I'll initiate the PMC approval process. Alvaro, can you please list the features that are required as direct dependencies for the connector?
Comment 4 Alvaro Sanchez-Leon CLA 2011-06-09 17:35:39 EDT
(In reply to comment #3)
> Thanks Wayne. I'll initiate the PMC approval process. Alvaro, can you please
> list the features that are required as direct dependencies for the connector?

Here is the list of features needed, using the 1.6.x Release:
Provider tigris.org, http://subclipse.trigris.org/

org.tigris.subversion.subclipse_1.6.18
org.tigris.subversion.clientadapter.feature_1.6.12
org.tigris.subversion.clientadapter.javahl.feature_1.6.17
org.tigris.subversion.clientadapter.svnkit.feature_1.6.15
org.tigris.subversion.subclipse.graph.feature_1.0.9

Thanks to both.
Comment 5 Steffen Pingel CLA 2011-06-09 18:05:49 EDT
To clarify, do you expect that org.tigris.subversion.clientadapter.javahl.feature, org.tigris.subversion.clientadapter.svnkit.feature and org.tigris.subversion.subclipse.graph.feature will be necessarily needed as dependencies (to build and install) the Subclipse connector? Particularly SVNKit is likely to cause problems due to the license.
Comment 6 Wayne Beaton CLA 2011-06-09 23:48:06 EDT
(In reply to comment #5)
> To clarify, do you expect that
> org.tigris.subversion.clientadapter.javahl.feature,
> org.tigris.subversion.clientadapter.svnkit.feature and
> org.tigris.subversion.subclipse.graph.feature will be necessarily needed as
> dependencies (to build and install) the Subclipse connector? Particularly
> SVNKit is likely to cause problems due to the license.

We have a lot more flexibility with regard to license in a WORKSWITH. In this case, I believe that we can expect that the sort of user who is installing this feature will have already installed Subversive, right? It's the user/adopter's responsibility to accept the license in this context.

Note that the workswith declaration will grant you the ability to build against the software, but it cannot be stored in the project VCS or otherwise distributed from an eclipse.org property.

I assume, also, that the Eclipse software will not be attempting to install Subclipse, but rather will leverage it if it is already there. Please let me know if this is an invalid assumption.
Comment 7 Alvaro Sanchez-Leon CLA 2011-06-13 08:03:05 EDT
(In reply to comment #5)
> To clarify, do you expect that
> org.tigris.subversion.clientadapter.javahl.feature,
> org.tigris.subversion.clientadapter.svnkit.feature and
> org.tigris.subversion.subclipse.graph.feature will be necessarily needed as
> dependencies (to build and install) the Subclipse connector? Particularly SVNKit
> is likely to cause problems due to the license.

Looking deeper into this, there is only one feature needed to build and install
    org.tigris.subversion.subclipse_1.6.18

Some of the other features will be needed for proper operation but that will need to be selected by the user e.g. javahl or svnkit.
Comment 8 Alvaro Sanchez-Leon CLA 2011-06-13 10:55:50 EDT
(In reply to comment #6)
> (In reply to comment #5)
> > To clarify, do you expect that
> > org.tigris.subversion.clientadapter.javahl.feature,
> > org.tigris.subversion.clientadapter.svnkit.feature and
> > org.tigris.subversion.subclipse.graph.feature will be necessarily needed as
> > dependencies (to build and install) the Subclipse connector? Particularly
> > SVNKit is likely to cause problems due to the license.
> 
> We have a lot more flexibility with regard to license in a WORKSWITH. In this
> case, I believe that we can expect that the sort of user who is installing this
> feature will have already installed Subversive, right? It's the user/adopter's
> responsibility to accept the license in this context.
> 
The ideal situation would be to have separate bundle connectors, the call to the corresponding bundle would be derived based on the team provider associated to a specific project in the work space. 
  if the project is attached to subversive, the subversive connector will be searched and it will be activated (if already installed), similarly for a project attached to a subclipse team provider, the subclipse connector will be searched and will be activated (if already installed). 

The above does not require the installation of subversive or subclipse in any way. It WORKSWITH either one as long as they are attached to a specific project in the workspace.

> Note that the workswith declaration will grant you the ability to build against
> the software, but it cannot be stored in the project VCS or otherwise
> distributed from an eclipse.org property.
> 
This is fine as the user is the one installing subversive of subclipse.

> I assume, also, that the Eclipse software will not be attempting to install
> Subclipse, but rather will leverage it if it is already there. Please let me
> know if this is an invalid assumption.
This is also fine, the application relies on the team provider associated to a project in the work space, the installation of the team providers is a user decision/action.
Comment 9 Steffen Pingel CLA 2011-06-13 16:31:31 EDT
I have posted to the PMC mailing list: http://dev.eclipse.org/mhonarc/lists/mylyn-pmc/msg00072.html.
Comment 10 Steffen Pingel CLA 2011-06-16 06:37:30 EDT
I have submitted a CQ to track the works-with dependency in the IP log: https://dev.eclipse.org/ipzilla/show_bug.cgi?id=5289.
Comment 11 Alvaro Sanchez-Leon CLA 2011-06-16 08:26:23 EDT
The coding will start now, the first draft is estimated to be available in about 3-4 weeks, when it will be attached to the CQ
Comment 12 Steffen Pingel CLA 2011-06-16 09:30:46 EDT
No need to attach the code to the CQ. The CQ is mostly for documentation. Please commit files directly to CVS as you create them.
Comment 13 Alvaro Sanchez-Leon CLA 2011-06-16 09:42:10 EDT
Ok, that's better. I will do that
Comment 14 Alvaro Sanchez-Leon CLA 2011-06-30 11:52:04 EDT
Work has just started, the initial skeleton of the plug-in has been created
Comment 15 Alvaro Sanchez-Leon CLA 2011-07-14 00:26:07 EDT
The svn -log -v command comes back with an Action i.e. 'A' -> Add, 'D' -> Delete, 'M' -> Modified, 'R' -> Replaced

It seems 'R' may come in two different formats, although I have not found an actual detailed description for it.

e.g. 
a) R /trunk/folderX/file.ext (from /trunk/folderY/file.ext:123)
b) R /folderX/file.ext

The first form (a), is actually quite practical for our purpose since we can obtain the base element in the same line. 
(for modifications  we need to resolve the base by finding the previous commit for each of the files in the target commit).

the second form (b), does not indicate the base, as per lack of information. I am assuming this is the case where the actual path did not change, however the new version is taken from another one not usually.
Comment 16 Alvaro Sanchez-Leon CLA 2011-07-14 00:31:04 EDT
Created attachment 199631 [details]
patch

funtionality contributed by Stefan Reiterer, 
needs to be committed
Comment 17 Alvaro Sanchez-Leon CLA 2011-07-14 00:31:06 EDT
Created attachment 199632 [details]
mylyn/context/zip
Comment 18 Alvaro Sanchez-Leon CLA 2011-07-14 00:38:38 EDT
To: Stefan Reiterer, 

The patch added to this bug is functionality taken from your code at:
  git://github.com/sreiterer/mylyn-reviews-scm-integration.git
  
This functionality is really needed to complete the first draft of the Subclipse core connector using the Mylyn versions interface
As you are a committer in the Mylyn Versions project, you can commit this code directly.

Questions and comments are very welcome
Comment 19 Stefan Reiterer CLA 2011-07-14 13:29:27 EDT
Hi,

I will have a look at the patch and commit it as soon as possible.
Comment 20 Alvaro Sanchez-Leon CLA 2011-08-11 14:04:02 EDT
I see the patch has been successfully comitted
Thanks Stefan.

I have also marked the patch for iplog.
Comment 21 Steffen Pingel CLA 2011-08-11 14:34:59 EDT
Great! You can remove the IPlog flag. It's only meaningful for patches attached by non-committers. Since Stefan made the commit there is no need to track anything in the IP log.

Is there anything left do here?
Comment 22 Alvaro Sanchez-Leon CLA 2011-08-11 14:47:10 EDT
(In reply to comment #21)
> Great! You can remove the IPlog flag. It's only meaningful for patches attached
> by non-committers. Since Stefan made the commit there is no need to track
> anything in the IP log.

You are right, I have removed the IPlog flag

> 
> Is there anything left do here?

There are performance issues but they shall be addressed by separate issues.
So I am marking it as Resolved.