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

Bug 329935

Summary: Moving EMF core to +0
Product: [Modeling] EMF Reporter: John Arthorne <john.arthorne>
Component: RelengAssignee: Kenn Hussey <Kenn.Hussey>
Status: VERIFIED FIXED QA Contact:
Severity: enhancement    
Priority: P3 CC: aniefer, david_williams, Ed.Merks, kim.moir, krzysztof.daniel, michal.ruza, pwebster
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description John Arthorne CLA 2010-11-10 13:03:19 EST
On today's planning council call, we discussed the fact that the Platform (4.1) now has a dependency on EMF. Since EMF is a +1 project, it means Platform 4.1 also needs to be +1. Of course EMF also has dependencies on Platform so there is a cyclic dependency here.

One possible solution is that the portions of EMF consumed by the platform would be moved to become +0 features. I'm opening this bug to discuss how that might be achieved and what impact it might have on how EMF is built and delivered to the release train.
Comment 1 Ed Merks CLA 2010-11-10 13:05:21 EST
I think the biggest hurdle to making EMF +0 is the fact that the platform is generally available very late in the day, right Kenn?
Comment 2 John Arthorne CLA 2010-11-10 13:06:04 EST
Just to document some details, Platform 4.1 currently consumes the following EMF features:

org.eclipse.emf.ecore
org.eclipse.emf.common
Comment 3 Kenn Hussey CLA 2010-11-10 13:39:19 EST
(In reply to comment #1)
> I think the biggest hurdle to making EMF +0 is the fact that the platform is
> generally available very late in the day, right Kenn?

I don't think time of day is the biggest issue; I'd be happy to coordinate the build with the platform. My main concern is the logistics of separating the fundamental pieces from the current build (to which MDT XSD is still tied).

Can a single project contribute some things as +0 and some as +1? Should we consider separating EMF into components, each of which would have a separate (but chained) build? This would be desirable, IMHO, given the growing number of platform-specific features in EMF (e.g., RAP, GWT, ODA, ...).
Comment 4 John Arthorne CLA 2010-11-10 13:58:14 EST
(In reply to comment #3)
> Can a single project contribute some things as +0 and some as +1? Should we
> consider separating EMF into components, each of which would have a separate
> (but chained) build? This would be desirable, IMHO, given the growing number of
> platform-specific features in EMF (e.g., RAP, GWT, ODA, ...).

I'm sure that's possible. In fact a similar situation happens with ECF which has a cyclic dependency with Platform. A handful of ECF plugins are made available at +0 so they can be consumed by the Platform build. There are likely other cases like this as well.

Also on timing, we can make a concerted effort to make our milestones available a bit earlier if that helps. We typically wait until end of Friday mainly to give us some breathing room in case a late-breaking problem is discovered. I suspect we can tighten that up. In fact looking through our history, we haven't performed any builds on Friday during 3.7 so far, and in 3.6 it only happened in three milestones.
Comment 5 Kenn Hussey CLA 2010-12-02 11:49:44 EST
We have prepared a new version of the EMF build which is partitioned into two builds - "Base" which includes the features required by the platform and "Core" which consumes the artifacts from that build and includes all of the other features.

We would like to publish the M4 contribution of EMF using this new structure. I suppose it would be a good idea to first publish an integration build (e.g., early next week) to test this all out.

Do you need us to actually contribute the new base feature to the release train, or will these bundles be included in the platform 4.1 contribution?
Comment 6 John Arthorne CLA 2010-12-02 15:16:32 EST
(In reply to comment #5)
> We have prepared a new version of the EMF build which is partitioned into two
> builds - "Base" which includes the features required by the platform and "Core"
> which consumes the artifacts from that build and includes all of the other
> features.

That sounds great! I'm not sure in the end if "the stuff required by the platform" is the best separation point, but it obviously works for us. If there are other "low level" parts of EMF required by many other +1 projects it might make sense to include those in the "base" part, but I guess that can be tweaked over time.

> We would like to publish the M4 contribution of EMF using this new structure. I
> suppose it would be a good idea to first publish an integration build (e.g.,
> early next week) to test this all out.
> 
> Do you need us to actually contribute the new base feature to the release
> train, or will these bundles be included in the platform 4.1 contribution?

Platform 4.1 is shipping on the same schedule as the release train, but is not actually a part of the release train common repository. So, EMF will need to contribute them. In fact that's probably the right long term answer anyway. Relying on the platform build process to get your features out the door creates an unnecessary barrier for you and your consumers.
Comment 7 Kenn Hussey CLA 2010-12-06 12:19:00 EST
Integration builds of Base and Core are now available in case anyone wants to try them out. Installable units from both can be picked up via the following site:

http://download.eclipse.org/modeling/emf/emf/updates/2.7-I-builds/

Alternatively, if you want to consume units from the Base build directly, you can use the following site:

http://download.eclipse.org/modeling/emf/emf/updates/2.7-I-builds/base/
Comment 8 John Arthorne CLA 2010-12-06 13:15:37 EST
Cool, thanks Kenn!
Comment 9 Andrew Niefer CLA 2010-12-09 15:13:06 EST
Ken,
The current 4.1 SDK M4 candidate is I20101209-0255, this contains
org.eclipse.emf.common_2.6.0.v20101108-0959                             
org.eclipse.emf.ecore_2.7.0.v20101108-0959 
which came from http://download.eclipse.org/releases/indigo (which I guess is M3)

How are you guys doing EMF M4?  
If I do a rebuild targeting http://download.eclipse.org/modeling/emf/emf/updates/2.7-I-builds/base/, is that going to be the M4 version?

For milestones, do you do a special build or do you promote an existing IBuild?
Comment 10 Kenn Hussey CLA 2010-12-09 15:39:05 EST
(In reply to comment #9)
> Ken,
> The current 4.1 SDK M4 candidate is I20101209-0255, this contains
> org.eclipse.emf.common_2.6.0.v20101108-0959                             
> org.eclipse.emf.ecore_2.7.0.v20101108-0959 
> which came from http://download.eclipse.org/releases/indigo (which I guess is
> M3)

Hmm, I got the impression that you could consume the new base EMF build from its specific repository. Otherwise, we could need to contribute the new base build to the Indigo build/repository separately from the rest of EMF.

> How are you guys doing EMF M4?  
> If I do a rebuild targeting
> http://download.eclipse.org/modeling/emf/emf/updates/2.7-I-builds/base/, is
> that going to be the M4 version?

No.

> For milestones, do you do a special build or do you promote an existing IBuild?

Yes, we do a special build and I will be doing so for the base early tomorrow (i.e., for the +0 deadline). Does that work for you?
Comment 11 John Arthorne CLA 2010-12-09 15:52:20 EST
(In reply to comment #10)
> Hmm, I got the impression that you could consume the new base EMF build from
> its specific repository. Otherwise, we could need to contribute the new base
> build to the Indigo build/repository separately from the rest of EMF.

Yes, we can consume it from your new "EMF base" repository. We just hadn't switched to using it yet in the 4.1 stream build.
Comment 12 Kenn Hussey CLA 2010-12-09 15:56:57 EST
(In reply to comment #11)
> Yes, we can consume it from your new "EMF base" repository. We just hadn't
> switched to using it yet in the 4.1 stream build.

OK, so the M4 build of the base will be available in the following repository tomorrow:

http://download.eclipse.org/modeling/emf/emf/updates/2.7milestones/base/
Comment 13 Andrew Niefer CLA 2010-12-09 15:58:45 EST
Ok, I think I will run a build now against http://download.eclipse.org/modeling/emf/emf/updates/2.7-I-builds/base/ as a warmup.

Tomorrow, once you are done, I will run another one against 
http://download.eclipse.org/modeling/emf/emf/updates/2.7milestones/base/
Comment 14 Kenn Hussey CLA 2010-12-09 16:36:18 EST
(In reply to comment #13)
> Ok, I think I will run a build now against
> http://download.eclipse.org/modeling/emf/emf/updates/2.7-I-builds/base/ as a
> warmup.

Sounds great. Please let me know if you encounter any problems.
Comment 15 Andrew Niefer CLA 2010-12-10 14:34:47 EST
(In reply to comment #12)
> (In reply to comment #11)
> > Yes, we can consume it from your new "EMF base" repository. We just hadn't
> > switched to using it yet in the 4.1 stream build.
> 
> OK, so the M4 build of the base will be available in the following repository
> tomorrow:
> 
> http://download.eclipse.org/modeling/emf/emf/updates/2.7milestones/base/



Hi Ken, do you have a status on the base for M4?  We are starting to get late in the day.  

Also, I notice that the compositeContent.jar for 
http://download.eclipse.org/modeling/emf/emf/updates/2.7milestones
only refers to core and not base.
(The 2.7-I-builds/compositeContent.jar refers to both base & core).
Comment 16 Kenn Hussey CLA 2010-12-10 14:39:13 EST
(In reply to comment #15)
> (In reply to comment #12)
> > (In reply to comment #11)
> > > Yes, we can consume it from your new "EMF base" repository. We just hadn't
> > > switched to using it yet in the 4.1 stream build.
> > 
> > OK, so the M4 build of the base will be available in the following repository
> > tomorrow:
> > 
> > http://download.eclipse.org/modeling/emf/emf/updates/2.7milestones/base/
> 
> 
> 
> Hi Ken, do you have a status on the base for M4?  We are starting to get late
> in the day.  

I was kind of waiting for the 3.7 platform milestone build so that I can build EMF against it. John, do you have an update on that?

> Also, I notice that the compositeContent.jar for 
> http://download.eclipse.org/modeling/emf/emf/updates/2.7milestones
> only refers to core and not base.
> (The 2.7-I-builds/compositeContent.jar refers to both base & core).

Yes, until there is a base build to reference, adding base to the composite would render it invalid. I'll be adding a reference to base once the base build is published.
Comment 17 Andrew Niefer CLA 2010-12-10 14:42:16 EST
Ok, I didn't realize you need to wait for the platform for the base.
The platform is done, bug 332208, and is being promoted, I don't know if there is some amount of lag there.
Comment 18 Kim Moir CLA 2010-12-10 14:52:36 EST
Kenn, the platform milestone build is 

http://download.eclipse.org/eclipse/downloads/drops/I20101208-1300/index.php

It has been renamed to 3.7M4 and is being replicated to eclipse.org but that takes over an hour to copy. Do you use our repository to build from?  If so, I can copy that manually so it's available more quickly for you.
Comment 19 Kenn Hussey CLA 2010-12-10 15:07:44 EST
(In reply to comment #18)
> Kenn, the platform milestone build is 
> 
> http://download.eclipse.org/eclipse/downloads/drops/I20101208-1300/index.php
> 
> It has been renamed to 3.7M4 and is being replicated to eclipse.org but that
> takes over an hour to copy. Do you use our repository to build from?  If so, I
> can copy that manually so it's available more quickly for you.

Yes, we build against the repository. If you could copy it manually, that would be great.
Comment 20 Kim Moir CLA 2010-12-10 15:38:08 EST
Bing!

Kenn, your fresh 3.7M4 bundles are ready here...
http://download.eclipse.org/eclipse/updates/3.7milestones/S-3.7M4-201012081300/
Comment 21 Kenn Hussey CLA 2010-12-10 15:57:49 EST
(In reply to comment #20)
> Bing!
> 
> Kenn, your fresh 3.7M4 bundles are ready here...
> http://download.eclipse.org/eclipse/updates/3.7milestones/S-3.7M4-201012081300/

Thanks, the EMF 2.7 M4 base build is now available.
Comment 22 Andrew Niefer CLA 2010-12-10 16:11:03 EST
Thanks Ken!
Comment 23 Kenn Hussey CLA 2010-12-13 15:15:27 EST
The base and core builds for M4 have now been promoted.
Comment 24 John Arthorne CLA 2012-02-29 08:46:11 EST
*** Bug 372824 has been marked as a duplicate of this bug. ***