blob: e7bc20f15f8e4bc8a57c903e6e34fc335c3a4b30 [file] [log] [blame]
<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
$pageTitle = "Status and Planning Reporting";
$pageKeywords = "development process";
$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
ob_start();
?>
<div id="maincontent">
<div id="midcolumn">
<h1>Status and Planning Reporting</h1>
<p><i>version 019 - August 8, 2005</i></p>
<p><a href="index.php">[This is one page of the larger document.]</a></p>
<h2>Status and Planning Reporting</h2>
<p>The goal is to have a mostly-automated planning and reporting system for Eclipse
projects that:</p>
<ul>
<li>Replaces the static HTML quarterly status reports with an machine-processed
XML file</li>
<li>Reduces each project's overhead of keeping this information up-to-date</li>
<li>Automatically reminds project leaders when the information needs refreshing</li>
<li>Publishes information on eclipse.org web pages.&nbsp;<br>
For example,
the <a href="/projects/timeline/">prototype
master timeline</a> has been useful - we can imagine other useful reports
like that.</li>
</ul>
<h2>File Format</h2>
<p>Each project will have an <code>eclipse-project-status.xml</code> file in its
root web directory.</p>
<p><code>&lt;project&gt;<br>
&nbsp; &lt;name&gt;</code><i>project name</i><code>&lt;/name&gt;<br>
&nbsp; &lt;short-name&gt;</code><i>project short name</i><code>&lt;/short-name&gt;<br>
</code>The project name is the long name (Test and Performance Tools Platform)
and the short name is the abbreviation (TPTP).<code><br>
<br>
&nbsp; &lt;url&gt;</code><i>project home url</i><code>&lt;/url&gt;<br>
</code>Obviously, the home page for the project.</p>
<p><code>&nbsp; &lt;summary&gt;</code><i>executive summary of current status</i><code>&lt;/summary&gt;<br>
</code>This is one of the more important items: the project status summary for
the membership-at-large. A couple of honest paragraphs about what is happening
in the project, the challenges and the plans.</p>
<p><code>&nbsp; &lt;description url=&quot;</code><i>url of project description</i><code>&quot;/&gt;<br>
&nbsp; &lt;description&gt;</code><i>description of project</i><code>&lt;/description&gt;<br>
</code>The project description might already exist on the project website, and
thus it can be referenced by url or included directly here.</p>
<p><code>&nbsp; &lt;shipping&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;release url=&quot;</code><i>download url 1</i><code>&quot;&gt;</code><i>description
1</i><code>&lt;/release&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;release url=&quot;</code><i>download url 2</i><code>&quot;&gt;</code><i>description
2</i><code>&lt;/release&gt;<br>
&nbsp;&nbsp;&nbsp; ...<br>
&nbsp; &lt;/shipping&gt;<br>
&nbsp; &lt;shipping url=&quot;</code><i>download page url</i><code>&quot; aname=&quot;Latest
Releases&quot;/&gt;<br>
</code>The latest releases that are currently shipping.</p>
<p>The first format is an XML version of the &quot;Latest Releases&quot; section
of download pages like <a href="http://download.eclipse.org/eclipse/downloads/index.php">this
one</a>; the second is a direct reference to the download pages. In the second
format, the tools will use this algorithm to automatically extract the shipping
information:</p>
<ol>
<li>read the download page url</li>
<li>search for the matching <code>&lt;a name=&quot;...&quot;&gt;</code></li>
<li>from there, search for <code>&lt;a href&gt;</code>s and extract
description and download urls. The &lt;a href&gt;s will only match if the
description matches the Perl regular expression .*\d+\.\d+.* - in other
words, there has to be at least a digit-dot-digit version number in the
description. It will ignore descriptions that match \d+\.\d+M\d+ and \d+\.\d+RC\d
(milestone and release candidate builds).</li>
<li>the search will end at the first <code>&lt;/table&gt;</code>, <code>&lt;/ul&gt;</code>,
or <code>&lt;/ol&gt;</code></li>
</ol>
<p>This second format should work with these download page formats:</p>
<ul>
<li><a href="http://download.eclipse.org/birt/downloads/">BIRT</a></li>
<li><a href="http://download.eclipse.org/tools/emf/scripts/downloads.php">EMF</a></li>
<li><a href="http://download.eclipse.org/tools/gef/downloads/index.php">GEF</a></li>
<li><a href="http://download.eclipse.org/eclipse/downloads/index.php">Platform</a></li>
<li><a href="http://download.eclipse.org/tools/ve/downloads/index.php">VE</a></li>
<li><a href="http://www.eclipse.org/webtools/downloads.html">WebTools</a></li>
</ul>
<p>It will sort-of work with these download page formats:</p>
<ul>
<li><a href="http://download.eclipse.org/tools/uml2/scripts/downloads.php">UML2</a>
- the maintenance builds are not numbered 1.1.1 in the &lt;a href&gt;
description, thus the maintenance builds will not show up in the list.</li>
</ul>
<p>It does not appear to work with these download page formats:</p>
<ul>
<li><a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/cdt-home/downloads/main.html?cvsroot=Tools_Project">CDT</a>
- cannot determine which are releases and which are development builds</li>
<li><a href="http://www.eclipse.org/tptp/home/downloads/downloads.html">TPTP</a>
- no version numbers</li>
</ul>
<p><code>&nbsp; &lt;releases include-in-parent=&quot;true&quot;&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;milestone status=&quot;tentative|scheduled|completed&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;date&gt;</code><i>date</i><code>&lt;/date&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;plan format=&quot;defacto1&quot;&gt;</code><i>optional planning or status url</i><code>&lt;/plan&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;download&gt;</code><i>optional download url</i><code>&lt;/download&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;</code><i>name</i><code>&lt;/name&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/milestone&gt;<br>
&nbsp;&nbsp;&nbsp; ...<br>
&nbsp;&nbsp;&nbsp; &lt;release
status=&quot;tentative|scheduled|completed&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;date&gt;</code><i>date</i><code>&lt;/date&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;plan format=&quot;defacto1&quot;&gt;</code><i>optional planning or status url</i><code>&lt;/plan&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;download&gt;</code><i>optional download url</i><code>&lt;/download&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;</code><i>name</i><code>&lt;/name&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/release&gt;<br>
&nbsp;&nbsp;&nbsp; ...<br>
&nbsp; &lt;/releases&gt;<br>
</code>The releases being planned and worked on. Obviously there should be a
&lt;shipping&gt; entry for all &lt;completed&gt; releases. If this project does
not ship separately (e.g., the JDT ships as part of the Platform), then there
should be a &lt;releases include-in-parent=&quot;true&quot;&gt; tag; otherwise
include-in-parent should be excluded or set to &quot;false&quot;.</p>
<p> The date can be any of these levels of
precision (It is not possible to be more specific than a day nor vaguer than a
quarter):</p>
<ul>
<li>DD/MM/YYYY - for a specific day, e.g., 22/03/2005</li>
<li>MM/YYYY - for a specific month, e.g., 10/2005</li>
<li>NQYYYY - for a quarter, e.g., 3Q2005</li>
</ul>
<p>If the optional planning document URL is in one of the supported formats and
the plan format is declared, the tools can extract the themes and priorities and
bug numbers for summary in the Roadmap Summary (see below).</p>
<ul>
<li><code>plan format=&quot;defacto1&quot;</code> - the defacto Eclipse
project planning format as specificed-by-example by the Platform team (e.g.,
<a href="http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_1.html">the
Platform 3.1 plan</a>)</li>
</ul>
<p><code>&nbsp; &lt;project-ip-log url=&quot;</code><i>url</i><code>&quot;/&gt;<br>
</code>URL to the <a href="project-log.php"> project's IP log</a>. This is an
absolutely required component, although it could reference it's parent's log.</p>
<p><code>&nbsp; &lt;community&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;mailing-list&gt;</code><i>list name</i><code>&lt;/mailing-list&gt;<br>
&nbsp;&nbsp;&nbsp; ...<br>
&nbsp;&nbsp;&nbsp; &lt;newsgroup&gt;</code><i>newsgroup name</i><code>&lt;/newsgroup&gt;<br>
&nbsp;&nbsp;&nbsp; ...<br>
&nbsp;&nbsp;&nbsp; &lt;bugzilla&gt;</code><i>product</i><code>&lt;/bugzilla&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;bugzilla&gt;</code><i>product:component</i><code>&lt;/bugzilla&gt;<br>
&nbsp;&nbsp;&nbsp; ...<br>
&nbsp;&nbsp;&nbsp; &lt;blog&gt;</code><i>blog url</i><code>&lt;/blog&gt;<br>
&nbsp;&nbsp;&nbsp; ...<br>
&nbsp;&nbsp;&nbsp; &lt;cvs&gt;</code><i>cvs repository path</i><code>&lt;/cvs&gt;<br>
&nbsp;&nbsp;&nbsp; ...<br>
&nbsp; &lt;/community&gt;<br>
</code>List of the project's community communication and information artifacts.
Mailing lists such as ptp-dev@eclipse.org, newsgroups such as
eclipse.technology.alf, bugzilla categories such as <code>AspectJ</code> or <code>AspectJ:Compiler</code>,
blogs, and the Eclipse CVS repository paths. In the future we might add other
artifacts like wikis, forums, del.icio.us tags, and so on. This list should be
as complete as possible, thus if the project has multiple mailing lists (e.g.,
birt-dev@eclipse.org and birt-pmc@eclipse.org), both should be listed (in
separate &lt;mailing-list&gt; lines). CVS repository paths can be singular
(e.g., <code>dev.eclipse.org:/home/tools/gef-home</code>) or wild-card (e.g., <code>dev.eclipse.org/home/tools/org.eclipse.gef*</code>).</p>
<p><code>&lt;/project&gt;</code></p>
<h2>Other Information</h2>
<p>Other information that is considered part of the project status and planning
reports, but which is stored in other places includes:</p>
<ul>
<li>The project leaders and their contact information - stored in the
Foundation's database.</li>
<li>The project committers - stored in the Foundation database.</li>
<li>Non-EPL licensed software included in a release - to be stored in a
separate project log file.</li>
</ul>
<h3>Web Services Interface</h3>
<p>In the future, there will be a web services interface to the Eclipse project
information. We envision a simple interface that returns an XML response which
is the merger of the <code>eclipse-project-status.xml</code> file and the other
project information listed above. Tools will be able to use the web service
interface for consistent access to the information regardless of where it is
stored.</p>
<h2>Reports</h2>
<p>Here are a number of initial reports to be generated from this information:</p>
<ol>
<li>
<p align="left"><b>Release Timeline. </b>Like the <a href="/projects/timeline/">prototype
master timeline</a>. The master timeline will not include Technology
projects (or, in the future, Research projects) on the theory that
Technology projects are not &quot;major Eclipse projects&quot;.</li>
<li>
<p align="left"><b>Milestone Timeline.</b> Same thing, but showing all the
milestones as well. It will be big and probably fairly cluttered.</li>
<li>
<p align="left"><b>Quick Reference. </b>A one-page per project summary of
all the projects. Useful for printing and flipping through on an airplane
trip.</li>
<li><b>Validity.</b> A report showing the &quot;up-to-dateness&quot; status of
each project's eclipse-project-status.xml file. Green for up-to-date. Yellow
for up to 30 days out of date. Red for 30-90 days out of date. Red with
underlines and bold for more than 90 days out of date. Black
&quot;MISSING&quot; if the file does not exist.</li>
<li><b>Atom Feed.</b> Change notifications.</li>
<li><b><a name="Roadmap Summary">Roadmap Summary</a>.</b> A report that shows
the Themes and Priorities from the Roadmap and summarizes the collective
projects' contributions to those Themes; in other words, collections of bug
numbers and their status, sorted by Theme.</li>
</ol>
<h2>Updating</h2>
<p>The Eclipse Development Process requires this information to be current each quarter. Current
is defined as:</p>
<ol>
<li>modified within the last three weeks of the quarter</li>
<li>has an executive summary that is different than last quarter's executive summary</li>
<li>has all the required sections and proper formatting of dates, etc.</li>
</ol>
<p>There will be an automated reminder email. The email will include why the
automated program is sending you this email, e.g., &quot;hasn't been
updated&quot; or &quot;date field '27-Jan-2006' is not in DD/MM/YYYY or MM/YYYY
or NQYYYY date format&quot;, etc.</p>
<ul>
<li>At T-3 weeks, an email will be sent to each project leader reminding them to update
the eclipse-project-status.xml file.</li>
<li>At T-2 weeks, if the file has not been modified, a second reminder will be
sent.</li>
<li>At T-1 week, if the file has not been modified, a third reminder will be
sent and it will be cc'd to the EMO.</li>
<li>At T-0 weeks, if the file has not been modified, two weeks worth of every
other day reminders will be sent.</li>
<li>At T+2 weeks, a final email will be sent to the project leader and to the
EMO saying something like &quot;robo-emailer is giving up&quot;.</li>
</ul>
<?php
# Paste your HTML content between the EOHTML markers!
$html = ob_get_contents();
ob_end_clean();
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>