diff --git a/doc/releaseReview.1.1.0/epp_1.1.0_ReleaseReview.tex b/doc/releaseReview.1.1.0/epp_1.1.0_ReleaseReview.texindex 7e6874e..5d66bc0 100644--- a/doc/releaseReview.1.1.0/epp_1.1.0_ReleaseReview.tex+++ b/doc/releaseReview.1.1.0/epp_1.1.0_ReleaseReview.tex@@ -10,17 +10,19 @@ %%%%%%%%%%%%%%%%%%%%%%%% DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%% \def\docfilename{} \def\title{Eclipse Packaging Project} -\def\subtitle{Graduation Review Version 1.1.0}-\def\everypagetitle{\textbf{Eclipse Technology Project: EPP\\Graduation Review Version 1.1.0}}-\def\pubdate{\today}+\def\subtitle{Release Review Version 1.1.0}+\def\everypagetitle{\textbf{Eclipse Technology Project: EPP\\Release Review+Version 1.1.0}} \def\pubdate{\today} \def\workpackage{} \def\partners{} \def\leadpartner{} \def\configid{}-\def\docclassification{\copyright 2008 by Markus Knauer.\newline+\def\docclassification{\copyright 2009 by Markus Knauer.\newline Made available under the Eclipse Public License v1.0.} \def\istnumber{}-\def\abstract{This document contains the Graduation Review Documentation for the Eclipse Packaging Project (EPP). The 1.1.0 EPP release is scheduled for 2008-06-25 together with the release of Ganymede.}+\def\abstract{This document contains the Release Review Documentation for the+Eclipse Packaging Project (EPP). The 1.1.0 EPP release is scheduled for+2009-06-24 together with the release of Galileo.} \makeindex @@ -57,42 +59,31 @@ Made available under the Eclipse Public License v1.0.} \chapter{Overview} -Eclipse is seeing tremendous adoption of its tool and platform offerings. With thousands of downloads every day the Eclipse Platform SDK is the most popular download offering. The SDK includes everything needed for Eclipse plug-in development (Platform, PDE, JDT and Sources). When Eclipse was young, this was almost everything that Eclipse.org had to offer. This situation has changed over the last five years, and Eclipse is offering tools from A (AspectJ) to W (Web Tools Platform) in more than 80 projects.--At the same time, Eclipse is not only serving plug-in developers anymore, but also developers who want to explore Eclipse as a tool for a specific language or domain. Those developers are interested in downloading tools that may differ quite a bit from the Platform SDK download. For instance, developers often don't require the source code or Plug-in Development Environment (PDE), if they are just looking to use Eclipse as a Java IDE. It is possible to extend the Eclipse Platform SDK by using the update manager, but developers generally prefer a single download to get started. This is especially important for developers that are new to Eclipse.--The Eclipse Packaging project aims to provide a set of entry-level downloads for different user profiles. The goal is to improve the usability and out-of-box experience of developers that want to use multiple Eclipse projects.- \section{Scope and goals of the project} \begin{itemize}- \item {\bfseries Create entry level downloads based on defined user profiles.} The project defined and created the EPP downloads of Java Developer, Java EE Developer, C/C++ Developer and RCP Developer. These downloads are available from the main Eclipse download page and help users to start with Eclipse.- \item {\bfseries Provide feedback about the content.} With the integration of the EPP Usage Data Collector it will be possible to collect information about how individuals are using the Eclipse platform. The intent is to use this data to help committers and organizations better understand how developers are using Eclipse.+ \item {\bfseries Create entry level downloads based on defined user profiles.} The project defined and created the EPP downloads of Eclipse IDE for Java Developers, Eclipse IDE for Java EE Developers, Eclipse IDE for C/C++ Developers, and Eclipse for RCP/Plug-in Developers. These downloads are available from the main Eclipse download page. In addition to that, other packages maintained by the community and coordinated by EPP are being made available, such as Eclipse IDE for PHP Developers, Eclipse Modeling Tools, Eclipse IDE for Java and Report Developers, and Pulsar for Mobile Java Developers.+ \item {\bfseries Provide and integrate the EPP Usage Data Collector.} The Usage Data Collector collects information about how individuals are using the Eclipse platform. The intent is to use this data to help committers and organizations better understand how developers are using Eclipse.+ \item {\bfseries Provide a dynamic installer that improves the install experience of new users of Eclipse.} \item {\bfseries Help projects to integrate with each other.} With the package centric approach it is possible to build products which contain features of many different Eclipse projects. This leads to an early detection of dependency problems, better integration testing, and a project sturcture that is easier to consume.- \item {\bfseries Provide a platform that allows the creation of packages (zip/tar downloads) from an update site.} The core technology of the project enables the creation of download packages that are created by bundling Eclipse features from one or multiple Eclipse update sites.- \item {\bfseries Provide a central build infrastructure for the eclipse.org package builds.} The EPP package builds are running every night and allow early feedback on the content of the release streams (Europa, Ganymede).- \item {\bfseries Provide an installer} that improves the install experience of new users of Eclipse. (\emph{postponed})+ \item {\bfseries Provide a central build infrastructure for the eclipse.org package builds.} The EPP package builds are running on Hudson and allow early feedback on the content of the release streams (Europa, Ganymede, Galileo). \end{itemize} -Since June 2007, the project delivered packages for all Europa Releases with more than 8,000,000 downloads.+Since June 2007, the project delivered packages for all release trains, including Europa, Ganymede and all of their service releases and had millions of downloads. \chapter{Features} -EPP in version 1.1.0 includes+EPP for Galileo in version 1.1.0 includes \begin{itemize}- \item a packaging component that uses the Eclipse Update Manager and the PDE packager+ \item Buckminster scripts that generate the p2 repository with the package definitions \item build scripts that are used in the nightly package builds \item the UDC (Usage Data Collector) that collects data on an Eclipse client, e.g. an EPP package and sends the data back to the Eclipse Foundation servers. \end{itemize} +Note that the version number of the packages (currently 1.2.0 for Galileo) is independent from the version number of the software that is used by and delivered by the EPP project. + \begin{description}-\item[\texttt{org.eclipse.packaging.core}] core EPP packaging application. The application can be run from the command line and creates the packages defined in the EPP package configuration.- \begin{enumerate}- \item Use Eclipse Update Manager to pull features from update sites. Once downloaded into a local repository, the content can be reused in future builds. - \item Use the PDE packager to create packages for different platforms and configurations.- \item Everything driven by a single configuration file that contains additional information to create the website content of the packaging website.- \end{enumerate} \item[\texttt{org.eclipse.usagedata.*}] client components of the Eclipse Usage Data Collector. The usage data monitors what is being used and when (timestamp), including \begin{itemize} \item Loaded bundles@@ -101,6 +92,7 @@ EPP in version 1.1.0 includes \item Perspective changes \item View usage \item Editor usage+ \item Environment, JVM, platform (new) \end{itemize} Captured data is associated with a user through a combination of workstation and workspace ids that are automatically generated by the collector. This identification is not tied to any personal information about the user. Where possible, the usage data collector also capture the symbolic name and version of the bundle contributing the command/action/perspective/view/editor. \end{description}@@ -127,11 +119,11 @@ Captured data is associated with a user through a combination of workstation and \chapter{Non-Code Aspects} \section{User Documentation}-User documentation has been created for this initial release only in the form of web pages or wiki pages (http://wiki.eclipse.org/index.php/Category:EPP):+User documentation has been created and updated for this release in the form of web pages or wiki pages (http://wiki.eclipse.org/index.php/Category:EPP): \begin{itemize}- \item How-to build your own package \item How-to specify an EPP configuration file- \item How-to start as a Package Mainainer+ \item How-to create the package definition files, package defining feature, branding plug-in+ \item How-to build your own package \item Package Testing \item Build Infrastructure \end{itemize}@@ -139,27 +131,28 @@ User documentation has been created for this initial release only in the form of \section{Localization or Externalization} EPP is available for the English language; strings are externalized. -There are no plans to provide translated versions.+Components in Babel are provided but the team does not translate the strings. \chapter{APIs} \section{EPP Packaging}-The EPP packaging application does not define any extension points. It uses an XML configuration file with a format specified by EPP (http://wiki.eclipse.org/EPP/Configuration\_File\_Format). It contains-\begin{itemize}- \item name, perspective, product ID- \item a set of update sites- \item a set of required features- \item the base platform archive- \item a platform specific eclipse.ini file-\end{itemize}-In the future we will add metadata with a package description that can be used on a webpage etc (see http://wiki.eclipse.org/EPP/Packaging\_Site). This metadata is optional.+The mechanism how the packages are generated has been changed since the last release. The former technology was build on top of the Eclipse update manager technology. Since this technology is now deprecated and Galileo relies on the usage of the new p2 technology, EPP had to change its own underlying technology.++EPP packages are now build in two steps and allow every modification that is possible with the standard Eclipse branding.++\begin{enumerate}+ \item Create a p2 repository with the package metadata; automated with technology from the Buckminster project.+ \item Use the p2 metadata from step 1 in order to create the packages with the p2 director application.+\end{enumerate}++The old XML configuration file with a format specified by EPP\footnote{http://wiki.eclipse.org/EPP/Configuration\_File\_Format} is used to generate the web pages only. The package definition is using standard Eclipse technology, such as features and plugins for branding. \section{EPP UDC} The EPP UDC functionality is split into \begin{description}-\item[\texttt{org.eclipse.epp.usagedata.gathering}] which defines the \texttt{org.eclipse.epp.usagedata.gathering.monitors} extension point; this extension point is used to plug new monitors to Eclipse. Three monitor implementations are included: PartUsageMonitor, BundleUsageMonitor, CommandUsageMonitor. And it defines the \texttt{org.eclipse.epp.usagedata.listeners.event} extension point; implementators act as receiver of the events generated by the monitors.-\item[\texttt{org.eclipse.epp.usagedata.recording}] which defines the \texttt{org.eclipse.epp.usagedata.recording.uploader} extension point; this extension point allows the creation of different systems to process the data collection. +\item[\texttt{org.eclipse.epp.usagedata.gathering}] which defines the \\ \texttt{org.eclipse.epp.usagedata.gathering.monitors} extension point; this extension point is used to plug new monitors to Eclipse. Three monitor implementations are included: PartUsageMonitor, BundleUsageMonitor, CommandUsageMonitor. And it defines the \\ \texttt{org.eclipse.epp.usagedata.listeners.event} extension point; implementators act as receiver of the events generated by the monitors.+\item[\texttt{org.eclipse.epp.usagedata.recording}] which defines the \\ \texttt{org.eclipse.epp.usagedata.recording.uploader} extension point; this extension point allows the creation of different systems to process the data collection. \item[\texttt{org.eclipse.epp.usagedata.ui}] defines the UI elements (i.e. preferences pages) and provides an implementation of the uploader extension point that uploads the UDC data to an Eclipse Foundation server. \end{description} @@ -171,11 +164,11 @@ The EPP UDC functionality is split into \section{EPP Packaging} -The EPP configuration file will be modified to reflect changes in its downstream 'consumers' (package build, website, content management system, installers, \ldots). These changes will contain additional elements and therefore are compatible with the old versions.+The EPP configuration file is not used any more for the package build. Using Eclipse standards, such as feature.xml, etc. \section{EPP Usage Data Collector} -The current implementation of the UDC works in an RCP environment. Future planned enhancements include a UDC that will run unmodified in a RAP environment. Currently, there are no known API changes necessary.+The current implementation of the UDC works in an RCP environment. Future planned enhancements include a UDC that will run unmodified in a RAP environment. %Summarize the architectural quality of the release. Discuss the intrinsic nature of being extensible embodied by this project. Discuss issues such as unresolved overlap with other projects, unpaid "merge debt" from incorporating various components, and so on. %Reason: Eclipse members build commercial tools on top of the extensible frameworks and thus the quality of the architecture is important.@@ -184,31 +177,13 @@ The current implementation of the UDC works in an RCP environment. Future planne \section{EPP Packaging} -With more than 8,000,000 downloads in the last 10 months, packages generated by EPP have been proven stable.--\begin{figure}[!h]-\begin{center}-\includegraphics[width=0.47\textwidth]{img/epp.download.stats.eps}-\caption{EPP Download Statistics (first 9 months)}-\label{fig:epp.download.stats}-\end{center} -\end{figure}+With millions of downloads in the last 2 years, packages generated by EPP have been proven stable. The EPP packages are available from the main eclipse.org download page and all community packages from a Drupal driven site. \section{EPP Usage Data Collector} -Early adopters of the Ganymede Milestone Packages already sent their UDC data to the Eclipse Foundation. The following data was collected on a 14 days period from 2008-02-29 to 2008-03-14: 2,359,688 usage data events were been generated by 453 users (an average of 5,209 events per user):‏--\begin{figure}[!h]-\begin{center}-\includegraphics[width=0.47\textwidth]{img/epp.udc.results.views.eps}-\includegraphics[width=0.47\textwidth]{img/epp.udc.results.editors.eps}-\caption{EPP Usage Data Collector Results (Views and Editors)}-\label{fig:epp.udc.results}-\end{center} -\end{figure}-+More than 120.000 users of the Ganymede Packages already send their UDC data to the Eclipse Foundation every month. The results are available from the Eclipse Foundation web pages \\ (http://www.eclipse.org/org/usagedata/). %Summarize the usability of the tools. Usability in this sense is about using the tools to solve development problems, not the more academic sense of UI evaluation/testing.@@ -216,24 +191,16 @@ Early adopters of the Ganymede Milestone Packages already sent their UDC data to \chapter{End-of-Life} -This is an initial release, so there are currently no deprecated or removed APIs or features.+The EPP packaging application cannot be supported any more. The project uses now existing technology from Equinox p2. \chapter{Bugzilla} -As of 2008-05-12 there are $136$ bugs in technology/epp. In the end, there will be no blockers left and all open bugs for 1.1.0 will be fixed until the release.--\begin{figure}[!h]-\begin{center}-\includegraphics[width=0.80\textwidth]{img/bugzilla.all.report-2008-05-12.eps}-\caption{EPP Bugzilla Overview}-\label{fig:epp.bugzilla}-\end{center} -\end{figure}+As of 2009-06-01 there are $347$ bugs in technology/epp, $126$ listed with status new, assigned, open. There are no blockers, 5 critical bugs. In the end, there will be no blockers left and all critical bugs for 1.1.0 will be fixed until the release. \chapter{Standards} \begin{itemize}- \item EPP uses Java 1.5, compatible with Eclipse 3.3 and 3.4+ \item EPP uses Java 1.5, compatible with Eclipse 3.4 and 3.5. \end{itemize} \chapter{UI Usability}@@ -250,54 +217,11 @@ Only the EPP UDC contains UI elements in form of preferences pages. \chapter{Schedule} -The plan of the Eclipse Packaging Project is always in parallel with the release train plans, i.e. the Europa and the Ganymede release trains (http://www.eclipse.org/epp/plan.php). -In the project proposal, EPP defined this tentative plan for the Europa timeframe: --\begin{table}[!h] -\begin{tabular}{|p{2.5cm}|p{11cm}|}-\hline-2007-02 0.5M1 & initial definition of entry level download packages for the Eclipse download page \\ \hline-2007-03 0.5M2 & Basic implementation of EPP platform \\ \hline-2007-05 0.5M3 & Feature complete for Europa release \\ \hline-2007-06 0.5 & Beta availabilty for all Eclipse projects and build these packages for Windows, Linux-GTK, MacOSX-Carbon \\ \hline-\end{tabular}-\caption{EPP 0.5 / Europa Release Dates}-\label{tab:epp.dates}-\end{table}--These scheduled dates have been met and the packages were released together with the Europa Release in June 2007, but there has never been a public available release $0.5$. Due to a lack of resources, a native installer could not be provided in time and is currently postponed.--Within the Ganymede timeframe, EPP follows the milestone and release candidate dates defined for the Ganymede Release as EPP dates (see http://wiki.eclipse.org/Ganymede\_Simultaneous\_Release\#Mile\-stones\_and\_Release\_Candidates) and implements the following features:+The plan of the Eclipse Packaging Project is always in parallel with the release train plans, i.e. the Galileo release train (http://www.eclipse.org/projects/project-plan.php?projectid=technology.packaging). -\begin{itemize}- \item Creation of a package eco system where package maintainers can add new packages. - \item Development of the EPP Usaged Data Collector and integration in every package.- \item Delivering milestone builds and nightly build based on the Ganymede Update Site in time; set up of an automated build process and integration with the Ganymatic build.- \item Re-defininition of the initial packages for the Eclipse download page; package builds for Windows, Linux-GTK, Linux-GTK64, and MacOSX-Carbon-\end{itemize}+The scheduled dates for the Ganymede release have been met and the packages were released together with the Ganymede Release in June 2008. Updates have been created and made available for all Ganymede Service Releases. -\begin{table}[!h] -\begin{tabular}{|p{2.5cm}|p{11cm}|}-\hline-2008-02-22 & Ganymede M5 (EPP) with UDC \\ \hline-2008-02-22 & EclipseCon Memory Sticks (EPP) \\ \hline-2008-02-27 & Europa Winter (EPP) \\ \hline-2008-02-29 & Europa Winter (Public Access) \\ \hline-2008-03-31 & EPP new packages must be announced on bugzilla by package maintainer \\ \hline-2008-04-11 & Ganymede M6 API Freeze (EPP) \\ \hline-2008-04-11 & EPP new packages and working configuration files available \\ \hline-2008-05-09 & Ganymede M7 (EPP) \\ \hline-2008-05-09 & EPP package content feature freeze, package build system feature freeze \\ \hline-2008-05-20 & EPP release review (UDC) \\ \hline-2008-05-23 & Ganymede RC1 (EPP) \\ \hline-2008-05-30 & Ganymede RC2 (EPP) \\ \hline-2008-06-06 & Ganymede RC3 (EPP) \\ \hline-2008-06-13 & Ganymede RC4 (EPP) \\ \hline-2008-06-23 & Ganymede Final Release (EPP) \\ \hline-\end{tabular}-\caption{EPP 1.0 / Ganymede Release Dates 2008}-\label{tab:epp.dates}-\end{table}+For the Galileo release, EPP started to deliver initial packages for Galileo M6, and provided regular package builds based on the new build system with Galileo M7. Since then, EPP delivers all packages for each of the Galileo milestones and release candidates. %Discuss the initial schedule and any changes to the schedule over the course of the release, i.e., what the project team achieved. Discuss whether milestones were met or slipped. %Reason: The community relies on consistent schedules from Eclipse so that projects and products can plan for the correct dependencies.@@ -305,24 +229,24 @@ Within the Ganymede timeframe, EPP follows the milestone and release candidate d \chapter{Communities} \begin{itemize}- \item Active committers (5) and contributors from 4 partners (INNOOPRACT, Inc., Eclipse Foundation, Instantiations, Xored)- \item Participation (Talks, BoF) at Eclipse events (EclipseCon 2007, Provisioning Workshop 2008, Eclipse\-Con 2008)+ \item Active committers (6) and contributors from 4 partners (EclipseSource Inc., Eclipse Foundation, Cloudsmith Inc., Instantiations, Xored)+ \item Participation (Talks) at Eclipse events (EclipseSummit 2008, Eclipse\-Con 2009) \item Public conference calls- \item Developer mailing list with about 200 e-mails, newsgroup with about 150 messages+ \item Developer mailing list with about 630 e-mails, newsgroup with more than 200 messages \item The Eclipse Packaging Project has been mentioned in many blog postings, other mailing lists (e.g. cross-project-issues-dev) \item Participation in the Eclipse Planning Council and in the Eclipse Architecture Council \end{itemize} + %Summarize the project's development of its three communities. Consider the interactions on bugzilla, the mailing lists, the newsgroups, public conference calls, blogs, PR activities, code camps, conference tutorials, coordinating with other Eclipse projects and other open source projects (Apache, ObjectWeb, etc), ... %Reason: It is important for Eclipse projects to build a community around the project, not just deliver code for a project. This review item is about the success of building a community. \chapter{IP Issues} -See IP Log at http://www.eclipse.org/projects/slides/EPP\_eclipse-project-ip-log.csv+See IP Log at http://www.eclipse.org/projects/ip\_log.php?projectid=technology.packaging \begin{itemize}- \item Initial code contribution got IP clearance from Eclipse Legal (CQ1395, CQ1536, CQ1898)- \item All CQs of this release got IP clearance from Eclipse Legal (CQ1913, CQ1914, CQ1915)+ \item Initial code contribution got IP clearance from Eclipse Legal (bug 244666) \item External contributions are listed in the IP Log and were submitted via Bugzilla \end{itemize} @@ -330,11 +254,20 @@ List of committers: \begin{itemize} \item Wayne Beaton - committer since 12/2007+ \item Henrik Lindberg - committer since 06/2008+ \item Jordi Böhme López - committer since 06/2008 \item Alexander Kazantsev, initial committer \item Markus Knauer, initial committer+ \item Jeff McAffer - committer since 06/2008 \item Dan Rubel, initial committer \item Mark Russell, initial committer+\end{itemize}++Committer emeritus (committers who have been removed from the list of EPP committers during the last 12 months):++\begin{itemize} \item Elias Volanakis, initial committer+ \item Leif Frenzel, initial committer \end{itemize} %As per the Eclipse IP Policy, these steps must be done:@@ -358,12 +291,7 @@ List of committers: \chapter{Project Plan} -Version 1.1.0 is scheduled for October 2008 (Ganymede Fall). Among other improvements it will include--\begin{itemize}- \item an update of the Usage Data Collector including a RAP-enabled version- \item a p2-ification of remaining parts.-\end{itemize}+Version 1.1.1 is scheduled for October 2009 (Galileo SR1) and will contain mainly bugfixes. A detailed plan is not yet available.