Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 407703 - Issues with our org.eclipse.rcp.configuration
Summary: Issues with our org.eclipse.rcp.configuration
Status: RESOLVED DUPLICATE of bug 401037
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 4.3   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-Releng-Inbox CLA
QA Contact:
URL:
Whiteboard: PDE diff
Keywords:
Depends on:
Blocks:
 
Reported: 2013-05-09 21:58 EDT by David Williams CLA
Modified: 2014-05-18 19:27 EDT (History)
2 users (show)

See Also:
pwebster: review+


Attachments
patch to revert previous attempts (5.73 KB, patch)
2013-05-14 17:26 EDT, David Williams CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description David Williams CLA 2013-05-09 21:58:11 EDT
There's been several issues with this "special feature" already (and fixed), but it is still far from correct, so thought I'd open this bug to track work on it specifically, and make "observations" as I go, in case others know more of history or purpose. 

Its main purpose is to provide some "configuration" data in p2 content meta file, so that as a product is built (for specific platform, etc.) this special IU is required and "fills in" necessary data. 

It is likely related to a number of other bugs, such as bug 402051, bug 407314, and perhaps even bug 407109 and bug 407433 and bug 394216.
Comment 1 David Williams CLA 2013-05-09 23:12:29 EDT
Marking for RC1, since, I think, fixing this is a prereq for fixing many other remaining bugs, but, do not have a clear solution "in hand". 

First to note that as I commented and attached in bug 394216 comment 57, the PDE version of this IU "requires" 47 other "IUs" ... the CBI version only 18!

Another thing to note, in the PDE build, this "rcp.config" project was defined as a "product" that included the _feature_ org.eclipse.equinox.executable. That may have been a feature "created on the fly", since only recently, Paul and Tom made a "real" org.eclipse.equinox.executable feature. See bug 394216 comment 45. If that is the same thing (conceptually) we may want to start "building" the rcp.config.product again (it currently exists in the folder, but is not built or materialized by the pom). 

Another note, as I mentioned in bug 402051 comment 20, this is where we used to set folder permissions, links, etc., but Tyhco does not support root.*.folders, and while they offer a "work around", not sure we can get that to work in a short time ... but ... seems promising. 

Last note, in PDE build, we would not "materialize" this feature, it would be only a configuration IU. That worked in PDE because it "knew" if a feature had no bin.includes, it would not actually create the feature. There seems no way to do that, with Tycho. If we remove it "by force" (such as with p2.remove) then in some contexts the "repository" will seem broken, that a required feature is missing ... even though the feature itself is completely void of bundles or other features. 

Might be easier to "hand write" a huge p2.inf file to provide all the data we want. ? :) 

One concern I have is that some of the work that used to be done by this "configuration IU" is obviously still getting done, somewhere, somehow, so we might be over-complicating our build by not knowing what central place is the right place or way to accomplish some of these things that this configuration IU used to do for us in PDE build.
Comment 2 David Williams CLA 2013-05-14 09:39:51 EDT
Just to document another change I think might be necessary, or, "more correct", it that in our rcp.config pom, there are some places we "copy resources", such as about.html files, etc., during the "validate" phase. This is the very first phase that occurs (at least, in Maven, see http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html) and assumes that everything in "equinox.binaries" is already "perfectly correct". But, there is some processing done in launcher-binary-parent during the process-resources phase. This is a "Tycho phase" and is not well documented then it occurs in relation to Maven phases ... but, it just seems intuitive that our rcp.config processing should match what's done in launcher-binary-parent.
Comment 3 David Williams CLA 2013-05-14 17:26:33 EDT
Created attachment 230989 [details]
patch to revert previous attempts

There's a section on POM that I was initially using to not have to explicitly include "configuration feature" in products (see bug 401037). But, not including it explicitly seemed to break a few subtle things between M6 and M7, such as see bug 407314 bug 407109. Since we are now including it explicitly, I'd like to remove this "workaround". AFAIK, it is interfering with the normal flow of events and still causing problems, such as with bug 402051.
Comment 4 David Williams CLA 2013-05-14 17:31:11 EDT
Paul, while this is not a "fix" for this bug, will you still review/comment that you think it's safe. 

BTW, forgot to mention another section of the configuration was an attempt to "work around" us having packed.gz files in our sliced repos, but since learned that was because of something else (see bug 405808) and fixed in another way.

So, again, this patch is just to remove unnecessary things, whose side-effects are not well understood.
Comment 5 Paul Webster CLA 2013-05-15 05:36:53 EDT
(In reply to comment #4)
> Paul, while this is not a "fix" for this bug, will you still review/comment
> that you think it's safe. 

Looks safe to me.

PW
Comment 6 David Williams CLA 2013-05-16 21:13:12 EDT
I'm tempted to close as "won't fix", but will leave open in case it helps searches. But, I've tried everything I know to get this IU to be more like the one from PDE builds, and nothing seems to work or have any effect. If we really need this item to be "just like" it was before ... it may require some plan 'ol Java programming to produce it ... our own custom maven task, or something. 

Here's a summary: 

The old PDE one (from 4.3 M5) 
required about 47 IUs ... of all three "build time IU" varieties, such as 

org.eclipse.rcp.configuration_root.win32.win32.x86_64
toolingorg.eclipse.equinox.launcher.gtk.linux.x86
org.eclipse.equinox.launcher.win32.win32.x86
etc.

Plus, even though (partially) defined as a feature, there was not actual feature produced, due to PDE knowing not to (for cases where feature.properties had no "bin.includes". I say "partially" since there was also a "product definition" of same name, that is currently basically ignored by Tycho build setup. Not to mention some scripts which used PDE advanced functions to create "container features, etc., in order to produce it. 



The Tycho one has turned this item into a "mere feature". Its visible in 
"installed products", and only has "config roots" as required IUs.

It requires "the feature", plus about 16 "build time" config root IUs

org.eclipse.rcp.configuration_root.cocoa.macosx.x86_64
org.eclipse.rcp.configuration_root.gtk.linux.x86
org.eclipse.rcp.configuration_root.gtk.linux.x86_64
etc. 

I believe this construct should not be used in the future (or, radically changed) as it is partially what contributes to having a "monolithic build". 

It seems as currently is, it is merely a convenient place to do some "central" configuration. 

What is unclear is how its changes will effect those doing product builds from "delta pack" or similar.
Comment 7 David Williams CLA 2014-05-18 19:27:41 EDT
I'm going to count this as a "dup" of bug 401037. 
As far as I know, the "differences" here aren't causing any problems, and once bug 401037 is resolved, we'll consider the whole issue resolved.

*** This bug has been marked as a duplicate of bug 401037 ***