diff --git a/doc/releaseReview.1.5.0/.project b/doc/releaseReview.1.5.0/.project
new file mode 100644
index 0000000..bda6d75
--- /dev/null
+++ b/doc/releaseReview.1.5.0/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>releaseReview.1.5.0</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>net.sourceforge.texlipse.builder.TexlipseBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>net.sourceforge.texlipse.builder.TexlipseNature</nature>
+	</natures>
+</projectDescription>
diff --git a/doc/releaseReview.1.5.0/.texlipse b/doc/releaseReview.1.5.0/.texlipse
new file mode 100644
index 0000000..e142c88
--- /dev/null
+++ b/doc/releaseReview.1.5.0/.texlipse
@@ -0,0 +1,12 @@
+#TeXlipse project settings
+builderNum=0
+outputDir=
+makeIndSty=
+bibrefDir=
+outputFormat=dvi
+tempDir=tmp
+mainTexFile=epp_1.5.0_ReleaseReview.tex
+outputFile=epp_1.5.0_ReleaseReview.dvi
+langSpell=en
+markDer=true
+srcDir=
diff --git a/doc/releaseReview.1.5.0/common/cover.tex b/doc/releaseReview.1.5.0/common/cover.tex
new file mode 100644
index 0000000..f041a39
--- /dev/null
+++ b/doc/releaseReview.1.5.0/common/cover.tex
@@ -0,0 +1,48 @@
+
+\chapter*{}
+\begin{center}
+
+\vspace*{-20mm}
+
+\begin{center}
+%\includegraphics[width=9cm]{../common/geclipse}\\[10mm]
+\textbf{
+\LARGE {\title}\\[8mm]
+\large {\subtitle}\\[13mm]
+%\normalsize {\workpackage}
+}
+\vfill
+\vline width 160mm height 1pt
+\end{center}
+
+\begin{flushright}
+
+\begin{tabular}{p{40mm}p{100mm}}
+%Document Filename: & \textbf{\docfilename}\\[5mm]
+%Workpackage:& \textbf{\workpackage}\\[5mm]
+%Partner(s): & \textbf{\partners}\\[5mm]
+%Lead Partner: & \textbf{\leadpartner}\\[5mm]
+%Config ID: & \textbf{\configid}\\[5mm]
+Document classification: & \textbf{\docclassification}\\[5mm]
+Date: & \textbf{\pubdate}\\[5mm]
+\end{tabular}
+
+\end{flushright}
+
+\vline width 160mm height 1pt
+\vspace*{0mm}
+\end{center}
+
+\vfill \underline{Abstract}: \abstract \vfill
+
+\begin{center}
+\vspace{20mm}
+ % \includegraphics[width=30mm]{../common/ist-logo}
+\end{center}
+\clearpage
+\renewcommand\headrulewidth{0.7pt}
+
+%\lhead{\includegraphics[width=30mm]{../common/geclipse}\vspace*{4mm}}
+\chead{\raggedleft\everypagetitle \vspace*{5mm}}
+\rhead{}
+\vspace{-5mm}
diff --git a/doc/releaseReview.1.5.0/common/geclipse.sty b/doc/releaseReview.1.5.0/common/geclipse.sty
new file mode 100644
index 0000000..32b1947
--- /dev/null
+++ b/doc/releaseReview.1.5.0/common/geclipse.sty
@@ -0,0 +1,33 @@
+\renewcommand\chapter{\clearpage
+                    \global\@topnum\z@
+                    \@afterindentfalse
+                    \secdef\@chapter\@schapter}
+\def\@makechapterhead#1{%
+  \vspace*{5\p@}%
+  {\parindent \z@ \raggedright \normalfont
+    \interlinepenalty\@M
+    \LARGE \bfseries \thechapter \hspace{.5em} #1\par\nobreak
+    \vskip 20\p@
+  }}
+\def\@makeschapterhead#1{%
+  \vspace*{5\p@}%
+  {\parindent \z@ \raggedright \normalfont
+    \interlinepenalty\@M
+    \LARGE \bfseries  #1\par\nobreak
+    \vskip 20\p@
+  }}
+\renewenvironment{theindex}
+               {\if@twocolumn
+                  \@restonecolfalse
+                \else
+                  \@restonecoltrue
+                \fi
+                \columnseprule \z@
+                \columnsep 35\p@
+                \twocolumn[\@makeschapterhead{\indexname}]%
+                \@mkboth{\MakeUppercase\indexname}%
+                        {\MakeUppercase\indexname}%
+                \parindent\z@
+                \parskip\z@ \@plus .3\p@\relax
+                \let\item\@idxitem}
+               {\if@restonecol\onecolumn\else\clearpage\fi}
diff --git a/doc/releaseReview.1.5.0/common/setup.tex b/doc/releaseReview.1.5.0/common/setup.tex
new file mode 100644
index 0000000..9753c32
--- /dev/null
+++ b/doc/releaseReview.1.5.0/common/setup.tex
@@ -0,0 +1,81 @@
+\usepackage{graphicx}
+\usepackage{hyperref}
+\usepackage{makeidx}
+%\usepackage{supertabular}
+\usepackage{common/geclipse}
+\evensidemargin=0pt
+\oddsidemargin=0pt
+\topmargin=-\headheight \advance\topmargin by -\headsep
+\textwidth=15.99cm \textheight=22.5cm % normal A4, 1'' margin
+\setcounter{tocdepth}{2}
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
+\hypersetup{colorlinks}
+
+\bibliographystyle{plain}
+
+\newcommand{\edgfile}[1]{\texttt{#1}}
+\newcommand{\edgcommand}[1]{\texttt{\b #1}}
+
+% Here are the new commands for writing usecases. Use them with the new usecase-environment 
+\usepackage{colortbl}
+\newcommand{\ucitem}[2]{\hline \bfseries #1 & #2 \\}
+\newcommand{\ucname}[1]{\multicolumn{2}{||>{\columncolor{gEclipse}}c||}{\color{white}{\large\scshape\bfseries #1}}\\}
+\newcommand{\ucidentifier}[1]{\ucitem{Identifier}{#1}}
+\newcommand{\ucgoals}[1]{\ucitem{Goals in context}{#1}}
+\newcommand{\ucactors}[1]{\ucitem{Actors}{#1}}
+\newcommand{\uctriggers}[1]{\ucitem{Triggers}{#1}}
+\newcommand{\ucincludes}[1]{\ucitem{Included Use Cases}{#1}}
+\newcommand{\ucextends}[1]{\ucitem{Extends Use Case}{#1}}
+\newcommand{\ucpreconditions}[1]{\ucitem{Pre-Conditions}{#1}}
+\newcommand{\ucpostconditions}[1]{\ucitem{Post-Conditions}{#1}}
+\newcommand{\ucbasicflow}[1]{\ucitem{Basic Flow}{#1}}
+\newcommand{\ucdeviantflow}[1]{\ucitem{Deviant Flow(s)}{#1}}
+\newcommand{\ucimportance}[1]{\ucitem{Importance and Frequency}{#1}}
+\newcommand{\ucadditional}[1]{\ucitem{Additional Requirements}{#1}}
+\newcommand{\ucref}[2]{\hyperlink{uc:#1}{#2}}
+\newenvironment{usecase}[3]
+  {
+    \begin{center}
+    \phantomsection
+  	\addcontentsline{toc}{subsection}{#2}
+  	\tablefirsthead{}
+    \tablehead{\hline \multicolumn{2}{||l||}{\footnotesize \ldots#2 - continued from last
+    page}\\}
+    \tabletail{\hline \multicolumn{2}{||r||}{\footnotesize #2 - continued on
+    next page\ldots}\\ \hline}
+    \tablelasttail{\hline}
+    \begin{supertabular}{||p{4.8cm}|p{9.8cm}||}\hline
+      \ucname{\hypertarget{uc:#3}{#2}}
+      \ucidentifier{#1 - #2}
+  }
+  {
+    \end{supertabular}
+    \end{center}
+    \vspace{0.5cm}
+  }
+
+%\usepackage{lastpage}
+\usepackage{fancyhdr}
+\usepackage{hyperref}
+\pagestyle{fancy}
+
+\pagestyle{fancy}
+\voffset=-1in
+
+\usepackage{color}
+\usepackage{colortbl}
+\definecolor{black}{rgb}{0,0,0}
+\definecolor{white}{rgb}{1,1,1}
+\definecolor{gEclipse}{rgb}{0.3,0.3,0.9}
+%\lhead{\includegraphics[width=30mm]{crossgrid-logo-2}\\[.1mm]}
+%\rhead{\includegraphics[width=30mm]{ist_logo}}
+%\lfoot{\small \istnumber}
+\lfoot{\small \docfilename}
+\cfoot{\docclassification}
+%\rfoot{\thepage/\pageref{LastPage}}
+\rfoot{\thepage}
+
+\renewcommand\headrulewidth{0pt}
+\renewcommand\footrulewidth{0.7pt}
+\renewcommand{\headheight}{40mm}
diff --git a/doc/releaseReview.1.5.0/epp_1.5.0_ReleaseReview.pdf b/doc/releaseReview.1.5.0/epp_1.5.0_ReleaseReview.pdf
new file mode 100644
index 0000000..090ed97
--- /dev/null
+++ b/doc/releaseReview.1.5.0/epp_1.5.0_ReleaseReview.pdf
Binary files differ
diff --git a/doc/releaseReview.1.5.0/epp_1.5.0_ReleaseReview.tex b/doc/releaseReview.1.5.0/epp_1.5.0_ReleaseReview.tex
new file mode 100644
index 0000000..70dcba5
--- /dev/null
+++ b/doc/releaseReview.1.5.0/epp_1.5.0_ReleaseReview.tex
@@ -0,0 +1,310 @@
+\documentclass{report} 
+\input{./common/setup.tex}
+%\usepackage{picins}
+\usepackage{longtable}
+
+
+\renewcommand{\textfraction}{0.01}
+\renewcommand{\topfraction}{1,}
+\renewcommand{\bottomfraction}{1.}
+%%%%%%%%%%%%%%%%%%%%%%%%    DEFINITIONS    %%%%%%%%%%%%%%%%%%%%%%%%
+\def\docfilename{}
+\def\title{Eclipse Packaging Project} 
+\def\subtitle{Release Review Version 1.5.0}
+\def\everypagetitle{\textbf{Eclipse Technology Project: EPP\\Release Review
+Version 1.5.0}} \def\pubdate{\today}
+\def\workpackage{}
+\def\partners{}
+\def\leadpartner{}
+\def\configid{}
+\def\docclassification{\copyright 2012 by Markus Knauer.\newline
+Made available under the Eclipse Public License v1.0.}
+\def\istnumber{}
+\def\abstract{This document contains the Release Review Documentation for the
+Eclipse Packaging Project (EPP). The 1.5.0 EPP release is scheduled for
+2012-06-27 together with the Simultaneous Release of Juno.}
+  
+\makeindex
+
+\begin{document}
+
+\input{./common/cover}
+
+%\vspace*{8cm}
+%\begin{center}
+%This document is intended to be gender-neutral. Nevertheless, we use gender-specific language where expedient to ensure simplicity.
+%\end{center}
+
+%\clearpage
+
+%\section*{Delivery Slip}
+%\begin{tabular}{|p{2.1cm}|p{4.1cm}|p{2.0cm}|p{2.0cm}|p{3.7cm}|}
+%\hline
+%                        & Name  & Partner & Date    &  Signature \\ \hline 
+%\hline
+%\raggedleft From        & Markus Knauer & INO &     &            \\ \hline
+%\raggedleft Verified By &       &         &         &            \\ \hline
+%\raggedleft Approved By &       &         &         &            \\ \hline
+%\end{tabular}
+
+%\section*{Document Log}
+%\begin{tabular}{|p{1.0cm}|p{1.9cm}|p{6cm}|p{5.4cm}|}
+%\hline
+%Version & Date       & Summary of changes & Author  \\ \hline \hline
+% 0.1    & 2007-07-05 & First Draft        & Markus Knauer \\  \hline
+%\end{tabular}
+
+\tableofcontents
+\newpage
+
+\chapter{Overview}
+
+\section{Scope and Goals of the Project}
+
+\begin{itemize}
+ \item {\bfseries Create entry level downloads based on defined user profiles.}
+ \begin{itemize}
+   \item Packages that have been removed from the Juno EPP build on the package maintainers request
+     \begin{itemize}
+       \item Eclipse IDE for JavaScript Web Developers
+     \end{itemize}
+   \item Packages that have been merged into one
+     \begin{itemize}
+       \item Eclipse IDE for C/C++ Linux Developers: Merged with the Eclipse IDE for C/C++ Developers. 
+             Platform specific components from the LinuxTools project are included in compatible platform packages only.
+     \end{itemize}
+   \item New packages with Juno
+     \begin{itemize}
+       \item Eclipse for Mobile Developers: Maintained by the Eclipse Mobile Industry Working Group.
+       \item Eclipse IDE for Automotive Software Developers:  Maintained by the Eclipse Automotive Industry Working Group.
+     \end{itemize}
+   \item EGit is part of many packages (RCP/RAP, Modeling, C/C++, Java, \ldots)
+   \item Other notable additions: WindowBuilder, Code Recommenders
+   \item The EPP sub-project RTP (Runtime Platform Project) provides additional Runtime packages.
+ \end{itemize}
+ The Juno EPP packages are provided for the following architecture, platform, and windowing system combinations:
+ \begin{enumerate}
+   \item Windows 32-Bit, x86
+   \item Windows 64-Bit, x86\_64
+   \item Linux 32-Bit, x86, GTK
+   \item Linux 64-Bit, x86\_64, GTK
+   \item Mac OS-X, 32-Bit, Cocoa
+   \item Mac OS-X, 64-Bit, Cocoa
+ \end{enumerate}
+ \item {\bfseries Integrate the EPP Marketplace Client.} The Eclipse Marketplace Client from the EPP MPC project is included in all packages.
+% \item {\bfseries Provide a dynamic installer that improves the install experience of new users of Eclipse.}
+ \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 Simultaneous Releases (Europa, Ganymede, Galileo, Helios, Indigo, Juno).
+\end{itemize}
+
+Since June 2007, the project delivered packages for all Simultaneous Releases, including Europa, Ganymede, Galileo, Helios, Indigo and all of their service releases and had millions of downloads.
+
+\chapter{Features}
+
+EPP for Juno in version 1.5.0 includes
+
+\begin{itemize}
+  \item Buckminster build that generates the p2 repository with the package definitions 
+  \item build scripts that are used in the nightly package builds
+  \item everything from the EPP Packages Git repository http://git.eclipse.org/c/epp/org.eclipse.epp.packages.git
+\end{itemize}
+
+
+%\begin{description}
+%\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
+%    \item Commands accessed via keyboard shortcuts
+%    \item Actions invoked via menus or toolbars
+%    \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}
+
+%\begin{figure}[!h]
+%\begin{center}
+%\includegraphics[width=0.80\textwidth]{img/epp.udc.uploading.eps}
+%\caption{EPP Usage Data Collector Upload}
+%\label{fig:epp.udc.preferences}
+%\end{center} 
+%end{figure}
+
+%\begin{figure}[!h]
+%\begin{center}
+%\includegraphics[width=0.80\textwidth]{img/epp.udc.preview.eps}
+%caption{EPP Usage Data Collector Preview}
+%\label{fig:epp.udc.preferences}
+%\end{center} 
+%\end{figure}
+
+% Summarize the major features of this release as well as any other features that have generated significant discussion amongst the community during the development cycle. Compare the features against the Roadmap to understand the project's conformance or divergence.
+% Reason: The community will use this release and the ecosystem will build products on top of this release, and both need to know what features were included or excluded.
+% References to existing New and Noteworthy documentation is a useful addition to this summary.
+
+\chapter{Non-Code Aspects}
+\section{User Documentation}
+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 The EPP Committer and Maintainer Policy
+  \item How-to specify an EPP configuration file
+  \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}
+
+\section{Localization or Externalization}
+EPP is available for the English language; strings are externalized.
+
+Components in Babel are provided but the team does not translate the strings.
+
+\chapter{APIs}
+
+\section{EPP Packaging}
+
+No major change since the last release.
+
+%Certify that the APIs in this release are Eclipse Quality. The project lead will personally certify that the requirements for quality have been met and/or discuss any deficiences.
+%Reason: Eclipse members build commercial tools on top of the extensible frameworks and thus the quality of the APIs is extremely important.
+
+
+\chapter{Architectural Issues}
+
+No major known issues or changes in the release.
+
+The EPP source code repository has been migrated successfully from a single CVS repository to multiple Git repositories (see bug 346616).
+
+The packages are now being distributed based on Eclipse Platform version 4.2.
+%
+
+%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.
+
+\chapter{Tool Usability}
+
+\section{EPP Packaging}
+
+With millions of downloads in the last 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.
+
+%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.
+%Reason: Without usable tools, the project will not attract the user community necessary to enable the ecosystem.
+
+\chapter{End-of-Life}
+
+\begin{itemize}
+ \item The EPP Usage Data Collector (UDC) has been retired (see bug 347069).
+ \item The EPP Installer component that was developed at the very beginning of the project has been retired (see bug 346617).
+ \item The EPP Wizard is not maintained any more.
+ \item The EPP packaging application cannot be supported any more. The project uses now existing technology from Equinox p2.
+\end{itemize}
+
+All retired components are available as source code from separate Git repositories. A list a all EPP Git repositories can be found at http://git.eclipse.org/c/epp.
+
+\chapter{Bugzilla}
+
+As of 2012-06-05 there are $688$ bugs in technology/epp, $133$ are listed with
+status new, assigned, open. $84$ bugs have been closed/resolved since 2011-06-01.
+Currently there are no blockers, 4 critical bugs.
+
+\chapter{Standards}
+
+\begin{itemize}
+  \item The EPP packages require Java 1.5 or higher and are based on Eclipse 4.2.
+ \end{itemize}
+
+\chapter{UI Usability}
+
+EPP does not release any UI.
+
+%Summarize the user interface usability and the conformance to the Eclipse User Interface Guidelines. Include section 508 compliance, language pack conformance (does the code support multiple languages), etc. Explain any deviations from the user interface guidelines and standards.
+%Reason: The user community is larger than just mouse-wielding, English-speaking, computer jockeys. We need to support that larger community.
+
+\chapter{Schedule}
+
+The plan of the Eclipse Packaging Project is always in sync with the Simultaneous Release plans, i.e. the Juno Release 2012, the Kepler Release 2013.
+
+The scheduled dates for the Indigo release have been met and the packages were released together with the Indigo Release in June 2011. Updates have been created and made available for all Indigo Service Releases.
+
+For the Juno release, EPP started to deliver initial packages with Juno M1, and provided nightly package builds. Since then, EPP delivered all packages for each of the Juno milestones and release candidates in time.
+
+%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.
+
+\chapter{Communities}
+
+\begin{itemize}
+  \item Active committers (16) and contributors from many partners. All package maintainers have full committer status on the project in a lightweight way similar to the Orbit project (see \\http://wiki.eclipse.org/EPP/EPP\_Committer\_and\_Maintainer\_Policy)
+  \item Developer mailing list with about $2.100$ e-mails (about 600 since Indigo), forum 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/ip\_log.php?projectid=technology.packaging
+
+List of committers:
+
+\begin{itemize}
+  \item Wayne Beaton - committer since 12/2007
+  \item Chuck Bridgham - committer since 11/2011
+  \item Cedric Brun - committer since 05/2011
+  \item Xiaoying Gu - committer since 05/2011
+  \item Andreas Hoegger - committer since 05/2011
+  \item Jeff Johnston - committer since 11/2011
+  \item Markus Knauer, initial committer
+  \item Henrik Lindberg - committer since 06/2008
+  \item Andrew Overholt - committer since 05/2011
+  \item Steffen Pingel - committer since 05/2011
+  \item Doug Schaefer - committer since 05/2011
+  \item Beth Tibbitts - committer since 05/2011
+  \item Markus Tiede - committer since 05/2011
+  \item David Williams - committer since 05/2011
+  \item Eric Cloninger - committer since 06/2012
+  \item Stephan Eberle - committer since 06/2012
+\end{itemize}
+
+List of retired committers:
+
+\begin{itemize}
+  \item Jordi Böhme López - committer since 06/2008 
+  \item Alexander Kazantsev, initial committer
+  \item Jeff McAffer - committer since 06/2008 
+  \item Mark Russell, initial committer
+\end{itemize}
+
+
+%As per the Eclipse IP Policy, these steps must be done:
+%   1. The project leadership verifies that:
+%          * ... that the about files and use licenses are in place as per the Guidelines to Legal Documentation.
+%          * ... all contributions (code, documentation, images, etc) has been committed by individuals who are either Members of the Foundation, or have signed the appropriate Committer Agreement. In either case, these are individuals who have signed, and are abiding by, the Eclipse IP Policy.
+%          * ... that all significant contributions have been reviewed by the Foundation's legal staff. Include references to the IPZilla numbers of all clearances.
+%          * ... that all non-Committer code contributions, including third-party libraries, have been documented in the release and reviewed by the Foundation's legal staff. Include references to the IPZilla numbers of all clearances.
+%          * ... that all Contribution Questionnaires have been completed
+%          * ... the "provider" field of each feature is set to "Eclipse.org"
+%          * ... the "copyright" field of each feature is set to the copyright owner (the Eclipse Foundation is rarely the copyright owner).
+%          * ... that any third-party logos or trademarks included in the distribution (icons, help file logos, etc) have been licensed under the EPL.
+%          * ... that any fonts or similar third-party images included in the distribution (e.g. in PDF or EPS files) have been licensed under the EPL.
+%   2. The PMC provides a Project Log that enumerates:
+%         1. every piece of third party software including information on the license
+%         2. every major contribution
+%         3. the name of every contributor including non-committer contributions via bug fixes with bug number's
+%         4. the About files which contain any non-standard terms (e.g., a reference to a license other than the EPL, etc)
+%   3. The EMO will validate for (a) and (b) that Contribution Questionnaires have been properly submitted and EMO approvals have been completed.
+%   4. A frozen copy of the reviewed-and-approved-by-Eclipse-legal Project Log is part of the Release Review documentation. It can be included in the docuware or as a separate document.
+
+\chapter{Project Plan}
+
+Version 1.5.1 is scheduled for October 2012 (Juno SR1), verion 1.5.2 is scheduled together with Juno SR2. Both will contain mainly bugfixes and no new functionality.
+
+A detailed plan is not yet available.
+
+\end{document}
