blob: bcf200013e769466f6859fc537961a5e651dd9d1 [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 = "Eclipse Development Process";
$pageKeywords = "development process";
$pageAuthor = "Bjorn Freeman-Benson Jan 2006";
ob_start();
?>
<div id="maincontent">
<div id="midcolumn">
<h2>Project Info Directory</h2>
<p>The project status information is stored and used in a number of places:</p>
<ol>
<li>The Eclipse Foundation's internal database of projects. (<a href="project-status-infrastructure-page1.php">see
&quot;how to&quot; page 1</a>)</li>
<li>The project's own <code>project-info/</code> directory. (the topic of this
page)</li>
<li>The project's own <code> index.php</code> home page. (<a href="project-status-infrastructure-page3.php">see
&quot;how to&quot; page 3</a>)</li>
<li>Other project pages (<a href="project-status-infrastructure-page4.php">see
&quot;how to&quot; page 4</a>)</li>
</ol>
<h3>2. Project-Info Directory</h3>
<p>Most of the project description, status, and meta-data is maintained by the
project Committers themselves in sub-directory of their web sub-site named: <code><b>project-info/</b></code>.
This directory contains a number of files:</p>
<ul>
<li><b>project-page-paragraph.html</b> - short project description for the
project's parent's page</li>
<li><b>home-page-one-liner.html</b> - short project name for the project's
parent's left nav</li>
<li><b>project-info.xml</b> - description and status information</li>
<li><b>newsgroup</b> - short descriptions of the project's newsgroups</li>
<li><b>maillist</b> - short descriptions of the projects mailing lists
</ul>
<h4>2.1 Project Paragraph and One Liner</h4>
<p>Top-level projects are listed on the /projects/ page.</p>
<ol>
<li>The text in the descriptive &quot;What are the top-level projects?&quot;
is taken from the <code><b>project-info/project-page-paragraph.html</b></code> file. Changing
the descriptive text is as simple as changing the contents of that file on
the project's web sub-site. Because the real estate on this page is shared
amongst all the top-level projects (and other process information) it is
important to keep this descriptive text short and concise. Please leave the
longer description of the project to the project's home page.</li>
<li>The text in the left nav is taken from the <code><b>project-info/home-page-one-liner.html</b></code>
file. Because this is a left nav, brevity is even more important. This it
the primary navigation path to the projects for most developers and thus we
need to keep the menu functional.</li>
</ol>
<p align="center"><img border="0" src="images/html-fragment-locations.gif"></p>
<p>Technology sub-projects are listed on the <code> /technology/</code> page.</p>
<ol>
<li>The text in the list of projects is taken from the <code><b>project-info/project-page-paragraph.html</b></code> file. The real estate on this page
is not as tightly constrained as on the /<code>projects/ </code> home page, thus each
Technology sub-project is permitted a larger description.</li>
<li>Technology sub-projects without a <code>project-info/project-page-paragraph.html</code>
file are just listed by name.</li>
<li>The <code>project-info/home-page-one-liner.html</code> is not currently used for
Technology sub-projects.</li>
</ol>
<p align="center"><img border="0" src="images/html-fragment-locations-2.gif"></p>
<p>Sub-projects in other top-level projects (Tools, Web Tools, BIRT, etc.)
should consult their PMC about how the sub-projects appear on the top-level
project's home page.</p>
<h4>2.2 Project-info XML File</h4>
<p>The <code>project-info/project-info.xml</code> file is, well, an XML file containing
various bits and pieces of project description, status, and information. The
information from the project-info.xml file can be used in the project's web
pages through the ProjectInfo PHP object. The ProjectInfo information&nbsp; is
used to generate the project's standard left nav items (see below), Roadmap
contribution, dashboard, and other pages. The following is an
annotated example.</p>
<table><tr><td style="border: 1px dashed black; background-color: ivory;
padding-top: 2px;
padding-left: 2px;
padding-right: 2px;
padding-bottom: 2px"><pre>
&lt;project&gt;
<font color="blue"> &lt;!--
- This example is annotated to be instructive. In order to be instructive, the
- example is a mish-mash of information from a variety of projects. Obviously,
- when you write the project-info.xml file for your project, the file will
- contain information only about your one project.
--&gt;</font>
<font color="blue"> &lt;!--
- Unless otherwise specified, all URLs are to be specified using rooted relative
- paths. In other words:
- CORRECT: &quot;/webtools/foo/bar.php&quot;
- INCORRECT: &quot;foo/bar.php&quot;
- INCORRECT: &quot;http://www.eclipse.org/webtools/foo/bar.php&quot;
--&gt;</font>
<font color="blue"> &lt;!--
- Each Eclipse project as an official name, e.g.,
- &quot;AJDT - AspectJ Development Tools Project&quot; and a foundation database
- key, e.g., &quot;technology.ajdt&quot;. These are stored in an Eclipse Foundation
- database; to change them, contact emo@eclipse.org. Each project can
- also have a short name to be used in HTML lists and other horizontally
- challenged places.
--&gt;</font>
&lt;short-name&gt;<b>AJDT</b>&lt;/short-name&gt;
<font color="blue"> &lt;!--
- Each Eclipse project has one or more Bugzilla products and components.
- Some projects also have a separate web page describing how to submit
- a bug, how bugs are prioritized, and other useful information.
- The &lt;bugzilla&gt; collects this information.
-
- &lt;bugzilla url=&quot;...&quot;&gt; &lt;product name=&quot;...&quot;/&gt; ... &lt;/bugzilla&gt;
- The url is optional; if absent, the url will default to the Bugzilla
- page of the first product. Multiple &lt;product&gt;s are allowed.
--&gt;</font>
&lt;bugzilla&gt;
&lt;product name=&quot;<b>Mylar</b>&quot;/&gt;
&lt;/bugzilla&gt;
<font color="blue"> &lt;!--
- Committers and non-committer Contributors are the raison d'etre of
- an Eclipse project, thus each project should list and acknowledge these
- developers. Some of the Committers are 'special' in the sense that
- they are the project leaders. The &lt;team&gt; element contains the
- URL of the project's pages listing these important people.
--&gt;</font>
&lt;team url=&quot;<b>/webtools/people/contributors.html</b>&quot;/&gt;
<font color="blue"> &lt;!--
- The source code of each Eclipse project is stored in CVS. Eclipse maintains
- a number of CVS repositories, thus the &lt;cvs&gt; element specifies which
- CVS repository and (if applicable) which root path stores this project's
- source code.
-
- A top-level project typically specifies only the repository:
- &lt;cvs repository=&quot;/cvsroot/tptp&quot;/&gt;
- A sub-project includes the root path as well:
- &lt;cvs repository=&quot;/cvsroot/technology/&quot;&gt;
- &lt;module path=&quot;org.eclipse.higgins&quot; /&gt;
- &lt;/cvs&gt;
--&gt;</font>
&lt;cvs repository=&quot;<b>/cvsroot/tools/</b>&quot;&gt;
&lt;module path=&quot;<b>org.eclipse.cdt-build</b>&quot; /&gt;
&lt;module path=&quot;<b>org.eclipse.cdt-contrib</b>&quot; /&gt;
&lt;module path=&quot;<b>org.eclipse.cdt-core</b>&quot; /&gt;
&lt;module path=&quot;<b>org.eclipse.cdt-cppunit</b>&quot; /&gt;
&lt;module path=&quot;<b>org.eclipse.cdt-debug</b>&quot; /&gt;
&lt;module path=&quot;<b>org.eclipse.cdt-doc</b>&quot; /&gt;
&lt;module path=&quot;<b>org.eclipse.cdt-build</b>&quot; /&gt;
&lt;module path=&quot;<b>org.eclipse.cdt-build</b>&quot; /&gt;
&lt;module path=&quot;<b>org.eclipse.cdt-build</b>&quot; /&gt;
&lt;/cvs&gt;
<font color="blue"> &lt;!--
- The description of an Eclipse project shows up in many places: the
- project's home page, perhaps the /projects/ page listing all the
- top-level projects, in the Roadmap, and so on. Some of the descriptions
- are separate HTML files (such as those described in
- http://phoenix.eclipse.org/projects/dev_process/project-status-infrastructure.php).
- It would be nice
- This &lt;description&gt; element contains two additional descriptions.
- 1. The optional &lt;description url=&quot;...&quot;&gt; points to a web page with a larger
- description of the entire project.
- 2. The required &lt;description paragraph-url=&quot;...&quot;&gt; points to a file
- containing a couple of simple HTML paragraphs describing the project.
- This file is often stored in the /project-info/ directory, thus the
- url would be something like &quot;/tptp/project-info/description.html&quot;.
--&gt;</font>
&lt;description url=&quot;<b>/tptp/home/project_info/general/whatisTPTP.html</b>&quot;
paragraph-url=&quot;<b>/webtools/project-page-paragraph.html</b>&quot;/&gt;
<font color="blue"> &lt;!--
- In addition to the description, each Eclipse project is also required to
- provide an up-to-date status summary. &quot;Up to date&quot; means revised at least
- quarterly.
- The required &lt;summary paragraph-url=&quot;...&quot;&gt; points to a file
- containing a number of simple HTML paragraphs with an executive summary
- of the project status.
- This file is often stored in the /project-info/ directory, thus the
- url would be something like &quot;/technology/project-info/executive-summary.html&quot;.
--&gt;</font>
&lt;summary paragraph-url=&quot;<b>/technology/project-info/executive-summary.html</b>&quot;/&gt;
<font color="blue"> &lt;!--
- It is important to help new users get started with an Eclipse project
- because most Eclipse projects are solving some difficult technical
- problem and thus are somewhat complex. The &lt;getting-started&gt; element
- points to a web page on the project's site that describes how to
- get started using and extending the project's tools and frameworks.
--&gt;</font>
&lt;getting-started url=&quot;<b>/webtools/community/communityresources.html#tutorials</b>&quot;/&gt;
<font color="blue"> &lt;!--
- It is also important to help new contributors get started with an Eclipse project.
- Most Eclipse projects have interesting/complex development environment
- setups or to-do lists. The &lt;contributing&gt; element
- points to a web page on the project's site that describes how to
- get started developing on, and contributing to, the project.
--&gt;</font>
&lt;contributing url=&quot;<b>/webtools/adopters/</b>&quot;/&gt;
<font color="blue"> &lt;!--
- Each Eclipse project is required to maintain a current Project IP Log.
- See http://www.eclipse.org/projects/dev_process/project-log.php
- The &lt;ip-log&gt; contains the URL of that log. If the project has
- other legal information as well, it can use the &lt;legal&gt; element
- instead and then include the IP Log information on the Legal web page.
--&gt;</font>
&lt;ip-log url=&quot;<b>/projects/slides/Web%20Tools%20Platform%201.0%20Project%20IP%20Log.pdf</b>&quot;/&gt;
&lt;legal url=&quot;<b>/projects/slides/Web%20Tools%20Platform%201.0%20Project%20IP%20Log.pdf</b>&quot;/&gt;
<font color="blue"> &lt;!--
- Each Eclipse project has one or more mailing lists.
- Some projects also have a separate web page describing these lists
- while others rely on the main Eclipse mailing lists page.
-
- &lt;mailing-lists url=&quot;...&quot;&gt; &lt;list name=&quot;...&quot;/&gt; ... &lt;/mailing-lists&gt;
- The url is optional; if absent, the url will default to the Eclipse
- mailing lists page. Multiple &lt;lists&gt;s are allowed.
-
- Note that currently mailing lists must be redundantly listed in
- the separate project-info/maillist file as well.
--&gt;</font>
&lt;mailing-lists url=&quot;<b>/birt/index.php?page=community.html</b>&quot;&gt;
&lt;list name=&quot;<b>birt-news</b>&quot;/&gt;
&lt;list name=&quot;<b>birt-pmc</b>&quot;/&gt;
&lt;list name=&quot;<b>birt-dev</b>&quot;/&gt;
&lt;list name=&quot;<b>birt-charting-dev</b>&quot;/&gt;
&lt;list name=&quot;<b>birt-report-engine-dev</b>&quot;/&gt;
&lt;list name=&quot;<b>birt-report-designer-dev</b>&quot;/&gt;
&lt;/mailing-lists&gt;
<font color="blue"> &lt;!--
- Each Eclipse project has one or more newsgroups.
- Some projects also have a separate web page describing these lists
- while others rely on the main Eclipse newsgroups page.
-
- &lt;newsgroups url=&quot;...&quot;&gt; &lt;newsgroup name=&quot;...&quot;/&gt; ... &lt;/newsgroups&gt;
- The url is optional; if absent, the url will default to the Eclipse
- newsgroups page. Multiple &lt;newsgroups&gt;s are allowed.
--&gt;</font>
&lt;newsgroups&gt;
&lt;newsgroup name=&quot;<b>eclipse.platform.rcp</b>&quot;/&gt;
&lt;newsgroup name=&quot;<b>eclipse.platform.swt</b>&quot;/&gt;
&lt;/newsgroups&gt;
<font color="blue"> &lt;!--
- The dashboard attempts to measure the liveness of a project in many
- ways including the traffic on the mailing lists and newsgroups. There
- are other places where significant project-related traffic can occur
- including blogs and articles. When listed here, the dashboard incorporates
- them into the liveness measure (or rather, &quot;will incorporate&quot;).
--&gt;</font>
&lt;articles&gt;
&lt;article url=&quot;<b>/articles/Article-Forms/article.html</b>&quot;/&gt;
&lt;article url=&quot;<b>http://www.onjava.com/pub/a/onjava/2002/12/11/eclipse.html</b>&quot;/&gt;
&lt;/articles&gt;
&lt;blogs&gt;
&lt;blog rss=&quot;<b>http://eclipse-projects.blogspot.com/atom.xml</b>&quot;/&gt;
&lt;/blogs&gt;
<font color="blue"> &lt;!--
- Each Eclipse project needs to have a plan both for its internal purposes
- (to guide development and resource allocation) and for the larger Eclipse
- community and ecosystem to understand what will be delivered and when
- it will be delivered.
--&gt;</font>
&lt;project-plan url=&quot;<b>/birt/index.php?page=project/project_plan_R2_0_0_Draft.html</b>&quot;/&gt;
<font color="blue"> &lt;!--
- Each Eclipse project creates (optional) nightly builds and milestone builds,
- but the important builds of a project are the releases. This section of the
- status file records the completed (past) and scheduled (future) releases of
- the project.
- The status, name, and date are required attributes. The download is optional
- and only valid for completed releases; the plan is optional and valid for
- all releases. The three valid types of releases are, in order of ascending
- uncertainity: &quot;completed&quot;, &quot;scheduled&quot;, and &quot;tentative&quot;. Dates can be
- specified as particular day DD/MM/YYYY (e.g., 22/03/2005) or a particular
- month MM/YYYY (e.g., 10/2005), or a quarter NQYYYY (e.g., 3Q2005). Obviously
- completed releases should include the exact day the release was completed.
-
- In the following example, we have three completed, two scheduled, and one
- tentative release.
--&gt;</font>
&lt;releases&gt;
&lt;release
status=&quot;<b>completed</b>&quot;
name=&quot;<b>3.0.2</b>&quot;
date=&quot;<b>02/2005</b>&quot;
download=&quot;<b>/tptp/home/downloads/drops/3.0.2.html</b>&quot; /&gt;
&lt;release
status=&quot;<b>completed</b>&quot;
name=&quot;<b>3.3</b>&quot;
date=&quot;<b>06/2005</b>&quot;
download=&quot;<b>/tptp/home/downloads/drops/3.3.0.html</b>&quot; /&gt;
&lt;release
status=&quot;<b>completed</b>&quot;
name=&quot;<b>4.0</b>&quot;
date=&quot;<b>30/07/2005</b>&quot;
download=&quot;<b>/tptp/home/downloads/drops/TPTP-4.0.0-200507181519.html</b>&quot; /&gt;
&lt;release
status=&quot;<b>scheduled</b>&quot;
name=&quot;<b>4.1</b>&quot;
date=&quot;<b>14/01/2006</b>&quot;
plan=&quot;<b>/tptp/home/project_info/featureplans/features.php?source=
All&amp;amp;project=All&amp;amp;release=4.1&amp;amp;file=TPTPFeatures_4.1.xml</b>&quot; /&gt;
&lt;release
status=&quot;<b>scheduled</b>&quot;
name=&quot;<b>4.2</b>&quot;
date=&quot;<b>06/2006</b>&quot; /&gt;
&lt;release
status=&quot;<b>tentative</b>&quot;
name=&quot;<b>4.3</b>&quot;
date=&quot;<b>4Q2006</b>&quot; /&gt;
&lt;/releases&gt;
&lt;/project&gt;
</pre></tr></table>
<p>To use the ProjectInfo PHP object in your own PHP pages, instantiate it using
this code fragment:</p>
<pre>require_once($_SERVER['DOCUMENT_ROOT'] . &quot;/projects/common/project-info.class.php&quot;);
$projectInfo = new ProjectInfo(&quot;<i>the project's Foundation database key</i>&quot;);</pre>
See <a href="project-status-infrastructure-page1.php">page 1</a> to learn how to
determine your project's Foundation database key.
<h4>2.3 Newsgroup File</h4>
<p>The list of newsgroups for a project is currently stored in two places: the
project-info.xml &lt;newsgroups&gt; tag and the project-info/newsgroup file.<sup>1</sup>
The <code><b>project-info/newsgroup</b></code> file identifies the project's
newsgroup and provides a descriptive paragraph for each. The file format is:</p>
<p style="border: thin 1px dashed; background-color: ivory;
padding-top: 2px;
padding-left: 2px;
padding-right: 2px;
padding-bottom: 2px"><code><b>::news.group.name::</b>multi-line text<br>
that describes the news group<br>
and all sorts of interesting conversations therein<br>
<b>::news.group.anothername::</b>another multi-line text describing the second<br>
newsgroup and how exciting that group is</code></p>
<p>The website newsgroups page and the project dashboard are dynamically generated from these
two files. For example, the newsgroup file for TPTP contains:</p>
<p><code>::eclipse.tptp::Come here to participate in discussions relating to the
TPTP Project. Questions and discussions ... Want to
know more? See the Test &amp; Performance Tools Platform Project home page and
get involved!</code></p>
<p>Which generates this one newsgroup portion of the <a href="/newsgroups/">newsgroups</a>
webpage:</p>
<p><img border="0" src="images/newsgroup-fragment.gif"></p>
<h4>2.4 Maillist File</h4>
<p>The list of mailing lists for a project is currently stored in two places: the
project-info.xml &lt;mailing-lists&gt; tag and the project-info/maillist&nbsp; file.<sup>1</sup>
The <code><b>project-info/maillist</b></code> file identifies the project's
mailing lists and provides a descriptive paragraph for each. The file format is:</p>
<p style="border: thin 1px dashed; background-color: ivory;
padding-top: 2px;
padding-left: 2px;
padding-right: 2px;
padding-bottom: 2px"><code><b>::mailing-list-name::</b>multi-line text<br>
that describes the mailing list<br>
and all sorts of interesting conversations therein<br>
<b>::mailing-list-another::</b>another multi-line text describing the second<br>
mailing list and how exciting and active that list is</code></p>
<p>The website mailing lists page and the project dashboard are dynamically generated from these
two files. For example, the maillist file for Web Tools contains:</p>
<p><code>::wtp-dev::General discussion of project-wide or architectural
issues.&nbsp;<br>
::wtp-releng::Discussions of WTP release engineering.&nbsp;<br>
::wtp-requirements::Discussions of project-wide requirements.&nbsp;<br>
::wtp-pmc::WTP PMC communications (including coordination, announcements, and
Group discussions)</code></p>
<p>Which generates this four lists portion of the <a href="/mail/">mailing lists</a>
webpage:</p>
<p><img border="0" src="images/mailinglist-fragment.gif"></p>
<h4>2.5 Roadmap</h4>
<p>You can test/examine/verify the project-info files for your project by examining
the generated Roadmap pages for your project. There is an <a href="http://www.eclipse.org/projects/roadmap/projects.php">all projects page</a>
and a separate individual page for each project:
<a href="http://www.eclipse.org/projects/roadmap/project.php?project=PROJECT_ID">http://www.eclipse.org/projects/roadmap/project.php?project=PROJECT_ID</a>
</p>
<p align="right"><a href="project-status-infrastructure-page1.php"><img border="0" src="images/prior_step_button.jpg"></a>&nbsp;
&nbsp;<a href="project-status-infrastructure-page3.php"><img border="0" src="images/next_step_button.jpg"></a></p>
<p><sup>1</sup> I'd like to claim that having the newsgroups and the mailing lists
redundantly stored is a good deliberate design decision - perhaps for <a href="http://en.wikipedia.org/wiki/Write_Only_Memory">post-nuclear-holocaust</a>
<a href="http://academics.vmi.edu/ee_js/Research/IC_Datasheets/digital_cmos/Write%20Only%20Memory.pdf">data
storage</a>. But, in fact, it's not. </p>
</div>
</div>
<?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);
?>