Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 463856 - Trouble doing an I-build of org.eclipse.e4.core.tools.feature
Summary: Trouble doing an I-build of org.eclipse.e4.core.tools.feature
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.5   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 4.5 M7   Edit
Assignee: David Williams CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 459799
Blocks:
  Show dependency tree
 
Reported: 2015-04-02 21:56 EDT by David Williams CLA
Modified: 2015-04-28 06:38 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Williams CLA 2015-04-02 21:56:47 EDT
I particular, the source feature, for the subject feature. It fails with a message about "missing source plugins for ... and then proceeds to list all the "source plugins" in that Git repo, complete with "version.qualifier" numbers. 

(I'll attach complete error message soon). 

These are from "test I-builds" I am trying to do on my local machine, but, pretty sure if it fails for me, it will fail next Tuesday. 

Recall that I-builds use a "comparator" and will "swap in" an old artifact, if the new one has no change in version/qualifier. And, the version/qualifier won't change, if no change to the Git module and, even "pom only" changes do not count as a "change". 

I'm sure an easy fix is to "touch everything" in that repository, but ... that should not be necessary, if everything "set up" right ... at most, perhaps the feature has to be touched ... but trying to solve this has caused me to take a close look at this new repository and it's POM files. I'll list some of the issues I see -- but, I realize there is "more than one answer" sometimes, and not really sure which of these "issues" are problems, and which are just different.
Comment 1 David Williams CLA 2015-04-02 22:04:39 EDT
First, the full error message, (formatted for readability). 

Could not generate source feature ...

org.eclipse.e4:org.eclipse.e4.core.tools.feature:1.0.0-SNAPSHOT @ /data/shared/eclipse/buildsdavidw/4I/gitCache/eclipse.platform.releng.aggregator/eclipse.platform.ui.tools/features/org.eclipse.e4.core.tools.feature/pom.xml
    Missing sources for plugins [
    org.eclipse.e4.tools.emf.editor3x_1.0.0.v20150121-1411, 
    org.eclipse.e4.tools.emf.ui_1.0.0.v20150327-0913,  
    org.eclipse.e4.tools.compat_1.0.0.v20150121-1411, 
    org.eclipse.e4.tools.services_1.0.0.v20150121-1411, 
    org.eclipse.e4.tools_1.0.0.v20150327-1004, 
    org.eclipse.e4.tools.jdt.templates_1.0.0.v20150121-1411]
Comment 2 David Williams CLA 2015-04-02 22:18:58 EDT
I'll also mention that the "root pom" was recently changed, bug 463599, but I don't think that was a wrong change ... but ... *might* be related. 

While we are on the "root pom", one difference I see from other repos in Eclipse build, it that the "repo pom" is normally named "after the repository name" (both, group, and artifact id, with a version of 4.5.0-SNAPSHOT. For example, for "eclipse.platform" repository, it has 
  <groupId>eclipse.platform</groupId>
  <artifactId>eclipse.platform</artifactId>
  <version>4.5.0-SNAPSHOT</version>

This e4.tools "repository pom" currently has 

  <groupId>org.eclipse</groupId>
  <artifactId>eclipse.platform.ui.tools</artifactId>
  <version>0.17.0-SNAPSHOT</version>

If if followed the pattern of other repositories in Eclipse build, it would be 

  <groupId>eclipse.platform.ui.tools</groupId>
  <artifactId>eclipse.platform.ui.tools</artifactId>
  <version>4.5.0-SNAPSHOT</version>

I doubt the current way is really the source of the I-build problem ... and as far as I know is "more correct" than all the others :) ... but, I noticed while investigating, do thought I'd make a note, since if you wanted to be consistent, now would be the time to change. 

This change would ripple through all your bundles, since they all (correctly) point back to the "repository pom".
Comment 3 David Williams CLA 2015-04-02 22:21:41 EDT
Another thing, about "repository pom", that I do think is an error, is that the "scm" value is still the "old" one, from before the move. 

Currently is 
	<properties>
		<tycho.scmUrl>scm:git:http://git.eclipse.org/gitroot/e4/org.eclipse.e4.tools</tycho.scmUrl>
	</properties>

I think should be 

	<properties>
		<tycho.scmUrl>scm:git:http://git.eclipse.org/gitroot/platform/eclipse.platform.ui.tools</tycho.scmUrl>
	</properties>
Comment 4 David Williams CLA 2015-04-02 22:40:20 EDT
So, moving "down" a level to the bundles, there one that is at least inconsistent, if not wrong. 

  <groupId>org.eclipse</groupId>
  <artifactId>org.eclipse.e4.tools</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>

I think should be 

  <groupId>org.eclipse.e4</groupId>
  <artifactId>org.eclipse.e4.tools</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>

to follow the same pattern as all the others. 

I do not know if there is ever a "4 part" group id used in maven, but if there is, I think this whole collection should have a group id of 
org.eclipse.e4.tools
to distinguish them from the bundles in eclipse.platform.ui (which, have a group id of org.eclipse.e4. But, I think if you fixed the one inconsistency, you'd at least be ... consistent. :) (i.e. following the "rules" we discussed so long ago, I do not even know where documented). 

[And, again, I doubt this is related to the "source feature" failure during I-builds]
Comment 5 David Williams CLA 2015-04-02 22:51:03 EDT
I may know part of the problem ... and may or may not be related to my next suggestion: 

I think, in your feature, else two directories can be removed ... and Tycho will figure it all out (i.e. seems they are not providing anything that is a special case?) 

sourceTemplateFeature
sourceTemplatePlugin
Comment 6 David Williams CLA 2015-04-02 22:53:58 EDT
Last comment, for now, about "structure" ... and I've mentioned this before ... the feature should use the standard, shared license, and half the stuff in feature.properties should be removed. 

I can provide patch, to be explicit.
Comment 7 David Williams CLA 2015-04-02 23:22:39 EDT
Ok ... ready for one solution ... that is on my end? 

I was wondering how the N-build compared ... it does "complete", but, there is still no "source feature" in the repository. 

But, diving deeper, I see there is one created during the build! Just never put in the repository! That would lead to the problem I am seeing. 

So, in short, I forgot to include the source feature in the category.xml file. 

But, if you take a look, pretty understandable why. 

https://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/category.xml

We don't include any other source features ... except for one case. All the other cases, source bundles are included "by hand" into "SDK type" features. But, for "examples", we include ONLY the source feature. The reason we include only the source feature, is that it, in addition to the source bundles, include the runtime feature. 

So, I think this will involved "touching" all the bundles, to be sure their qualifier increases, and I will change category.xml to list the source feature, and I will change the "categories" at the update site to list the source feature, instead of the runtime feature -- assuming most people who want these tools would also want the source. (If they don't, the run time-only feature will still be in repository, just not categorized. 

Sorry for the long bug report ... most of which is unrelated to "the problem" I was having. I'll test fix on my test machine ... and then provide patches and/or "break up" this long bug into smaller pieces with more specific bug reports.
Comment 8 Eclipse Genie CLA 2015-04-03 02:35:42 EDT
New Gerrit change created: https://git.eclipse.org/r/45204
Comment 9 David Williams CLA 2015-04-03 02:42:07 EDT
(In reply to Eclipse Genie from comment #8)
> New Gerrit change created: https://git.eclipse.org/r/45204

The Gerrit change is just to 'touch' each bundle/feature. 

I have committed and pushed the change to the category.xml to pull source feature. 

https://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?id=0dcbc01d8a753636109a292952bfad121a5a6360

and have changed the content.xml to refer to that source version (but, have not deployed yet, since best to wait until there is something there to match). 

https://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?id=82a7b3b0c242c7ff72a10f478881a9b8508f64b7

The "touches" have to be pushed before Tuesday's I-build, or that build will break. And, I'd appreciate earlier, since I do LOTS of test builds, and that's easier if master is clean and build-able.
Comment 11 Lars Vogel CLA 2015-04-03 04:54:52 EDT
Thanks David, fix released. Anything else which I need to do?
Comment 12 David Williams CLA 2015-04-03 14:47:44 EDT
(In reply to Lars Vogel from comment #11)
> Thanks David, fix released. Anything else which I need to do?

This "touching" fixed the ability to do an I-build, and I think we'll be all set for the next I-build, and ones after that, since the source feature (and bundles) now *do* to into the repository!. 

I opened other bugs for the other issues observed here: 

Bug 463912 - [Tools] e4.core.tools feature needs to use standard, shared license .. 

and 

Bug 463913 - [Tools] e4 core tool poms should follow conventions of rest of Eclipse 

Both those these should be addressed before next I-build, if at all possible, to avoid subsequent "touch everything" problems.
Comment 13 Lars Vogel CLA 2015-04-28 06:38:18 EDT
.