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

Bug 376586

Summary: migrate repo and product poms to eclipse.platform.releng.tychoeclipsebuilder
Product: [Technology] CBI Reporter: Paul Webster <pwebster>
Component: build helpAssignee: Thanh Ha <thanh.ha>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: andrea.ross, david_williams, igor, thanh.ha
Version: 1.0   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Bug Depends on:    
Bug Blocks: 372792    
Attachments:
Description Flags
e.p.releng.eclipsebuilder.patch
none
e.p.releng.eclipsebuilder.patch v2 none

Description Paul Webster CLA 2012-04-12 08:07:07 EDT
The product files and p2.inf files that make up the Eclipse and Equinox SDK are stored under eclipse.platform.releng.eclipsebuilder/eclipse/buildConfigs:

platform/platform.product
platform.sdk/platform.product
rcp/rcp.product
rcp.config/config.product
rcp.sdk/rcp.product
sdk/builder/sdk.product

These need to be published to the main p2 build repo and then SDK archives and platform Runtime product archives need to be materialized.

With the exception of SWT, I believe the other zips are all p2 mirrors from the main build repo.  ex:  The delta pack is generated from some p2 ant tasks (like a mirror) in eclipse.platform.releng.eclipsebuilder/eclipse/buildConfigs/rcp.deltapack/build.xml

PW
Comment 1 David Williams CLA 2012-05-03 01:58:41 EDT
Paul, on eclipse-dev list you mentioned a discussion topic: 

- merging CBI changes upstream into our real Eclipse repositories
- - mostly consists of pom.xml files at the moment
- - consuming the pom.xml files will reset the qualifiers on most plugins and fragments
- - If we do it before Juno it will make the last commit timestamp consistent for plugins that don't change
- - releng contains most changes


Is this the right bug to comment or ask questions about that? In your note you mentioned bug 372792, but that seems very high level. 

Be sure to understand, I don't know that much about maven and POMs so you may have to spell things out for me (or others) to get any reasonable feedback. 

Is there a POM in each jar/bundle? Or just in features? 

I'm wondering if some examples could be given? What I'm most wondering about it if URLs of other repositories (such as for dependencies) are stored there in the POMs? If so, I'd think it'd be important to store the POMs in a separate, "parallel" structure to the bundles/features, instead of directly in the bundle or feature. From my b3 aggregator experience, I now that's possible for a Maven repository in general, but not sure about POMs for "build purposes". Seems like that level of redirection would make things a lot simpler for the Platform team in transitioning? And "changing repositories" is a hard to do in maven or tycho or something, I've heard, but is something we do all the time in Eclipse platform (and other projects) so seems like a problem to be solved, rather than taking on knew, known problems or limitations. 

Again, apologies, if this is all obvious to others or even if this is the wrong bug .... but .... you asked for discussion ... so there's a start. :)
Comment 2 Paul Webster CLA 2012-05-03 07:47:28 EDT
This bug is about making sure the CBI platform build consumes the listed .product files so the output repo is correct.

(In reply to comment #1)
> 
> Is this the right bug to comment or ask questions about that? In your note you
> mentioned bug 372792, but that seems very high level. 

There probably would have been fine.  It looks like we're discussing it in the eclipse-dev list, which is probably good enough.

I put a little background on that thread.

> Is there a POM in each jar/bundle? Or just in features? 

Every subdirectory that "outputs" something needs a pom file.  Bundles, fragments, features, p2 repos, products, etc.

bundle pom:
http://git.eclipse.org/c/cbi/eclipse.platform.ui.git/tree/bundles/org.eclipse.core.commands/pom.xml?h=Juno_M6_R3

main aggregator pom:
http://git.eclipse.org/c/cbi/platform-aggregator.git/tree/pom.xml?h=Juno_M6_R3


> 
> I'm wondering if some examples could be given? What I'm most wondering about it
> if URLs of other repositories (such as for dependencies) are stored there in
> the POMs?

Build level configuration like all of the p2 repos to consume in the build or the compiler config options are usually defined at the top level pom file.

PW
Comment 3 Paul Webster CLA 2012-07-19 11:44:56 EDT
We need to align the product names and metadata published by the CBI build with the appropriate .product and p2.infs in the eclipsebuilder repo.

PW
Comment 4 Thanh Ha CLA 2012-08-02 16:50:59 EDT
Created attachment 219504 [details]
e.p.releng.eclipsebuilder.patch

Adding patch to build eclipsebuilder product files.
Comment 5 Thanh Ha CLA 2012-08-03 10:44:18 EDT
Hi Igor, I was wondering if you could review this patch. It should be applied to eclipsebuilder R4_HEAD. I tried to build the product files in eclipsebuilder and they seem to produce the eclipse packages but I want to be certain I did not overlook anything in producing this patch.
Comment 6 Igor Fedorenko CLA 2012-08-03 10:59:10 EDT
I won't have time for detailed review until next Friday. I had a very brief look and nothing really caught my eye, so if everything builds I'd just merge this.
Comment 7 Thanh Ha CLA 2012-08-03 15:41:22 EDT
Created attachment 219549 [details]
e.p.releng.eclipsebuilder.patch v2
Comment 9 Thanh Ha CLA 2012-08-27 10:10:08 EDT
We're now building the 6 listed .product files in the CBI platform build. Can this bug be resolved or is there something else that's still missing?
Comment 10 Paul Webster CLA 2012-09-13 07:37:43 EDT
The last thing to do here is to get rid of the TMP directory

Everything should either be in the eclipse.platform.repository or in eclipse.platform.releng.tychoeclipsebuilder

Perhaps we can work on this today while we're waiting for some POMs to be merged in :-)

PW
Comment 11 David Williams CLA 2012-09-13 10:35:21 EDT
does this repo need one or more .project files? Last night, after cloning, I tried to "import existing projects" and got the message "there are no projects found". I could then "import as simple projects" ... but ... seems even if there's just one a .project file at top level would be in order?
Comment 12 Paul Webster CLA 2012-09-19 15:21:42 EDT
I've released a .project into the root in 4.2.2, we just need it in 3.8.2

PW
Comment 13 Paul Webster CLA 2012-09-19 15:22:08 EDT
.