From Fedora Project Wiki
(40 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Eclipse 3.4 =
= Eclipse 3.4 =
== Summary ==
== Summary ==
Re-base to Eclipse 3.4 (Ganymede).
Re-base to Eclipse 3.4 (Ganymede).  What's new for this release?  In addition to bug fixes and general improvements, there are some interesting new features.  For example, there is the Equinox/p2 provisioning framework which replaces the old update manager.  The new update manager is a lot easier for the end-user to update and maintain the workbench.  In the JDT, multicore support has been added to ensure Eclipse is fast as possible for compiling Java code in the future.  As well, a new feature called Plug-in Spy has been added which is a useful tool for plug-in developers to determine what plug-in supplies a selection class.


== Owner ==
== Owner ==
Line 8: Line 8:
== Current status ==
== Current status ==
* Targeted release: [[Releases/10|  Fedora 10]]  
* Targeted release: [[Releases/10|  Fedora 10]]  
* Last updated: 2008-06-25
* Last updated: 2008-09-16 by Jeff Johnston
* Percentage of completion: 10%
* Percentage of completion: 100%
* Outstanding issues:
** <s>tag build in koji</s>
** <s>get p2 user UI working</s>
** <s>get builds going on non-upstream platforms</s>
** <s>get p2-ization stuff into package-build and eclipse-* %install sections</s>
** <s>run tests</s>
** <s>re-build icu4j, sat4j, tomcat5, and eclipse-*</s>


== Detailed Description ==
== Detailed Description ==
 
* The Eclipse project releases its IDE and development platform once a year.  The most recent release in June 2008 is version 3.4 also known as Ganymede.  A lot of improvements and functional additions appear in 3.4.


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 19: Line 26:
== Scope ==
== Scope ==
See [https://bugzilla.redhat.com/show_bug.cgi?id=452875 452875]
See [https://bugzilla.redhat.com/show_bug.cgi?id=452875 452875]
* Upgrade/introduce dependencies (see below)
* <s>use p2</s>
* use p2
** <s>decide (with other distros and in consultation with upstream) about dropins location</s>
** decide (with other distros and in consultation with upstream) about dropins location
** <s>update pdebuild.sh to generate p2 metadata</s>
** update pdebuild.sh to generate p2 metadata
** <s>ensure our metadata is properly read by p2 if we're going to use the dropins approach for additional plugins</s>
** ensure our metadata is properly read by p2 if we're going to use the dropins approach for additional plugins
** <s>ensure our arch-specific/arch-independent split still works</s>move everything in the SDK to %{_libdir}/eclipse
** ensure our arch-specific/arch-independent split still works
* <s>ensure we have all dependent packages updated and OSGi-ified a la [http://eclipse.org/orbit Orbit]</s>
* ensure we have all dependent packages updated and OSGi-ified a la [http://eclipse.org/orbit Orbit]
* <s>get sat4j [https://bugzilla.redhat.com/show_bug.cgi?id=453781 reviewed]</s>
* ensure secondary arches can still build and run
* <s>ensure secondary arches can still build and run</s>ppc64 works.  I assume other arches will also work.


== Test Plan ==
== Test Plan ==
Line 32: Line 39:


== User Experience ==
== User Experience ==
The user should see a seamless upgrade from `eclipse-*-3.3.2` to `eclipse-*-3.4.0`.  Unfortunately, 3rd party plugins users have installed (into `~/.eclipse`) will probably no longer continue to work (see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=223434 Eclipse.org bug 223434].
The user should see a seamless upgrade from `eclipse-*-3.3.2` to `eclipse-*-3.4.0`.  Unfortunately, 3rd party plugins users have installed (into `~/.eclipse`) will probably no longer work without re-installation (see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=223434 Eclipse.org bug 223434].


== Dependencies ==
== Dependencies ==
* `sat4j` (I have an SRPM I will submit for review ASAP)
* <s>`sat4j` ([https://bugzilla.redhat.com/show_bug.cgi?id=453781 Review Request]</s>[http://koji.fedoraproject.org/koji/buildinfo?buildID=56190 Done].)
* ECF (To be called `eclipse-ecf` and has other dependencies of its own).  We'll at least need these ECF bundles:
* <s>OSGi-ifying:  `objectweb-asm` (probably with a sub-package, `objectweb-asm-eclipse` or something)
** `org.eclipse.ecf.filetransfer_2.0.0.v20080611-1715.jar`
** get a mega-asm bundle from the multiple JARs we have in Fedora now</s>
** `org.eclipse.ecf.identity_2.0.0.v20080611-1715.jar`
* <s>the rest of the dependencies from Eclipse 3.3 except Tomcat (actually, still need Tomcat for the servlet{,.jsp} API and jasper sub-packages)</s>
** `org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20080611-1715.jar`
** `org.eclipse.ecf.provider.filetransfer_2.0.0.v20080611-1715.jar`
** `org.eclipse.ecf.ssl_1.0.0.v20080611-1715.jar`
** `org.eclipse.ecf_2.0.0.v20080611-1715.jar`
* OSGi-ifying:  `objectweb-asm` (probably with a sub-package, `objectweb-asm-eclipse` or something)
** get a mega-asm bundle from the multiple JARs we have in Fedora now
* the rest of the dependencies from Eclipse 3.3 except Tomcat


=== JARs we'll need to have to be able to symlink ===
=== JARs we'll need to have to be able to symlink ===
Line 53: Line 53:
||'''JAR filename'''||'''Containing package'''||'''More info'''
||'''JAR filename'''||'''Containing package'''||'''More info'''
|-
|-
||com.ibm.icu_3.8.1.v20080530.jar||icu4j||[https://bugzilla.redhat.com/show_bug.cgi?id=452874 Upgrade to 3.8.1?]
||com.ibm.icu_3.8.1.v20080530.jar||icu4j||<s>[https://bugzilla.redhat.com/show_bug.cgi?id=452874 Upgrade to 3.8.1?]</s>[http://koji.fedoraproject.org/koji/taskinfo?taskID=710711 Done]
|-
|-
||com.jcraft.jsch_0.1.37.v200803061811.jar||jsch||Ensure we have the proper version and MANIFEST.MF data.
||com.jcraft.jsch_0.1.37.v200803061811.jar||jsch||<s>Ensure we have the proper version and MANIFEST.MF data.</s>[http://koji.fedoraproject.org/koji/taskinfo?taskID=714336 Done]
|-
|-
||javax.servlet.jsp_2.0.0.v200806031607.jar||tomcat5-servlet-2.4-api||Ensure we have the proper MANIFEST.MF data.
||javax.servlet.jsp_2.0.0.v200806031607.jar||tomcat5-servlet-2.4-api||<s>Ensure we have the proper MANIFEST.MF data.</s>[http://koji.fedoraproject.org/koji/taskinfo?taskID=714669 Done]
|-
|-
||javax.servlet_2.4.0.v200806031604.jar||tomcat5-jsp-2.0-api||Ensure we have the proper MANIFEST.MF data.
||javax.servlet_2.4.0.v200806031604.jar||tomcat5-jsp-2.0-api||<s>Ensure we have the proper MANIFEST.MF data.</s>[http://koji.fedoraproject.org/koji/taskinfo?taskID=714669 Done]
|-
|-
||org.apache.ant_1.7.0.v200803061910/lib/*||ant||I think we're good here.
||org.apache.ant_1.7.0.v200803061910/lib/*||ant||I think we're good here.
|-
|-
||org.apache.commons.el_1.0.0.v200806031608.jar||jakarta-commons-el||I think we're good here.
||org.apache.commons.el_1.0.0.v200806031608.jar||jakarta-commons-el||[http://koji.fedoraproject.org/koji/taskinfo?taskID=714629 Done]
|-
|-
||org.apache.commons.logging_1.0.4.v20080605-1930.jar||jakarta-commons-logging||I think we're good here.
||org.apache.commons.logging_1.0.4.v20080605-1930.jar||jakarta-commons-logging||[http://koji.fedoraproject.org/koji/taskinfo?taskID=710726 Done]
|-
|-
||org.apache.jasper_5.5.17.v200806031609.jar||tomcat5-jasper-eclipse||We have 5.5.26 but upstream ships against 5.5.17.  We may need to see if anything has a hard version requirement on 5.5.17.
||org.apache.jasper_5.5.17.v200806031609.jar||tomcat5-jasper-eclipse||We have 5.5.26 but upstream ships against 5.5.17.  We may need to see if anything has a hard version requirement on 5.5.17. [http://koji.fedoraproject.org/koji/taskinfo?taskID=714669 Done]
|-
|-
||org.apache.lucene.analysis_1.9.1.v20080530-1600.jar||lucene||Ensure 2.3.x we have in Fedora still works.
||org.apache.lucene.analysis_1.9.1.v20080530-1600.jar||lucene||Ensure 2.3.x we have in Fedora still works. [http://koji.fedoraproject.org/koji/taskinfo?taskID=714444 Done]
|-
|-
||org.apache.lucene_1.9.1.v20080530-1600.jar||lucene||Ensure 2.3.x we have in Fedora still works.
||org.apache.lucene_1.9.1.v20080530-1600.jar||lucene||Ensure 2.3.x we have in Fedora still works. [http://koji.fedoraproject.org/koji/taskinfo?taskID=714444 Done]
|-
|-
||org.eclipse.ecf.filetransfer_2.0.0.v20080611-1715.jar||eclipse-ecf||SRPM to be created.
||org.eclipse.ecf.filetransfer_2.0.0.v20080611-1715.jar||<s>eclipse-ecf</s>||For now, build as part of SDK build.  In the future, we can have an eclipse-ecf package which builds and owns these files.  Parts of ECF other than the filetransfer stuff (which is all the SDK uses) have dependencies on things we don't have in Fedora (Smack version 2 -- upstream is [https://bugs.eclipse.org/bugs/show_bug.cgi?id=236452 porting to 3.x]; ch.ethz.iks.r_osgi.remote; ch.ethz.iks.slp).
|-
|-
||org.eclipse.ecf.identity_2.0.0.v20080611-1715.jar||eclipse-ecf||SRPM to be created.SRPM to be created.
||org.eclipse.ecf.identity_2.0.0.v20080611-1715.jar||<s>eclipse-ecf</s>||
|-
|-
||org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20080611-1715.jar||eclipse-ecf||SRPM to be created.
||org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20080611-1715.jar||<s>eclipse-ecf</s>||
|-
|-
||org.eclipse.ecf.provider.filetransfer_2.0.0.v20080611-1715.jar||eclipse-ecf||SRPM to be created.
||org.eclipse.ecf.provider.filetransfer_2.0.0.v20080611-1715.jar||<s>eclipse-ecf</s>||
|-
|-
||org.eclipse.ecf.ssl_1.0.0.v20080611-1715.jar||eclipse-ecf||SRPM to be created.
||org.eclipse.ecf.ssl_1.0.0.v20080611-1715.jar||<s>eclipse-ecf</s>||
|-
|-
||org.eclipse.ecf_2.0.0.v20080611-1715.jar||eclipse-ecf||SRPM to be created.
||org.eclipse.ecf_2.0.0.v20080611-1715.jar||<s>eclipse-ecf</s>||
|-
|-
||org.eclipse.osgi/osgi/osgi.cmpn.jar||internal to Eclipse||Ensure unnecessary for build.
||org.eclipse.osgi/osgi/osgi.cmpn.jar||internal to Eclipse||Ensure unnecessary for build.
Line 97: Line 97:
||org.eclipse.swt/extra_jars/exceptions.jar||internal to Eclipse||Ensure unnecessary for build.
||org.eclipse.swt/extra_jars/exceptions.jar||internal to Eclipse||Ensure unnecessary for build.
|-
|-
||org.junit4/junit.jar||junit4||I think we're fine here.
||org.junit4/junit.jar||junit4||No work needed.
|-
|-
||org.junit_3.8.2.v20080602-1318/junit.jar||junit||I think we're fine here.
||org.junit_3.8.2.v20080602-1318/junit.jar||junit||No work needed.
|-
|-
||org.mortbay.jetty_5.1.14.v200806031611.jar||jetty||<s>[https://bugzilla.redhat.com/show_bug.cgi?id=452882 Upgrade to 5.1.14?]</s>[http://koji.fedoraproject.org/koji/buildinfo?buildID=53845 koji link for 5.1.14].  Verify new build has proper OSGi data in MANIFEST.MF.
||org.mortbay.jetty_5.1.14.v200806031611.jar||jetty||<s>[https://bugzilla.redhat.com/show_bug.cgi?id=452882 Upgrade to 5.1.14?]</s>  <s>Verify new build has proper OSGi data in MANIFEST.MF.</s>[http://koji.fedoraproject.org/koji/buildinfo?buildID=53845 Done]
|-
|-
||org.objectweb.asm_3.1.0.v200803061910.jar||objectweb-asm||Need to get monolithic OSGi-ified JAR '''OR''' patch  pde.api to use the multiple jars (and will have to add OSGi MANIFEST.MFs to them).  The vast majority of the imports are included in asm-3.1.jar but two are in asm-tree-3.1.jar and one is in asm-util-3.1.jar.  See [http://fedorapeople.org/~overholt/asm.jars this file] for more details.
||org.objectweb.asm_3.1.0.v200803061910.jar||objectweb-asm||<s>Need to get monolithic OSGi-ified JAR '''OR''' patch  pde.api to use the multiple jars (and will have to add OSGi MANIFEST.MFs to them).  The vast majority of the imports are included in asm-3.1.jar but two are in asm-tree-3.1.jar and one is in asm-util-3.1.jar.  See [http://fedorapeople.org/~overholt/asm.jars this file] for more details.</s>  ''Update 2008-07-07'':  Alexander Kurtakov has done the work to OSGi-ify asm-all.jar (which wasn't in Fedora).  <s>[https://bugzilla.redhat.com/show_bug.cgi?id=455263 Patch application request].</s>  [http://koji.fedoraproject.org/koji/taskinfo?taskID=714592 Done].
|-
|-
||org.sat4j.core_2.0.0.v20080602.jar||sat4j||[http://fedorapeople.org/~overholt/sat4j-2.0.0-1.fc9.src.rpm SRPM] to be submitted for review.
||org.sat4j.core_2.0.0.v20080602.jar||sat4j||<s>[https://bugzilla.redhat.com/show_bug.cgi?id=453781 Review request]</s>  [http://koji.fedoraproject.org/koji/buildinfo?buildID=56190 Done]
|-
|-
||org.sat4j.pb_2.0.0.v20080602.jar||sat4j||[http://fedorapeople.org/~overholt/sat4j-2.0.0-1.fc9.src.rpm SRPM] to be submitted for review.
||org.sat4j.pb_2.0.0.v20080602.jar||sat4j||<s>[https://bugzilla.redhat.com/show_bug.cgi?id=453781 Review request]</s>  [http://koji.fedoraproject.org/koji/buildinfo?buildID=56190 Done]
|}
|}


== Contingency Plan ==
== Contingency Plan ==
Stick with Eclipse 3.3.2.
* Stick with Eclipse 3.3.2.


== Documentation ==
== Documentation ==
* http://help.eclipse.org


== Release Notes ==
== Release Notes ==
We may need a release note if we don't get user-installed plugins working.
We will need a release note stating that user-installed plugins from earlier releases will need to be re-installed for 3.4.
 
== Comments and Discussion ==
 
* See [[Talk:Features/Eclipse34]]


----
----
[[Category:ProposedFeature]]
 
[[Category:FeatureAcceptedF10]]

Revision as of 17:52, 16 September 2008

Eclipse 3.4

Summary

Re-base to Eclipse 3.4 (Ganymede). What's new for this release? In addition to bug fixes and general improvements, there are some interesting new features. For example, there is the Equinox/p2 provisioning framework which replaces the old update manager. The new update manager is a lot easier for the end-user to update and maintain the workbench. In the JDT, multicore support has been added to ensure Eclipse is fast as possible for compiling Java code in the future. As well, a new feature called Plug-in Spy has been added which is a useful tool for plug-in developers to determine what plug-in supplies a selection class.

Owner

Current status

  • Targeted release: Fedora 10
  • Last updated: 2008-09-16 by Jeff Johnston
  • Percentage of completion: 100%
  • Outstanding issues:
    • tag build in koji
    • get p2 user UI working
    • get builds going on non-upstream platforms
    • get p2-ization stuff into package-build and eclipse-* %install sections
    • run tests
    • re-build icu4j, sat4j, tomcat5, and eclipse-*

Detailed Description

  • The Eclipse project releases its IDE and development platform once a year. The most recent release in June 2008 is version 3.4 also known as Ganymede. A lot of improvements and functional additions appear in 3.4.

Benefit to Fedora

The latest bells and whistles :)

Scope

See 452875

  • use p2
    • decide (with other distros and in consultation with upstream) about dropins location
    • update pdebuild.sh to generate p2 metadata
    • ensure our metadata is properly read by p2 if we're going to use the dropins approach for additional plugins
    • ensure our arch-specific/arch-independent split still worksmove everything in the SDK to %{_libdir}/eclipse
  • ensure we have all dependent packages updated and OSGi-ified a la Orbit
  • get sat4j reviewed
  • ensure secondary arches can still build and runppc64 works. I assume other arches will also work.

Test Plan

Automated upstream tests, daily usage, 3rd party plugin installation

User Experience

The user should see a seamless upgrade from eclipse-*-3.3.2 to eclipse-*-3.4.0. Unfortunately, 3rd party plugins users have installed (into ~/.eclipse) will probably no longer work without re-installation (see Eclipse.org bug 223434.

Dependencies

  • sat4j (Review RequestDone.)
  • OSGi-ifying: objectweb-asm (probably with a sub-package, objectweb-asm-eclipse or something)
    • get a mega-asm bundle from the multiple JARs we have in Fedora now
  • the rest of the dependencies from Eclipse 3.3 except Tomcat (actually, still need Tomcat for the servlet{,.jsp} API and jasper sub-packages)

JARs we'll need to have to be able to symlink

These are all the JARs in the source drop. The source ones will be generated by the build so ignore those.

JAR filename Containing package More info
com.ibm.icu_3.8.1.v20080530.jar icu4j Upgrade to 3.8.1?Done
com.jcraft.jsch_0.1.37.v200803061811.jar jsch Ensure we have the proper version and MANIFEST.MF data.Done
javax.servlet.jsp_2.0.0.v200806031607.jar tomcat5-servlet-2.4-api Ensure we have the proper MANIFEST.MF data.Done
javax.servlet_2.4.0.v200806031604.jar tomcat5-jsp-2.0-api Ensure we have the proper MANIFEST.MF data.Done
org.apache.ant_1.7.0.v200803061910/lib/* ant I think we're good here.
org.apache.commons.el_1.0.0.v200806031608.jar jakarta-commons-el Done
org.apache.commons.logging_1.0.4.v20080605-1930.jar jakarta-commons-logging Done
org.apache.jasper_5.5.17.v200806031609.jar tomcat5-jasper-eclipse We have 5.5.26 but upstream ships against 5.5.17. We may need to see if anything has a hard version requirement on 5.5.17. Done
org.apache.lucene.analysis_1.9.1.v20080530-1600.jar lucene Ensure 2.3.x we have in Fedora still works. Done
org.apache.lucene_1.9.1.v20080530-1600.jar lucene Ensure 2.3.x we have in Fedora still works. Done
org.eclipse.ecf.filetransfer_2.0.0.v20080611-1715.jar eclipse-ecf For now, build as part of SDK build. In the future, we can have an eclipse-ecf package which builds and owns these files. Parts of ECF other than the filetransfer stuff (which is all the SDK uses) have dependencies on things we don't have in Fedora (Smack version 2 -- upstream is porting to 3.x; ch.ethz.iks.r_osgi.remote; ch.ethz.iks.slp).
org.eclipse.ecf.identity_2.0.0.v20080611-1715.jar eclipse-ecf
org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20080611-1715.jar eclipse-ecf
org.eclipse.ecf.provider.filetransfer_2.0.0.v20080611-1715.jar eclipse-ecf
org.eclipse.ecf.ssl_1.0.0.v20080611-1715.jar eclipse-ecf
org.eclipse.ecf_2.0.0.v20080611-1715.jar eclipse-ecf
org.eclipse.osgi/osgi/osgi.cmpn.jar internal to Eclipse Ensure unnecessary for build.
org.eclipse.osgi/osgi/osgi.core.jar internal to Eclipse Ensure unnecessary for build.
org.eclipse.osgi/supplement/osgi/osgi.jar internal to Eclipse Ensure unnecessary for build.
org.eclipse.swt.tools/swttools.jar internal to Eclipse Ensure unnecessary for build.
org.eclipse.swt.win32.win32.x86/swt.jar internal to Eclipse Ensure unnecessary for build.
org.eclipse.swt/extra_jars/exceptions.jar internal to Eclipse Ensure unnecessary for build.
org.junit4/junit.jar junit4 No work needed.
org.junit_3.8.2.v20080602-1318/junit.jar junit No work needed.
org.mortbay.jetty_5.1.14.v200806031611.jar jetty Upgrade to 5.1.14? Verify new build has proper OSGi data in MANIFEST.MF.Done
org.objectweb.asm_3.1.0.v200803061910.jar objectweb-asm Need to get monolithic OSGi-ified JAR OR patch pde.api to use the multiple jars (and will have to add OSGi MANIFEST.MFs to them). The vast majority of the imports are included in asm-3.1.jar but two are in asm-tree-3.1.jar and one is in asm-util-3.1.jar. See this file for more details. Update 2008-07-07: Alexander Kurtakov has done the work to OSGi-ify asm-all.jar (which wasn't in Fedora). Patch application request. Done.
org.sat4j.core_2.0.0.v20080602.jar sat4j Review request Done
org.sat4j.pb_2.0.0.v20080602.jar sat4j Review request Done

Contingency Plan

  • Stick with Eclipse 3.3.2.

Documentation

Release Notes

We will need a release note stating that user-installed plugins from earlier releases will need to be re-installed for 3.4.

Comments and Discussion