Phoenix Release, 1.0
diff --git a/.cvsignore b/.cvsignore
new file mode 100644
index 0000000..ab8bae9
--- /dev/null
+++ b/.cvsignore
@@ -0,0 +1,3 @@
+_private
+_vti_cnf
+_vti_pvt
diff --git a/_projectCommon.php b/_projectCommon.php
new file mode 100644
index 0000000..e544597
--- /dev/null
+++ b/_projectCommon.php
@@ -0,0 +1,19 @@
+<?php
+
+ # Set the theme for your project's web pages.
+ # See the Committer Tools "How Do I" for list of themes
+ # https://dev.eclipse.org/committers/
+ $theme = "Phoenix";
+
+$Nav->addNavSeparator("Links", "");
+$Nav->addCustomNav("Development Process", "/projects/dev_process/", "_self", 1);
+ $Nav->addCustomNav("Project Dashboards", "/projects/dashboard/", "_self", 2);
+$Nav->addCustomNav("Proposals", "/proposals/", "_self", 1);
+ $Nav->addCustomNav("Proposing a Project", "/projects/dev_process/", "_self", 2);
+$Nav->addCustomNav("Eclipse Roadmap", "/org/councils/roadmap.php", "_self", 1);
+ $Nav->addCustomNav("Upcoming Releases", "/projects/timeline/", "_self", 2);
+$Nav->addCustomNav("Committers", "http://dev.eclipse.org/", "_self", 1);
+ $Nav->addCustomNav("New Committer", "/legal/newcommitter.html", "_self", 2);
+ $Nav->addCustomNav("Committer Guidelines", "/legal/committerguidelines.php", "_self", 2);
+
+?>
diff --git a/committers.php b/committers.php
new file mode 100644
index 0000000..0c374d5
--- /dev/null
+++ b/committers.php
@@ -0,0 +1,22 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Committers";
+$pageKeywords = "committers";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+
+ <p><img border="0" src="images/under-construction.gif"></p>
+
+
+ </div>
+ </div>
+<?
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/committers/_projectCommon.php b/committers/_projectCommon.php
new file mode 100644
index 0000000..86c3fe8
--- /dev/null
+++ b/committers/_projectCommon.php
@@ -0,0 +1,5 @@
+<?php
+
+include("../_projectCommon.php");
+
+?>
diff --git a/committers/cg1.php b/committers/cg1.php
new file mode 100644
index 0000000..ff1ee59
--- /dev/null
+++ b/committers/cg1.php
@@ -0,0 +1,108 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Eclipse Committer Gathering July 27, 2005";
+$pageKeywords = "committers";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+ On July 27, 2005 representatives from four Eclipse projects met informally to
+ discuss cross-project dependencies, identify areas for cross-project coordinated
+ work, and discuss general committer community maintenance issues.
+ <br><br>
+ <b>When</b>: July 27th, 2005, 12:30pm-4:30pm
+ <br>
+<b>Projects</b>: <a href="/platform/">Platform</a>,
+<a href="/webtools/">Web Tools Platform</a>,
+<a href="/tptp/">Test and Performance Tools Platform</a>,
+<a href="/ecf">Eclipse Communication Framework</a>
+<br>
+<b>Where</b>: <a href="http://www.opentechcenter.com">Open Technology Business Center</a>, Beaverton Oregon
+<br><br><b>Attendees</b><br><br>
+<b><a href="/ecf">ECF</a></b>: Scott Lewis, Pete Mackie
+<br>
+<b><a href="/platform/">Platform</a></b>: Luc Bourlier, Jared Burns, John Wiegand
+<br>
+<b><a href="/tptp/">TPTP</a></b>: Karla Callaghan, Sri Doddapaneni, Anurag Gupta, Guru Ngarajan, Tyler Thessian
+<br>
+<b><a href="/webtools/">WTP</a></b>: Ted Bashor, Konstantin Komissarchik, Tim Wagner
+<h3>
+Informal Meeting Agenda</h3>
+<ul>
+<li>Provide Comments/Needs Input to Committer Board Representatives</li>
+<li>Cross-project Technical Fiscussion: Platform 3.2 Plan</li>
+</ul>
+
+<h2>Notes: Discussion with Committer Board Reps</h2>
+
+Committer Board Reps Present: Scott Lewis, John Wiegand
+<ul>
+<li>Projects need more ways to report process ideas/successes/failures
+to other projects</li>
+<li>Need more/better ways for cross-project reporting of
+ <ul><li>API changes</li>
+ <li>Project plan changes</li></ul>
+</li>
+<li>Email/Mailing Lists: Need to add cross-project dependencies
+<li>Need Wiki with development practices content (see bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=87949">#87949</a>)
+<li>Automate cross-project change notifications for plan documents
+<li>Support/require better coordination of release timing across projects (see <a href="/projects/timeline/">Release timeline</a>)
+<li>Provide project dashboard (see bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109224">#109224</a>)
+<li>Web site improvement (emphasize/support <a href="/phoenix/">project Phoenix</a>)
+<li>Create/encourage opportunities for projects to share success stories, developed technologies, and best practices with other projects/committers
+<li>Bugzilla Improvement Ideas
+<ul><li>
+ Enhancement tracking (see bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111005">#111005</a>)
+ <li>
+ Enhance/detail committer guidelines for bugzilla usage
+ <li>
+ Detail conventions for use of 'priority' and 'severity' fields
+ <li>
+ <a href="">TPTP project</a> has created sets of custom queries: generalize and provide to all projects
+</ul>
+</li>
+<li>Have committer input/reviews of EMO-provided infrastructure changes (see bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104097">#104097</a>...work request tracking system)
+<li>Provide basic committer community statistics: How many committers? Affiliation? By project? (see bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106559">#106559</a>)
+<li>Provide committer reputation system (bugzilla impl or not, whatevers easier)
+<li>Provide assistance for developers/contributors prior to becoming committers (see bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=105637">#105637</a>)
+ <ul>
+ <li>More support systems for learning best practices, codebase
+ <li>CVS lacking pserver proxy support for non-committers
+ <li>How can we help contributors and developers ramp up to become full committers?
+ </ul>
+</li>
+</ul>
+
+<h2>Notes: Cross-Project Technical Issues</h2>
+
+John Wiegand presented <a href="/eclipse/development/eclipse_project_plan_3_2.html">Platform 3.2 pre-release plans</a> and received input/feedback from WTP, TPTP, and ECF committers
+<br>
+<h3>Areas for Greater Future Cross-Project Interaction</h3>
+<ul>
+ <li>WTP -> Platform: Improved builder architecture (see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37723">bug # 37723</a>)
+ <li>WTP -> Platform: Support for hierarchical projects? More flexible workspaces. (see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106176">bug #106176</a>)
+ <li>ECF -> TPTP: ECF use of TPTP communications. ECF could use TPTP communications API as ECF provider.
+ <li>TPTP -> ECF: DSDP, TPTP, ECF...commonalities? ECF could provide support for communications needs for several projects, including <a href="/dsdp">Device Software Development Platform</a>
+ <li>ECF -> WTP: Runtime access to DOM in embedded Browser or ECF-enabled shared web browsing
+ <li>ECF > Platform/RCP: Support for <a href="/ecf/documentation.html#Identity">namespaces and identity</a>
+</ul>
+
+<h2>Attendee Observations about Meeting</h2>
+
+<ul>
+<li>Cross-project interaction beneficial
+<li>Format good (very informal but with technical focus)
+<li>Include/allow different people at subsequent events
+<li>Improves awareness of other project activities
+<li>Face-to-face good for establishing/strengthening committer community
+<li>Continue with other venues, other projects, other representatives
+</ul>
+<h3><a href="index.php">Tips for Holding Other Committer Gatherings</a></h3>
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
diff --git a/committers/index.php b/committers/index.php
new file mode 100644
index 0000000..cfb7ef4
--- /dev/null
+++ b/committers/index.php
@@ -0,0 +1,80 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Tips for Hosting An Eclipse Committer Gathering";
+$pageKeywords = "committers";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+<h2>Introduction</h2>
+
+ So you want to have your own committer gathering? This page provides some suggestions
+ for organizing and holding a committer gathering, based upon a successful initial gathering
+ on <a href="cg1.php">July 27, 2005</a>.
+ <br>
+ What is a committer gathering? As originally formulated by the
+ committer representatives on the
+ <a href="/org/directors.html">Eclipse Board of Directors</a> it's
+ intended purpose was three-fold:
+
+ <ul>
+ <li>Provide a forum for a technical exchange across projects
+ <li>Build community and communication among committers
+ <li>Enjoy interacting with a terrific group of people
+ <li>Give the committer Board reps a chance to collect input from committers for
+ representing committer interests
+ </ul>
+
+<h2>Top 10 Tips for Organizing A Committer Gathering</h2>
+
+ <ol>
+ <li><b>Plan but Don't Over-Plan</b> -- Prepare for the meeting several weeks in advance by
+ communicating with attendees about the proposed agenda. Leave open the possibility, however,
+ that the agenda will change right up until the day of the meeting.
+ <li><b>Informal But Focused</b> -- Make sure everyone knows that the meeting will be informal,
+ but focused. Stick as much as possible to technical issues and future plans. Allow all participants
+ an opportunity to identify agenda items.
+ <li><b>Short and Sweet</b> -- Keep the actual meeting to < 4 hours. Leave some time at
+ beginning and end for private conversations between committers
+ <li><b>Support From Foundation</b> -- The Eclipse Management Organization has offered to support
+ these committer gatherings. Support means resources/funds for (e.g.) a space to meet; presentation facilities;
+ food/refreshments; travel. Contact the EMO directly to inquire about support for
+ your own committer gathring via email at (emo at eclipse.org).
+ <li><b>Representatives from 3-4 Project Teams</b> -- Attempt to get representatives from approximately four different project
+ teams to attend. Two teams is too few, and more than 4 becomes unwieldy. Having 3-4 project teams represented
+ seems to give good opportunities for multiple cross-project team issues to be raised.
+ <li><b>Approx 3 Project Team Members for Each Project</b> -- Try to get at least two project team members
+ from each project. Try to keep the number of representatives from each project approximately the same (e.g. 3 from
+ project A, 3 from project B, etc), even if the full teams for the projects are vastly different in size.
+ <li><b>Identify One Project to Present Plans</b> -- Identify one project to be responsible for
+ presenting their project plan for the next 6+ months to the other committers. For example, at the
+ <a href="cg1.php">July 27, 2005</a> gathering, John Wiegand of the Platform team presented an early version of the
+ <a href="/eclipse/development/eclipse_project_plan_3_2.html">Platform plan for 3.2 release</a>. The
+ presentation of the Platform project plan provided a very good structuring of the meeting. For any given
+ gathering, identify one project team to summarize/present their project plan to the other project teams. Rotate the
+ project doing the presentation of their plans, however, so it is not always the same project (e.g. Platform)
+ describing their plans to the other committers.
+ <li><b>Have Committer Board Representative Present (if possible)</b> -- Having a Board member present will
+ provide a good opportunity for all the committers present at the gathering to express issues, problems, or
+ needs to the Board representative, for subsequent expression before the Board. Difficulties and needs
+ unique to committers inevitably are raised during technical exchanges, and the Board representative
+ can take note of these issues and raise them at the appropriate level as needed.
+ <li><b>Publish Meeting Notes</b> -- Identify one committer
+ for each meeting to take notes for the entire meeting (buy this person a beverage of choice if
+ you have to), and publish the notes taken to the eclipse.org website and
+ the eclipse.org-committers mailing list.
+ <li><b>Do Process Check and Repeat...</b> -- Feedback and informed repetition are good. Leave at least 15 minutes
+ at the meeting to do a process check with the attendees, and record their observations
+ about how the meeting went in the meeting note. Then arrange for another one, after
+ making adjustments as desired by meeting attendees. Try to routinize informal cross-project exchanges so
+ that they happen frequently enough to be useful, but not so frequently that they interfere with
+ other work. Obviously avoid having gatherings just prior to release ship dates.
+ </ol>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
diff --git a/committers/list-of-infra-requests-8-Dec-2005.php b/committers/list-of-infra-requests-8-Dec-2005.php
new file mode 100644
index 0000000..14a09ed
--- /dev/null
+++ b/committers/list-of-infra-requests-8-Dec-2005.php
@@ -0,0 +1,229 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Committer Infrastructure Requests";
+$pageKeywords = "committers";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+<p>This list of Eclipse.org infrastructure requests was collected from the
+committer community by Committer Board Representatives John Wiegand and Bjorn
+Freeman-Benson. Weighted votes were tallied and <a href="slides.pdf">presented at the Dec 8th Board
+Meeting</a>. (For your reference, the "item#"s are the original numbers given to the
+list items for voting reference.)</p>
+<ul>
+ <li>1. (item# 1) <b>Project Dashboard/Statistics.</b> Number of bugs, number of new bugs, number
+ of fixed bugs, downloads, page views, mailing list messages, et.</li>
+ <li>2. (item #19) <b>Bugzilla.</b> The current bug tracking mechanism/tool imposes lots of
+ work on the committers doing the bug triage. Given that most of us spent a
+ noticeable amount of time in Bugzilla there should be improvements to make
+ committer's live easier.
+ <ul>
+ <li>Bugs are often incomplete or duplicates of existing bugs. Other projects
+ for example have mandatory fields (e.g. the build id) and show a list of
+ possible related bugs which the bug reporter can check for duplicates before
+ reporting a new one. </li>
+ <li>Searching is also a problem since stack traces are often in attachments
+ which aren't searched. Stack traces are good means to find duplicates.
+ However stack traces are often attached. So search in attachments must be
+ supported as well.</li>
+ <li>Better UI so that bug reporters don't forget to report essential
+ information (build number, log entries, reproducible steps, ....)</li>
+ <li>In general Bugzilla should find duplicate candidates and should present
+ them to the bug reporter before the bug gets committed.</li>
+ </ul>
+ </li>
+ <li>3. (item #16) <b>Newer Faster Hardware.</b> Implement new, faster hardware with a
+ scalable architecture and redundancy for core services. The current
+ eclipse.org hardware is not sufficient for the for current services provided.
+ In addition, it is not scalable for increases in traffic. Nor is it highly
+ available in the in the event of hardware failure. This new hardware needs to
+ be implemented before additional services can be implemented. This will
+ improve the performance of several core eclipse.org services such as Bugzilla
+ and cvs.
+ <ul>
+ <li>And more bandwidth. Lags of a minute or more on bugzilla and CVS are
+ hurting productivity and changing the very nature of the interactions that
+ have been so successful in creating Eclipse so far.</li>
+ </ul>
+ </li>
+ <li>4. (item #20) <b>Committer Control Over Web Content</b>. Whatever form: blogs, wikis, or
+ other web content flavour of the month. We just want to be able to create a
+ page for some current issue or plan item, and be able to create a reasonably
+ short URL for it. This current issue list is a good example. I had to stick
+ that list into the webtools project space even though it is unrelated to web
+ tools. Similarly, the "RCP" home page is in the platform UI team's web site
+ viewable only through viewcvs. There are many cross-component, and sometimes
+ cross-project, issues that need web space. These currently have to be hosted
+ within a single component's web space and only that team will have commit
+ rights to it.</li>
+ <li>5. (item #11) <b>Subversion.</b> In addition to CVS</li>
+ <li>6. (item #7) <b>Short URLs</b>. Direct (short) URLs to project sections, a.k.a., no
+ frames. Definitely no frames.</li>
+ <li>7. (item #18) <b>Additional Sysadmin/Webdev.</b> Acquire additional system administration
+ resources. Currently, the Eclipse Foundation currently has only one system
+ administrator to manage all the servers, respond to all user requests and
+ implement changes. This is a tremendous amount of work for one person. In the
+ event of illness, vacation or other issues, there isn't anyone to back him up.
+ Given the importance of these servers to eclipse.org community, this is not a
+ sufficient allocation of resources. This would also improve response time to
+ committer requests. (see also 25)<ul>
+ <li>To quote one of the many committers who voiced this opinion "I've always
+ found our website to be an embarrassment -- but I've accepted its current
+ state since I value a kick-ass platform more than a nice website! But it is
+ time this changes, we don't have a choice. The community is getting too
+ large and our tooling is getting in the way of our productivity."</li>
+ </ul>
+ </li>
+ <li>8. (item# 2) <b>Wikis</b>. Per-project would probably be best. (also see 20)</li>
+ <li>9. (item #8) <b>Per-project navigation bars.</b> Managed by the project.</li>
+ <li>10. (item #15) <b>
+ Self Management</b>. Creating new components, managing mailing
+ lists, adding/removing committers, ..., more sourceforge-like
Use workflow management for IP crucial tasks like
+ adding new committers (requires EMO
+ interaction, but parts can be self-managed)<ul>
+ <li>It sure would be nice if whatever system we use/produce could be
+ packaged like <a href="http://www.gforge.org">GForge</a>, the software that
+ ObjectWeb uses, and made available for others who want a collaboration
+ system like we have built.</li>
+ <li>Or maybe just work with GForge to build whatever enhancements we need
+ into their system. We would benefit by having something to start from. They
+ would benefit from whatever enhancements we build for them...</li>
+ </ul>
+ </li>
+ <li>11. (item #21) <b>Moderated Mailing Lists</b>. A small set of mailing lists (eclipse-dev,
+ platform-ui-dev, possibly swt-dev) could benefit from a moderator. High
+ density of traffic on the newsgroup means that many people have trouble
+ getting their questions answered there. They have begun to turn to the mailing
+ lists as an alternative to newsgroups for getting answers. This is not
+ surprising - questions on the mailing list are often answered within minutes.
+ However, if the larger volume of traffic catches on to the idea of using the
+ mailing lists for user questions, then we will lose a valuable communication
+ tool for commiters. Perhaps a visible user mailing list would help, but I
+ think having the ability to switch to moderated lists (starting with
+ eclipse-dev) is the easiest solution. This moderation would not have to be
+ stringent - just turn away obvious user questions and point them to the
+ appropriate newsgroup. There are many committers who would be happy to
+ participate in a rotating moderator position for eclipse-dev. Better one
+ committer dealing with the spam than wasting the time of hundreds of people by
+ letting these messages through.</li>
+ <li>12. (item# 3) <b>Blogs</b>. Per-project or per-component or per-individual? (also see
+ 20)</li>
+ <li>13. (item #6) <b>Reputation System</b>. No community can function without a reputation
+ system. Online communities with large growth rates are especially vulnerable
+ because the new members do not have the history that helps them filter the
+ good from the bad. A reputation system (like E-bay's seller ratings) is
+ necessary. (also see 21)<ul>
+ <li>The idea here is to capture the communities trust in specific
+ individuals in a formal way so that other people can view that trust.
+ Obviously, committers would have to be in a high trust/high reputation space
+ in order to be committers. So this is more applicable to non-committers on
+ the newsgroups and mailing lists.</li>
+ <li>There have been at least three (one very recently) disruptive individual
+ on the newsgroups. To a newbie, there is no way to tell whether this vocal
+ person is knowledgeable or just noisy; whether I, the newbie, should trust
+ them or ignore them.</li>
+ <li>The EMF system has a
+ <a href="http://download.eclipse.org/tools/emf/scripts/models.php">trivial
+ version of this</a>.</li>
+ </ul>
+ </li>
+ <li>14. (item #9) <b>Proposals Section</b>. A proposals section (Eclipse Labs?) to nurture
+ new proposals instead of hosting them at other companies or at sourceforge.</li>
+
+ <li>15. (item #12) <b>Servlets and JSP</b>. For active, rather than static, project web pages.<ul>
+ <li>Which quite naturally also means MySQL and read/write file-system space
+ for configuration and/or data files in case a servlet isn't complicated
+ enough to justify using a database.</li>
+ </ul>
+ <li>16. (item #14) <b>Central Password Authentication System.</b> Implement a central
+ password authentication scheme such as ldap for as many services as possible
+ (download server, Bugzilla, cvs etc). Currently, each user authenticates
+ against separate password files on each server. </li>
+ <li>17. (item #17) <b>Leverage Mirrors.</b> Leverage the mirrors to reduce bandwidth. (see
+ also 26)
+ <ul>
+ <li>One idea Bjorn had was to limit the bandwidth available to each person
+ per time unit (suggestions available) and then to charge a nominal fee ($1?)
+ for an extra download. Use Paypal to clear payments. Structure this to
+ hit only those who download three copies of the SDK in a single day.</li>
+ <li>Give the mirrors higher QoS than straight downloads and then encourage
+ high use clients (companies such as IBM and HP) to have internal mirrors.
+ IBM already does this.</li>
+ <li>Automatically redirect users to a geographically close mirror based on
+ the locale setting in their browser. They can only download from the main
+ apache site as a last resort. This is what the Apache project
+ <a href="http://httpd.apache.org/download.cgi">does</a>.</li>
+ <li>Mirroring of <i>all</i> projects, not just the platform.</li>
+ </ul>
+ </li>
+ <li>18. (item #10) <b>RSS and Atom.</b> For all blogs, wikis, and web pages.</li>
+ <li>19. (item #13) <b>PHP/MySQL.</b> Some projects would prefer to use PHP rather than
+ servlets and JSP.</li>
+ <li>20. (item #24) <b>QoS Bandwidth Throttling</b>. Allow certain people/machines higher
+ bandwidth. For example, mirrors and build machines should have higher priority
+ access to the bandwidth than an average download. (see also 26)</li>
+ <li>21. (item #26) <b>BitTorrent.</b> Eclipse's Update Manager should support BitTorrent
+ protocol. Eclipse's download servers ideally should too.<br>
+ It doesn't matter how many mirrors we have because if we are successful
+ getting people to use Update Manager, UM is hard-coded to go to the main
+ Eclipse.org download site. This obviously won't scale. But enabling a
+ peer-to-peer protocol like BitTorrent within Update Manager would alleviate
+ this, since BitTorrent causes the clients to also serve the content while
+ they are downloading. So, your main download server sees roughly constant
+ bandwidth utilization as as the number of downloads increases rather than
+ linear or geometric utilization...</li>
+ <li>22. (item #25) <b>Distributed Infrastructure Monitoring and Trouble Tickets</b>. During
+ the most recent milestone, we had problems with both Bugzilla and CVS going
+ down. Redundancy would be nice, but ultimately, committers need to be able to
+ bring these services back up if things go wrong. Right now, we feel like we
+ don't have the tools we need to communicate with the infrastructure team. We
+ don't know what to do if we notice a service has gone down, and we never hear
+ whether the infra team is aware of a problem or when it is fixed. It also
+ might be nice to distribute some system administrator accounts to non-eclipse.org
+ people.</li>
+ <li>23. (item #23) <b>CVS Mirroring</b>. Mirror the CVS tree as well as the downloads tree.</li>
+ <li>24. (item #22) <b>CVS Proxy Support</b>. Support for proxy support for accessing CVS from
+ inside a firewall. SourceForge already supports this and is very useful for
+ helping committers/contributors from other companies to work with us. </li>
+ <li>25. (item# 4) <b>Hierarchical Blogs.</b> The blogs should be linked hierarchically so
+ that big news items can bubble up like they do on the SourceForge news system.
+ The idea is that when someone in, say, VEP publishes a blog entry, John D
+ (over in Tools) would be notified, and with the click of a button, could
+ promote the entry to be visible on the Tools project's weblog. And if John D
+ promotes it, it would then be forwarded to an Eclipse.org content manager who
+ could then click a button to make it visible as an Eclipse front-page news
+ item. (also see 20)<ul>
+ <li>This would subsume an event repository for project-specific Whats new. Can be tagged
+ and queued for the home page.</li>
+ </ul>
+ </li>
+ <li>26. (item #5) <b>EMO Web Content. </b>In particular, presence (website, wikis, blogs,
+ mailing lists, cvs, ...) for processes, councils, etc.</li>
+</ul>
+
+<p>If you are a committer or contributor, we encourage you to
+let us know what your
+infrastructure requests are so that we can lobby for them at the Board meetings.
+What are your additional requests that are not on the list?</p>
+
+<p>P.S. The <a href="/emf">EMF</a> project seems to have a
+few of these features. For example:</p>
+
+<ul>
+ <li>Our site's What's New is an XML file which is written to automagically
+ with every new build promoted to Eclipse. Code for this automagic process is
+ in CVS in /home/tools/, emf-home/emf-builds/scripts/. See promoteToEclipse.sh</li>
+ <li>We also have a What's New, CVS? application that takes one-week snapshots
+ of deltas in CVS, generates those snaps as XML, and then styles that with
+ PHP+XSL in order to make it searchable/sortable/filterable.</li>
+</ul>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
diff --git a/committers/temp.pl b/committers/temp.pl
new file mode 100644
index 0000000..f6c742d
--- /dev/null
+++ b/committers/temp.pl
@@ -0,0 +1,38 @@
+
+sub walk {
+ my $dir = shift;
+ opendir(DIR, $dir) or die $!;
+ my @files = readdir DIR;
+ closedir DIR;
+ for $fdir ( @files ) {
+ next if( $fdir =~ /^\./ );
+ if( -d "$dir/$fdir" ) {
+ walk( "$dir/$fdir" );
+ } elsif( !-d "$dir/$fdir" ) {
+ apply( "$dir/$fdir" );
+ }
+ }
+}
+
+sub apply {
+ my $f = shift;
+ return if( $f =~ /.avi$/ );
+ return if( $f =~ /.pdf$/ );
+ return if( $f =~ /temp.pl$/ );
+ open FILE, "$f" or die $!;
+ $whole = join "", <FILE>;
+ close FILE;
+ if( $whole =~ /projects\/projects/ ) {
+ print "$f\n";
+
+ ($filename) = $f =~ /.*\/(.*)/;
+
+ $whole =~ s/projects\/projects/projects/g;
+
+ open FILE, ">$f" or die $!;
+ print FILE $whole;
+ close FILE;
+ }
+}
+
+walk( "." );
diff --git a/committers/temp1.pl b/committers/temp1.pl
new file mode 100644
index 0000000..3747e3e
--- /dev/null
+++ b/committers/temp1.pl
@@ -0,0 +1,57 @@
+$dir = "./";
+opendir(DIR, $dir) or die $!;
+while( defined( $fdir = readdir DIR) ) {
+ print "$fdir\n";
+ if( -d "$dir$fdir" ) {
+ opendir(BIN, "$dir$fdir") or die "Can't open $fdir: $!";
+ while( defined ($file = readdir BIN) ) {
+ if( $file =~ /main\.html/
+ || $file =~ /main\.php/ ) {
+ print "$dir$fdir/$file\n";
+ open FILE, "$dir$fdir/$file" or die $!;
+ $whole = "";
+ $mode = 0;
+ while( $line = <FILE> ) {
+ $mode = 2 if( $line =~ /<\/body/ );
+ $whole .= $line if( $mode == 1 );
+ $mode = 1 if( $line =~ /<body/ );
+ }
+ close FILE;
+ $orig = $whole;
+
+ if( $whole =~ /indextop/ && !($whole =~ /<table/) ) {
+ $whole =~ s/<h3>/<h4>/g;
+ $whole =~ s/<\/h3>/<\/h4>/g;
+ $whole =~ s/<h2>/<h3>/g;
+ $whole =~ s/<\/h2>/<\/h3>/g;
+ $whole =~ s/<h1>/<h2>/g;
+ $whole =~ s/<\/h1>/<\/h2>/g;
+ $whole =~ s/<font class="indextop">(.*)<\/font>/<h1>$1<\/h1>/g;
+ $whole =~ s/<span class="indextop">(.*)<\/span>/<h1>$1<\/h1>/g;
+ $whole =~ s/<span class="indexsub">(.*)<\/span>//g;
+ $whole =~ s/<img src="\/images\/Idea.jpg".*?>//s;
+ $whole =~ s/<p id="header">.*?<br>//s;
+ $whole =~ s/<p id="header">//s;
+ $whole =~ s/"..\/..\/org\/processes\/fragments\/proposal-page-header.php"/\$_SERVER['DOCUMENT_ROOT'] . "\/org\/processes\/fragments\/proposal-page-header.php"/g;
+ $whole = "<?php\n include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-before-definitions.php\");\n\n\$pageTitle = \"\";\n\$pageKeywords = \"\";\n\$pageAuthor = \"\";\n\n\include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-after-definitions.php\");\n?>\n <div id=\"maincontent\">\n <div id=\"midcolumn\">" . $whole;
+ $whole = $whole . "<\/div>\n<\/div>\n<?php\n include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-end-of-page.php\");\n?>\n";
+
+ if( $orig ne $whole ) {
+ print "Changed $file\n";
+ open FILE, ">$dir$fdir/index.php" or die $!;
+ print FILE $whole;
+ close FILE;
+ open FILE, ">$dir$fdir/index.html" or die $!;
+ print FILE "<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\"><html><head><META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php\"></head><body>Replaced by <a href=\"index.php\">the new page</a></body></html>\n";
+ close FILE;
+ open FILE, ">$dir$fdir/main.html" or die $!;
+ print FILE "<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\"><html><head><META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php\"></head><body>Replaced by <a href=\"index.php\">the new page</a></body></html>\n";
+ close FILE;
+ }
+ }
+ }
+ }
+ closedir(BIN);
+ }
+}
+closedir(DIR);
\ No newline at end of file
diff --git a/committers/temp2.pl b/committers/temp2.pl
new file mode 100644
index 0000000..4a70570
--- /dev/null
+++ b/committers/temp2.pl
@@ -0,0 +1,71 @@
+$dir = "./";
+opendir(DIR, $dir) or die $!;
+while( defined( $fdir = readdir DIR) ) {
+ if( -d "$dir$fdir" ) {
+ opendir(BIN, "$dir$fdir") or die "Can't open $fdir: $!";
+ while( defined ($file = readdir BIN) ) {
+ if( $file =~ /main\.html/ ) {
+ open FILE, "$dir$fdir/$file" or die $!;
+ $whole = "";
+ $mode = 0;
+ while( $line = <FILE> ) {
+ $mode = 2 if( $line =~ /<\/body/ );
+ $whole .= $line if( $mode == 1 );
+ $mode = 1 if( $line =~ /<body/ );
+ }
+ close FILE;
+ $orig = $whole;
+
+ if( $whole =~ /BORDER=0 CELLSPACING/i ) {
+ print "$dir$fdir/$file\n";
+ $whole =~ s/<h3>/<h4>/ig;
+ $whole =~ s/<\/h3>/<\/h4>/ig;
+ $whole =~ s/<h2>/<h3>/ig;
+ $whole =~ s/<\/h2>/<\/h3>/ig;
+ $whole =~ s/<h1>/<h2>/ig;
+ $whole =~ s/<\/h1>/<\/h2>/ig;
+ $whole =~ s/<font class="indextop">(.*)<\/font>/<h1>$1<\/h1>/ig;
+ $whole =~ s/<span class="indextop">(.*)<\/span>/<h1>$1<\/h1>/ig;
+ $whole =~ s/<span class="indexsub">(.*)<\/span>//ig;
+ $whole =~ s/<img src="[\.\/]*\/images\/Idea.jpg".*?>//is;
+ $whole =~ s/<p id="header">.*?<br>//is;
+ $whole =~ s/<p id="header">//is;
+
+ while( $whole =~ /^(.*)<table.*?>(.*?)<\/table>(.*)$/is ) {
+ $n = $2;
+ $m = $1;
+ $p = $3;
+ $n =~ s/<.*?class=indextop.*?>(.*?)<\/font>/<h1>$1<\/h1>/is;
+ $n =~ s/<td .*?ALIGN=LEFT VALIGN=TOP .*?BGCOLOR="#0080C0">(.*?)<\/td>/<h2>$1<\/h2>/isg;
+ $n =~ s/<td.*?>//isg;
+ $n =~ s/<\/td>//isg;
+ $n =~ s/<tr>//isg;
+ $n =~ s/<\/tr>//isg;
+ $n =~ s/<b><font.*?>(.*?)<\/font><\/b>/$1/isg;
+ $n =~ s/<font.*?>(.*?)<\/font>/$1/isg;
+ $whole = $m . $n . $p;
+ }
+ $whole = "<?php\n include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-before-definitions.php\");\n\n\$pageTitle = \"\";\n\$pageKeywords = \"\";\n\$pageAuthor = \"\";\n\n\include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-after-definitions.php\");\n?>\n <div id=\"maincontent\">\n <div id=\"midcolumn\">" . $whole;
+ $whole = $whole . "<\/div>\n<\/div>\n<?php\n include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-end-of-page.php\");\n?>\n";
+
+
+ if( $orig ne $whole ) {
+ print "Changed $file\n";
+ open FILE, ">$dir$fdir/index.php" or die $!;
+ print FILE $whole;
+ close FILE;
+ open FILE, ">$dir$fdir/index.html" or die $!;
+ print FILE "<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\"><html><head><META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php\"></head><body>Replaced by <a href=\"index.php\">the new page</a></body></html>\n";
+ close FILE;
+ open FILE, ">$dir$fdir/main.html" or die $!;
+ print FILE "<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\"><html><head><META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php\"></head><body>Replaced by <a href=\"index.php\">the new page</a></body></html>\n";
+ close FILE;
+ exit 1;
+ }
+ }
+ }
+ }
+ closedir(BIN);
+ }
+}
+closedir(DIR);
\ No newline at end of file
diff --git a/committers/temp3.pl b/committers/temp3.pl
new file mode 100644
index 0000000..bb80eec
--- /dev/null
+++ b/committers/temp3.pl
@@ -0,0 +1,87 @@
+$dir = "./";
+opendir(DIR, $dir) or die $!;
+while( defined( $fdir = readdir DIR) ) {
+ if( -d "$dir$fdir" ) {
+ opendir(BIN, "$dir$fdir") or die "Can't open $fdir: $!";
+ while( defined ($file = readdir BIN) ) {
+ if( $file =~ /main\.html/ ) {
+ open FILE, "$dir$fdir/$file" or die $!;
+ $whole = "";
+ $mode = 0;
+ while( $line = <FILE> ) {
+ $mode = 2 if( $line =~ /<\/body/ );
+ $whole .= $line if( $mode == 1 );
+ $mode = 1 if( $line =~ /<body/ );
+ }
+ close FILE;
+ $orig = $whole;
+
+ if( $whole =~ /CELLSPACING/i ) {
+ print "$dir$fdir/$file\n";
+ $whole =~ s/<h3>/<h4>/ig;
+ $whole =~ s/<\/h3>/<\/h4>/ig;
+ $whole =~ s/<h2>/<h3>/ig;
+ $whole =~ s/<\/h2>/<\/h3>/ig;
+ $whole =~ s/<h1>/<h2>/ig;
+ $whole =~ s/<\/h1>/<\/h2>/ig;
+ $whole =~ s/<font class=["]?indextop["]?>(.*)<\/font>/<h1>$1<\/h1>/ig;
+ $whole =~ s/<span class=["]?indextop["]?>(.*)<\/span>/<h1>$1<\/h1>/ig;
+ $whole =~ s/<span class=["]?indexsub["]?>(.*)<\/span>//ig;
+ $whole =~ s/<font class=["]?indexsub["]?>(.*)<\/font>//ig;
+ $whole =~ s/A Technology Project Proposal//isg;
+ $whole =~ s/<img .*?src="[\.\/]*images\/Idea.jpg".*?>//is;
+ $whole =~ s/<img .*?src="http:\/\/.*?eclipse.org\/images\/Idea.jpg".*?>//is;
+ $whole =~ s/<p id="header">.*?<br>//is;
+ $whole =~ s/<p id="header">//is;
+ $whole =~ s/"#551A8B" alink="#ff0000">//isg;
+
+ while( $whole =~ /^(.*)<table.*?>(.*?)<\/table>(.*)$/is ) {
+ $n = $2;
+ $m = $1;
+ $p = $3;
+ $n =~ s/<font.*?class=["]?indextop["]?.*?>(.*?)<\/font>/<h1>$1<\/h1>/is;
+ $n =~ s/<td .*?ALIGN=["]?LEFT["]? .*?VALIGN=["]?TOP["]? .*?BGCOLOR="#0080C0".*?>(.*?)<\/td>/<h2>$1<\/h2>/isg;
+ $n =~ s/<td .*?VALIGN=["]?TOP["]? .*?ALIGN=["]?LEFT["]? .*?BGCOLOR="#0080C0".*?>(.*?)<\/td>/<h2>$1<\/h2>/isg;
+ $n =~ s/<td .*?VALIGN=["]?TOP["]? .*?BGCOLOR="#0080C0" .*?ALIGN=["]?LEFT["]?.*?>(.*?)<\/td>/<h2>$1<\/h2>/isg;
+ $n =~ s/<td .*?ALIGN=["]?LEFT["]? .*?BGCOLOR="#0080C0" .*?VALIGN=["]?TOP["]?.*?>(.*?)<\/td>/<h2>$1<\/h2>/isg;
+ $n =~ s/<tr .*?ALIGN=["]?LEFT["]? .*?VALIGN=["]?TOP["]? .*?BGCOLOR="#0080C0".*?>(.*?)<\/tr>/<h2>$1<\/h2>/isg;
+ $n =~ s/<tr .*?VALIGN=["]?TOP["]? .*?ALIGN=["]?LEFT["]? .*?BGCOLOR="#0080C0".*?>(.*?)<\/tr>/<h2>$1<\/h2>/isg;
+ $n =~ s/<tr .*?VALIGN=["]?TOP["]? .*?BGCOLOR="#0080C0" .*?ALIGN=["]?LEFT["]?.*?>(.*?)<\/tr>/<h2>$1<\/h2>/isg;
+ $n =~ s/<tr .*?ALIGN=["]?LEFT["]? .*?BGCOLOR="#0080C0" .*?VALIGN=["]?TOP["]?.*?>(.*?)<\/tr>/<h2>$1<\/h2>/isg;
+ $n =~ s/<td.*?>//isg;
+ $n =~ s/<\/td>//isg;
+ $n =~ s/<tr>//isg;
+ $n =~ s/<\/tr>//isg;
+ $n =~ s/<tbody>//isg;
+ $n =~ s/<\/tbody>//isg;
+ $n =~ s/<b><font.*?>(.*?)<\/font><\/b>/$1/isg;
+ $n =~ s/<font.*?>(.*?)<\/font>/$1/isg;
+ $n =~ s/<h2>\s*<b>(.*?)<\/b>\s*<\/h2>/<h2>$1<\/h2>/isg;
+ $whole = $m . $n . $p;
+ }
+ $whole = "<?php\n include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-before-definitions.php\");\n\n\$pageTitle = \"\";\n\$pageKeywords = \"\";\n\$pageAuthor = \"\";\n\n\include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-after-definitions.php\");\n?>\n <div id=\"maincontent\">\n <div id=\"midcolumn\">" . $whole;
+ $whole = $whole . "<\/div>\n<\/div>\n<?php\n include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-end-of-page.php\");\n?>\n";
+
+
+ if( $orig ne $whole ) {
+ open FILE, ">$dir$fdir/index.php" or die $!;
+ print FILE $whole;
+ close FILE;
+ if( $ARGV[0] ) {
+ open FILE, ">$dir$fdir/index.html" or die $!;
+ print FILE "<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\"><html><head><META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php\"></head><body>Replaced by <a href=\"index.php\">the new page</a></body></html>\n";
+ close FILE;
+ open FILE, ">$dir$fdir/main.html" or die $!;
+ print FILE "<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\"><html><head><META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php\"></head><body>Replaced by <a href=\"index.php\">the new page</a></body></html>\n";
+ close FILE;
+ print "Wrote all forwarding files\n";
+ }
+ exit 1;
+ }
+ }
+ }
+ }
+ closedir(BIN);
+ }
+}
+closedir(DIR);
\ No newline at end of file
diff --git a/committers/temp4.pl b/committers/temp4.pl
new file mode 100644
index 0000000..99dfc87
--- /dev/null
+++ b/committers/temp4.pl
@@ -0,0 +1,95 @@
+$dir = "./";
+opendir(DIR, $dir) or die $!;
+while( defined( $fdir = readdir DIR) ) {
+ if( -d "$dir$fdir" ) {
+ opendir(BIN, "$dir$fdir") or die "Can't open $fdir: $!";
+ while( defined ($file = readdir BIN) ) {
+ if( $file =~ /main\.html/ ) {
+ open FILE, "$dir$fdir/$file" or die $!;
+ $whole = "";
+ $mode = 0;
+ while( $line = <FILE> ) {
+ $mode = 2 if( $line =~ /<\/body/i );
+ $whole .= $line if( $mode == 1 );
+ $mode = 1 if( $line =~ /<body/i );
+ }
+ close FILE;
+ $orig = $whole;
+
+ if( $whole =~ /CELLSPACING/i ) {
+ print "$dir$fdir/$file\n";
+ $whole =~ s/<h3>/<h4>/ig;
+ $whole =~ s/<\/h3>/<\/h4>/ig;
+ $whole =~ s/<h2>/<h3>/ig;
+ $whole =~ s/<\/h2>/<\/h3>/ig;
+ $whole =~ s/<h1>/<h2>/ig;
+ $whole =~ s/<\/h1>/<\/h2>/ig;
+ $whole =~ s/<font class=["]?indextop["]?>(.*)<\/font>/<h1>$1<\/h1>/ig;
+ $whole =~ s/<font .*?size=["]?6["]?>(.*)<\/font>/<h1>$1<\/h1>/ig;
+ $whole =~ s/<span class=["]?indextop["]?>(.*)<\/span>/<h1>$1<\/h1>/ig;
+ $whole =~ s/<span class=["]?indexsub["]?>(.*)<\/span>//ig;
+ $whole =~ s/<font class=["]?indexsub["]?>(.*)<\/font>//ig;
+ $whole =~ s/A\b+Technology\b+Project\b+Proposal//isg;
+ $whole =~ s/<img .*?src="[\.\/]*images\/Idea.jpg".*?>//is;
+ $whole =~ s/<img .*?src="http:\/\/.*?eclipse.org\/images\/Idea.jpg".*?>//is;
+ $whole =~ s/<p id="header">.*?<br>//is;
+ $whole =~ s/<p id="header">//is;
+ $whole =~ s/"#551A8B" alink="#ff0000">//isg;
+
+ while( $whole =~ /^(.*)<table.*?>(.*?)<\/table>(.*)$/is ) {
+ $n = $2;
+ $m = $1;
+ $p = $3;
+ $n =~ s/<font.*?class=["]?indextop["]?.*?>(.*?)<\/font>/<h1>$1<\/h1>/is;
+ $n =~ s/<td .*?ALIGN=["]?LEFT["]? .*?VALIGN=["]?TOP["]? .*?BGCOLOR="#0080C0".*?>(.*?)<\/td>/<h2>$1<\/h2>/isg;
+ $n =~ s/<td .*?VALIGN=["]?TOP["]? .*?ALIGN=["]?LEFT["]? .*?BGCOLOR="#0080C0".*?>(.*?)<\/td>/<h2>$1<\/h2>/isg;
+ $n =~ s/<td .*?VALIGN=["]?TOP["]? .*?BGCOLOR="#0080C0" .*?ALIGN=["]?LEFT["]?.*?>(.*?)<\/td>/<h2>$1<\/h2>/isg;
+ $n =~ s/<td .*?VALIGN=["]?TOP["]? .*?BGCOLOR="#0080C0".*?>(.*?)<\/td>/<h2>$1<\/h2>/isg;
+ $n =~ s/<td .*?ALIGN=["]?LEFT["]? .*?BGCOLOR="#0080C0" .*?VALIGN=["]?TOP["]?.*?>(.*?)<\/td>/<h2>$1<\/h2>/isg;
+ $n =~ s/<tr .*?ALIGN=["]?LEFT["]? .*?VALIGN=["]?TOP["]? .*?BGCOLOR="#0080C0".*?>(.*?)<\/tr>/<h2>$1<\/h2>/isg;
+ $n =~ s/<tr .*?VALIGN=["]?TOP["]? .*?ALIGN=["]?LEFT["]? .*?BGCOLOR="#0080C0".*?>(.*?)<\/tr>/<h2>$1<\/h2>/isg;
+ $n =~ s/<tr .*?VALIGN=["]?TOP["]? .*?BGCOLOR="#0080C0" .*?ALIGN=["]?LEFT["]?.*?>(.*?)<\/tr>/<h2>$1<\/h2>/isg;
+ $n =~ s/<tr .*?ALIGN=["]?LEFT["]? .*?BGCOLOR="#0080C0" .*?VALIGN=["]?TOP["]?.*?>(.*?)<\/tr>/<h2>$1<\/h2>/isg;
+ $n =~ s/<td.*?>//isg;
+ $n =~ s/<\/td>//isg;
+ $n =~ s/<tr>//isg;
+ $n =~ s/<\/tr>//isg;
+ $n =~ s/<tbody>//isg;
+ $n =~ s/<\/tbody>//isg;
+ $n =~ s/<b><font.*?>(.*?)<\/font><\/b>/$1/isg;
+ $n =~ s/<font.*?>(.*?)<\/font>/$1/isg;
+ $n =~ s/<font.*?>(.*?)<\/font>/$1/isg;
+ $n =~ s/<h2>\s*<p align=left>(.*?)<\/p>\s*<\/h2>/<h2>$1<\/h2>/isg;
+ $n =~ s/<h2>\s*<b>(.*?)<\/b>\s*<\/h2>/<h2>$1<\/h2>/isg;
+ $whole = $m . $n . $p;
+ }
+
+ $whole =~ s/<COL WIDTH=\d*\*>//isg;
+
+
+ $whole = "<?php\n include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-before-definitions.php\");\n\n\$pageTitle = \"\";\n\$pageKeywords = \"\";\n\$pageAuthor = \"\";\n\n\include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-after-definitions.php\");\n?>\n <div id=\"maincontent\">\n <div id=\"midcolumn\">" . $whole;
+ $whole = $whole . "<\/div>\n<\/div>\n<?php\n include(\$_SERVER['DOCUMENT_ROOT'] . \"\/eclipse.org-common\/system\/include-end-of-page.php\");\n?>\n";
+
+
+ if( $orig ne $whole ) {
+ open FILE, ">$dir$fdir/index.php" or die $!;
+ print FILE $whole;
+ close FILE;
+ if( $ARGV[0] ) {
+ open FILE, ">$dir$fdir/index.html" or die $!;
+ print FILE "<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\"><html><head><META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php\"></head><body>Replaced by <a href=\"index.php\">the new page</a></body></html>\n";
+ close FILE;
+ open FILE, ">$dir$fdir/main.html" or die $!;
+ print FILE "<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\"><html><head><META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php\"></head><body>Replaced by <a href=\"index.php\">the new page</a></body></html>\n";
+ close FILE;
+ print "Wrote all forwarding files\n";
+ }
+ exit 1;
+ }
+ }
+ }
+ }
+ closedir(BIN);
+ }
+}
+closedir(DIR);
\ No newline at end of file
diff --git a/committers/temp5.pl b/committers/temp5.pl
new file mode 100644
index 0000000..5513baa
--- /dev/null
+++ b/committers/temp5.pl
@@ -0,0 +1,30 @@
+$dir = "./";
+opendir(DIR, $dir) or die $!;
+while( defined( $fdir = readdir DIR) ) {
+ if( -d "$dir$fdir" ) {
+ $found = 0;
+ opendir(BIN, "$dir$fdir") or die "Can't open $fdir: $!";
+ while( defined ($file = readdir BIN) ) {
+ if( $file =~ /index.php/ ) {
+ $found = 1;
+ }
+ if( $file =~ /main\.html/ ) {
+ open FILE, "$dir$fdir/$file" or die $!;
+ $whole = "";
+ $mode = 0;
+ while( $line = <FILE> ) {
+ $mode = 2 if( $line =~ /<\/body/i );
+ $whole .= $line if( $mode == 1 );
+ $mode = 1 if( $line =~ /<body/i );
+ }
+ close FILE;
+ $orig = $whole;
+ }
+ }
+ closedir(BIN);
+ if( !$found ) {
+ print "Not found in $fdir$dir\n";
+ }
+ }
+}
+closedir(DIR);
\ No newline at end of file
diff --git a/committers/temp6.pl b/committers/temp6.pl
new file mode 100644
index 0000000..90a9bff
--- /dev/null
+++ b/committers/temp6.pl
@@ -0,0 +1,34 @@
+
+sub walk {
+ my $dir = shift;
+ opendir(DIR, $dir) or die $!;
+ my @files = readdir DIR;
+ closedir DIR;
+ for $fdir ( @files ) {
+ next if( $fdir =~ /^\./ );
+ if( -d "$dir/$fdir" ) {
+ walk( "$dir/$fdir" );
+ } else {
+ apply( "$dir/$fdir" );
+ }
+ }
+}
+
+sub apply {
+ my $f = shift;
+ return if( $f =~ /.avi$/ );
+ return if( $f =~ /.pdf$/ );
+ return if( $f =~ /temp.*\.pl$/ );
+ open FILE, "$f" or die $!;
+ $whole = join "", <FILE>;
+ close FILE;
+ if( $whole =~ /org\/processes\/master-timeline.php/ ) {
+ print "$f\n";
+ $whole =~ s/<a\s+href="(([\.\/]*)|(http:\/\/(www.)?eclipse.org))\/org\/processes\/master-timeline.php"(.*?)>/<a href="\/projects\/timeline\/"$5>/is;
+ open FILE, ">$f" or die $!;
+ print FILE $whole;
+ close FILE;
+ }
+}
+
+walk( "." );
diff --git a/dashboard/.cvsignore b/dashboard/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/dashboard/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/dashboard/_projectCommon.php b/dashboard/_projectCommon.php
new file mode 100644
index 0000000..86c3fe8
--- /dev/null
+++ b/dashboard/_projectCommon.php
@@ -0,0 +1,5 @@
+<?php
+
+include("../_projectCommon.php");
+
+?>
diff --git a/dashboard/constants.php b/dashboard/constants.php
new file mode 100644
index 0000000..98bd674
--- /dev/null
+++ b/dashboard/constants.php
@@ -0,0 +1,24 @@
+<?php
+
+// Remove magic numbers
+// Newsgroups posts
+define("POSTS_7_RED", 1);
+define("POSTS_7_GREEN", 10);
+define("POSTS_30_RED", 10);
+define("POSTS_30_GREEN",40);
+
+// Time to answer // Unix timestamp format
+define("ANSWERS_RED", 172800); // Two days = 2 * 24 * 60 * 60
+define("ANSWERS_GREEN", 86400); // One day = 24 * 60 * 60
+
+// HTML Color codes
+define("WHITE","#FFFFFF");
+define("RED", "#FFCFCF");
+define("GREEN","#CFFFCF");
+
+// HTML code for lights
+define("WHITE_LIGHT","<img border=0 src=\"lights/white.gif\" />");
+define("RED_LIGHT", "<img border=0 src=\"lights/red.gif\" />");
+define("GREEN_LIGHT","<img border=0 src=\"lights/green.gif\" />");
+
+?>
diff --git a/dashboard/dashboard_csv_download.php b/dashboard/dashboard_csv_download.php
new file mode 100644
index 0000000..2720bfb
--- /dev/null
+++ b/dashboard/dashboard_csv_download.php
@@ -0,0 +1,119 @@
+<?php
+
+$columns = array(
+ "project",
+ "stats_date",
+ "liveness",
+ "bugs_total",
+ "bugs_7_delta",
+ "bugs_7_percentage",
+ "bugs_7_gainloss",
+ "bugs_30_delta",
+ "bugs_30_percentage",
+ "bugs_30_gainloss",
+ "bugs_180_delta",
+ "bugs_180_percentage",
+ "bugs_180_gainloss",
+ "news_7_answer_average_time",
+ "news_7_unanswered_number",
+ "news_7_insider_posts",
+ "news_7_number_posts",
+ "news_7_average_posts",
+ "news_30_answer_average_time",
+ "news_30_unanswered_number",
+ "news_30_insider_posts",
+ "news_30_number_posts",
+ "news_30_average_posts",
+ "mail_7_number_posts",
+ "mail_7_average_posts",
+ "mail_7_average_subscribers",
+ "mail_30_number_posts",
+ "mail_30_average_posts",
+ "mail_30_average_subscribers",
+ "mail_180_number_posts",
+ "mail_180_average_posts",
+ "mail_180_average_subscribers",
+ );
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "../stats/hostname.php";
+
+$dbc_cache = new DBConnectionDashboard();
+$db_handle = $dbc_cache->connect();
+
+function download_csv_dashboard($db_handle,$project){
+ global $columns;
+ $csv_file = "";
+ $count = count($columns);
+ for ($i = 0; $i < $count; $i++) {
+ $csv_file .= $columns[$i] . ",";
+ }
+ $csv_file .= "\r\n";
+
+ if ($project == ""){
+ // Get last available date
+ $query = "SELECT stats_date FROM ".stats_table()." ORDER BY stats_date DESC LIMIT 1";
+ $result = mysql_query($query,$db_handle);
+ $row = mysql_fetch_assoc($result);
+ $last_date = $row['stats_date'];
+
+ // Main query to select all stats from dashboard
+ $query = "SELECT * FROM ".stats_table()." WHERE stats_date = \"".$last_date."\"";
+ }else{
+ $query = "SELECT * FROM ".stats_table()." WHERE project = \"".$project."\" ORDER BY stats_date DESC";
+ }
+ $result = mysql_query($query,$db_handle);
+ while($row = mysql_fetch_assoc($result)){
+ for ($i = 0; $i < $count; $i++) {
+ $value = $row[$columns[$i]];
+ if( $columns[$i] == "stats_date" ) {
+ $pos1 = strpos($value,"-");
+ $pos2 = strpos($value,"-",$pos1+1);
+ $month = substr($value, $pos1+1, $pos2-$pos1-1);
+ $day = substr($value, $pos2+1);
+ $year = substr($value, 0, $pos1);
+ $value = $month . "/" . $day . "/" . $year;
+ }
+ $csv_file .= $value . ",";
+ }
+ $csv_file .= "\r\n";
+ }
+
+ return $csv_file;
+}
+
+@ob_start();
+
+if (isset($_GET['project'])){
+ $project = ereg_replace("[^a-zA-Z0-9 ]","",$_GET['project']);
+ $csv_file = download_csv_dashboard($db_handle,$project);
+ $output_file = $project.'_statistics.csv';
+}else{
+ $project = "";
+ $csv_file = download_csv_dashboard($db_handle,$project);
+ $output_file = 'dashboard_statistics.csv';
+}
+
+@ob_end_clean();
+@ini_set('zlib.output_compression', 'Off');
+header('Pragma: public');
+header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
+header('Cache-Control: no-store, no-cache, must-revalidate');
+header('Cache-Control: pre-check=0, post-check=0, max-age=0');
+header('Content-Transfer-Encoding: none');
+// This should work for IE & Opera
+header('Content-Type: application/octetstream; name="' . $output_file . '"');
+// This should work for the rest
+header('Content-Type: application/octet-stream; name="' . $output_file . '"');
+header('Content-Disposition: inline; filename="' . $output_file . '"');
+echo $csv_file;
+
+$output_file = null;
+$csv_file = null;
+$query = null;
+$result = null;
+$db_handle = null;
+$dbc_cache = null;
+
+exit();
+?>
diff --git a/dashboard/dashboard_detail.php b/dashboard/dashboard_detail.php
new file mode 100644
index 0000000..f834507
--- /dev/null
+++ b/dashboard/dashboard_detail.php
@@ -0,0 +1,257 @@
+<?php
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "../stats/groups.class.php";
+require_once "utils.php";
+require_once "../stats/hostname.php";
+require_once "../stats/common_queries.php";
+require_once "constants.php";
+
+$dbc_cache = new DBConnectionDashboard();
+$db_handle = $dbc_cache->connect();
+
+if (!isset($_GET['project']) || $_GET['project'] == ""){
+ header('Location: ./index.php');
+}
+
+$project = $_GET['project'];
+$groups = new Groups();
+$groups->loadGroups(); // Load groups
+
+// Get last date available for $project in DB
+$mysql_date = get_last_date($db_handle);
+
+// Get info for the project
+$query = "SELECT * FROM ".stats_table()." WHERE project = \"".$project."\" AND stats_date = \"".$mysql_date."\"";
+$result = mysql_query($query,$db_handle);
+$row = mysql_fetch_assoc($result);
+
+// Liveness
+$liveness = $row['liveness'];
+
+// Bugs stats
+$bugs = $row['bugs_total'];
+$delta7 = $row['bugs_7_delta'];
+$delta30 = $row['bugs_30_delta'];
+$delta180 = $row['bugs_180_delta'];
+$perc7 = $row['bugs_7_percentage'];
+$perc30 = $row['bugs_30_percentage'];
+$perc180 = $row['bugs_180_percentage'];
+$gl7 = $row['bugs_7_gainloss'];
+$gl30 = $row['bugs_30_gainloss'];
+$gl180 = $row['bugs_180_gainloss'];
+
+// Newsgroups stats
+$num_posts_7 = $row['news_7_number_posts'];
+$num_posts_30 = $row['news_30_number_posts'];
+$avg_posts_7 = $row['news_7_average_posts'];
+$avg_posts_30 = $row['news_30_average_posts'];
+$avg_time_answer_7 = $row['news_7_answer_average_time'];
+$avg_time_answer_30 = $row['news_30_answer_average_time'];
+$unanswered_posts_7 = $row['news_7_unanswered_number'];
+$unanswered_posts_30 = $row['news_30_unanswered_number'];
+$insider_posts_7 = $row['news_7_insider_posts'];
+$insider_posts_30 = $row['news_30_insider_posts'];
+
+// Mail stats
+$mail_posts_7 = $row['mail_7_number_posts'];
+$mail_posts_30 = $row['mail_30_number_posts'];
+$mail_posts_180 = $row['mail_180_number_posts'];
+$mail_average_posts_7 = $row['mail_7_average_posts'];
+$mail_average_posts_30 = $row['mail_30_average_posts'];
+$mail_average_posts_180 = $row['mail_180_average_posts'];
+$mail_average_subscribers_7 = $row['mail_7_average_subscribers'];
+$mail_average_subscribers_30 = $row['mail_30_average_subscribers'];
+$mail_average_subscribers_180 = $row['mail_180_average_subscribers'];
+
+function num_posts($posts){
+ if ($posts == -1) // Newsgroup does not exist
+ return "N/A";
+ else if ($posts == 0) // No posts in newsgroup or since date
+ return "no posts";
+ else
+ return $posts;
+}
+
+function avg_posts($posts,$avg){
+ if ($posts < 0)
+ return "N/A";
+ else
+ return $avg;
+}
+
+function time_answer($posts,$answer){
+ if ($posts < 0)
+ return "N/A";
+ else if ($answer == 0 || $answer == -1)
+ return "no answers";
+ else
+ return realDate($answer);
+}
+
+function unanswered_posts($posts,$no_answer){
+ if ($posts < 0)
+ return "N/A";
+# else if ($posts == 0)
+# return 0;
+ else
+ return $no_answer;
+}
+
+function check_mail($var){
+ if ($var == -1) // No mailing list available
+ return "N/A";
+ else
+ return $var;
+
+}
+
+?>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Dashboard for " . $project;
+$pageKeywords = "dashboard";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+<table border=0>
+<tr>
+ <td> </td>
+ <td colspan="3">
+ <p align="center"><font size="+1"><b><a href="descriptions.php">Liveness:</a></b> <?= $liveness ?></font></p>
+ </td>
+</tr>
+<tr>
+ <td colspan="4"> </td>
+</tr>
+<tr>
+ <td> </td>
+ <td colspan=3 align=center style="border-bottom-style: dotted; border-bottom-width: 1">
+ <font size=+1><b><a href="descriptions.php">Bug fix rate</a></b></font>
+ </td>
+</tr>
+<tr>
+ <td> </td>
+ <td align=center><? gauge($bugs, $delta7, $perc7); ?></td>
+ <td align=center><? gauge($bugs, $delta30, $perc30); ?></td>
+ <td align=center><? gauge($bugs, $delta180, $perc180); ?></td>
+</tr>
+<tr>
+ <td> </td>
+ <td align=center>Last week<br>(<?= $perc7 ?>%, <?= $gl7 ?> bugs)</td>
+ <td align=center>Last month<br>(<?= $perc30 ?>%, <?= $gl30 ?> bugs)</td>
+ <td align=center>Last half year<br>(<?= $perc180 ?>%, <?= $gl180 ?> bugs)</td>
+</tr>
+<tr>
+ <td colspan=4> </td>
+</tr>
+<tr>
+ <td> </td>
+ <td colspan=3 align=center style="border-bottom-style: dotted; border-bottom-width: 1">
+ <font size=+1><b><a href="descriptions.php">Newsgroup statistics</a></b></font>
+ </td>
+</tr>
+<tr>
+ <td align="center"> </td>
+ <td align="center"><b>Last week</b></td>
+ <td align="center"><b>Last month</b></td>
+</tr>
+<tr bgcolor="#eaecef">
+ <td align="right"><b>Number of posts</b></td>
+ <td align="center" bgcolor="<?= bgcolor_news($num_posts_7, POSTS_7_RED, POSTS_7_GREEN) ?>"><?= num_posts($num_posts_7) ?></td>
+ <td align="center" bgcolor="<?= bgcolor_news($num_posts_30, POSTS_30_RED, POSTS_30_GREEN) ?>"><?= num_posts($num_posts_30) ?></td>
+</tr>
+<tr>
+ <td align="right"><b>Posts per day</b></td>
+ <td align="center"><?= avg_posts($num_posts_7,$avg_posts_7) ?></td>
+ <td align="center"><?= avg_posts($num_posts_30,$avg_posts_30) ?></td>
+</tr>
+<tr bgcolor="#eaecef">
+ <td align="right"><b>Time to answer a post</b></td>
+ <td align="center" bgcolor="<?=bgcolor_news_answers($avg_time_answer_7, $num_posts_7)?>"><?= time_answer($num_posts_7,$avg_time_answer_7) ?></td>
+ <td align="center" bgcolor="<?=bgcolor_news_answers($avg_time_answer_30, $num_posts_30)?>"><?= time_answer($num_posts_30,$avg_time_answer_30) ?></td>
+</tr>
+<tr>
+ <td align="right"><b>Unanswered posts</b></td>
+ <td align="center"><?= unanswered_posts($num_posts_7,$unanswered_posts_7) ?></td>
+ <td align="center"><?= unanswered_posts($num_posts_30,$unanswered_posts_30) ?></td>
+</tr>
+<tr>
+ <td colspan=4> </td>
+</tr>
+<tr>
+ <td> </td>
+ <td colspan=3 align=center style="border-bottom-style: dotted; border-bottom-width: 1">
+ <font size=+1><b><a href="descriptions.php">Mailing lists statistics</a></b></font>
+ </td>
+</tr>
+<tr>
+ <td align="center"> </td>
+ <td align="center"><b>Last week</b></td>
+ <td align="center"><b>Last month</b></td>
+ <td align="center"><b>Last half year</b></td>
+</tr>
+<tr bgcolor="#eaecef">
+ <td align="right"><b>Number of posts</b></td>
+ <td align="center"><?= check_mail($mail_posts_7) ?></td>
+ <td align="center"><?= check_mail($mail_posts_30) ?></td>
+ <td align="center"><?= check_mail($mail_posts_180) ?></td>
+</tr>
+<tr>
+ <td align="right"><b>Average # of posts</b></td>
+ <td align="center"><?= check_mail($mail_average_posts_7) ?></td>
+ <td align="center"><?= check_mail($mail_average_posts_30) ?></td>
+ <td align="center"><?= check_mail($mail_average_posts_180) ?></td>
+</tr>
+<tr bgcolor="#eaecef">
+ <td align="right"><b>Average # of subscribers</b></td>
+ <td align="center"><?= check_mail($mail_average_subscribers_7) ?></td>
+ <td align="center"><?= check_mail($mail_average_subscribers_30) ?></td>
+ <td align="center"><?= check_mail($mail_average_subscribers_180) ?></td>
+</tr>
+<tr>
+ <td colspan=4> </td>
+</tr>
+<tr>
+ <td> </td>
+ <td align="center">
+ <a style="text-decoration: none;" href="dashboard_csv_download.php?project=<?= $project ?>">
+ <div style="border:1px solid #0080C0; padding:5px; background: #FFFFFF; width:200px;">Download statistics to CSV file</div>
+ </a>
+ </td>
+ <td align="center">
+ <a style="text-decoration: none;" href="dashboard_log_download.php?project=<?= $project ?>">
+ <div style="border:1px solid #0080C0; padding:5px; background: #FFFFFF; width:200px;">Download log to text file</div>
+ </a>
+ </td>
+ <td> </td>
+</tr>
+</table>
+
+
+
+<?
+
+$rs = null;
+$dbh_cache = null;
+$dbc_cache = null;
+
+?>
+<br><br>
+<hr style="size: 50%; text-align:center">
+
+
+<br><br>
+<font color="grey">Statistics collected on <?= $mysql_date ?> </font>
+
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
+
\ No newline at end of file
diff --git a/dashboard/dashboard_log_download.php b/dashboard/dashboard_log_download.php
new file mode 100644
index 0000000..0299035
--- /dev/null
+++ b/dashboard/dashboard_log_download.php
@@ -0,0 +1,61 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "../stats/hostname.php";
+
+$dbc_cache = new DBConnectionDashboard();
+$db_handle = $dbc_cache->connect();
+
+function download_log_dashboard($db_handle,$project){
+ global $columns;
+ $log_file = "";
+
+ if ($project == "")
+ exit(1); // No empty project name
+
+ // Main query to select all stats from dashboard
+ $query = "SELECT * FROM ".log_table()." WHERE project = \"".$project."\"";
+ $result = mysql_query($query,$db_handle);
+ $row = mysql_fetch_assoc($result);
+ $log_file = "NEWS LOG\r\n";
+ $log_file .= $row['news_text']."\r\n\r\n";
+ $log_file .= "MAIL LOG\r\n\r\n";
+ $log_file .= $row['mail_text']."\r\n\r\n";
+ $log_file .= "BUGS LOG\r\n\r\n";
+ $log_file .= $row['bugs_text']."\r\n\r\n";
+
+ return $log_file;
+}
+
+@ob_start();
+
+if (isset($_GET['project'])){
+ $project = ereg_replace("[^a-zA-Z0-9 ]","",$_GET['project']);
+ $log_file = download_log_dashboard($db_handle,$project);
+ $output_file = $project.'_stats.log.txt';
+}
+
+@ob_end_clean();
+@ini_set('zlib.output_compression', 'Off');
+header('Pragma: public');
+header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
+header('Cache-Control: no-store, no-cache, must-revalidate');
+header('Cache-Control: pre-check=0, post-check=0, max-age=0');
+header('Content-Transfer-Encoding: none');
+// This should work for IE & Opera
+//header('Content-Type: application/octetstream; name="' . $output_file . '"');
+// This should work for the rest
+//header('Content-Type: application/octet-stream; name="' . $output_file . '"');
+header('Content-Type: text/plain; name="' . $output_file . '"');
+header('Content-Disposition: attachment; filename="' . $output_file . '"');
+echo $log_file;
+
+$output_file = null;
+$csv_file = null;
+$query = null;
+$result = null;
+$db_handle = null;
+$dbc_cache = null;
+
+exit();
+?>
diff --git a/dashboard/descriptions.php b/dashboard/descriptions.php
new file mode 100644
index 0000000..0a1c660
--- /dev/null
+++ b/dashboard/descriptions.php
@@ -0,0 +1,144 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Project Dashboards";
+$pageKeywords = "dashboard";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+
+<p><em>This is the legend for the metrics, <a href="index.php">the live dashboards are on another page</a>.</em></p>
+
+<p><b>Bug fix rate.</b><br>
+The difference in the number of closed (resolved, closed, and verified) bugs
+and enhancements to the number of open and active (P1, P2, P3) bugs. The goal is
+to keep the number positive because then the project is fixing bugs and
+implementing features faster than bugs are being reported. The number below the
+gauge is the numeric difference. The gauge itself shows the number as a
+percent of the number of new bugs reported.</p>
+<p><b>Newsgroups statistics.</b><br>
+The collection of statistics includes the number of posts, average number of
+posts, average time for a post to be answered, number of unanswered posts and
+number of posts made by insiders. All statistics are collected for different
+time periods.</p>
+<p>
+<ul>
+<li><b>Number of posts.</b> Total number of posts made in the last <i>N</i> days. The number of posts will be <i><b>N/A</b></i> when the newsgroup for a project does not exist and it is not possible to compute the statistics. When the group for the project exists but it is currently empty (no posts) or there are no posts for the last <i>N</i> days then the field will show as <i><b>no posts</b></i>.<br>
+<br>
+<table border=0>
+<tr>
+<td style="text-align: center; border-bottom-style: dotted; border-bottom-width: 1">Light</td>
+<td> </td>
+<td colspan=2 style="text-align: center; border-bottom-style: dotted; border-bottom-width: 1">Occurs when</td>
+</tr>
+<tr>
+<td> </td>
+<td> </td>
+<td><center><b>7 days</b></center></td>
+<td><center><b>30 days</b></center></td>
+</tr>
+<tr>
+<td><center><img alt="white light" src="lights/white.gif"></center></td>
+<td> </td>
+<td>The field contains <tt>N/A</tt></td>
+<td>The field contains <tt>N/A</tt></td>
+</tr>
+<tr>
+<td><center><img alt="white light" src="lights/red.gif"></center></td>
+<td> </td>
+<td>The number of posts is <tt><= 1</tt></td>
+<td>The number of posts is <tt><= 10</tt></td>
+</tr>
+<tr>
+<td><center><img alt="white light" src="lights/green.gif"></center></td>
+<td> </td>
+<td>The number of posts is <tt>=> 10</tt></td>
+<td>The number of posts is <tt>=> 40</tt></td>
+</tr>
+</table>
+<br>
+<li><b>Posts per day.</b> Average number of posts per day for the last <i>N</i> days. If the number of posts is 0 or the newsgroup for that project does not exist then the value will be <i><b>N/A</b></i>.<br>
+<br>
+Note: the values for this field are rounded. For example, if a newsgroup has only one post in the last 30 days the rounding will make it appear as 0 posts per day since <tt>1 / 30 =~ 0.03</tt>.<br>
+<br>
+<li><b>Time to answer a post.</b> Average time it takes for a post that was answered to be answered in the last <i>N</i> days.
+The Time To Reply (TTR) is computed as the difference between the time of the original post and the time of the reply using the NNTP-Posting-Date. If there were no answers for the specified period then the field will display <b><i>no answers</i></b>. If the newsgroup does not exist then it will display <i><b>N/A</b></i>.<br>
+<br>
+In order to get better results the <i>mean (µ)</i> and <i>standard deviation</i> are calculated for all posts from the last two months. If a post's TTR in the last <i>N</i> days is outside the <i>µ ± (2 * std. dev.)</i> window then the post is ignored for computation purposes.<br>
+<br>
+The maximum window to search for a reply is two months. If the post to which the current one is replying is not found within this time period then it is discarded regardless of it's TTR.<br>
+<br>
+<table border=0>
+<tr>
+<td style="text-align: center; border-bottom-style: dotted; border-bottom-width: 1">Light</td>
+<td> </td>
+<td style="text-align: center; border-bottom-style: dotted; border-bottom-width: 1">Occurs when</td>
+</tr>
+<tr>
+<td><center><img alt="white light" src="lights/white.gif"></center></td>
+<td> </td>
+<td>The field contains <tt>N/A</tt></td>
+</tr>
+<tr>
+<td><center><img alt="white light" src="lights/red.gif"></center></td>
+<td> </td>
+<td>The time to answer <tt><= 1 day</tt></td>
+</tr>
+<tr>
+<td><center><img alt="white light" src="lights/green.gif"></center></td>
+<td> </td>
+<td>The time to answer is <tt>=> 2 days</tt></td>
+</tr>
+</table>
+<br>
+Note for CSV logs: Posts in the log are identified by a stripped down version of their Message ID (RFC 977). The stripping consists of removing all characters after and including the <tt>'@'</tt> symbol. For example, if a message is identified by <tt>dj45t$1vr$1@eclipse.org</tt> the stripped down version on the log file would be stored as <tt>dj45t$1vr$1</tt>.<br>
+<br>
+Note for CSV downloads: The time difference is stored in seconds. To obtain the number of days & hours from this field (time_difference):<br>
+<br>
+<pre>
+ reminder = time_difference % 86400 // There are 86400 seconds
+ days = (time_difference - reminder) / 86400 // in a day: 24h * 60m * 60s
+ reminder2 = reminder % 3600;
+ hours = (reminder - reminder2) / 3600;
+</pre>
+<br>
+<li><b>Number of unanswered posts.</b> Total number of posts that have not been replied to in the last <i>N</i> days. This is only the number of top-level posts: those not having a <i>references:</i> field in the post's header. If the newsgroup does not exist the field will display <b><i>N/A</i></b>
+</ul>
+</p>
+<p><b>Liveness.</b><br>
+Liveness is:<br>
+<pre>
+1 * log(last week change in number of bugs) +
+1 * log(last week bug fix rate percentage) +
+2 * log(last month bug fix rate percentage) +
+1 * log(180 day bug fix rate percentage) +
+2 * log(last week number of newsgroup postings) +
+2 * 1/(last week newsgroup answers times) +
+3 * log(last month number of newsgroup postings) +
+3 * 1/(last month newsgroup answers times).
+</pre>
+</p>
+<p><b>Mailing lists statistics.</b><br>
+Computed daily from all mailing lists associated with a particular project. If the project does not have any listed mailing lists all stats will contain <b><i>N/A</i></b>.
+</p>
+<p>
+<ul>
+<li><b>Number of posts.</b> The number of posts made to all the project's mailing lists in the last <i>N</i> days.
+<li><b>Average # of posts.</b> Average number of posts per day.
+<li><b>Average # of subscribers.</b> Average number of subscribers over the last <i>N</i> days.
+</ul>
+</p>
+<hr>
+<p>Note about caching: the
+Dashboard data is computed once a day around midnight EDT.</p>
+
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
+
\ No newline at end of file
diff --git a/dashboard/gauges v1/.cvsignore b/dashboard/gauges v1/.cvsignore
new file mode 100644
index 0000000..085e8ba
--- /dev/null
+++ b/dashboard/gauges v1/.cvsignore
@@ -0,0 +1 @@
+Thumbs.db
diff --git a/dashboard/gauges/.cvsignore b/dashboard/gauges/.cvsignore
new file mode 100644
index 0000000..085e8ba
--- /dev/null
+++ b/dashboard/gauges/.cvsignore
@@ -0,0 +1 @@
+Thumbs.db
diff --git a/dashboard/gauges/gauge+10.gif b/dashboard/gauges/gauge+10.gif
new file mode 100644
index 0000000..4934f3c
--- /dev/null
+++ b/dashboard/gauges/gauge+10.gif
Binary files differ
diff --git a/dashboard/gauges/gauge+100.gif b/dashboard/gauges/gauge+100.gif
new file mode 100644
index 0000000..505fffd
--- /dev/null
+++ b/dashboard/gauges/gauge+100.gif
Binary files differ
diff --git a/dashboard/gauges/gauge+25.gif b/dashboard/gauges/gauge+25.gif
new file mode 100644
index 0000000..b03eca9
--- /dev/null
+++ b/dashboard/gauges/gauge+25.gif
Binary files differ
diff --git a/dashboard/gauges/gauge+37.gif b/dashboard/gauges/gauge+37.gif
new file mode 100644
index 0000000..6f2c928
--- /dev/null
+++ b/dashboard/gauges/gauge+37.gif
Binary files differ
diff --git a/dashboard/gauges/gauge+50.gif b/dashboard/gauges/gauge+50.gif
new file mode 100644
index 0000000..faafdf4
--- /dev/null
+++ b/dashboard/gauges/gauge+50.gif
Binary files differ
diff --git a/dashboard/gauges/gauge+62.gif b/dashboard/gauges/gauge+62.gif
new file mode 100644
index 0000000..43e7fcc
--- /dev/null
+++ b/dashboard/gauges/gauge+62.gif
Binary files differ
diff --git a/dashboard/gauges/gauge+75.gif b/dashboard/gauges/gauge+75.gif
new file mode 100644
index 0000000..c05e07d
--- /dev/null
+++ b/dashboard/gauges/gauge+75.gif
Binary files differ
diff --git a/dashboard/gauges/gauge+87.gif b/dashboard/gauges/gauge+87.gif
new file mode 100644
index 0000000..58c8e90
--- /dev/null
+++ b/dashboard/gauges/gauge+87.gif
Binary files differ
diff --git a/dashboard/gauges/gauge-10.gif b/dashboard/gauges/gauge-10.gif
new file mode 100644
index 0000000..a451b56
--- /dev/null
+++ b/dashboard/gauges/gauge-10.gif
Binary files differ
diff --git a/dashboard/gauges/gauge-100.gif b/dashboard/gauges/gauge-100.gif
new file mode 100644
index 0000000..ab31f77
--- /dev/null
+++ b/dashboard/gauges/gauge-100.gif
Binary files differ
diff --git a/dashboard/gauges/gauge-25.gif b/dashboard/gauges/gauge-25.gif
new file mode 100644
index 0000000..e828acf
--- /dev/null
+++ b/dashboard/gauges/gauge-25.gif
Binary files differ
diff --git a/dashboard/gauges/gauge-37.gif b/dashboard/gauges/gauge-37.gif
new file mode 100644
index 0000000..8fffd48
--- /dev/null
+++ b/dashboard/gauges/gauge-37.gif
Binary files differ
diff --git a/dashboard/gauges/gauge-50.gif b/dashboard/gauges/gauge-50.gif
new file mode 100644
index 0000000..870b590
--- /dev/null
+++ b/dashboard/gauges/gauge-50.gif
Binary files differ
diff --git a/dashboard/gauges/gauge-62.gif b/dashboard/gauges/gauge-62.gif
new file mode 100644
index 0000000..8e49551
--- /dev/null
+++ b/dashboard/gauges/gauge-62.gif
Binary files differ
diff --git a/dashboard/gauges/gauge-75.gif b/dashboard/gauges/gauge-75.gif
new file mode 100644
index 0000000..828c717
--- /dev/null
+++ b/dashboard/gauges/gauge-75.gif
Binary files differ
diff --git a/dashboard/gauges/gauge-87.gif b/dashboard/gauges/gauge-87.gif
new file mode 100644
index 0000000..b500bdd
--- /dev/null
+++ b/dashboard/gauges/gauge-87.gif
Binary files differ
diff --git a/dashboard/gauges/gauge0.gif b/dashboard/gauges/gauge0.gif
new file mode 100644
index 0000000..1f6aae5
--- /dev/null
+++ b/dashboard/gauges/gauge0.gif
Binary files differ
diff --git a/dashboard/gauges/gaugenonew.gif b/dashboard/gauges/gaugenonew.gif
new file mode 100644
index 0000000..2292b0e
--- /dev/null
+++ b/dashboard/gauges/gaugenonew.gif
Binary files differ
diff --git a/dashboard/gauges/gaugenull.gif b/dashboard/gauges/gaugenull.gif
new file mode 100644
index 0000000..ba8146b
--- /dev/null
+++ b/dashboard/gauges/gaugenull.gif
Binary files differ
diff --git a/dashboard/groups.txt b/dashboard/groups.txt
new file mode 100644
index 0000000..eed2836
--- /dev/null
+++ b/dashboard/groups.txt
@@ -0,0 +1,86 @@
+############################################################################
+# This file contains the glue to all the stats computation information. #
+# The php code depends on the correct information on this file to #
+# determine the relationship between the project name, its newsgroup, its #
+# mailing list(s), its ID on the dashboard DB and its description. #
+# #
+# All lines starting with a hash character (#) are ignored. #
+# #
+# Format of the file is: #
+# #
+# ID|Newsgroup|Project name|mailing list1, maling list2, ... |Description #
+# #
+############################################################################
+9|eclipse.technology.xsd|XSD||XML Schema Infoset Model
+#
+14|eclipse.technology.wsvt|WSVT||Web Service Validation Tools
+#
+28|eclipse.technology.voicetools|Voice Tools|vtp-dev|Voice Tools Project
+#
+16|eclipse.tools.ve|VE|ve-dev|Visual Editor Tools
+#
+17|eclipse.tools.uml2|UML2|uml2-dev|Unified Modeling Language 2.0
+#
+41|eclipse.dsdp.tm|TM|dsdp-tm-dev|DSDP Target Management Project
+#
+27|eclipse.technology.ptp|PTP|ptp-dev|Parallel Tools Platform
+#
+35|eclipse.technology.phoenix|Phoenix|phoenix-dev|Phoenix - eclipse.org website redesign
+#
+21|eclipse.technology.pollinate|Pollinate|pollinate-dev|Pollinate Project
+#
+1|eclipse.platform|Platform|platform-dev,platform-ant-dev,platform-compare-dev,platform-core-dev,platform-cvs-dev,platform-debug-dev,platform-doc-dev,platform-help-dev,platform-releng-dev,platform-scripting-dev,platform-search-dev,platform-swt-dev,platform-team-dev,platform-text-dev,platform-ua-dev,platform-ui-dev,platform-update-dev,platform-webdav-dev|Eclipse Platform
+#
+2|eclipse.pde|PDE|pde-dev,pde-build-dev,pde-doc-dev,pde-ui-dev|Plugin Development Environment
+#
+31|eclipse.technology.mylar|Mylar|mylar-dev,mylar-announce,mylar-users|Mylar Project
+#
+40|eclipse.technology.mddi|MDDI|mddi-dev|Model Driven Development Integration Project
+#
+32|eclipse.technology.lepido|Lepido|lepido-dev|Lepido, Tools for Apache Cocoon developer discussions
+#
+39|eclipse.technology.jsr220-orm|JSR220-ORM|jsr220orm-dev|JSR220-ORM project
+#
+3|eclipse.tools.jdt|JDT|jdt-dev,jdt-apt-dev,jdt-core-dev,jdt-doc-dev,jdt-ui-dev,jdt-debug-dev|Java Development Toolkit
+#
+13|eclipse.tools.hyades|Hyades||Automated Software Quality Tools
+#
+30|eclipse.technology.higgins|Higgins|higgins-dev|Higgins, The Trust Framework
+#
+29|eclipse.technology.gmf|GMF|gmf-dev,gmf-releng|Graphical Modeling Framework
+#
+12|eclipse.technology.gmt|GMT|gmt-dev|Generative Model Transformer
+#
+5|eclipse.tools.gef|GEF|gef-dev|Graphical Editing Framework
+#
+23|eclipse.technology.ercp|ERCP|ercp-dev|Embedded Rich Client Platform (RCP) Project
+#
+8|eclipse.tools.emf|EMF|emf-dev|Eclipse Modeling Framework
+#
+20|eclipse.webtools|Web Tools|wtp-dev,wtp-jst-dev,wtp-pmc,wtp-releng,wtp-requirements,wtp-wst-dev|Web Tools
+#
+26|eclipse.tptp|TPTP|tptp-monitoring-tools-dev,tptp-news,tptp-platform-dev,tptp-pmc,tptp-testing-tools-dev,tptp-tracing-profiling-tools-dev|Eclipse Test & Performance Tools Platform Project
+#
+42|eclipse.technology.emft|EMFT|emft-dev|Eclipse Modeling Framework Technology
+#
+25|eclipse.technology.ecf|ECF|ecf-dev|Eclipse Communications Framework
+#
+15|eclipse.technology.ecesis|ECESIS|ecesis-dev|Eclipse Techology Open Courseware Project
+#
+37|eclipse.dsdp|DSDP|dsdp-dev,dsdp-dd-dev|The Device Software Development Platform
+#
+36|eclipse.dtp|Data Tools|dtp-arch,dtp-connect-dev,dtp-dev,dtp-models-dev,dtp-plan,dtp-pmc,dtp-reqs,dtp-sqldevtools-dev|Data Tools platform
+#
+18|eclipse.technology.cme|CME|cme-dev,cme-users|Concern Manipulation Environment for AOSD
+#
+4|eclipse.tools.cdt|CDT|cdt-contrib-dev,cdt-core-dev,cdt-core-inbox,cdt-debug-dev,cdt-dev,cdt-doc-dev,cdt-doc-inbox,cdt-patch,cdt-test-dev,cdt-ui-dev|C/C++ Development Toolkit
+#
+24|eclipse.birt|BIRT|birt-charting-dev,birt-dev,birt-news,birt-pmc,birt-proposal,birt-report-designer-dev,birt-report-engine-dev|Business Intelligence and Reporting Tools (BIRT) Project
+#
+33|eclipse.technology.buckminster|Buckminster|buckminster-dev|The Buckminster dependency project
+#
+10|eclipse.technology.aspectj|AspectJ|aspectj-announce,aspectj-dev,aspectj-users|AspectJ Language and Compiler
+#
+38|eclipse.technology.alf|ALF|alf-dev,alf-events,alf-req|Application Lifecycle Framework
+#
+6|eclipse.technology.ajdt|AJDT|ajdt-dev|AspectJ Development Tools
diff --git a/dashboard/index.php b/dashboard/index.php
new file mode 100644
index 0000000..b7089d3
--- /dev/null
+++ b/dashboard/index.php
@@ -0,0 +1,139 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Project Dashboards";
+$pageKeywords = "dashboard";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+<h2>Introduction</h2>
+<p>These dashboards are for the developers on the open source projects.
+The information is designed to provide you with a sense of how well your
+project (and other projects) are functioning. Is it making progress? Falling
+behind? Does it have an active community? And so on.
+</p><p>
+Of course, all of this is a noble goal - today the dashboard is fairly primitive.
+We are incrementally improving it.
+Please submit all suggestions for information you'd like to see
+for your (and others) projects via <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Community">bugzilla</a>.
+Or better yet, send us some php fragments that display the information.
+</p>
+
+<h2>Dashboards</h2>
+
+<table border=0>
+<tr>
+<td colspan="2" align="center" bgcolor="#DDDDDD">Click to sort by these columns</td>
+<td colspan="3" align="center">Click on the project name to go to the detail page</td>
+</tr>
+<tr>
+<td align="center" valign="top"><a style="font-weight: bold;" href="index.php?sort=project">Project name</a></td>
+<td align="center" valign="top"><a style="font-weight: bold;" href="index.php?sort=liveness">Liveness</a></td>
+<td align="center" valign="top"><a href="descriptions.php">Bugs</a></td>
+<td> <br></td>
+<td align="center" valign="top"><a href="descriptions.php">News</a></td>
+</tr>
+
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "../stats/groups.class.php";
+require_once "utils.php";
+require_once "../stats/hostname.php";
+require_once "../stats/common_queries.php";
+require_once "constants.php";
+
+$dbc_cache = new DBConnectionDashboard();
+$db_handle = $dbc_cache->connect();
+
+// Load groups to get descriptions
+$groups = new Groups();
+$groups->loadGroups();
+
+// Determine row sorting
+if (isset($_GET['sort']) && ($_GET['sort'] == "liveness"))
+ $sortby = "liveness DESC";
+else
+ $sortby = "project";
+
+// Get last date available in DB
+$mysql_date = get_last_date($db_handle);
+
+// Get groups
+$query = "SELECT * FROM ".stats_table()." WHERE stats_date = \"".$mysql_date."\" ORDER BY ".$sortby;
+
+$result = mysql_query($query,$db_handle);
+$i = 0;
+
+$elements = array();
+$descriptions = array();
+
+while($row = mysql_fetch_assoc($result)){
+ $project = $row['project'];
+ $description = $groups->getDescriptionFromProject($project);
+ $elements[$description] = $row;
+ array_push( $descriptions, $description );
+}
+
+if ($sortby == "project") // In the case of "liveness" sorting
+ sort($descriptions); // the data is sorted by MySQL
+
+for($i=0;$i<count($descriptions);$i++){
+ $description = $descriptions[$i];
+ $row = $elements[$description];
+
+ $project = $row['project'];
+ $liveness = $row['liveness'];
+ $bugs = $row['bugs_total'];
+ $delta7 = $row['bugs_7_delta'];
+ $delta30 = $row['bugs_30_delta'];
+ $delta180 = $row['bugs_180_delta'];
+ $perc7 = $row['bugs_7_percentage'];
+ $perc30 = $row['bugs_30_percentage'];
+ $perc180 = $row['bugs_180_percentage'];
+ $news7 = $row['news_7_number_posts'];
+ $news30 = $row['news_30_number_posts'];
+ $answers7 = $row['news_7_answer_average_time'];
+ $answers30= $row['news_30_answer_average_time'];
+
+ echo "<tr>\n";
+ echo "<td><a href=\"dashboard_detail.php?project=$project\">".$description."</a></td>\n";
+ echo "<td align=\"center\">".$liveness."</td>\n";
+ echo "<td align=\"center\"><a href=\"dashboard_detail.php?project=$project\">".light_bugs($bugs, $delta7, $perc7);
+ echo light_bugs($bugs, $delta30, $perc30);
+ echo light_bugs($bugs, $delta180, $perc180)."</a></td>\n";
+ echo "<td> </td>\n";
+ echo "<td align=\"center\"><a href=\"dashboard_detail.php?project=$project\">".light_news($news7, POSTS_7_RED, POSTS_7_GREEN);
+ echo light_news_answers($answers7, $news7);
+ echo light_news($news30, POSTS_30_RED, POSTS_30_GREEN);
+ echo light_news_answers($answers30, $news30)."</a></td>\n";
+ echo "</tr>\n";
+}
+
+?>
+
+<tr>
+ <td colspan=5> </td>
+</tr>
+<tr>
+ <td colspan=5 align="center">
+ <a style="text-decoration: none;" href="dashboard_csv_download.php">
+ <div style="border:1px solid #0080C0; padding:5px; background: #FFFFFF; width:200px;">Download statistics to CSV file</div>
+ </a>
+ </td>
+</tr>
+</table>
+<br><br>
+<font color="grey">Statistics collected on <?= $mysql_date ?> </font>
+
+
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
+
\ No newline at end of file
diff --git a/dashboard/lights/.cvsignore b/dashboard/lights/.cvsignore
new file mode 100644
index 0000000..085e8ba
--- /dev/null
+++ b/dashboard/lights/.cvsignore
@@ -0,0 +1 @@
+Thumbs.db
diff --git a/dashboard/lights/black.gif b/dashboard/lights/black.gif
new file mode 100644
index 0000000..7a5156c
--- /dev/null
+++ b/dashboard/lights/black.gif
Binary files differ
diff --git a/dashboard/lights/green.gif b/dashboard/lights/green.gif
new file mode 100644
index 0000000..0882c17
--- /dev/null
+++ b/dashboard/lights/green.gif
Binary files differ
diff --git a/dashboard/lights/grey.gif b/dashboard/lights/grey.gif
new file mode 100644
index 0000000..1371ac6
--- /dev/null
+++ b/dashboard/lights/grey.gif
Binary files differ
diff --git a/dashboard/lights/red.gif b/dashboard/lights/red.gif
new file mode 100644
index 0000000..afd171a
--- /dev/null
+++ b/dashboard/lights/red.gif
Binary files differ
diff --git a/dashboard/lights/white.gif b/dashboard/lights/white.gif
new file mode 100644
index 0000000..924e51f
--- /dev/null
+++ b/dashboard/lights/white.gif
Binary files differ
diff --git a/dashboard/utils.php b/dashboard/utils.php
new file mode 100644
index 0000000..7a17f7e
--- /dev/null
+++ b/dashboard/utils.php
@@ -0,0 +1,187 @@
+<?php
+
+function realDate($timestamp){
+ $str = "";
+
+ $rest = ($timestamp % 86400);
+ $days = ($timestamp - $rest) / 86400;
+ if ($days != 0)
+ $str = $days." day";
+ if ($days > 1)
+ $str .= "s";
+ $rest1 = ($rest % 3600);
+ $hours = ($rest - $rest1) / 3600;
+ if ($hours != 0 || $days != 0)
+ $str .= " ".$hours." hour";
+ if ($hours > 1)
+ $str .= "s";
+
+ if ($str == "")
+ $str = "< 1 hour";
+
+ return $str;
+}
+
+function light_bugs($zero, $delta, $value){
+ if ($zero == 0 || $delta == 0 || ($value >= -15 && $value <= 15)){
+ return WHITE_LIGHT;
+ }
+ if ($value < -15){
+ return RED_LIGHT;
+ }
+ if ($value > 15){
+ return GREEN_LIGHT;
+ }
+}
+
+function light_news($value, $red, $green) {
+ if ($value == -1){ // N/A
+ return WHITE_LIGHT;
+ }
+ if ($value <= $red){
+ return RED_LIGHT;
+ }
+ if ($value >= $green){
+ return GREEN_LIGHT;
+ }
+ return WHITE_LIGHT;
+}
+
+function bgcolor_news($value, $red, $green){
+ if ($value == -1){ // N/A
+ return WHITE;
+ }
+ if ($value <= $red){
+ return RED;
+ }
+ if ($value >= $green){
+ return GREEN;
+ }
+ return WHITE;
+}
+
+function light_news_answers($answers, $posts){
+ if ($posts == -1){ // N/A
+ return WHITE_LIGHT;
+ }
+ if ($posts == 0 && $answers == -1){ // No old unanswered
+ return WHITE_LIGHT;
+ }
+ if ($posts == 0 && $answers == 0){ // Old unanswered
+ return RED_LIGHT;
+ }
+ if ($answers == 0){ // No answers
+ return RED_LIGHT;
+ }
+ if ($answers <= ANSWERS_GREEN){
+ return GREEN_LIGHT;
+ }
+ if ($answers >= ANSWERS_RED){
+ return RED_LIGHT;
+ }
+ return WHITE_LIGHT;
+}
+
+function bgcolor_news_answers($answers, $posts){
+ if ($posts == -1){ // N/A
+ return WHITE;
+ }
+ if ($posts == 0 && $answers == -1){ // No old unanswered
+ return WHITE;
+ }
+ if ($posts == 0 && $answers == 0){ // Old unanswered
+ return RED;
+ }
+ if ($answers == 0){ // No answers
+ return RED;
+ }
+ if ($answers <= ANSWERS_GREEN){
+ return GREEN;
+ }
+ if ($answers >= ANSWERS_RED){
+ return RED;
+ }
+ return WHITE;
+}
+
+function html_gauge($which){
+ return "<img border=0 src=\"gauges/gauge".$which.".gif\" />";
+}
+
+function gauge($zero, $delta, $value){
+ if ($zero == 0){
+ echo html_gauge("null");
+ return;
+ }
+ if ($delta == 0){
+ echo html_gauge("nonew");
+ return;
+ }
+ if ($value <= -93){
+ echo html_gauge("-100");
+ return;
+ }
+ if ($value <= -81){
+ echo html_gauge("-87");
+ return;
+ }
+ if ($value <= -68){
+ echo html_gauge("-75");
+ return;
+ }
+ if ($value <= -56){
+ echo html_gauge("-62");
+ return;
+ }
+ if ($value <= -43){
+ echo html_gauge("-50");
+ return;
+ }
+ if ($value <= -31){
+ echo html_gauge("-37");
+ return;
+ }
+ if ($value <= -15){
+ echo html_gauge("-25");
+ return;
+ }
+ if ($value <= -5){
+ echo html_gauge("-10");
+ return;
+ }
+ if ($value >= 93){
+ echo html_gauge("+100");
+ return;
+ }
+ if ($value >= 81){
+ echo html_gauge("+87");
+ return;
+ }
+ if ($value >= 68){
+ echo html_gauge("+75");
+ return;
+ }
+ if ($value >= 56){
+ echo html_gauge("+62");
+ return;
+ }
+ if ($value >= 43){
+ echo html_gauge("+50");
+ return;
+ }
+ if ($value >= 31){
+ echo html_gauge("+37");
+ return;
+ }
+ if ($value >= 15){
+ echo html_gauge("+25");
+ return;
+ }
+ if ($value >= 5){
+ echo html_gauge("+10");
+ return;
+ }
+ echo html_gauge("0");
+}
+
+?>
diff --git a/dev_process/.cvsignore b/dev_process/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/dev_process/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/dev_process/Eclipse Quality APIs v2.pdf b/dev_process/Eclipse Quality APIs v2.pdf
new file mode 100644
index 0000000..22abf23
--- /dev/null
+++ b/dev_process/Eclipse Quality APIs v2.pdf
Binary files differ
diff --git a/dev_process/Eclipse_Standard_TopLevel_Charter_v1.0.php b/dev_process/Eclipse_Standard_TopLevel_Charter_v1.0.php
new file mode 100644
index 0000000..f3d874f
--- /dev/null
+++ b/dev_process/Eclipse_Standard_TopLevel_Charter_v1.0.php
@@ -0,0 +1,278 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Eclipse Standard Top-Level Charter v1.0";
+$pageKeywords = "project";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+<p><i>This
+document defines standard terms for Eclipse Top Level Project Charters. It is
+intended that the Charters for Top Level Projects reference this document rather
+than inheriting by copy-and-paste.</i></p>
+
+<h2>Overview</h2>
+</b><i>To be defined in the individual Top
+Level Project Charter.</i></p>
+
+<h2>Mission</h2>
+<i>To be defined in the individual Top Level Project Charter.</i></p>
+
+<h2>Scope</h2>
+<i>To be defined in the individual Top Level Project Charter.</i></p>
+
+<h2>Project Management Committee</h2>
+</b>The Projects under this Charter are managed by a group known as the Project
+Management Committee (the "PMC").</p>
+<p>PMCs are expected to ensure that:</p>
+<ul>
+ <li>
+ All Projects operate effectively by providing leadership to guide the
+ Project's overall direction and by removing obstacles, solving problems, and
+ resolving conflicts.</p>
+ </li>
+ <li>
+ All Project plans, technical documents and reports are publicly available</p>
+ </li>
+ <li>
+ All Projects operate using open source rules of engagement: meritocracy,
+ transparency, and open participation. These principles work together. In
+ principle, anyone can participate in a Project.
+ </li>
+</ul>
+<p>The PMC has the following responsibilities:</p>
+<ul>
+ <li>Providing the leadership and vision to guide the Project's overall
+ direction in a manner consistent with the Eclipse Foundation Roadmap.</li>
+ <li>Providing assistance and support to the developers working on the Project
+ by removing obstacles, solving problems, and resolving conflicts.</li>
+ <li>Ensuring that Project plans are produced, and presenting these plans to
+ the EMO.</li>
+ <li>Working with the Eclipse Management Organization (the "EMO") to
+ establish the processes and infrastructure needed for the project teams to
+ be effective.</li>
+ <li>Recommending new Projects to the EMO.</li>
+ <li>Recommending the initial set of Project committers for each new Project
+ overseen by the PMC, and establishing the procedures consistent with this
+ Charter for voting in new committers.</li>
+ <li>Helping to ensure that the Projects overseen by the PMC have enough
+ contributors, and working to fill vacancies in roles.</li>
+ <li>Producing "how to get involved" guidelines to help new potential
+ contributors get started.</li>
+ <li>Coordinating relationships with other Eclipse Foundation Projects.</li>
+ <li>Facilitating code or other donations by individuals or companies.</li>
+ <li>Making recommendations to the Eclipse Foundation Board regarding
+ contributions proposed under licenses other than the EPL.</li>
+ <li>Working with the EMO and Committers to ensure in-bound contributions are
+ made in accordance with the Eclipse Foundation IP Policy.</li>
+ <li>Acting as a focal point for the community in representing the Projects it
+ oversees.</li>
+</ul>
+<p>The PMC Lead is appointed by the Board. The initial PMC is selected by the
+PMC Lead. Thereafter, to become a member of the PMC, an individual must be
+nominated by another member of the PMC, and unanimously approved by all PMC
+members. </p>
+<p>In the unlikely event that a member of the PMC becomes disruptive to the
+process or ceases to contribute for an extended period, the member may be
+removed by unanimous vote of remaining PMC members. PMC members may resign at
+any time by delivering notice of their resignation to the PMC Lead.</p>
+<p>The PMC is responsible for producing and maintaining the Project Charter.
+Development activities must conform to any rules or processes outlined in the
+Charter, so a change to these processes may necessitate a change to the Charter.
+Changes to the Charter are approved by the Board.</p>
+<p>The work of the PMC is shared by the PMC members. All PMC members are
+expected to contribute actively. In particular, PMC members are expected to take
+responsibility for overseeing certain areas of work in the Project, and
+reporting to the PMC on these areas. Because of the diversity amongst individual
+projects, PMC members are not expected to maintain anything other than general
+currency with projects outside their assigned technical areas.</p>
+<p>Active participation in the user newsgroups and the appropriate developer
+mailing lists is a responsibility of all PMC members, and is critical to the
+success of the Project. PMC members are required to monitor the main Project
+mailing list, and the developer mailing lists for all Projects and components
+they are overseeing.</p>
+
+<h2>Roles</h2>
+The Projects under this Charter are operated as meritocracies -- the more you
+contribute, and the higher the quality of your contribution, the more you are
+allowed to do. However with this comes increased responsibility.</span></p>
+
+<h3>Users</h3>
+</b>Users are the people who use the output from the Project. Output will
+typically consist of software in form of extensible frameworks and exemplary
+tools. Software in this context means intellectual property in electronic form,
+including source and binary code, documentation, courseware, reports and
+whitepapers. </p>
+
+<h3>Developers</h3>
+</b>Users who contribute software, documentation, or other materially useful
+content become developers. Developers are encouraged to participate in the user
+newsgroup(s), and should monitor the developer mailing list associated with
+their area of contribution. When appropriate, developers may also contribute to
+development design discussions related to their area of contribution. Developers
+are expected to be proactive in reporting problems in the bug tracking system.</p>
+
+<h3>Committers</h3>
+</b>Developers who give frequent and valuable contributions to a Project, or
+component of a Project (in the case of large Projects), can have their status
+promoted to that of a "Committer" for that Project or component
+respectively. A Committer has write access to the source code repository for the
+associated Project (or component), and gains voting rights allowing them to
+affect the future of the Project (or component).</p>
+<p>In order for a Developer to become a Committer on a particular Project
+overseen by the PMC, another Committer for the same Project (or component as
+appropriate) can nominate that Developer or the Developer can ask to be
+nominated. Once a Developer is nominated, the Committers for the Project (or
+component) will vote for a PMC-designated voting period, and that period shall
+be no less than one week. If there are at least 3 positive votes and no negative
+votes within the voting period, the Developer is recommended to the PMC for
+commit privileges. The PMC may waive the 3 vote minimum requirement in
+exceptional cases (e.g., there are fewer than 3 active committers on the
+project). If the PMC also approves, and the Developer signs the appropriate New
+Committer agreements established by the EMO (wherein, at the very least, the
+Developer agrees to abide by the Eclipse Intellectual Property Policy), the
+Developer is converted into a Committer and given write access to the source
+code and/or web repository for that Project (or component). Becoming a Committer
+is a privilege that is earned by contributing and showing discipline and good
+judgment. It is a responsibility that should be neither given nor taken lightly.</p>
+<p>At times, Committers may become inactive for a variety of reasons. The
+decision making process of the Project relies on active committers who respond
+to discussions and vote in a constructive and timely manner. The PMC is
+responsible for ensuring the smooth operation of the Project. A Committer who is
+disruptive, does not participate actively, or has been inactive for an extended
+period may have his or her commit status revoked by the PMC.</p>
+<p>Active participation in the user newsgroup and the appropriate developer
+mailing lists is a responsibility of all Committers, and is critical to the
+success of the Project. Committers are required to monitor and contribute to the
+user newsgroup.</p>
+<p>Committers are required to monitor the mailing lists associated with all
+Projects and components for which they have commit privileges. This is a
+condition of being granted commit rights to the Project or component. It is
+mandatory because committers must participate in votes (which in some cases
+require a certain minimum number of votes) and must respond to the mailing list
+in a timely fashion in order to facilitate the smooth operation of the Project.
+When a Committer is granted commit rights they will be added to the appropriate
+mailing lists. A Committer must not be unsubscribed from a developer mailing
+list unless their associated commit privileges are also revoked.</p>
+<p>Committers are required to track, participate in, and vote on, relevant
+discussions in their associated Projects and components. There are three voting
+responses: +1 (yes), -1 (no, or veto), and 0 (abstain).</p>
+<p>Committers are responsible for proactively reporting problems in the bug
+tracking system, and annotating problem reports with status information,
+explanations, clarifications, or requests for more information from the
+submitter. Committers are responsible for updating problem reports when they
+have done work related to the problem.</p>
+
+<h2>Projects</h2>
+</b>The work under this Top Level Project is further organized into Projects.
+New Projects must be consistent with the mission of the Top Level Project, be
+recommended by the PMC, and confirmed by the EMO. Projects can be discontinued
+by recommendation of the PMC, and confirmed by the EMO.</p>
+<p>When a new Project is created, the PMC nominates a Project lead to act as the
+technical leader and nominates the initial set of Committers for the Project,
+and these nominations are approved by the EMO. Project leads are accountable to
+the PMC for the success of their Project.</p>
+
+<h3>Project Organization</h3>
+</b>Given the fluid nature of Eclipse Projects, organizational changes are
+possible, in particular: dividing a Project into components; dividing a Project
+into two or more independent Projects; and merging two or more Projects into a
+single Project. In each case, the initiative for the change may come either from
+within the Project or from the PMC, but the PMC must approve any change, and
+approval must be confirmed by the EMO.</p>
+<p>If a Project wishes to divide into components, commit privileges are normally
+granted at the component level, and the committers for a given component vote on
+issues specific to that component. Components are established and discontinued
+by the PMC. When the PMC creates a component, it appoints a component lead to
+act as the technical leader and names the initial set of Committers for the
+component. The component lead is designated as a committer for the Project and
+represents the component in discussions and votes pertaining to the Project as a
+whole. Component committers do not participate in votes at the level of the
+Project as a whole, unless they are also the component lead.</p>
+<p>In cases where new Projects are being created, either by splitting or by
+merging, the usual procedures as set forth in this Charter are followed. In
+particular, developers will not necessarily have the same rights after an
+organizational change that they enjoyed in the previous structure.</p>
+
+<h2>Infrastructure</h2>
+</b>The PMC works with the EMO to ensure the required infrastructure for the
+Project. The Project infrastructure will include, at minimum:</p>
+<ul>
+ <li>Bug Database - Bugzilla database for tracking bugs and feature requests.</li>
+ <li>Source Repository -- One or more CVS repositories containing all the
+ software for the Projects.</li>
+ <li>Website - A website will contain information about the Project, including
+ documentation, reports and papers, courseware, downloads of releases, and
+ this Charter.</li>
+ <li>General Mailing List - Mailing list for discussions pertaining to the
+ Project as a whole or that cross Projects. This mailing list is open to the
+ public.</li>
+ <li>Project Mailing Lists - Mailing list for technical discussions related to
+ the Project. This mailing list is open to the public.</li>
+ <li>Component Mailing Lists - Mailing list for technical discussions related
+ to the component. This mailing list is open to the public.</li>
+ <li>Newsgroups - Newsgroups where users, developers, and committers can
+ interact regarding general questions and issues about the project. The
+ newsgroup is open to the public.</li>
+</ul>
+
+<h2>The Development Process</h2>
+</b>Each Project lead must produce a development plan for the release cycle, and
+the development plan must be approved by a majority of Committers of the
+Project. The plan must be submitted to the PMC for review. The PMC may provide
+feedback and advice on the plan but approval rests with the Project Committers.</p>
+<p>Each Project must identify, and make available on its web site, the
+requirements and prioritizations it is working against in the current release
+cycle. In addition, each Project must post a release plan showing the date and
+content of the next major release, including any major milestones, and must keep
+this plan up to date.</p>
+<p>The Committers of a Project or component decide which changes may be
+committed to the master code base of a Project or component respectively. The
+PMC defines the decision process, but that process must include the ability for
+Committers to veto the change. The decision process employed may change with the
+phase of development. Common decision processes include:</p>
+<ul>
+ <li>Retroactive - changes are proactively made by Committers but can be vetoed
+ by a single Committer. </li>
+ <li>Proactive - for efficiency, some code changes from some
+contributors (e.g. feature additions, bug fixes) may be approved in advance, or
+approved in principle based on an outline of the work, in which case they may be
+committed first and changed as needed, with conflicts resolved by majority vote
+of the Committers of the Project or component, as applicable.</li>
+ <li>Three Positive - No code is committed without a vote; three
++1 ('yes' votes) with no -1 ('no' votes or vetoes) are needed to approve a code
+change. </li>
+</ul>
+<p> Vetoes must be followed by an explanation for the veto within 24 hours
+or the veto becomes invalid. All votes are conducted via the developer mailing
+list associated with the Project or component. Special rules may be established by the PMC for Projects or components with
+fewer than three Committers. </p>
+<p>The master copy of the code base must reside on the Project web site where it
+is accessible to all users, developers and committers. Committers must check
+their changes and new work into the master code base as promptly as possible
+(subject to any check-in voting rules that may be in effect) in order to foster
+collaboration among widely distributed groups and so that the latest work is
+always available to everyone. The PMC is responsible for working with the
+Eclipse Foundation to establish a release engineering and build process to
+ensure that builds can be reliably produced on a regular and frequent basis from
+the master code base and made available for download from the Project web site.
+Builds in this context are intended to include not only code but also reports,
+documentation, and courseware.</p>
+<p>Each Project is responsible for establishing test plans and the level of
+testing appropriate for the Project.</p>
+<p>All development technical discussions are conducted using the development
+mailing lists. If discussions are held offline, then a summary must be posted to
+the mailing list to keep the other committers, and any other interested parties,
+
+<h2>Licensing</h2>
+</b>All contributions to Projects under this Charter must adhere to the Eclipse
+Foundation Intellectual Property Policy.
+
+<?
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
diff --git a/dev_process/_projectCommon.php b/dev_process/_projectCommon.php
new file mode 100644
index 0000000..86c3fe8
--- /dev/null
+++ b/dev_process/_projectCommon.php
@@ -0,0 +1,5 @@
+<?php
+
+include("../_projectCommon.php");
+
+?>
diff --git a/dev_process/archived-phase.php b/dev_process/archived-phase.php
new file mode 100644
index 0000000..9327f4f
--- /dev/null
+++ b/dev_process/archived-phase.php
@@ -0,0 +1,50 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Archived Phase";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Archived Phase</h1>
+<p><i>version 016 - July 29, 2005</i></p>
+<p><a href="index.php">[This is one page of the larger document.]</a></p>
+<h2>Archived Phase</h2>
+
+<p> Projects that reach their natural conclusion, or that become inactive
+through dwindling resources, are archived. Projects
+ can reach their natural conclusion by, for example, becoming so popular that
+ they are absorbed into one of the underlying platform frameworks.</p>
+
+<p>Projects are archived as follows:</p>
+<ul>
+ <li>The project leaders write a short description of the project, its goals,
+ its accomplishments, and (if any) the remaining work.</li>
+ <li>The mailing lists, newsgroups, website, and complete CVS repository are
+ stored in an archive (a zip or tar.gz) on the eclipse.org servers.</li>
+ <li>The mailing lists are disabled but the archives are retained.</li>
+ <li>The newsgroups are removed but the archive are retained.</li>
+ <li>The CVS repository is removed.</li>
+ <li>All but the last download is removed from the website.</li>
+ <li>The project website is replaced with a single page describing the archived
+ status of the project and contain links to the archive zip and the final
+ download. The page explains that members are welcome to return the project
+ to active status - at which point the archive zip would be used to restore
+ the state.</li>
+ <li>The project is removed from the main links of its hosting PMC and placed
+ on a separate archived projects page.</li>
+</ul>
+<p>Archiving is not a value judgment of the project; rather, an archived project
+is one that has reached its natural conclusion. No project lasts forever and
+there is a natural ebb and flow to technology. Projects that are less actively
+maintained are more likely to end in the archived state, but projects that are
+highly successful also end up being archived after being absorbed into the
+mainstream of an existing top-level project.</p>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/dev_process/bugzilla-use.php b/dev_process/bugzilla-use.php
new file mode 100644
index 0000000..005c02d
--- /dev/null
+++ b/dev_process/bugzilla-use.php
@@ -0,0 +1,132 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Bugzilla Use";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Bugzilla Use</h1>
+<p><i>version 028 - November 29, 2005</i></p>
+<p><a href="index.php">[This is one page of the larger document.]</a></p>
+<h2>Bugzilla</h2>
+
+<p>A common question new projects ask is "how should we use Bugzilla
+effectively?". The <a href="http://www.bugzilla.org/docs/2.18/html/using.html">Bugzilla
+documentation</a> describes the basic mechanics and outlines the bug lifecycle
+that is designed into Bugzilla:</p>
+
+<p align="center"><img border="0" src="images/bzLifecycle.png" width="496" height="579"></p>
+
+<p>The Eclipse projects have different schemes for using Bugzilla, but a common one
+is as follows:</p>
+<ul>
+ <li>Users "own": component, version, platform, OS, severity,
+ summary, and description</li>
+ <li>The Committers "own": status, resolution, and priority.</li>
+ <li>Users may not change the Committer owned fields - this is enforced by
+ social convention.</li>
+ <li>Bugzilla provides a mechanism to watch another email address and
+ developers are expected to use this to watch the component owner's address
+ to monitor the incoming bugs for their projects/components.</li>
+ <li>At the start of each day, each project/component team lead does bug
+ triage. He or she assesses each NEW bug:
+ <ul>
+ <li>Validation
+ <ul>
+ <li> verify if the bug is really a bug or if it belongs to this component</li>
+ <li>if the bug needs more information to be validated as a bug, add a request for more information/steps to reproduce, etc.
+ The bug remains in the NEW state until enough information is received
+ to validate it.<sup>1</sup></li>
+ <li>if there is no response within a week, close the bug (RESOLVED
+ INVALID or WONTFIX) telling the submitter to re-open once they have
+ more info</li>
+ <li>the bug may get moved to another component/product</li>
+ <li>the bug may be a user problem, or may be intended behavior - these
+ get annotated with the reason/information and RESOLVED to INVALID or WONTFIX
+ or WORKSFORME (generally, INVALID means the report is just bogus,
+ WORKSFORME means the report is not a problem, and WONTFIX is used for things
+ that are valid requests, but that the team can't do).</li>
+ <li>once a bug is validated, it goes to prioritization</li>
+ </ul>
+ </li>
+ <li>Prioritization
+ <ul>
+ <li>If the bug is a feature request, change the severity to <i> enhancement</i></li>
+ <li>If the bug should be fixed in the current release, the status gets changed to ASSIGNED and a target milestone is set
+ appropriately.<sup>2</sup></li>
+ <li>If the fix is critical, the target will be the next milestone (like 3.1M3), otherwise it will go into the general 3.1 milestone, meaning we intend to address in this release</li>
+ <li>If the bug/feature will not be fixed in the current release, it is set to RESOLVED LATER</li>
+ <li>Set the priority with these guidelines:
+ <ul>
+ <li>P1 - stop ship fix, need immediate attention</li>
+ <li>P2 - must fix before the release, but can make progress without fix</li>
+ <li>P3 - should/would like to fix for the next release</li>
+ <li>P4 - would be nice, but not critical, can ship without fixing</li>
+ </ul>
+ </li>
+ <li>The severity tags aren't used much, except to distinguish enhancements from bugs.
+ Typically the users specify severities as they see fit.</li>
+ <li>The bug will stay as ASSIGNED to the "inbox" account until a developer takes the bug, or
+ the team lead assign it to them</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>The developers then work on the bug
+ <ul>
+ <li>When a developer fixes the bug, the status is set to RESOLVED - FIXED, and it is assigned to another committer on the team to
+ verify. It is important that the verifier be a different person than the
+ fixer because the fixer is too close to the code and thus may not be as
+ diligent at testing the corner cases.</li>
+ <li>When a developer commits code, she includes the bug#(s) in the commit
+ message.</li>
+ <li>It is possible for a bug to be RESOLVED to LATER or WONTFIX or INVALID as well if
+ the developer discovers that the fix is too complex/risky or that it is not really a bug</li>
+ </ul>
+ </li>
+ <li>Verify
+ <ul>
+ <li>All bugs should be verified before the next integration build</li>
+ <li>When a committer verifies a fix, the status is changed to VERIFIED</li>
+ </ul>
+ </li>
+ <li>When the project does a major release, the VERIFIED bugs are changed to
+ CLOSED.</li>
+</ul>
+<h3>Managing Requirements</h3>
+<p>Projects should be using Bugzilla as part of their requirements process. A
+future version of this document will describe recommended techniques for doing
+so.</p>
+<h3>Writing Good Bug Reports</h3>
+<p>There are many ways to write a good bug report and even more ways to write a
+bad one. The community suggests that these are some of the best bug reports
+submitted to date:</p>
+<ul>
+ <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=22122">22122</a> -
+ in this bug, not only is the problem accurately described, but a patch is provided to
+ <i>our</i> core test suites that tests various permutations of the failure condition.</li>
+ <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76541">76541</a> - feature request with screen
+ cast</li>
+ <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=95401">95401</a></li>
+ <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=97221">97211</a></li>
+ <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113206">113206</a>
+ - note the flash movie in comment #5 that illustrates the problem, complete with text overlays and pauses during the movie to illustrate the error condition.</li>
+ <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114496">114496</a></li>
+ <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116682">116682</a>
+ - describes the expected behavior and contains a patch</li>
+ <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117181">117181</a>
+ - contains build ID and simple self-contained steps to reproduce the problem in a very short time</li>
+</ul>
+<p>We should all strive to emulate these authors when writing bug reports.</p>
+<p><sup>1</sup> Some projects move bugs that need more information to the
+RESOLVED REMIND state rather than leaving them in the inbox.<br>
+<sup>2</sup> Some projects do not set the target milestone here; instead they
+use a milestone planning meeting to set them all at once.</p>
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/dev_process/bugzillacomponent.jpg b/dev_process/bugzillacomponent.jpg
new file mode 100644
index 0000000..a1d58f9
--- /dev/null
+++ b/dev_process/bugzillacomponent.jpg
Binary files differ
diff --git a/dev_process/changelog.php b/dev_process/changelog.php
new file mode 100644
index 0000000..b0dc844
--- /dev/null
+++ b/dev_process/changelog.php
@@ -0,0 +1,23 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Change Log";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Change Log</h1>
+<p><i>version 028 - November 29, 2005</i></p>
+<p><a href="index.php">[This is one page of the larger document.]</a></p>
+<h2>Changes</h2>
+
+<ul>
+ <li>028 (November 29, 2005): first official blessed release</li>
+</ul>
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/dev_process/eclipse-quality.php b/dev_process/eclipse-quality.php
new file mode 100644
index 0000000..1260236
--- /dev/null
+++ b/dev_process/eclipse-quality.php
@@ -0,0 +1,179 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Eclipse Quality";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Eclipse Quality</h1>
+<p><i>version 017 - August 6, 2005</i></p>
+<p><a href="index.php">[This is one page of the larger document.]</a></p>
+<h2>Eclipse Quality</h2>
+
+<p><i>Eclipse Quality</i> means extensible frameworks and exemplary tools
+developed in an open, inclusive, and predictable process involving the entire
+community. From the "consumption perspective," Eclipse Quality means
+good for users (exemplary tools - cool/compelling to use, indicative of what is
+possible) and ready for plug-in developers (deliver usable building blocks -
+with APIs). From the "creation perspective," Eclipse Quality means
+working with a transparent and open process, open and welcoming to participation
+from technical leaders, regardless of affiliation.</p>
+<p><i>Eclipse Quality </i>is not a binary statement. Rather, quality is a
+spectrum and Eclipse projects are expected to, release-by-release, improve their
+quality. Eclipse Quality is an evolution over the life of the project and the
+evaluation of a project's quality must be appropriate to the project's maturity
+level. For example, a project in the <a href="validation-phase.php">Validation Phase</a> will have more Provisional APIs and fewer Platform APIs than a project
+in the <a href="implementation-phase.php">Implementation Phase</a>. Similarly, a 1.0 Release
+will have fewer API clients than a 2.0 Release; and a 3.0 Release will have a
+better release-to-release migration plan than a 2.0 Release; etc.</p>
+<p>Note the Eclipse Quality is about both extensible frameworks and exemplary tools - great tools are important for attracting the users,
+who then attract the ecosystem, that then provide members, who then contribute
+resources, who then create additional valuable frameworks and tools. Neither
+frameworks without users nor tools without frameworks are interesting points
+along the software development spectrum.</p>
+<p>Eclipse Quality goals:</p>
+<ul>
+ <li>Platform quality frameworks. (note that "Platform quality" here
+ refers to high quality <a href="http://en.wikipedia.org/wiki/API">APIs</a>
+ (such as <a href="http://openide.netbeans.org/nonav/tutorial/api-design.html#api">a
+ module API in NetBeans</a> or a <a href="http://java.sun.com/j2se/javadoc/writingapispecs/index.html">Java
+ platform API</a> or the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_start_page.asp">Windows
+ API</a>) and <i>not</i> to the Eclipse Platform project).</li>
+ <li>Platform quality tools.<sup>1</sup></li>
+ <li>All exemplary tools are built on platform APIs.</li>
+ <li>Performance and scalability to enterprise class use.</li>
+ <li>Automated tests and a quality plan that can be used by any Eclipse
+ developer.<br>
+ We want any Eclipse user to be able to run all the tests and verify that
+ they have a working and correct installation of the frameworks and tools.</li>
+ <li>A release-to-release migration plan potentially including automated tools
+ for conversions. Release-to-release migration includes not only the APIs,
+ but also the artifacts generated by the tools (e.g., configuration files,
+ persisted tables, etc).</li>
+ <li>API stability.</li>
+ <li>Predictable behavior and a predictable rate of change.</li>
+ <li>Demonstrated community involvement.</li>
+ <li>IP due diligence as per the <a href="/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf">Eclipse
+ IP Policy</a> and <a href="/legal/committerguidelines.php">other</a>
+ <a href="/legal/">Eclipse</a> <a href="/org/documents/main.html">processes</a>.
+ (This is the only required Quality element, the rest are goals.)</li>
+</ul>
+<h3>APIs, Provisional or Not</h3>
+<p>In an earlier draft document, <i><a href="Eclipse%20Quality%20APIs%20v2.pdf">Eclipse
+Quality APIs</a></i>, a platform API was defined to have:</p>
+<ul>
+ <li><b>A specification.</b> A description of the cover story and the necessary
+ details. Specifications should be clear about what is defined and what is
+ not defined. Furthermore, specifications should indicate what areas are
+ likely to change in the future (e.g., this two-valued parameter will
+ probably have N-values in the future). A specification is a difficult
+ document to write, and it is more than just a paragraph or two about the
+ component.</li>
+ <li><b>A test suite.</b></li>
+ <li><b>An implementation.</b></li>
+ <li><b>One or more clients. </b>Usually, just having a client is not
+ sufficient an Eclipse quality API client is ideally developed by a
+ separate team. A client (API user) that is written by the same team that
+ also creates the API implementation usually suffers from information leakage
+ and thus is not a good test of the API. Even better is two or more clients,
+ each developed by a separate team, all of whom communicate only through the
+ API documents.</li>
+ <li><b>A support promise. </b>An implicit or explicit promise about how stable
+ the API will be from release to release.</li>
+</ul>
+<p>Note that the <a href="http://en.wikipedia.org/wiki/API">API</a> (Application
+Programming Interface) is the entire public programming surface of the
+framework, thus it includes not only Java classes, packages, and interfaces, but
+also extension points, file formats, generated meta-data, and even objects that
+are passed through to internal packages.</p>
+<p>The question arises of what to do about code that is intended to become API
+in a future release, but is not up to these standards in the current release. We
+can consider the following cases:</p>
+<div align="center">
+ <center>
+ <table border="1" cellspacing="0" cellpadding="2">
+ <tr>
+ <td> </td>
+ <td align="center"><b>Specification</b></td>
+ <td align="center"><b>Test Suite</b></td>
+ <td align="center"><b>Implementation</b></td>
+ <td align="center"><b>Clients</b></td>
+ <td align="center"><b>Support Promise</b></td>
+ <td align="center"><b>Package</b></td>
+ </tr>
+ <tr>
+ <td><b>Platform API</b></td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center">public</td>
+ </tr>
+ <tr>
+ <td><b>Provisional</b></td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center"><i>not quite</i></td>
+ <td align="center">public</td>
+ </tr>
+ <tr>
+ <td><b>Incomplete</b></td>
+ <td align="center"><i>incomplete</i></td>
+ <td align="center"><i>incomplete</i></td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center">public</td>
+ </tr>
+ <tr>
+ <td><b>Experimental</b></td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center">yes</td>
+ <td align="center">?</td>
+ <td align="center">internal.provisional</td>
+ </tr>
+ <tr>
+ <td><b>Non-API</b></td>
+ <td align="center">-</td>
+ <td align="center">-</td>
+ <td align="center">yes</td>
+ <td align="center">-</td>
+ <td align="center">none</td>
+ <td align="center">internal</td>
+ </tr>
+ </table>
+ </center>
+</div>
+<p>Provisional, Incomplete, and Experiment APIs are collectively referred to as <i>Transient
+APIs</i>. The interesting cases are <i>Provisional</i> and <i>Incomplete</i>. Under
+this definition, Provisional API is real API in all senses (good specification,
+good Javadoc, good tests, etc) but the project does not feel that it has had
+sufficient community feedback to completely freeze the APIs yet. The <a href="/tptp"> TPTP</a>
+project uses Provisional APIs for all new API introductions: the new API is
+released as provisional in release X and then hardened into platform APIs in
+release X+1.</p>
+<p>Incomplete APIs are those where the project wrote the code before defining
+the APIs and thus the documentation and/or test suite is incomplete, but the
+project intends to support the API. Incomplete APIs may appear in milestone
+releases (although the lack of documentation will make it difficult for the
+plug-in developer community to adopt and verify those APIs), but Incomplete APIs
+must not appear in releases.</p>
+
+<hr>
+<p><sup>1</sup> Admittedly, there is not a good definition for "platform
+quality tools" yet. A future version of this document will try to clarify
+this.</p>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/dev_process/images/bzLifecycle.png b/dev_process/images/bzLifecycle.png
new file mode 100644
index 0000000..f2bf2c5
--- /dev/null
+++ b/dev_process/images/bzLifecycle.png
Binary files differ
diff --git a/dev_process/images/confidential-draft.gif b/dev_process/images/confidential-draft.gif
new file mode 100644
index 0000000..8a57d76
--- /dev/null
+++ b/dev_process/images/confidential-draft.gif
Binary files differ
diff --git a/dev_process/images/draft.gif b/dev_process/images/draft.gif
new file mode 100644
index 0000000..34dfe2a
--- /dev/null
+++ b/dev_process/images/draft.gif
Binary files differ
diff --git a/dev_process/images/guidelines-final.css b/dev_process/images/guidelines-final.css
new file mode 100644
index 0000000..69179f8
--- /dev/null
+++ b/dev_process/images/guidelines-final.css
@@ -0,0 +1,15 @@
+
+body {
+font-family: arial, helvetica, geneva; font-size: 10pt;
+clip: rect( );
+margin-top: 5mm;
+margin-left: 3mm;
+}
+
+td {
+font-family: arial, helvetica, geneva; font-size: 10pt;
+}
+
+code {
+font-size: 11pt;
+}
diff --git a/dev_process/images/guidelines.css b/dev_process/images/guidelines.css
new file mode 100644
index 0000000..0e2c197
--- /dev/null
+++ b/dev_process/images/guidelines.css
@@ -0,0 +1,17 @@
+
+body {
+font-family: arial, helvetica, geneva; font-size: 10pt;
+clip: rect( );
+margin-top: 5mm;
+margin-left: 3mm;
+background-image: url('draft.gif');
+background-repeat: repeat-y
+}
+
+td {
+font-family: arial, helvetica, geneva; font-size: 10pt;
+}
+
+code {
+font-size: 11pt;
+}
diff --git a/dev_process/images/pdf.gif b/dev_process/images/pdf.gif
new file mode 100644
index 0000000..d664fa0
--- /dev/null
+++ b/dev_process/images/pdf.gif
Binary files differ
diff --git a/dev_process/images/print_icon.gif b/dev_process/images/print_icon.gif
new file mode 100644
index 0000000..923f46c
--- /dev/null
+++ b/dev_process/images/print_icon.gif
Binary files differ
diff --git a/dev_process/implementation-phase.php b/dev_process/implementation-phase.php
new file mode 100644
index 0000000..6ce8024
--- /dev/null
+++ b/dev_process/implementation-phase.php
@@ -0,0 +1,275 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Implementation Phase";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Implementation Phase</h1>
+<p><i>version 023 - August 19, 2005</i></p>
+<p><a href="index.php">[This is one page of the larger document.]</a></p>
+<h2>Implementation (Mature) Phase</h2>
+<p>The project has demonstrated process, community, and technology and is now a
+mature member of the Eclipse Community. </p>
+<p>During the Implementation Phase, the project and project leadership maintain the
+project's infrastructure and continue to participate in the Eclipse Community
+using these, and other, mechanisms. The more frequent are:</p>
+<ul>
+ <li><b>Status Reports.</b><br>
+ All projects are required to report their status quarterly, if not more
+ often. Currently that status report is currently done with two mechanisms,
+ although eventually these will be combined into a single XML file.
+ <ol>
+ <li>
+ Three files in the root of the project's web space:
+ <ol>
+ <li>The <a href="/projects/timeline/how-things-work.php"><b><code>.dates.txt</code></b>
+ file</a> that creates the <a href="/projects/timeline/">master
+ timeline</a>.</li>
+ <li>The <b><code>project-page-paragraph.html</code></b> file to be
+ displayed on the <a href="/projects/">master project page</a> (if
+ the project is a top-level project) or the <a href="/technology/">Technology
+ page</a> (if the project is a Technology sub-project).</li>
+ <li>The <b><code>home-page-one-liner.html</code></b> file to be
+ displayed on the Eclipse home page.</li>
+ </ol>
+ </li>
+ <li>
+ The quarterly status email. This email to the <a href="mailto:emo@eclipse.org">EMO</a>
+ contains:
+ <ul>
+ <li>
+ Project name</li>
+ <li>
+ Project leaders</li>
+ <li>
+ Product description</li>
+ <li>
+ Executive summary <i>(this is the most important
+ part)</i></li>
+ <li>
+ List of currently shipping releases</li>
+ <li>
+ URL of current planning document</li>
+ </ul>
+ </li>
+ <li>In the near future<sup>1</sup>, the quarterly status email will be
+ merged with .dates.txt file, and will be replaced by <a href="status-and-planning-reporting.php">an
+ XML file stored in each project's CVS repository</a>. Automated reminder
+ scripts will convince the project leaders to update the status file at
+ least once per quarter.</li>
+ </ol>
+ </li>
+ <li><b>Milestone Releases.</b> Interim milestone and release candidate
+ releases will be named n.nMn (e.g., 3.3M4) or n.nRCn (e.g., 4.1RC2). The n.n
+ release numbering is reserved for the final Reviewed release. Additionally,
+ all nightly, integration, milestone, release candidate, and final releases
+ will be available via a download link found on the project's home page.</li>
+ <li><b>Use the Correct Servers.</b> The eclipse.org infrastructure is solid
+ and capable, but it is also capable of being brought to its knees by poor
+ file placement. Projects will follow these guidelines:
+ <ul>
+ <li>Do not use viewcvs links in any web pages. Use normal links instead.
+ Your project's web pages are stored in CVS and can be committed via CVS,
+ but the links need to be normal links to reduce server load and enable
+ load sharing.</li>
+ <li>Do not place downloads or large files on the dev.eclipse.org
+ machine (the web pages or the CVS). Use the download.eclipse.org
+ machine for all downloads - these machines are load balanced, mirrored,
+ and have a separate bandwidth allotment.
+ <ul>
+ <li>Large files that change often should be placed on download
+ servers.</li>
+ <li>Files larger than 5Mbs should be placed on the download servers.</li>
+ <li>All zip and gzip files should be placed on the download servers.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><b>Release Reviews.</b><br>
+ Each major release (where <i>major</i> is defined as any release whose N or
+ M version number changes in the N.M.P version number) must go through a <a href="release-review.php">Release
+ Review</a>. Please schedule enough time to complete the Review and any
+ potential remedial actions so as not to impact the project's release
+ schedule.</li>
+ <li><b>Continue encouraging the three communities.</b><br>
+ As the project has completed its Validation Phase, this should already be
+ happening, but I include it here for completeness. Continue
+ to use the public mailing lists, respond in the newsgroups, write articles,
+ staff code camps, triage the bugzilla, attend the Eclipse community events (<a href="http://www.eclipsecon.org/">EclipseCon</a>,
+ <a href="/org/foundation/council.php">Council meetings</a>, ...) and so on.</li>
+ <li>
+ <p align="left" style="border-style: dotted; border-width: 2; padding-left: 5; padding-right: 5; padding-top: 2; padding-bottom: 2"><b>Following the Eclipse IP Policy.<br>
+ </b>The <a href="/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf"> Eclipse IP Policy</a> requires
+ <a href="/legal/committerguidelines.php"> certain due
+ diligence and record keeping</a>.
+ Small contributions in the form of bugzilla patches and the like can be
+ committed directly to the code base (after the appropriate contributor
+ information is recorded). Medium<sup>2</sup>, large, and all third-party (non-EPL
+ licensed) contributions require the <a href="/legal/ContributionQuestionnairePart1-v1.0.htm"> Code Contribution
+ Questionnaire</a> and
+ additional record keeping. Maintaining a current and accurate <a href="project-log.php"> Project Log</a> is
+ the best way to keep this information up-to-date.<br>
+ The due diligence process for new contributions takes, on average, four to
+ six calendar weeks to complete. Thus we recommend limiting large and
+ third-party contributions to the beginning of a release cycle rather than
+ waiting to the end.</li>
+ <li><b>Changing eclipse.org content.</b><br>
+ The eclipse.org site has various news and announcement pages, as well as
+ pages that describe the projects and top-level PMCs. To request an
+ announcement or news or changes to these pages, send email to the <a href="mailto:emo@eclipse.org">EMO</a>.</li>
+ <li><b>Add a new Committer.</b><br>
+ After the Committer has been voted in using the top-level PMC's voting
+ process, follow the <a href="/legal/newcommitter.html">New
+ Committer Process</a>.</li>
+ <li><b>Active Progress.</b><br>
+ Project are expected to continue to be active: in development, in releases,
+ in newsgroup and mailing list responses, and in the community more
+ generally. Projects that become inactive will be reviewed and probably <a href="archived-phase.php">archived</a>.
+ </li>
+ <li><b>Use project name correctly.<br>
+ </b>Every public use of the project name - in a web page, a presentation, a
+ press release, an article, etc. - must follow the <a href="project-naming-policy.php">project
+ naming guidelines</a>:
+ <ul>
+ <li>The first use of the project name uses the entire descriptive name
+ and may include the optional nickname. For
+ example, "The Eclipse Component Assembly
+ Project (Buckminister)". Subsequent references to the project may use the
+ nickname, e.g., "Buckminister".</li>
+ <li>If the project is in <a href="proposal-phase.php">the Proposal Phase</a>
+ or the <a href="validation-phase.php">Validation Phase</a>, that fact
+ must be mentioned early in the document. For example, "The proposed
+ Eclipse Phoenix project ..." or "The Buckminister project,
+ being incubated at Eclipse, is releasing version 0.2 of their framework
+ for early alpha feedback from the community."</li>
+ </ul>
+ </li>
+ <li><b>Use brand graphics and watermarks correctly.<br>
+ </b>Projects in proposal and validation/incubation stages must use the
+ appropriate Eclipse-branded graphics in place of the usual Eclipse graphic (i.e.,
+ the Eclipse Proposal graphic and the Eclipse Incubation graphic respectively) on
+ their webpage and communications. Projects in the proposal and
+ validation/incubation stages must use the appropriate watermark on their web
+ pages.</li>
+</ul>
+<p>The less frequent are:</p>
+<ul>
+ <li><b>Remove a Committer.</b><br>
+ After the Committer has been removed using the top-level PMC's process, send
+ email to the <a href="mailto:emo@eclipse.org">EMO</a> with: the name of the
+ project and hosting top-level project, the full name and email address of
+ the Committer, and the list of CVS packages to which commit accesses will be
+ removed.</li>
+ <li><b>Change a Committer's access.</b><br>
+ The logical combination of Add and Remove accomplished via email by the
+ top-level PMC to the <a href="mailto:webmaster@eclipse.org">Eclipse
+ sysadmins</a>. Soon there will be a work request tracking system instead of
+ emails, but for now emails will suffice.</li>
+ <li><b>Change access rights on download server.</b><br>
+ Send email to the <a href="mailto:webmaster@eclipse.org">Eclipse sysadmins</a>
+ with the names of the Committers to be added/removed to/from the download
+ server.</li>
+ <li><b>Change root CVS components.</b><br>
+ Send email to the <a href="mailto:webmaster@eclipse.org">Eclipse sysadmins</a>
+ with the list of component changes and the list of Committers for the
+ components.</li>
+ <li><b>Marking stale CVS components.</b><br>
+ As the projects evolve, some CVS modules become stale and cause confusion to
+ new comers when they are browsing the repositories. These modules cannot be
+ deleted from the repository, because they contain history and they have been
+ part of a build at one point.<br>
+ In order to limit confusion and not lose history, the HEAD of stale modules
+ should be replaced by a README file describing the status of the project.
+ This file should also contain when the development has been stopped, against
+ which version of eclipse it was working, and the CVS tag with the last
+ working copy of the code.</li>
+ <li><b>Changing Bugzilla components, milestones, targets, owners, etc.<br>
+ </b>Send email to the Eclipse sysadmins with detailed instructions. When
+ adding components, be sure to include: component name, component
+ description, initial owner. For more details, see <a href="https://dev.eclipse.org/committers/help/howdoi.php">the
+ Committer Self Service page</a>.</li>
+ <li><b>Add new newsgroup.</b><br>
+ Most projects have a single newsgroup, but in the exceptional case where an
+ additional newsgroup is required, send email to the <a href="mailto:webmaster@eclipse.org">Eclipse
+ sysadmins</a> with the newsgroup name in format eclipse.[top-level
+ project].[shortname] and the newsgroup description.</li>
+ <li><b>Add new mailing list.</b><br>
+ <a href="https://dev.eclipse.org/mailman/listinfo/">Mailing lists</a> are
+ resources used by committers to facilitate group communication. Normally, a
+ single mailing list is created for a project; however, projects with several
+ components can have several mailing lists. The main project mailing list is
+ normally called projectname-dev, and component lists are called projectname-component.
+ To add an additional mailing list, see <a href="https://dev.eclipse.org/committers/help/howdoi.php">the
+ Committer Self-Service page</a> and then send email to the <a href="Eclipse%20sysadmins">Eclipse
+ sysadmins</a> with the mailing list name, the long description (<a href="http://dev.eclipse.org/mailman/%20listinfo/platform-dev">see
+ example</a>) and the short description (<a href="/mail/">see
+ example</a>).</li>
+ <li><b>Changing a mailing list.</b><br>
+ A project can ask the <a href="Eclipse%20sysadmins">Eclipse
+ sysadmins</a> for mailing list changes (filters, digests, the sort of thing
+ that mailman can do), or the project can ask the <a href="Eclipse%20sysadmins">Eclipse
+ sysadmins</a> to provide the project lead with self-service access to the
+ list.</li>
+ <li><b>Removing a newsgroup or mailing list.<br>
+ </b>Send email to the <a href="mailto:webmaster@eclipse.org">Eclipse
+ sysadmins</a>.</li>
+ <li><b>Other.</b><br>
+ The <a href="https://dev.eclipse.org/committers/">Committer self-service
+ page</a> provides infrastructure reports, password changes, etc.</li>
+</ul>
+<h3>Schedule</h3>
+<p>There are many things that make Eclipse great. One is that there has been a
+strong emphasis on <a href="eclipse-quality.php">quality</a>; another is the
+equally strong emphasis on predictability. Even more important than having a
+schedule is having an honest schedule, so while projects should do their best
+not to change the schedule, they should work even harder to ensure that the
+schedule in an honest one. This is especially critical for Eclipse projects
+because the projects release extensible frameworks that other Eclipse members -
+individuals and ecosystem companies - build products and tools on top of. Those
+members make plans based on the Eclipse plans and thus changing the Eclipse
+plans can materially affect a large number of downstream players.</p>
+<p>The best scheduling algorithm for this kind of "bottom of the dependency
+pile" development is to under-promise and over-deliver. Promise less and
+promise it later than the team thinks it can be delivered, then deliver more and
+deliver earlier. This is especially important in open-source because the project
+wants to allow enough time for the community to provide lots of good feedback -
+feedback that will result in a really great framework and outstanding exemplary
+tools.</p>
+<h3>Release Review</h3>
+<p>Major releases continue to go through <a href="release-review.php">Release
+Reviews</a>. A major release is defined as a change in N or M of the N.M.P
+release numbering.</p>
+<ul>
+ <li>A side note about release numbering: the Eclipse standard for release
+ numbers is that the major number (N) changes upon breaking changes to the APIs,
+ the minor number (M) changes when
+ the APIs are the same but there is substantial new function, and the
+ incremental number (P) changes
+ for fix packs. Fix packs are API compatible, i.e., no change to the APIs.<br>
+ The major number (N) may also change for significant new features without
+ having breaking API changes. For example, if framework Foo versions 4.0,
+ 4.1, 4.2, and 4.3 has been available for a couple years, the latest release
+ might have enough new significant features to justify version 5.0 even
+ though the API compatibility would indicate version 4.4.</li>
+ <li>A clarification of the interpretation of the Eclipse Development Process.
+ The Process has a loop-back from the Release Review to the
+ Validation/Incubation Phase (see figure 2 in the document). We have revised
+ that loop-back to return to the Implementation/Mature Phase, i.e., baring
+ any regression in openness, transparency, and process conformance, once a
+ project has reached the Implementation/Mature Phase, it remains there.</li>
+</ul>
+
+<hr>
+<p><sup>1</sup> This will be implemented by the end of 4Q2005.<br>
+<sup>2</sup> The threshold for "major" is somewhere less than 100
+LOC.</p>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/dev_process/index.php b/dev_process/index.php
new file mode 100644
index 0000000..9cfb423
--- /dev/null
+++ b/dev_process/index.php
@@ -0,0 +1,260 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Eclipse Development Process";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Eclipse Development Process</h1>
+<p><i>version 028 - November 29, 2005 (see the <a href="changelog.php">change log</a>
+for version information)</i></p>
+<h2>Goals</h2>
+<p align="left">These guidelines extend and augment the <a href="/org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf"> Eclipse Development
+Process</a>. The
+primary goal of these guidelines is to provide guidance and clarity to individuals and companies who
+are proposing, leading, or participating in an Eclipse open source project. Like
+all new endeavors, the Process takes time to learn and practice to implement
+effectively. The purpose of these guidelines is to help you navigate the
+complexities, avoid the pitfalls, and become successful quickly. These
+guidelines do not substitute for a thorough reading of the <a href="/org/documents/"> Eclipse
+process</a> and <a href="/legal/">legal documents</a> including the <a href="/org/documents/Eclipse%20BYLAWS%202003_11_10%20Final.pdf"> Eclipse
+Bylaws</a>, <a href="/org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf"> Development
+Process</a>, and <a href="/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf"> IP
+Policy</a>.</p>
+<h2>Guiding Principles</h2>
+<p>There are a number of guiding principles around Eclipse:</p>
+<ul>
+ <li><b>Quality</b> - In this context, quality means extensible frameworks and
+ exemplary tools developed in an open, inclusive, and predictable process
+ involving the entire community.
+ <ul>
+ <li>From the "consumption perspective," Eclipse Quality means
+ good for users (exemplary tools - cool/compelling to use, indicative of
+ what is possible) and ready for plug-in developers (deliver usable
+ building blocks - with APIs). </li>
+ <li> From the "creation perspective,"
+ Eclipse Quality means working with an open, transparent and permeable process, open
+ (and welcoming) to participation from technical leaders, regardless of
+ affiliation.</li>
+ <li>From the "community perspective," Eclipse Quality is that
+ the community perceives quality, i.e., if the frameworks and tools are
+ good enough to be used, then they have sufficient quality.</li>
+ <li><b>Open </b>- Eclipse is open to all; Eclipse provides the same
+ opportunity to all. Everyone participates with the same rules; there are
+ no rules to exclude any potential contributors which includes, of
+ course, direct competitors in the marketplace.</li>
+ <li><b>Transparent </b>- The project is visible from the outside. The
+ code, plans, minutes, etc. are all available to be read.</li>
+ <li><b>Permeable</b> - Projects are open to new ideas; not just in words,
+ but in fact. In other words, those outside the core can, and do, affect
+ the project.</li>
+ </ul>
+ </li>
+ <li><b>Collective Reputation</b> - Having the Eclipse name on a project
+ provides a certain "goodness" to the project. And having great and
+ amazing projects under the Eclipse banner provides a certain
+ "goodness" to Eclipse. Correspondingly, having a highly-visible
+ poor and/or failing project under the Eclipse banner detracts from that
+ reputation.
+ <ul>
+ <li>A certain number of failures are expected in any research and
+ development effort, thus we do not let the fear of failure prevent us
+ from accepting interesting project. However, it is in the community's
+ best interest to have a well-defined processes for identifying and
+ dealing with failures when they occur.</li>
+ </ul>
+ </li>
+ <li><b>Meritocracy</b> - Eclipse is a meritocracy. The more you contribute the more responsibility you will earn.
+ Leadership roles in Eclipse are also merit-based and earned by peer acclaim.
+ (See end of page for more explanation.)</li>
+ <li><b>Evolving</b> - the frameworks, tools, projects, processes, community,
+ and even the definition of Quality continues to, and will continue to,
+ evolve. Creating rules or processes that force a static snapshot of any of
+ these is detrimental to the health, growth, and ecosystem impact of Eclipse.</li>
+ <li><b>Just Enough Process</b><i> </i>- The Eclipse Development Process should
+ be "just enough" to ensure that the community's goals (quality,
+ openness, etc), but no more - we want to make it easy and inviting for
+ high-quality teams to build interesting tools at Eclipse. The entry bar
+ should be "just high enough" to keep Eclipse great, but no more -
+ we want to make it easy to experiment and explore new ideas while
+ simultaneously supporting the ecosystem with strong releases. The entry bar
+ should be "just high enough" to prevent Eclipse from growing too
+ fast (because too rapid growth places too much of a strain on the mentoring
+ capacity of the existing community) and "definitely low enough" to
+ prevent it from stagnating.
+ <ul>
+ <li>The processes and goals should make projects:
+ <ol>
+ <li>Easy to propose</li>
+ <li>Fairly easy to create</li>
+ <li>Kinda hard to validate (e.g., exit incubation)</li>
+ <li>Pretty tough to ship</li>
+ </ol>
+ </li>
+ <li>The processes are designed to enhance the middle ground of continued
+ quality growth in Eclipse projects by eliminating the two undesirable
+ endpoints:
+ <ul>
+ <li>no entry bar results in a wild mish-mash of projects, and</li>
+ <li>an entry bar so high that nothing new ever gets started</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><b>Culture of Quality</b> - The Eclipse projects are managed by different
+ people and different companies, most already experienced in software
+ engineering. We want to ensure that we share the best practices of all our
+ experts so that all projects benefit. We need to ensure that we have an
+ "Eclipse committer community" rather than dozens of smaller
+ "project committer communities".</li>
+ <li><b>Eclipse Ecosystem</b> - The Eclipse open source projects are distinct
+ from the Eclipse membership in spite of the majority of the resources on the
+ projects being donated by the members. The projects are managed
+ for the benefit of both the open source community and the ecosystem members;
+ these groups will, at times, have different goals. Eclipse benefits when
+ their interests align; Eclipse benefits when their interests provide
+ cognitive dissonance that provokes creativity; and Eclipse suffers when one side of this duality
+ takes precedence over the other side.</li>
+</ul>
+<h2>The Project Lifecycle</h2>
+<p>The <a href="/org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf">Eclipse
+Development Process</a> has projects go though a number of phases:</p>
+<ul>
+ <li>
+ <b><a href="pre-proposal-phase.php">Pre-proposal</a></b> - An individual or company declares their interest in,
+ and rationale for, establishing a project.
+ <ul>
+ <li>The pre-proposal phase ends when the proposal is posted on the
+ eclipse.org website.</li>
+ </ul>
+ </li>
+ <li>
+ <b><a href="proposal-phase.php">Proposal</a></b> - The
+ proposers, in conjunction with the destination PMC and the community-at-large,
+ collaborate in public to enhance, refine, and clarify the proposal. The proposal phase ends with a
+ <a href="proposal-phase.html#Creation Review"> Creation Review</a>.
+ </li>
+ <li><b><a href="validation-phase.php">Validation</a></b> - After the project has
+ been created, the purpose of the validation phase is to establish a
+ fully-functioning open-source project. In this context, validation (also
+ known as incubation) is about
+ developing the process, the community, and the technology.
+ <ul>
+ <li>While it might seem easy, history
+ has shown that it takes experience to run an open, transparent, inviting,
+ permeable, and predictable software development process. And history has shown that it
+ takes a significant investment of time and energy to nurture a community of
+ tool users and framework users and committers around a new project.</li>
+ <li>Similarly, the validation phase is about developing the technology to <a href="eclipse-quality.php">Eclipse
+ Quality</a>. The project will most likely produce a number of 0.N releases
+ during this phase in order to garner feedback from the community on their
+ APIs and tools.</li>
+ <li>Validation/incubation is a phase rather than a place - new projects
+ may be incubated under any existing top-level project. This is different
+ from the way <a href="http://incubator.apache.org/">Apache</a> uses a place to
+ encapsulate the phase. Incubating under an existing top-level project is
+ a significant investment in time and energy by the top-level PMC, so
+ most projects incubate under the Technology top-level project due to
+ Technology's experience in this area.</li>
+ <li>Validation ends with an <a href="validation-phase.html#Checkpoint Review">Checkpoint
+ Review</a>.</li>
+ </ul>
+ </li>
+ <li><b><a href="implementation-phase.php">Implementation</a></b> - The
+ project team has demonstrated that they are an open-source project with an
+ open and transparent process; an actively involved and growing community;
+ and <a href="eclipse-quality.php">Eclipse
+ Quality</a> technology. The project is now a mature member of the Eclipse Community. Major
+ releases continue to go through <a href="release-review.php">Release
+ Reviews</a>.
+ </li>
+ <li><b><a href="archived-phase.php">Archived</a> </b>- Projects that become inactive, either
+ through dwindling resources or by reaching their natural conclusion, are archived. Projects
+ can reach their natural conclusion by, for example, becoming so popular that
+ they are absorbed into one of the underlying platform frameworks.</li>
+</ul>
+<h3>Top-Level Projects</h3>
+<p>Top-level Projects are more significant than normal Eclipse Projects because
+they encompass an area or category of the tooling space. The responsibilities of
+a top-level project are greater and thus the criteria for approval are higher.
+The organization of a top-level project is a little different than a normal
+project because it has a PMC that manages a set of projects rather than a
+project lead that manages a single team. More than that, however, a top level
+PMC must:</p>
+<ul>
+ <li>Provide technical leadership to Eclipse in their specific area. Leadership
+ includes helping to create and define the Eclipse direction via
+ participating in <a href="/org/foundation/council.php">the Councils</a> and creating the Eclipse
+ Roadmap. Leadership includes outreach activities and supportive marketing
+ activities. The consequence of the leadership required is that a top-level
+ PMC is more than just a project management committee - it's almost a small
+ startup in itself.</li>
+ <li>Gather and create an active and diverse community of contributors. These
+ communities do not just happen, thus a top-level PMC must actively recruit
+ additional companies and individuals. </li>
+</ul>
+<p>Top-level projects go through the same phases as sub-projects: Pre-proposal,
+Proposal, Validation, Mature (and perhaps even Archived), but they do so to the higher
+standards of demonstrating <i>leadership</i> as well as <i>competence</i>.</p>
+<p>Because Top-Level Projects are the technical leadership of Eclipse, it is
+important that the PMC members "get" what Eclipse is about. It isn't
+possible or useful to write down a strict set of rules that define what is
+Eclipse, although we can write a few generalities:</p>
+<ul>
+ <li>Eclipse is a diversity of cultures</li>
+ <li>Eclipse has well-defined processes that its members follow</li>
+ <li>Eclipse has well-defined goals and objectives at which its members strive
+ to excel</li>
+ <li>Eclipse accepts and encourages differences in execution amongst its
+ members</li>
+</ul>
+<p>There are a number of techniques for knowledge transfer:</p>
+<ol>
+ <li><b>Reading</b> - the Eclipse culture is transferred to a new PMC through
+ the new PMC members reading the "what is our culture"
+ documentation. This documentation does not currently exist so this is not a
+ practical choice.</li>
+ <li><b>Immersion</b> - members of new PMCs are assigned to existing (mature)
+ PMCs where they participate as full-fledged PMC members. They learn by
+ doing, helping the existing PMC and thus learning the culture that they can
+ take back to their PMC.</li>
+ <li><b>Mentoring </b>- members of existing (mature) PMCs volunteer to be
+ assigned to the
+ new PMCs as mentors. The mentors attend the weekly PMC meetings, providing
+ advice and counsel.</li>
+ <li><b>Recruitment</b> - Mentoring/guidance, but using EMO personnel instead of
+ existing PMCs.</li>
+</ol>
+
+<p>We should note that, historically, Top-Level Projects work better when led by
+a Strategic Developer - it seems to take a commitment of Strategic size to start
+and run a Top-Level Project.</p>
+<h2>Meritocracy</h2>
+<p>There are currently three mechanisms for earning the respect and acclaim
+necessary to become an Eclipse Committer.</p>
+<ul>
+ <li>Starting a new Eclipse project is an effort and a contribution and
+ (obviously) allows you to be a committer on that project. As the project
+ grows in reliability, predictability, and results, your reputation in the
+ community increases.</li>
+ <li>Your employer commits you to an Eclipse project on a full-time basis -
+ working full-time on the project allows you to quickly gain the respect of
+ your peers and become a committer.</li>
+ <li>You contribute on a part-time basis, working on a particular aspect of a
+ project. While we would like to make this easier, it is currently the
+ hardest way to become a Committer, at least on the top-level projects. The
+ main barrier to entry is that because the top-level projects have large
+ full-time populations of Committers, the projects move very rapidly and that
+ makes it hard for a part-time developer to keep up. Part-time contributions
+ are successful in corners of the space such as writing tutorials and
+ articles, updating the website, coding non-critical-path components, etc.</li>
+</ul>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
diff --git a/dev_process/old_provisioning/bugzillacomponent.jpg b/dev_process/old_provisioning/bugzillacomponent.jpg
new file mode 100644
index 0000000..a1d58f9
--- /dev/null
+++ b/dev_process/old_provisioning/bugzillacomponent.jpg
Binary files differ
diff --git a/dev_process/old_provisioning/changes.html b/dev_process/old_provisioning/changes.html
new file mode 100644
index 0000000..a7f01c9
--- /dev/null
+++ b/dev_process/old_provisioning/changes.html
@@ -0,0 +1,272 @@
+<html><head>
+<link rel="stylesheet" href="../default_style.css"><title>Changes to Project Provisioning</title>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
+<body alink="#ff0000" bgcolor="#ffffff" link="#0000ee" text="#000000" vlink="#551a8b">
+<table border="0" cellpadding="2" cellspacing="5" height="129" width="100%">
+ <tbody><tr>
+ <td align="left" width="60%"><font class="indextop">changes to project provisioning</font><br>
+ <font class="indexsub">infrastructure for projects </font></td>
+ <td width="40%"> </td>
+ </tr>
+</tbody></table>
+<table width="100%" cellspacing="3" cellpadding="2">
+ <tr>
+ <td align="center" valign="top" colspan="2">
+ <p style="border-style: dashed"><b><font face="Arial,Helvetica" size="+1">These
+ pages are out-of-date. <br>
+ Revised and corrected versions of these pages are being developed. <br>
+ Please verify with all information on these pages with the <a href="mailto:emo@eclipse.org">EMO</a>.</font></b></p>
+ </td>
+ </tr>
+</table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody><tr>
+ <td>
+ <p><br>
+ This document describes the infrastructure for projects and that are in
+ the validation or implementation phase of their project at eclipse.org. It
+ describes the process for ongoing provisioning activities such as changes
+ to committer lists and updates to Bugzilla components.<br>
+ <br>
+ In general all inquiries related to project provisioning can be sent to
+ the <a href="mailto:emo@eclipse.org">Eclipse Management Organization</a>
+ (EMO). <br>
+ </p>
+ </td> </tr>
+</tbody></table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody><tr bgcolor="#999999">
+
+ <td align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">
+ Eclipse project implementation phase infrastructure</font></b></td>
+ </tr>
+ </tbody>
+</table>
+<table align="top" border="0" cellpadding="3" cellspacing="0" width="100%">
+<tr>
+ <td> <img src="implementation.jpg"></td>
+
+ <td colspan="4" width="100%">
+ <p>If you need changes to your infrastructure, you'll need to send the requests
+ to the webmaster or the EMO. <br>
+ <br>
+ The <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a> should
+ be contacted for:</p>
+ <ul>
+ <li> password reset</li>
+ <li> creating new components</li>
+ <li> changes to Bugzilla components</li>
+ <li> changes to committer component access</li>
+ <li>adding or archiving (read-only) mailing lists</li>
+ <li>adding or archiving (read-only) newsgroups</li>
+ </ul>
+ <p>The <a href="mailto:emo@eclipse.org">emo@eclipse.org</a> should be contacted
+ for: </p>
+ <ul>
+ <li> content related changes such as changes to web elements on www.eclipse.org
+ </li>
+ <li>adding new committers</li>
+ <li>removing committers</li>
+ </ul>
+ <p>When sending requests, please clearly identify the Top-Level Project
+ and Project you are working on so that requests that require PMC approval
+ or clarification can be properly routed to the correct PMC by the infrastructure
+ team. Please consult the checklist below for items required for implementing
+ provisioning changes. </p>
+ </td>
+ </tr>
+</table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody><tr bgcolor="#999999">
+
+ <td align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">
+ Implementation phase provisioning checklist</font></b></td>
+ </tr>
+ </tbody>
+</table>
+<table align="top" border="1" cellpadding="3" cellspacing="0" width="100%">
+ <tr>
+ <td width="19%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="32%"><b> Description</b></td>
+ <td width="34%"><b>Project team deliverable</b></td>
+ <td width="15%"><b>Review by</b></td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding new committers</td>
+ <td width="32%">
+ <p>Once a new committer is voted in (see<b> </b>the individual Top-Level
+ Project Charters for details about voting for new committers) the process
+ is the same as for the initial set of committers. <br>
+ </p>
+ </td>
+
+ <td width="34%">
+ <p>Email <a href="mailto:emo@eclipse.og">emo@eclipse.og</a>, along with the relevant Top-Level PMC approval,
+ the name(s) of the new committers with the following information:<br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which the committer will have update privileges</p>
+ </td>
+
+ <td width="15%">
+ <p>- voted in by relevant project committers<br>
+ - approved by PMC<br>
+ - agreements and information validated by EMO </p>
+ </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Committer Guidelines, Agreement, Questionnaire and Employer
+ Consent </td>
+
+ <td width="32%">
+ <p>The EMO is responsible for ensuring that documentation is in place for
+ new committers. <br>
+ <br>
+ Once the documentation is in place, the EMO will contact the webmaster
+ to provide the appropriate accesses to the new committers. </p>
+ </td>
+ <td width="34%">
+ <p>- the project team may appoint a single contact to assist the new
+ committers in completing the required documentation</p>
+ <p> </p>
+ </td>
+ <td width="15%"> </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Removing committers</td>
+
+ <td width="32%">Removing a committer requires the approval of the PMC.<br>
+ </td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:emo@eclipse.org">emo@eclipse.org</a><br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which commit accesses will be removed</td>
+ <td width="15%">approved by PMC and review by EMO</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changing access privileges on a specific component</td>
+
+ <td width="32%">A committer needs commit-access to a component, or no longer
+ needs commit-access to a component.</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which commit accesses will change</td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new component to CVS </td>
+
+ <td width="32%">CVS components, or modules, are created as subdirectories
+ in the project's CVS repository location, in the HEAD branch. Component
+ names follow the<i> org.eclipse.component.name</i> naming convention.<br>
+ <p> </p>
+ </td>
+ <td width="34%">Email to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - a list of the new components along with a list of committers who will
+ have access to which component<br>
+ - suggested formats:<br>
+ [module x] "same committers as [module y]<br>
+ or <br>
+ <i>module:userid1,iserid2,userid3,userid4...</i><br>
+ <i>module:e@mail,e@mail,e@mail<br>
+ module:Name Surname,Name Surname, Name Surname</i> </td>
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changing access rights to download.eclipse.org</td>
+
+ <td width="32%">Any access rights changes to the downloads area.</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.or">webmaster@eclipse.or</a>g<br>
+ - names of committers to be granted update rights to the download site</td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changes to content on www.eclipse.org</td>
+
+ <td width="32%">Newsgroup and mailing list main pages, Tools or Technology
+ top-level project pages, and other non-project specific pages</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - email requested changes to <a href="mailto:emo@eclipse.org">emo@eclipse.rog</a></td>
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new newsgroup</td>
+
+ <td width="32%">One newsgroup is created per project. Newsgroup names follow
+ the convention: eclipse.toplevelname.projectshortname </td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - newsgroup name in format news://news.eclipse.org/<br>
+ eclipse.[top-level project].[shortname}<br>
+ - newsgroup description/invitation to participate </td>
+
+ <td width="15%">review by PMC </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new mailing list</td>
+
+ <td width="32%">Mailing lists are resources used by committers to facilitate
+ group communication. Mail posted to a mailing list is archived and searchable
+ from the website. Normally, a single mailing list is created for a project;
+ however, projects with several components can have several mailing lists.
+ The main project mailing list is normally called projectname-dev, and component
+ lists are called projectname-component. A list of mailing lists can be found
+ here: <a href="https://dev.eclipse.org/mailman/listinfo/">https://dev.eclipse.org/mailman/listinfo/</a></td>
+
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - long description based on the example shown here <a href="http://dev.eclipse.org/mailman/listinfo/platform-dev" target="_blank">http://dev.eclipse.org/mailman/<br>
+ listinfo/platform-dev</a><br>
+ - short description based on the examples here <a href="http://www.eclipse.org/mail/index.html" target="_blank">http://www.eclipse.org/mail/index.html</a></td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Archiving a newsgroup or mailing list </td>
+ <td width="32%">Newsgroup content, as well as e-mails sent to a mailing list
+ are archived and searchable from the eclipse.org website. The newsgroup
+ or mailing list becomes read-only. </td>
+ <td width="34%">- request to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a></td>
+
+ <td width="15%">review by PMC</td>
+</table>
+<table align="top" border="0" cellpadding="3" cellspacing="0" width="100%">
+ <tr>
+ <td >
+ <p><b>Send us updates to your committers list!</b><br>
+ The committer lists are used to determine the developer's voting rights
+ on eclipse.org, so please help us to keep them up to date! Information
+ includes the committer's address and contact information. Send any
+ changes or updates to the committers list, including adding new committers,
+ to the <a href="mailto:emo@eclipse.org">EMO</a>. <br>
+ <br>
+ </p>
+ </td>
+ </tr>
+</table>
+<p></p>
+<p></p>
+</body></html>
\ No newline at end of file
diff --git a/dev_process/old_provisioning/devproc.jpg b/dev_process/old_provisioning/devproc.jpg
new file mode 100644
index 0000000..2a6f3d9
--- /dev/null
+++ b/dev_process/old_provisioning/devproc.jpg
Binary files differ
diff --git a/dev_process/old_provisioning/implementation.jpg b/dev_process/old_provisioning/implementation.jpg
new file mode 100644
index 0000000..6593fd0
--- /dev/null
+++ b/dev_process/old_provisioning/implementation.jpg
Binary files differ
diff --git a/dev_process/old_provisioning/index.html b/dev_process/old_provisioning/index.html
new file mode 100644
index 0000000..83be888
--- /dev/null
+++ b/dev_process/old_provisioning/index.html
@@ -0,0 +1,26 @@
+
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Eclipse Foundation</title>
+</head>
+<frameset rows="48,*" frameborder=0 framespacing=0 border="0">
+ <frame name="banner" scrolling="no" noresize target="home"
+ src="../banner.html" marginwidth="0" marginheight="0" frameborder="NO">
+ <frameset cols="126,*" frameborder=0 framespacing=0 border="0">
+ <frameset rows="220, *" frameborder=0 framespacing=0 border="0">
+ <frame name="home_nav" scrolling="no" noresize target="main"
+ src="../home_nav.html" marginwidth="0" marginheight="0" frameborder="NO">
+ <frame name="nav" scrolling="no" noresize target="main"
+ src="/projects/nav.html" marginwidth="0" marginheight="0" frameborder="NO">
+ </frameset>
+ <frame name="main" marginwidth=10 marginheight=10 noresize frameborder="NO" src="main.html">
+ </frameset>
+ <noframes>
+ <body>
+ <p>This page uses frames, but your browser doesn't support them.</p>
+ </body>
+ </noframes>
+</frameset>
+</html>
diff --git a/dev_process/old_provisioning/main.html b/dev_process/old_provisioning/main.html
new file mode 100644
index 0000000..8ac42ff
--- /dev/null
+++ b/dev_process/old_provisioning/main.html
@@ -0,0 +1,163 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+<title>Project Provisioning</title>
+<link rel="stylesheet" href="../default_style.css">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table border=0 cellspacing=3 cellpadding=2 width="100%" >
+ <tr>
+ <td ALIGN=LEFT colspan="3"><font class=indextop>eclipse project
+ <br>
+ provisioning
+ </font> </td>
+ <td align=left rowspan="2" width="30%" > </td>
+ </tr>
+ <tr>
+ <td align=left width="21%"><a href="#Overview" class=jump> overview
+ of project lifecycle</a></td>
+ <td align=left width="23%"><a href="#Starting" class=jump>starting
+ a project</a></td>
+ <td align=left width="26%"><a href="#validation" class=jump>validation
+ and implementation phase</a></td>
+ </tr>
+ </table>
+<table width="100%" cellspacing=3 cellpadding=2>
+ <tr>
+ <td align="center" valign="top" colspan="2">
+ <p style="border-style: dashed"><b><font face="Arial,Helvetica" size="+1">These
+ pages are out-of-date. <br>
+ Revised and corrected versions of these pages are being developed. <br>
+ Please verify with all information on these pages with the <a href="mailto:emo@eclipse.org">EMO</a>.</font></b></p>
+ </td>
+ </tr>
+ <tr>
+ <td align="left" valign="top" colspan="2" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF"><a name="Overview"></a>
+ Overview of eclipseproject lifecycle</font></b></td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <p>Eclipse has a well defined development process based on a specific project
+ lifecycle made up of <em>phases</em> and <em>reviews</em>. Each phase
+ is a period of time where work gets done. Reviews are events.<br>
+ <br>
+ Throughout the Project Provisioning documents, we refer to a "reviewer"
+ for the deliverables, that is either the Eclipse Management Organization
+ (EMO) or the Top-Level Project Management Committee (PMC). Project provisioning
+ is a cooperative and iterative process, where you'll find that your 'reviewers'
+ will help you to work your way through the details of the things you need
+ to provide (or find someone who can help you). This section is meant to
+ clarify the steps in the process and we invite you to send your feedback
+ on both the process and the description to <a href="mailto:emo@eclipse.org">emo@eclipse.org</a>.
+ <br>
+ <br>
+ The following diagram shows a high-level view of the Eclipse development
+ process. For complete details on our process, you need to read the <a href="../org/documents/Eclipse Development Process 2003_11_09 FINAL.pdf">Eclipse
+ Development Process document</a>. <br>
+ </p>
+ </td> </tr>
+ <tr>
+ <td width="51%">
+ <p> </p>
+ <p align="center"><img src="devproc.jpg" width="254" height="331"><br>
+ </p>
+ </td> <br>
+ <td width="49%">
+ <p>Related Documents</p>
+ <ul>
+ <li><a href="../org/documents/Eclipse Development Process 2003_11_09 FINAL.pdf">Eclipse
+ Development Process</a></li>
+ </ul>
+ <p>Proposal Phase</p>
+ <ul>
+ <li><a href="projectproposal.html">Project Proposal Provisioning</a></li>
+ </ul>
+ <p>Validation Phase</p>
+ <ul>
+ <li><a href="projectvalidation.html">Project Validation Phase Provisioning</a></li>
+ </ul>
+ <p>Implementation Phase</p>
+ <ul>
+ <li><a href="changes.html">Changes to Project Provisioning</a></li>
+ </ul>
+ </td>
+ <br>
+</tr>
+</table>
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
+
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF"><a name="Starting"></a>
+ Starting an eclipse project </font></b></td>
+ </TR>
+ <tr colspan="2">
+ <td>
+ <p>The first step in establishing a new project at Eclipse is to contact
+ the <a href="mailto:emo@eclipse.org">Eclipse Management Organization</a>
+ (<b>EMO</b>), to work towards issuing a Project Declaration. Basically,
+ a declaration is a short email which is distributed to the Eclipse membership-at-large
+ stating that someone wants to start a project at Eclipse. Before a declaration
+ is sent, the EMO will want to talk about the technology areas you are
+ planning on working on, which Project Management Committee (PMC) the new
+ project would best fit in, who you think will be working on the project,
+ etc. In other words, we need to believe that the proposed project is a
+ reasonably good fit with Eclipse.</p>
+ <p>In many cases we start new projects off under the Technology Top-Level
+ Project. In some cases we decide together that it makes sense to propose
+ the creation of a new top-level project with its own PMC. Note that establishing
+ a new top-level project is a somewhat more heavy-weight operation. For
+ example, top-level projects have charters which are approved by the Board
+ of Directors.</p>
+ <p>Once the declaration has been sent, the EMO works with the proponents
+ of the project on their proposal. The length and level of detail of proposals
+ can vary, but the intent is to provide a document which will allow the
+ broad Eclipse community to get an idea of the scope and focus of the proposed
+ project. Once the document is ready, it will be put on our website on
+ the <a href="../proposals/main.php">Proposals</a> page, and a newsgroup
+ will be created for feedback. </p>
+ <p>You'll find a description of what needs to be done to launch a project
+ proposal on the <a href="projectproposal.html">Project Proposal Phase
+ Provisioning</a> page..</p>
+ <p>The proposal phase ends with a creation review, which is an evaluation of the proposal and the community feedback. The two key criteria in successfully passing the creation review are: </p>
+ <ol>
+ <li>does the project have a community of contributors and committers who are willing to work towards making this a success? <br>
+ </li>
+ <li>does the project have a technology scope and focus which will have a reasonable likelihood of success?</li>
+ </ol>
+
+ </td>
+ </tr>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF"><a name="validation"></a>
+ Eclipse project validation and implementation phases</font></b></td>
+ </TR>
+ <tr colspan="2">
+ <td>
+ <p>After the creation review, the project is set up for development. The
+ CVS repositories, Bugzilla database, the developer mailing lists, etc.
+ are all set up at the beginning of the <i>validation phase</i><b>.</b>
+ It is during the validation phase the the real work of building some working
+ software starts. During this phase, the initial code contributions are
+ gathered, designs and prototypes are created and a project plan is formulated.
+ </p>
+ <p>For a description of the work that goes into setting up a project, take
+ a look at the <a href="projectvalidation.html">Project Validation Phase
+ provisioning</a> page.</p>
+ <p>For the rest of the life of the project, there are numerous administrative
+ items that the project leaders need to be aware of. The <a href="changes.html">Changes
+ to Project Provisioning</a> document has information on how and when the
+ project can set up new committers, add new components to CVS, maintain
+ their web pages, etc.</p>
+ </td>
+ </tr>
+ <tr colspan="2">
+ <td> </td>
+ </tr>
+</table>
+
+<p align="right"></p>
+<p></p>
+</body>
+</html>
diff --git a/dev_process/old_provisioning/old1/bugzillacomponent.jpg b/dev_process/old_provisioning/old1/bugzillacomponent.jpg
new file mode 100644
index 0000000..a1d58f9
--- /dev/null
+++ b/dev_process/old_provisioning/old1/bugzillacomponent.jpg
Binary files differ
diff --git a/dev_process/old_provisioning/old1/changes.html b/dev_process/old_provisioning/old1/changes.html
new file mode 100644
index 0000000..a4d1ae9
--- /dev/null
+++ b/dev_process/old_provisioning/old1/changes.html
@@ -0,0 +1,260 @@
+<html><head>
+<link rel="stylesheet" href="../default_style.css"><title>Changes to Project Provisioning</title>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
+<body alink="#ff0000" bgcolor="#ffffff" link="#0000ee" text="#000000" vlink="#551a8b">
+<table border="0" cellpadding="2" cellspacing="5" height="129" width="100%">
+ <tbody><tr>
+ <td align="left" width="60%"><font class="indextop">changes to project provisioning</font><br>
+ <font class="indexsub">infrastructure for projects </font></td>
+ <td width="40%"> </td>
+ </tr>
+</tbody></table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody><tr>
+ <td>
+ <p><br>
+ This document describes the infrastructure for projects and that are in
+ the validation or implementation phase of their project at eclipse.org.
+ It describes the process for ongoing provisioning activities such as changes
+ to committer lists and updates to Bugzilla components.<br>
+ <br>
+ In general all inquiries related to project provisioning can be sent to the <a href="mailto:emo@eclipse.org">Eclipse Management Organization</a> (EMO). <br>
+ </p>
+ </td> </tr>
+</tbody></table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody><tr bgcolor="#999999">
+
+ <td align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">
+ Eclipse project implementation phase infrastructure</font></b></td>
+ </tr>
+ </tbody>
+</table>
+<table align="top" border="0" cellpadding="3" cellspacing="0" width="100%">
+<tr>
+ <td> <img src="implementation.jpg"></td>
+
+ <td colspan="4" width="100%">
+ <p>If you need changes to your infrastructure, you'll need to send the requests
+ to the webmaster or the EMO. <br>
+ <br>
+ The <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a> should
+ be contacted for:</p>
+ <ul>
+ <li> password reset</li>
+ <li> creating new components</li>
+ <li> changes to Bugzilla components</li>
+ <li> changes to committer component access</li>
+ <li>adding or archiving (read-only) mailing lists</li>
+ <li>adding or archiving (read-only) newsgroups</li>
+ </ul>
+ <p>The <a href="mailto:emo@eclipse.org">emo@eclipse.org</a> should be contacted
+ for: </p>
+ <ul>
+ <li> content related changes such as changes to web elements on www.eclipse.org
+ </li>
+ <li>adding new committers</li>
+ <li>removing committers</li>
+ </ul>
+ <p>When sending requests, please clearly identify the Top-Level Project
+ and Project you are working on so that requests that require PMC approval
+ or clarification can be properly routed to the correct PMC by the infrastructure
+ team. Please consult the checklist below for items required for implementing
+ provisioning changes. </p>
+ </td>
+ </tr>
+</table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody><tr bgcolor="#999999">
+
+ <td align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">
+ Implementation phase provisioning checklist</font></b></td>
+ </tr>
+ </tbody>
+</table>
+<table align="top" border="1" cellpadding="3" cellspacing="0" width="100%">
+ <tr>
+ <td width="19%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="32%"><b> Description</b></td>
+ <td width="34%"><b>Project team deliverable</b></td>
+ <td width="15%"><b>Review by</b></td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding new committers</td>
+ <td width="32%">
+ <p>Once a new committer is voted in (see<b> </b>the individual Top-Level
+ Project Charters for details about voting for new committers) the process
+ is the same as for the initial set of committers. <br>
+ </p>
+ </td>
+
+ <td width="34%">
+ <p>Email <a href="mailto:emo@eclipse.og">emo@eclipse.og</a>, along with the relevant Top-Level PMC approval,
+ the name(s) of the new committers with the following information:<br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which the committer will have update privileges</p>
+ </td>
+
+ <td width="15%">
+ <p>- voted in by relevant project committers<br>
+ - approved by PMC<br>
+ - agreements and information validated by EMO </p>
+ </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Committer Guidelines, Agreement, Questionnaire and Employer
+ Consent </td>
+
+ <td width="32%">
+ <p>The EMO is responsible for ensuring that documentation is in place for
+ new committers. <br>
+ <br>
+ Once the documentation is in place, the EMO will contact the webmaster
+ to provide the appropriate accesses to the new committers. </p>
+ </td>
+ <td width="34%">
+ <p>- the project team may appoint a single contact to assist the new
+ committers in completing the required documentation</p>
+ <p> </p>
+ </td>
+ <td width="15%"> </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Removing committers</td>
+
+ <td width="32%">Removing a committer requires the approval of the PMC.<br>
+ </td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:emo@eclipse.org">emo@eclipse.org</a><br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which commit accesses will be removed</td>
+ <td width="15%">approved by PMC and review by EMO</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changing access privileges on a specific component</td>
+
+ <td width="32%">A committer needs commit-access to a component, or no longer
+ needs commit-access to a component.</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which commit accesses will change</td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new component to CVS </td>
+
+ <td width="32%">CVS components, or modules, are created as subdirectories
+ in the project's CVS repository location, in the HEAD branch. Component
+ names follow the<i> org.eclipse.component.name</i> naming convention.<br>
+ <p> </p>
+ </td>
+ <td width="34%">Email to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - a list of the new components along with a list of committers who will
+ have access to which component<br>
+ - suggested formats:<br>
+ [module x] "same committers as [module y]<br>
+ or <br>
+ <i>module:userid1,iserid2,userid3,userid4...</i><br>
+ <i>module:e@mail,e@mail,e@mail<br>
+ module:Name Surname,Name Surname, Name Surname</i> </td>
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changing access rights to download.eclipse.org</td>
+
+ <td width="32%">Any access rights changes to the downloads area.</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.or">webmaster@eclipse.or</a>g<br>
+ - names of committers to be granted update rights to the download site</td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changes to content on www.eclipse.org</td>
+
+ <td width="32%">Newsgroup and mailing list main pages, Tools or Technology
+ top-level project pages, and other non-project specific pages</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - email requested changes to <a href="mailto:emo@eclipse.org">emo@eclipse.rog</a></td>
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new newsgroup</td>
+
+ <td width="32%">One newsgroup is created per project. Newsgroup names follow
+ the convention: eclipse.toplevelname.projectshortname </td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - newsgroup name in format news://news.eclipse.org/<br>
+ eclipse.[top-level project].[shortname}<br>
+ - newsgroup description/invitation to participate </td>
+
+ <td width="15%">review by PMC </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new mailing list</td>
+
+ <td width="32%">Mailing lists are resources used by committers to facilitate
+ group communication. Mail posted to a mailing list is archived and searchable
+ from the website. Normally, a single mailing list is created for a project;
+ however, projects with several components can have several mailing lists.
+ The main project mailing list is normally called projectname-dev, and component
+ lists are called projectname-component. A list of mailing lists can be found
+ here: <a href="https://dev.eclipse.org/mailman/listinfo/">https://dev.eclipse.org/mailman/listinfo/</a></td>
+
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - long description based on the example shown here <a href="http://dev.eclipse.org/mailman/listinfo/platform-dev" target="_blank">http://dev.eclipse.org/mailman/<br>
+ listinfo/platform-dev</a><br>
+ - short description based on the examples here <a href="http://www.eclipse.org/mail/index.html" target="_blank">http://www.eclipse.org/mail/index.html</a></td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Archiving a newsgroup or mailing list </td>
+ <td width="32%">Newsgroup content, as well as e-mails sent to a mailing list
+ are archived and searchable from the eclipse.org website. The newsgroup
+ or mailing list becomes read-only. </td>
+ <td width="34%">- request to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a></td>
+
+ <td width="15%">review by PMC</td>
+</table>
+<table align="top" border="0" cellpadding="3" cellspacing="0" width="100%">
+ <tr>
+ <td >
+ <p><b>Send us updates to your committers list!</b><br>
+ The committer lists are used to determine the developer's voting rights
+ on eclipse.org, so please help us to keep them up to date! Information
+ includes the committer's address and contact information. Send any
+ changes or updates to the committers list, including adding new committers,
+ to the <a href="mailto:emo@eclipse.org">EMO</a>. <br>
+ <br>
+ </p>
+ </td>
+ </tr>
+</table>
+<p></p>
+<p></p>
+</body></html>
\ No newline at end of file
diff --git a/dev_process/old_provisioning/old1/devproc.jpg b/dev_process/old_provisioning/old1/devproc.jpg
new file mode 100644
index 0000000..2a6f3d9
--- /dev/null
+++ b/dev_process/old_provisioning/old1/devproc.jpg
Binary files differ
diff --git a/dev_process/old_provisioning/old1/implementation.jpg b/dev_process/old_provisioning/old1/implementation.jpg
new file mode 100644
index 0000000..6593fd0
--- /dev/null
+++ b/dev_process/old_provisioning/old1/implementation.jpg
Binary files differ
diff --git a/dev_process/old_provisioning/old1/main.html b/dev_process/old_provisioning/old1/main.html
new file mode 100644
index 0000000..88529f4
--- /dev/null
+++ b/dev_process/old_provisioning/old1/main.html
@@ -0,0 +1,155 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+<title>Project Provisioning</title>
+<link rel="stylesheet" href="../default_style.css">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table border=0 cellspacing=3 cellpadding=2 width="100%" >
+ <tr>
+ <td ALIGN=LEFT colspan="3"><font class=indextop>eclipse project
+ <br>
+ provisioning
+ </font> </td>
+ <td align=left rowspan="2" width="30%" > </td>
+ </tr>
+ <tr>
+ <td align=left width="21%"><a href="#Overview" class=jump> overview
+ of project lifecycle</a></td>
+ <td align=left width="23%"><a href="#Starting" class=jump>starting
+ a project</a></td>
+ <td align=left width="26%"><a href="#validation" class=jump>validation
+ and implementation phase</a></td>
+ </tr>
+ </table>
+<table width="100%" cellspacing=3 cellpadding=2>
+ <tr>
+ <td align="left" valign="top" colspan="2" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF"><a name="Overview"></a>
+ Overview of eclipseproject lifecycle</font></b></td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <p>Eclipse has a well defined development process based on a specific project
+ lifecycle made up of <em>phases</em> and <em>reviews</em>. Each phase
+ is a period of time where work gets done. Reviews are events.<br>
+ <br>
+ Throughout the Project Provisioning documents, we refer to a "reviewer"
+ for the deliverables, that is either the Eclipse Management Organization
+ (EMO) or the Top-Level Project Management Committee (PMC). Project provisioning
+ is a cooperative and iterative process, where you'll find that your 'reviewers'
+ will help you to work your way through the details of the things you need
+ to provide (or find someone who can help you). This section is meant to
+ clarify the steps in the process and we invite you to send your feedback
+ on both the process and the description to <a href="mailto:emo@eclipse.org">emo@eclipse.org</a>.
+ <br>
+ <br>
+ The following diagram shows a high-level view of the Eclipse development
+ process. For complete details on our process, you need to read the <a href="../org/documents/Eclipse Development Process 2003_11_09 FINAL.pdf">Eclipse
+ Development Process document</a>. <br>
+ </p>
+ </td> </tr>
+ <tr>
+ <td width="51%">
+ <p> </p>
+ <p align="center"><img src="devproc.jpg" width="254" height="331"><br>
+ </p>
+ </td> <br>
+ <td width="49%">
+ <p>Related Documents</p>
+ <ul>
+ <li><a href="../org/documents/Eclipse Development Process 2003_11_09 FINAL.pdf">Eclipse
+ Development Process</a></li>
+ </ul>
+ <p>Proposal Phase</p>
+ <ul>
+ <li><a href="projectproposal.html">Project Proposal Provisioning</a></li>
+ </ul>
+ <p>Validation Phase</p>
+ <ul>
+ <li><a href="projectvalidation.html">Project Validation Phase Provisioning</a></li>
+ </ul>
+ <p>Implementation Phase</p>
+ <ul>
+ <li><a href="changes.html">Changes to Project Provisioning</a></li>
+ </ul>
+ </td>
+ <br>
+</tr>
+</table>
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
+
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF"><a name="Starting"></a>
+ Starting an eclipse project </font></b></td>
+ </TR>
+ <tr colspan="2">
+ <td>
+ <p>The first step in establishing a new project at Eclipse is to contact
+ the <a href="mailto:emo@eclipse.org">Eclipse Management Organization</a>
+ (<b>EMO</b>), to work towards issuing a Project Declaration. Basically,
+ a declaration is a short email which is distributed to the Eclipse membership-at-large
+ stating that someone wants to start a project at Eclipse. Before a declaration
+ is sent, the EMO will want to talk about the technology areas you are
+ planning on working on, which Project Management Committee (PMC) the new
+ project would best fit in, who you think will be working on the project,
+ etc. In other words, we need to believe that the proposed project is a
+ reasonably good fit with Eclipse.</p>
+ <p>In many cases we start new projects off under the Technology Top-Level
+ Project. In some cases we decide together that it makes sense to propose
+ the creation of a new top-level project with its own PMC. Note that establishing
+ a new top-level project is a somewhat more heavy-weight operation. For
+ example, top-level projects have charters which are approved by the Board
+ of Directors.</p>
+ <p>Once the declaration has been sent, the EMO works with the proponents
+ of the project on their proposal. The length and level of detail of proposals
+ can vary, but the intent is to provide a document which will allow the
+ broad Eclipse community to get an idea of the scope and focus of the proposed
+ project. Once the document is ready, it will be put on our website on
+ the <a href="../proposals/main.html">Proposals</a> page, and a newsgroup
+ will be created for feedback. </p>
+ <p>You'll find a description of what needs to be done to launch a project
+ proposal on the <a href="projectproposal.html">Project Proposal Phase
+ Provisioning</a> page..</p>
+ <p>The proposal phase ends with a creation review, which is an evaluation of the proposal and the community feedback. The two key criteria in successfully passing the creation review are: </p>
+ <ol>
+ <li>does the project have a community of contributors and committers who are willing to work towards making this a success? <br>
+ </li>
+ <li>does the project have a technology scope and focus which will have a reasonable likelihood of success?</li>
+ </ol>
+
+ </td>
+ </tr>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF"><a name="validation"></a>
+ Eclipse project validation and implementation phases</font></b></td>
+ </TR>
+ <tr colspan="2">
+ <td>
+ <p>After the creation review, the project is set up for development. The
+ CVS repositories, Bugzilla database, the developer mailing lists, etc.
+ are all set up at the beginning of the <i>validation phase</i><b>.</b>
+ It is during the validation phase the the real work of building some working
+ software starts. During this phase, the initial code contributions are
+ gathered, designs and prototypes are created and a project plan is formulated.
+ </p>
+ <p>For a description of the work that goes into setting up a project, take
+ a look at the <a href="projectvalidation.html">Project Validation Phase
+ provisioning</a> page.</p>
+ <p>For the rest of the life of the project, there are numerous administrative
+ items that the project leaders need to be aware of. The <a href="changes.html">Changes
+ to Project Provisioning</a> document has information on how and when the
+ project can set up new committers, add new components to CVS, maintain
+ their web pages, etc.</p>
+ </td>
+ </tr>
+ <tr colspan="2">
+ <td> </td>
+ </tr>
+</table>
+
+<p align="right"></p>
+<p></p>
+</body>
+</html>
diff --git a/dev_process/old_provisioning/old1/projectimplementation.html b/dev_process/old_provisioning/old1/projectimplementation.html
new file mode 100644
index 0000000..370adb9
--- /dev/null
+++ b/dev_process/old_provisioning/old1/projectimplementation.html
@@ -0,0 +1,260 @@
+<html><head>
+<link rel="stylesheet" href="../default_style.css"><title>Project Implementation Phase Provisioning</title>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
+<body alink="#ff0000" bgcolor="#ffffff" link="#0000ee" text="#000000" vlink="#551a8b">
+<table border="0" cellpadding="2" cellspacing="5" height="129" width="100%">
+ <tbody><tr>
+ <td align="left" width="60%"><font class="indextop">project implementation phase
+ provisioning</font><br>
+ <font class="indexsub">infrastructure for projects </font></td>
+ <td width="40%"> </td>
+ </tr>
+</tbody></table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody><tr>
+ <td>
+ <p><br>
+ This document describes the infrastructure for projects and that are in
+ the validation or implementation phase of their project at eclipse.org.
+ It describes the process for ongoing provisioning activities such as changes
+ to committer lists and updates to Bugzilla components.<br>
+ <br>
+ In general all inquiries related to project provisioning can be sent to the <a href="mailto:emo@eclipse.org">Eclipse Management Organization</a> (EMO). <br>
+ </p>
+ </td> </tr>
+</tbody></table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody><tr bgcolor="#999999">
+
+ <td align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">
+ Eclipse project implementation phase infrastructure</font></b></td>
+ </tr>
+ </tbody>
+</table>
+<table align="top" border="0" cellpadding="3" cellspacing="0" width="100%">
+<tr>
+ <td> <img src="implementation.jpg"></td>
+
+ <td colspan="4" width="100%">
+ <p>If you need changes to your infrastructure, you'll need to send the requests
+ to the webmaster or the EMO. <br>
+ <br>
+ The <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a> should
+ be contacted for:</p>
+ <ul>
+ <li> password reset</li>
+ <li> creating new components</li>
+ <li> changes to Bugzilla components</li>
+ <li> changes to committer component access</li>
+ <li>adding or archiving (read-only) mailing lists</li>
+ <li>adding or archiving (read-only) newsgroups</li>
+ </ul>
+ <p>The <a href="mailto:emo@eclipse.org">emo@eclipse.org</a> should be contacted
+ for: </p>
+ <ul>
+ <li> content related changes such as changes to web elements on www.eclipse.org
+ </li>
+ <li>adding new committers</li>
+ <li>removing committers</li>
+ </ul>
+ <p>When sending requests, please clearly identify the PMC and project you
+ are working on so that requests that require PMC approval or clarification
+ can be properly routed to the correct PMC by the infrastructure team.
+ Please consult the checklist below for items required for implementing
+ provisioning changes. </p>
+ </td>
+ </tr>
+</table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody><tr bgcolor="#999999">
+
+ <td align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">
+ Implementation phase provisioning checklist</font></b></td>
+ </tr>
+ </tbody>
+</table>
+<table align="top" border="1" cellpadding="3" cellspacing="0" width="100%">
+ <tr>
+ <td width="19%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="32%"><b> Description</b></td>
+ <td width="34%"><b>Project team deliverable</b></td>
+ <td width="15%"><b>Review by</b></td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding new committers</td>
+ <td width="32%">
+ <p>Once a new committer is voted in (see<b> </b>the individual Top-Level
+ Project Charters for details about voting for new committers) the process
+ is the same as for the initial set of committers. <br>
+ </p>
+ </td>
+
+ <td width="34%">
+ <p>Email <a href="mailto:emo@eclipse.og">emo@eclipse.og</a>, along with the relevant Top-Level PMC approval,
+ the name(s) of the new committers with the following information:<br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which the committer will have update privileges</p>
+ </td>
+
+ <td width="15%">
+ <p>- voted in by relevant project committers<br>
+ - approved by PMC<br>
+ - agreements and information validated by EMO </p>
+ </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Committer Guidelines, Agreement, Questionnaire and Employer
+ Consent </td>
+
+ <td width="32%">
+ <p>The EMO is responsible for ensuring that documentation is in place for
+ new committers. <br>
+ <br>
+ Once the documentation is in place, the EMO will contact the webmaster
+ to provide the appropriate accesses to the new committers. </p>
+ </td>
+ <td width="34%">
+ <p>- the project team may appoint a single contact to assist the new
+ committers in completing the required documentation</p>
+ <p> </p>
+ </td>
+ <td width="15%"> </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Removing committers</td>
+
+ <td width="32%">Removing a committer requires the approval of the PMC.<br>
+ </td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:emo@eclipse.org">emo@eclipse.org</a><br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which commit accesses will be removed</td>
+ <td width="15%">approved by PMC and review by EMO</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changing access privileges on a specific component</td>
+
+ <td width="32%">A committer needs commit-access to a component, or no longer
+ needs commit-access to a component.</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which commit accesses will change</td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new component to CVS </td>
+
+ <td width="32%">CVS components, or modules, are created as subdirectories
+ in the project's CVS repository location, in the HEAD branch. Component
+ names follow the<i> org.eclipse.component.name</i> naming convention.<br>
+ <p> </p>
+ </td>
+ <td width="34%">Email to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - a list of the new components along with a list of which committers have
+ access to which components <br>
+ - the following format is preferred:<br>
+ <i>module:userid1,iserid2,userid3,userid4...</i><br>
+ - You may also use the formats: <br>
+ <i>module:e@mail,e@mail,e@mail<br>
+ module:Name Surname,Name Surname, Name Surname</i> </td>
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changing access rights to download.eclipse.org</td>
+
+ <td width="32%">Any access rights changes to the downloads area.</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.or">webmaster@eclipse.or</a>g<br>
+ - names of committers to be granted update rights to the download site</td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changes to content on www.eclipse.org</td>
+
+ <td width="32%">Newsgroup and mailing list main pages, Tools or Technology
+ top-level project pages, and other non-project specific pages</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - email requested changes to <a href="mailto:emo@eclipse.org">emo@eclipse.rog</a></td>
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new newsgroup</td>
+
+ <td width="32%">One newsgroup is created per project. Newsgroup names follow
+ the convention: eclipse.toplevelname.projectshortname </td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - newsgroup name in format news://news.eclipse.org/<br>
+ eclipse.[top-level project].[shortname}<br>
+ - newsgroup description/invitation to participate </td>
+
+ <td width="15%">review by PMC </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new mailing list</td>
+
+ <td width="32%">Mailing lists are resources used by committers to facilitate
+ group communication. Mail posted to a mailing list is archived and searchable
+ from the website. Normally, a single mailing list is created for a project;
+ however, projects with several components can have several mailing lists.
+ The main project mailing list is normally called projectname-dev, and component
+ lists are called projectname-component. A list of mailing lists can be found
+ here: <a href="https://dev.eclipse.org/mailman/listinfo/">https://dev.eclipse.org/mailman/listinfo/</a></td>
+
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - long description based on the example shown here <a href="http://dev.eclipse.org/mailman/listinfo/platform-dev" target="_blank">http://dev.eclipse.org/mailman/<br>
+ listinfo/platform-dev</a><br>
+ - short description based on the examples here <a href="http://www.eclipse.org/mail/index.html" target="_blank">http://www.eclipse.org/mail/index.html</a></td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Archiving a newsgroup or mailing list </td>
+ <td width="32%">Newsgroup content, as well as e-mails sent to a mailing list
+ are archived and searchable from the eclipse.org website. The newsgroup
+ or mailing list becomes read-only. </td>
+ <td width="34%">- request to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a></td>
+
+ <td width="15%">review by PMC</td>
+</table>
+<table align="top" border="0" cellpadding="3" cellspacing="0" width="100%">
+ <tr>
+ <td >
+ <p><b>Send us updates to your committers list!</b><br>
+ The committer lists are used to determine the developer's voting rights
+ on eclipse.org, so please help us to keep them up to date! Information
+ includes the committer's address and contact information. Send any
+ changes or updates to the committers list, including adding new committers,
+ to the <a href="mailto:emo@eclipse.org">EMO</a>. <br>
+ <br>
+ </p>
+ </td>
+ </tr>
+</table>
+<p></p>
+<p></p>
+</body></html>
\ No newline at end of file
diff --git a/dev_process/old_provisioning/old1/projectproposal.html b/dev_process/old_provisioning/old1/projectproposal.html
new file mode 100644
index 0000000..7719cc2
--- /dev/null
+++ b/dev_process/old_provisioning/old1/projectproposal.html
@@ -0,0 +1,207 @@
+<html>
+<head>
+<link rel="stylesheet" href="../default_style.css">
+<title>Project Proposal Provisioning</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" height="129" >
+ <tr>
+ <td ALIGN=LEFT width="60%"><font class=indextop>project proposal provisioning</font><br>
+ <font class=indexsub>project proposal provisioning </font></td>
+ <td WIDTH="40%"> </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p><br>
+ This document describes the infrastructure for Project Proposals (proposals
+ for new projects within an existing Top-Level Project) at eclipse.org. The <a href="toplevelproposal.html">Top-Level
+ Project Proposal Provisioning</a> document describes the process for projects
+ that propose a new PMC. These documents follow the Eclipse Project Lifecyle
+ as described in the <a href="../org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf">Eclipse
+ Development Process</a> and are intended to complement the information
+ provided there. In general all inquiries related to project provisioning
+ can be sent to the <a href="mailto:emo@eclipse.org">EMO</a> . <br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ Eclipse project proposal review infrastructure</font></b></td>
+ </TR>
+ <tr>
+ <td> <img src="proposal.jpg" width="180" height="310"></td>
+ <td>
+ <p>When a declaration is made to the EMO, the initiating individual works
+ with a PMC to create a proposal which begins the proposal phase. See the
+ <a href="main.html">Project Provisioning</a> document and review archives
+ of previous successful proposals on the <a href="../proposals/main.html">Proposals</a>
+ page for more details about this process. During the proposal phase the
+ project is provisioned with two items:<br>
+ <br>
+ 1 - a website in the proposals directory on eclipse.org, and <br>
+ 2 - a <a href="#newsgroups">newsgroup</a> to open discussions. <br>
+ <br>
+ Please consult the <a href="#checklist">checklist</a> below for items
+ required to create the proposal website and the newsgroup. Each of the
+ deliverables can be emailed to the <a href="mailto:emo@eclipse.org">EMO</a>.
+ <br>
+ <br>
+ At the end of the Proposal Phase is the <a href="#creationreview">Creation
+ Review</a>. During the proposal phase you may consider an <a href="#pr">Announcment
+ Press Release</a>, or you may decide to do the release after the Creation
+ Review and as part of the launch of the <a href="projectvalidation.html">Project
+ Validation</a> phase. <br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="newsgroups"></a>Proposal newsgroups</font></b></td>
+ </TR>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td colspan "4"> In this phase, the newsgroup is created last for several
+ reasons. Many newsreaders actively inform their users of the existance of
+ a new newsgroup so when we first created all the infrastructure in a single
+ big bang, the project leaders didn't have enough time to populate the main
+ web page of the proposal before it was "pre-announced" by the
+ newsreader software. We now wait for the main web page to be complete before
+ the newsgroups are created. We then post an initial message, inviting people
+ to visit the newly created project page to learn more about the project.
+ <br>
+</td>
+</tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="pr"></a>Announcement press release </font></b></td>
+ </TR>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="0">
+<tr>
+ <td colspan="4" width="100%">
+ <p>The press release is optional. The release could be issued by Eclipse,
+ or it could be a joint release with the project's stakeholders, and includes
+ Q&A's, messages and preparation of the stakeholder spokespeople. The
+ discipline of creating a press release ensures that all stakeholders have
+ agreed on messages, positioning and have identified spokepersons.<br>
+ <br>
+ If you do decide to issue a press release, the Eclipse Foundation Marketing
+ Director can help you coordinate the announcement. (Email the <a href="mailto:emo@eclipse.org">EMO</a>
+ for further information.)<br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="creationreview"></a>Creation review </font></b></td>
+ </TR>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="0">
+<tr>
+ <td colspan="4" width="100%">
+ <p>The creation review is scheduled roughly one to two months after the
+ proposal is made public to ensure sufficient time to receive and respond
+ to feedback received from the community. The creation review meeting will
+ include the proposed project lead, members of the hosting Top-Level Project
+ PMC and staff of the Eclipse Foundation. The review format is teleconference,
+ and is open to the eclipse membership at large (but not the general public).
+ Notifications of creation review meetings are sent to the eclipse membership
+ mailing list by the EMO. <br>
+ <br>
+ The two key criteria in successfully passing the creation review are:
+ <ol>
+ <li>does the project have a community of contributors and committers who
+ are willing to work towards making this a success? <br>
+ </li>
+ <li>does the project have a technology scope and focus which will have
+ a reasonable likelihood of success</li>
+ </ol>
+ <p> Although the creation review is a relatively informal meeting, the proposed
+ project leads will be expected to make a brief presentation to the review
+ committee. The presentation should include a brief summary of the project
+ proposal, in addition to comments about the community response to the
+ proposal, current project participants, initial implementation focus and
+ future directions. The presentation slides will be posted to the proposal
+ site before the review. You can view previous sucessful creation review
+ slide presentations in the <a href="../proposals/main.html">Proposal Archives</a>.
+ <br>
+ <br>
+ Upon a successful review the PMC will recommend creation of the project
+ for the EMO's final approval.
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="checklist"></a>Project proposal provisioning checklist </font></b></td>
+ </TR>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="1">
+ <tr>
+ <td width="21%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="23%"><b> Description</b></td>
+ <td width="43%"><b>Project team deliverable</b></td>
+ <td width="13%"><b>Review by</b></td>
+ </tr>
+ <tr>
+ <td width="21%" >Proposal published on static web pages </td>
+ <td width="23%">pages published in eclipse.org/proposals directory, linked
+ from projects main page</td>
+ <td width="43%">-HTML documents (where possible) <br>
+ - in this stage no access is granted to the static webpages, therefore an
+ approved draft for posting should be delivered 48 hours before launch date.
+ The project team then has a one-day cycle to review the proposal as it will
+ be published. </td>
+ <td width="13%">EMO and PMC </td>
+ </tr>
+ <tr>
+ <td width="21%" >Project Short Name</td>
+ <td width="23%">The name for the proposal subdirectory on which the newsgroup,
+ mailing list, and CVS addresses will be based </td>
+ <td width="43%">- a 3-6 character short name or acronym for the project title
+ </td>
+ <td width="13%">EMO and PMC </td>
+ </tr>
+ <tr>
+ <td width="21%" >Project Description</td>
+ <td width="23%">a brief description of the project (1 paragraph) for the top-level
+ project home page</td>
+ <td width="43%">- one paragraph description of the proposal</td>
+ <td width="13%">EMO and PMC </td>
+ </tr>
+ <tr>
+ <td width="21%" >Newsgroup</td>
+ <td width="23%">the initial newsgroup for soliciting feedback on the proposal</td>
+ <td width="43%">- confirmation of newsgroup name in format news://news.eclipse.org/<br>
+ eclipse.[top-level project].[shortname}<br>
+ - the newsgroup is the last item to be released on launch day<br>
+ - the preparation cycle is 3-6 hours, therefore a confirmed name 24 hours
+ before the launch is preferred. </td>
+ <td width="13%">EMO and PMC </td>
+ </tr>
+ <tr>
+ <td width="21%" >Newsgroup description </td>
+ <td width="23%">3 line newsgroup description that appears on the <a href="../newsgroups/index.html" target="_top">Newsgroups
+ main page </a></td>
+ <td width="43%">- newsgroup description/invitation to participate</td>
+ <td width="13%">EMO and PMC </td>
+ </tr>
+
+</table>
+
+<p></p>
+<p></p>
+</body>
+</html>
diff --git a/dev_process/old_provisioning/old1/projectvalidation-old.html b/dev_process/old_provisioning/old1/projectvalidation-old.html
new file mode 100644
index 0000000..69f1afa
--- /dev/null
+++ b/dev_process/old_provisioning/old1/projectvalidation-old.html
@@ -0,0 +1,439 @@
+<html>
+<head>
+<link rel="stylesheet" href="../default_style.css">
+<title>Project Validation Phase Provisioning</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<style>
+body {
+background-image: url('../images/archive.gif');
+background-repeat: repeat-y
+}
+</style>
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" height="129" >
+ <tr>
+ <td ALIGN=LEFT width="60%"><font class=indextop>project validation phase provisioning</font><br>
+ <font class=indexsub>infrastructure for projects </font></td>
+ <td WIDTH="40%"> </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p><br><font size="+1">
+ Please use the <a href="/org/processes/project_validation_provisioning_request.html">new
+ combination web-form & document</a>.</font>
+ </p>
+ <p>
+ This document describes the infrastructure for projects that have completed
+ a successful Creation Review and are beginning the Validation Phase of
+ their project (under an existing Top-Level Project) at eclipse.org. The <a href="toplevelvalidation.html">Top-Level
+ Project Validation Phase Provisioning</a> document describes the process
+ for projects that propose a new PMC. These documents follow the Eclipse
+ Project Lifecyle as described in the <a href="../org/documents/Eclipse Development Process 2003_11_09 FINAL.pdf">Eclipse
+ Development Process</a> and are intended to complement the information
+ provided there. In general all inquiries related to project provisioning
+ can be sent to the <a href="mailto:emo@eclipse.org">EMO</a> .<br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ Eclipse project validation phase infrastructure</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="0">
+<tr>
+ <td> <img src="validation.jpg" width="180" height="310"></td>
+
+ <td colspan="4" width="100%">
+ <p>After a successful Creation Review, the project enters the Validation
+ Phase and additional infrastructure is created to support the initial
+ work on the project:</p>
+ <ul>
+ <li>CVS commit rights</li>
+ <li> CVS component structure</li>
+ <li>download site </li>
+ <li>a developer mailing list and</li>
+ <li> the project website<br></li>
+ </ul>
+ Please consult the <a href="#checklist">checklist</a> below for items
+ required to implement this core infrastructure. Each of the deliverables
+ can be emailed to the <a href="mailto:emo@eclipse.org">EMO</a>. <br>
+ <br>
+ The project is 'created' in two steps:
+ <ol>
+ <li>CVS, user accounts, mailing-list, master home page (links to your
+ page in the <a href="#web">website CVS</a>), <a href="#downloadspace">download
+ space</a> on download.eclipse.org, and bugzilla </li>
+ <li> Developer mailing lists, hosting Top-Level Project main page and any additional
+ <a href="#newsgroups">newsgroups</a> are then connected to your project
+ making it "live".</li>
+ </ol>
+ <p> This ensures that all the core infrastructure is ready and that the
+ data and an initial project structure are in place, before the project
+ goes 'live". <br>
+ <br>
+ Ongoing <a href="#changes">changes</a> to the project's core infrastructure
+ are expected especially during the Validation Phase, as the project matures.
+ Please consult the <a href="changes.html">Project Implementation Phase
+ Provisioning</a> document for pointers on how to implement these changes.
+ <br>
+ </p>
+ </td>
+</tr>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="newsgroups"></a>Project newsgroup</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p>At this stage, the proposal newsgroup can be repositioned as the project
+ newsgroup, or the team can archive the existing newsgroup (so it becomes
+ read-only) and start a new project newsgroup. <br><br>
+ </p>
+ </td>
+</tr>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ </font><a name="web"></a><font face="Arial,Helvetica" color="#FFFFFF">Project
+ website</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+
+ <tr>
+ <td>
+ <p>Each project has a web presense on www.eclipse.org. The content for a
+ project web pages is stored in a separate CVS repository on dev.eclipse.org.
+ The repository is automatically checked out to www.eclipse.org, and thereby
+ enables website authors to use HTML and PHP to author websites directly
+ on www.eclipse.org, does not require viewcvs, and paves the way for an
+ eventual MySQL database backend. Only those committers designated by their
+ project PMC will be granted update rights to the project website CVS.
+ As a bootstrap mechanism, the PMC will have committer access to assist
+ with web maintenance.<br>
+ <br>
+ A directory of the form <b>www.eclipse.org/[shortname]</b> will be created
+ by the webmaster for each new project. This also becomes the url for the
+ project home page. A default index.html page containing the required frames
+ is created in the website CVS repository. </p>
+ <p>Here's how it works:</p>
+ <p>1 - In Eclipse, create a new CVS Repository location:</p>
+ <blockquote>
+ <blockquote>
+ <p><b>Server</b>: dev.eclipse.org<br>
+ <b>Path</b>: /home/cvs/org.eclipse<br>
+ <b>Username/Password</b>: your committer credentials are also used
+ for website authoring<br>
+ <b>Website url</b>: www.eclipse.org/[shortname]</p>
+ </blockquote>
+ </blockquote>
+ <p>2 - Checkout the "www" project, and you will see the project directories.
+ Each of these directories has a single index.html file that sets up the
+ frames and opens up main.html.<br>
+ <br>
+ 3 - It may take up to one minute to transfer committed content to www.eclipse.org
+ but essentially committed changes are live.</p>
+ <p>There are some images which you may use in your web pages. These can
+ be viewed at www.eclipse.org/images/.
+ </p>
+ <p>The Tools and Technology Top-Level Projects have modelled the following
+ conventions for project websites. </p>
+ <table width="75%" border="1">
+ <tr>
+ <td>
+ <div align="center"><b>Filename</b></div>
+ </td>
+ <td>
+ <div align="center"><b>Purpose</b></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/main.html</div>
+ </td>
+ <td>
+ <div align="center">the content for the main project page </div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/faq.html</div>
+ </td>
+ <td>
+ <div align="center">the project faq page</div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/download.html</div>
+ </td>
+ <td>
+ <div align="center">the project downloads page</div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/plan.html</div>
+ </td>
+ <td>
+ <div align="center">the project plan page</div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table><p></p>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><a name="downloadspace"></a><font face="Arial,Helvetica" color="#FFFFFF">Builds
+ and downloads</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+
+ <tr>
+ <td>
+ <p><b>Builds </b><br>
+ The project leads are responsible for builds and maintenance on eclipse.org.
+ The frequency of these is dependent on the project needs. For more information
+ see: </p>
+ <blockquote>
+ <p>Eclipse project development - <a href="http://www.eclipse.org/eclipse/development/main.html">http://www.eclipse.org/eclipse/development/main.html</a><br>
+ Platform release engineering - <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-releng-home/main.html">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-releng-home/main.html</a></p>
+ </blockquote>
+ <b>Downloads </b><br>
+ The project lead and their appointed committers will receive an account
+ and password on download1.eclipse.org which is a high-bandwidth download
+ server. For projects under the Tools Top-Level Project, for example, the directory will
+ be /home/www/tools/xyz. For mirroring purposes, however, the link to download
+ a file is http://www.eclipse.org/downloads/download.php?file=/tools/xyz/fileName.
+ This will allow mirror site selection based on the file requested. We ask
+ that you not link directly to "download.eclipse.org" or "download1.eclipse.org"
+ <p>Because the downloads space is mirrored to several servers worldwide,
+ we ask you use this space wisely, taking extra care when placing large
+ files in this space, and performing regular file cleanups. Large directories
+ use bandwidth while mirroring and deter new mirror sites because of high
+ disk space requirements. Also, HTML and PHP files must not be placed on
+ the download server.</p>
+ <p>Uploads to this space are via SFTP (preferred) or FTP. Use any SFTP client,
+ such as CoreFTP, to connect to download1.eclipse.org. Although you are
+ connecting to download1.eclipse.org, links to files must be done to download.eclipse.org.
+ <br>
+ <br>
+ RSYNC transfers can be arranged. Please consult the <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a>
+ for details on setting this up.</p>
+ </td>
+ </tr>
+ </table><p></p>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><a name="changes"></a><font face="Arial,Helvetica" color="#FFFFFF">Changes
+ </font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p><b> For more information see the <a href="changes.html">Project Implementation
+ Phase Provisioning</a> document. <br>
+ <br>
+ Getting changes to your infrastructure</b></p>
+ <p>If you need changes to your infrastructure, you need to send an email
+ to webmaster@eclipse.org or to the emo@eclipse.org. In general things
+ like password reset and creating new components are taken care of by the
+ webmaster. Other content related changes such as changes to web elements
+ on www.eclipse.org should be sent to <a href="mailto:emo@eclipse.org">emo@eclipse.org</a>.
+ When sending requests, please clearly identify the Top-Level Project and
+ Project you are working on so that requests that require PMC approval
+ or clarification can be properly routed to the correct PMC by the infrastructure
+ team.</p>
+ <p><b>Changes to your committers list</b><br>
+ Changes to the committers list, including adding new committers, is done
+ through <a href="mailto:emo@eclipse.org">emo@eclipse.org</a>. We also
+ track the committer's address and contact information. We use these lists
+ to determine the developer's voting rights on eclipse.org, so please help
+ us to keep them up to date! For more information see the <a href="changes.html">Project
+ Implementation Phase Provisioning</a> document. <br>
+ <br>
+ </p>
+ </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="checklist"></a>Project validation phase provisioning checklist
+ </font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="1">
+ <tr>
+ <td width="11%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="43%"><b> Description</b></td>
+ <td width="33%"><b>Project team deliverable</b></td>
+ <td width="13%"><b>Review by</b></td>
+ </tr>
+ <tr>
+ <td width="11%" >Committers list</td>
+ <td width="43%">
+ <p>A list of the initial committers for the project.<br>
+ </p>
+ </td>
+
+ <td width="33%">A list of the initial committers with the following information:<br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - if available, the list of CVS components or modules to which the committer
+ will have update privileges</td>
+ <td width="13%">- nominated by PMC <br>
+ - approved by EMO </td>
+ </tr>
+ <tr>
+
+ <td width="11%" >Committer Guidelines, Agreement, Questionnaire and Employer
+ Consent </td>
+
+ <td width="43%">
+ <p>The EMO is responsible for ensuring that documentation is in place for
+ new committers. <br>
+ <br>
+ Once the documentation is in place, the EMO will contact the webmaster
+ to provide the appropriate accesses to the new committers. </p>
+ </td>
+ <td width="33%">
+ <p>- the project team may appoint a single contact to assist the new
+ committers in completing the required documentation</p>
+ <p> </p>
+ </td>
+ <td width="13%"> </td>
+ </tr>
+ <tr>
+ <td width="11%" >List of initial CVS components or modules</td>
+
+ <td width="43%">
+ <p>Typical components are:<br>
+ org.eclipse.[shortname].[component]<br>
+ </p>
+ </td>
+
+ <td width="33%">- a list of components along with a list of committers who
+ will have access to each component<br>
+ </td>
+ <td width="13%">review by PMC and EMO</td>
+ </tr>
+ <tr>
+
+ <td width="11%" >Project website moves to website CVS</td>
+
+ <td width="43%">- <i><a href="#web">See Website section above</a></i> <br>
+ - the project receives a website address on www.eclipse.org in the format
+ www.eclipse.org/[shortname]/<br>
+ -the website content is checked into the corresponding repository by
+ the project committers <br>
+ Note: Only those committers designated by their project PMC will be
+ granted update rights to the project website CVS. As a bootstrap mechanism,
+ the PMC will have committer access to assist with web maintenance.<br>
+ </td>
+
+ <td width="33%">- a list of which committers have access to the website CVS<br>
+ - the new committers can coordinate the release of their new site with the
+ release of links from the hosting top-level project pages, newsgroups and
+ mailing list pages, etc. </td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+ <td width="11%" >Project description</td>
+ <td width="43%">the project description is modified on the top-level project
+ main page to reflect change in status</td>
+ <td width="33%">- any requested edits to the project description</td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+ <td width="11%" >Proposal archived</td>
+
+ <td width="43%">the successful proposal is archived in the proposal archive</td>
+
+ <td width="33%"> </td>
+ <td width="13%">- none</td>
+ </tr>
+ <tr>
+ <td width="11%" >Newsgroup link on newsgroups page </td>
+
+ <td width="43%">the <a href="#newsgroups">newsgroup</a> is moved from a standalone
+ position on the page to the appropriate Top-Level Project</td>
+ <td width="33%">- any requested edits to the newsgroup description</td>
+
+ <td width="13%">review by PMC </td>
+ </tr>
+ <tr>
+ <td width="11%" >Mailing list name </td>
+ <td width="43%">- typical mailing list names are in the form [shortname]-dev@eclipse.org
+ <br>
+ - when multiple components are developed independently, component lists
+ are created in the form [shortname]-[component] -dev@eclipse.org</td>
+ <td width="33%">- confirmation of list name and/or component list names</td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+ <td width="11%" >Mailing list short description</td>
+ <td width="43%">- the short description appears on the mailing list main page</td>
+ <td width="33%">- short description based on the examples here <a href="http://www.eclipse.org/mail/index.html" target="_blank">http://www.eclipse.org/mail/index.html</a></td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+ <td width="11%" >Mailing list long description </td>
+ <td width="43%">- the long description appears on the introductory page to
+ the individual mailing list </td>
+ <td width="33%">- long description based on the example shown here <a href="http://dev.eclipse.org/mailman/listinfo/platform-dev" target="_blank">http://dev.eclipse.org/mailman/<br>
+ listinfo/platform-dev</a></td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="11%" >Download directory</td>
+
+ <td width="43%">
+ <p>- the project lead will submit the names of one or two committers
+ per project who will receive an account and password on download1.eclipse.org<br>
+ - <i><a href="#downloadspace">see Builds and Downloads above</a></i></p>
+ </td>
+
+ <td width="33%">- names of committers to be granted update rights to the download
+ site </td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+ <td width="11%" >Bugzilla </td>
+ <td width="43%">- Bugzilla product is created with sublisting for each component
+ and component milestone eg. <br>
+ <img src="bugzillacomponent.jpg" width="355" height="113"> <br>
+ </td>
+ <td width="33%">- initial list of components, milestones, and component owners</td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+</table>
+<p></p>
+<p></p>
+</body>
+</html>
diff --git a/dev_process/old_provisioning/old1/projectvalidation.html b/dev_process/old_provisioning/old1/projectvalidation.html
new file mode 100644
index 0000000..d4d0c6e
--- /dev/null
+++ b/dev_process/old_provisioning/old1/projectvalidation.html
@@ -0,0 +1,29 @@
+<html>
+<head>
+<link rel="stylesheet" href="../default_style.css">
+<title>Project Validation Phase Provisioning</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" height="129" >
+ <tr>
+ <td ALIGN=LEFT width="60%"><font class=indextop>project validation phase provisioning</font><br>
+ <font class=indexsub>infrastructure for projects </font></td>
+ <td WIDTH="40%"> </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p><br><font size="+1">
+ Please use the <a href="/org/processes/project_validation_provisioning_request.html">new
+ combination web-form & document</a>.</font>
+ </p>
+ <p>The <a href="projectvalidation-old.html">old version</a> of this
+ document is still available from the archives.
+ </p>
+ </td> </tr>
+</table>
+</body>
+</html>
diff --git a/dev_process/old_provisioning/old1/proposal.jpg b/dev_process/old_provisioning/old1/proposal.jpg
new file mode 100644
index 0000000..b021e32
--- /dev/null
+++ b/dev_process/old_provisioning/old1/proposal.jpg
Binary files differ
diff --git a/dev_process/old_provisioning/old1/toplevelproposal.html b/dev_process/old_provisioning/old1/toplevelproposal.html
new file mode 100644
index 0000000..1a0a87e
--- /dev/null
+++ b/dev_process/old_provisioning/old1/toplevelproposal.html
@@ -0,0 +1,205 @@
+<html>
+<head>
+<link rel="stylesheet" href="../default_style.css">
+<title>Top-Level Project Proposal Provisioning</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" height="129" >
+ <tr>
+ <td ALIGN=LEFT width="60%"><font class=indextop>top-level project proposal
+ provisioning</font><br>
+ <font class=indexsub>infrastructure for projects </font></td>
+ <td WIDTH="40%"> </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p><br>
+ This document describes the infrastructure for Top-Level Project proposals
+ (projects that propose a new PMC) at eclipse.org. The <a href="projectproposal.html">Project
+ Proposal Provisioning</a> document describes the infrastructure for new
+ projects under an existing Top-Level Project. These documents follow the
+ Eclipse Project Lifecyle as described in the <a href="../org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf">Eclipse
+ Development Process</a> and are intended to complement the information
+ provided there. In general all inquiries related to project provisioning
+ can be sent to the <a href="mailto:emo@eclipse.org">EMO</a> .<br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ Eclipse top-level project proposal review infrastructure</font></b></td>
+ </TR>
+ <tr>
+ <td> <img src="proposal.jpg"></td>
+ <td> When a declaration is made to the EMO, the initiating individual works
+ with a PMC to create a proposal which begins the proposal phase. See the
+ <a href="main.html">Project Provisioning</a> document and review archives
+ of previous successful proposals on the <a href="../proposals/main.html">Proposals</a>
+ page for more details about this process. During the proposal phase the
+ project is provisioned with two items:<br>
+ <br>
+ 1 - a website in the proposals directory on eclipse.org, and <br>
+ 2 - a <a href="#newsgroups">newsgroup</a> to open discussions. <br>
+ <br>
+ Please consult the <a href="#checklist">checklist</a> below for items required
+ to create the proposal website and the newsgroup. Each of the deliverables
+ can be emailed to the <a href="mailto:emo@eclipse.org">EMO</a>. <br>
+ <br>
+ At the end of the Proposal Phase is the <a href="#creationreview">Creation
+ Review</a>. During the proposal phase you may consider an <a href="#pr">Announcment
+ Press Release</a>, or you may decide to do the release after the Creation
+ Review and as part of the launch of the <a href="toplevelvalidation.html">Top-Level
+ Project Validation</a> phase. <br>
+ </td> </tr>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="newsgroups"></a>Proposal newsgroups </font></b></td>
+ </TR>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td colspan "4"> In this phase, the newsgroup is created last for several
+ reasons. Many newsreaders actively inform their users of the existance of
+ a new newsgroup so when we first created all the infrastructure in a single
+ big bang, the project leaders didn't have enough time to populate the main
+ web page of the proposal before it was "pre-announced" by the
+ newsreader software. We now wait for the main web page to be complete before
+ the newsgroups are created. We then post an initial message, inviting people
+ to visit the newly created project page to learn more about the project.
+ <br>
+</td>
+</tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="pr"></a>Announcement press release </font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="0">
+<tr>
+ <td colspan="4" width="100%">
+ <p>The press release is optional. The release could be issued by the Foundation,
+ or it could be a joint release with the project's stakeholders, and includes
+ Q&A's, messages and preparation of the stakeholder spokespeople. The
+ discipline of creating a press release ensures that all stakeholders have
+ agreed on messages, positioning and have identified spokepersons.<br>
+ <br>
+ If you do decide to issue a press release, the Eclipse Foundation Marketing
+ Director can help you coordinate the announcement. (Email the <a href="mailto:emo@eclipse.org">EMO</a>
+ for further information.)<br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="creationreview"></a>Creation review </font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="0">
+<tr>
+ <td colspan="4" width="100%">
+ <p>The creation review is scheduled roughly one to two months after the
+ proposal is made public to ensure sufficient time to receive and respond
+ to feedback received from the community. The creation review meeting will
+ include members of the proposed Top-Level Project PMC, representatives
+ from the existing eclipse PMCs and the Eclipse Foundation. The review
+ format is teleconference, and is open to the eclipse membership at large.
+ Notifications of creation review meetings are sent to the eclipse membership
+ mailing list by the EMO. <br>
+ <br>
+ The two key criteria in successfully passing the creation review are:
+ <ol>
+ <li>does the project have a community of contributors and committers who
+ are willing to work towards making this a success? <br>
+ </li>
+ <li>does the project have a technology scope and focus which will have
+ a reasonable likelihood of success</li>
+ </ol>
+ <p> Although the creation review is a relatively informal meeting, the proposed
+ top-level PMC lead will be expected to make a brief presentation to the
+ review committee. The presentation should include a brief summary of the
+ project proposal, in addition to comments about the community response
+ to the proposal, current project participants, initial implementation
+ focus and future directions. The presentation slides will be posted to
+ the proposal site before the review. You can view previous sucessful creation
+ review slide presentations in the <a href="../proposals/main.html">Proposal
+ Archives</a>. <br>
+ <br>
+ Upon a successful review the EMO will recommend creation of the project
+ for the Eclipse Foundation Board of Director's final approval.
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="checklist"></a>Top-Level project proposal provisioning checklist
+ </font></b></td>
+ </TR>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="1">
+ <tr>
+ <td width="21%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="23%"><b> Description</b></td>
+ <td width="43%"><b>Project team deliverable</b></td>
+ <td width="13%"><b>Review by</b></td>
+ </tr>
+ <tr>
+ <td width="21%" >Proposal published on static web pages </td>
+ <td width="23%">pages published in eclipse.org/proposals directory, linked
+ from proposals main page</td>
+ <td width="43%">-HTML documents (where possible) <br>
+ - in this stage no access is granted to the static webpages, therefore an
+ approved draft for posting should be delivered 48 hours before launch date.
+ The project team then has a one-day cycle to review the proposal as it will
+ be published. </td>
+ <td width="13%">EMO</td>
+ </tr>
+ <tr>
+ <td width="21%" >Project Short Name</td>
+ <td width="23%">The name for the proposal subdirectory on which the newsgroup,
+ mailing list, and CVS addresses will be based </td>
+ <td width="43%">- a 3-6 character short name or acronym for the project title
+ </td>
+ <td width="13%">EMO </td>
+ </tr>
+ <tr>
+ <td width="21%" >Project Description</td>
+ <td width="23%">a brief description of the project (1 paragraph) for the proposals
+ page </td>
+ <td width="43%">- a one paragraph description of the proposed project</td>
+ <td width="13%">EMO </td>
+ </tr>
+ <tr>
+ <td width="21%" >Newsgroup</td>
+ <td width="23%">the initial newsgroup for soliciting feedback on the proposal</td>
+ <td width="43%">- confirmation of newsgroup name in format news://news.eclipse.org/<br>
+ eclipse.[top-level project].[shortname}<br>
+ - the newsgroup is the last item to be released on launch day<br>
+ - the preparation cycle is 3-6 hours, therefore a confirmed name 24 hours
+ before the launch is preferred. </td>
+ <td width="13%">EMO </td>
+ </tr>
+ <tr>
+ <td width="21%" >Newsgroup description </td>
+ <td width="23%">3 line newsgroup description that appears on the <a href="../newsgroups/index.html" target="_top">Newsgroups
+ main page </a></td>
+ <td width="43%">- newsgroup description/invitation to participate</td>
+ <td width="13%">EMO</td>
+ </tr>
+
+</table>
+
+
+</body>
+</html>
diff --git a/dev_process/old_provisioning/old1/toplevelvalidation.html b/dev_process/old_provisioning/old1/toplevelvalidation.html
new file mode 100644
index 0000000..74a31c6
--- /dev/null
+++ b/dev_process/old_provisioning/old1/toplevelvalidation.html
@@ -0,0 +1,431 @@
+<html>
+<head>
+<link rel="stylesheet" href="../default_style.css">
+<title>Top-Level Project Provisioning</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" height="129" >
+ <tr>
+ <td ALIGN=LEFT width="67%"><font class=indextop>top-level project validation
+ phase provisioning</font><br>
+ <font class=indexsub>infrastructure for projects </font></td>
+ <td WIDTH="33%"> </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p><br>
+ This document describes the infrastructure for new Top-Level Projects
+ (projects that propose a new PMC) that have completed a sucessful creation
+ review and are beginning the validation phase of their project at eclipse.org.
+ The <a href="projectvalidation.html">Project Validation Phase Provisioning</a>
+ document describes the infrastructure for new projects under an existing
+ Top-Level Project. These documents follow the Eclipse Project Lifecyle as described
+ in the <a href="../org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf">Eclipse
+ Development Process</a> and are intended to complement the information
+ provided there. In general all inquiries related to project provisioning
+ can be sent to the <a href="mailto:emo@eclipse.org">EMO</a> .<br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ Eclipse Top-Level project validation phase infrastructure</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="0">
+<tr>
+ <td> <img src="validation.jpg" width="180" height="310"></td>
+ <td width="100%">
+ <p>After a successful Creation Review, the project enters the Validation
+ Phase and additional infrastructure is created to support the initial
+ work on the project:</p>
+ <ul>
+ <li>CVS commit rights</li>
+ <li> CVS component structure</li>
+ <li>download site </li>
+ <li>a developer mailing list and</li>
+ <li> the project website<br>
+ </li>
+ </ul>
+ Please consult the <a href="#checklist">checklist</a> below for items
+ required to implement this core infrastructure. Each of the deliverables
+ can be emailed to the <a href="mailto:emo@eclipse.org">EMO</a>.
+ <p>The project is 'created' in two steps: </p>
+ <ol>
+ <li>CVS, user accounts, mailing-list, master home page (links to your
+ page in the <a href="#web">website CVS</a>), <a href="#downloadspace">download
+ space</a> on download.eclipse.org, and bugzilla </li>
+ <li> Developer mailing lists, hosting Top-Level Project main page and any additional
+ <a href="#newsgroups">newsgroups</a> are then connected to your
+ project making it "live".</li>
+ </ol>
+
+ <p> This ensures that all the core infrastructure is ready and that the
+ data and an initial project structure are in place, before the project
+ goes 'live". <br>
+ <br>
+ Ongoing <a href="#changes">changes</a> to the project's core infrastructure
+ are expected especially during the Validation Phase, as the project matures.
+ Please consult the <a href="changes.html">Project Implementation Phase
+ Provisioning</a> document for pointers on how to implement these changes.
+ </p>
+ </td> </tr>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="newsgroups"></a>Project newsgroup</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p>At this stage, the proposal newsgroup can be repositioned as the project
+ newsgroup, or the team can archive the existing newsgroup (so it becomes
+ read-only) and start a new project newsgroup. <br><br>
+ </p>
+ </td>
+</tr>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ </font><a name="web"></a><font face="Arial,Helvetica" color="#FFFFFF">Project
+ website</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+
+ <tr>
+ <td>
+ <p>Each project has a web presense on www.eclipse.org. The content for
+ a project web pages is stored in a separate CVS repository on dev.eclipse.org.
+ The repository is automatically checked out to www.eclipse.org, and
+ thereby enables website authors to use HTML and PHP to author websites
+ directly on www.eclipse.org, does not require viewcvs, and paves the
+ way for an eventual MySQL database backend. Only those committers
+ designated by their project PMC will be granted update rights to the
+ project website CVS. As a bootstrap mechanism, the PMC will have committer
+ access to assist with web maintenance.<br>
+ <br>
+ A directory of the form <b>www.eclipse.org/[shortname]</b> will be
+ created by the webmaster for each new project. This also becomes the
+ url for the project home page. A default index.html page containing
+ the required frames is created in the website CVS repository. </p>
+ <p>Here's how it works:</p>
+ <p>1 - In Eclipse, create a new CVS Repository location:</p>
+ <blockquote>
+ <blockquote>
+ <p><b>Server</b>: dev.eclipse.org<br>
+ <b>Path</b>: /home/cvs/org.eclipse<br>
+ <b>Username/Password</b>: your committer credentials are also used
+ for website authoring<br>
+ <b>Website url</b>: www.eclipse.org/[shortname]</p>
+ </blockquote>
+ </blockquote>
+ <p>2 - Checkout the "www" project, and you will see the project directories.
+ Each of these directories has a single index.html file that sets up
+ the frames and opens up main.html.<br>
+ <br>
+ 3 - It may take up to one minute to transfer committed content to
+ www.eclipse.org but essentially committed changes are live.</p>
+
+ <p>There are some images which you may use in your web pages. These can
+ be viewed at www.eclipse.org/images. </p>
+
+ <p>The Tools and Technology Top-Level Projects have modelled the following
+ conventions for project websites. </p>
+ <table width="75%" border="1">
+ <tr>
+ <td>
+ <div align="center"><b>Filename</b></div>
+ </td>
+ <td>
+ <div align="center"><b>Purpose</b></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/main.html</div>
+ </td>
+ <td>
+ <div align="center">the content for the main project page </div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/faq.html</div>
+ </td>
+ <td>
+ <div align="center">the project faq page</div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/download.html</div>
+ </td>
+ <td>
+ <div align="center">the project downloads page</div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/plan.html</div>
+ </td>
+ <td>
+ <div align="center">the project plan page</div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table><p></p>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><a name="downloadspace"></a><font face="Arial,Helvetica" color="#FFFFFF">Builds
+ and downloads</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+
+ <tr>
+ <td>
+ <p><b>Builds </b><br>
+ The project leads are responsible for builds and maintenance on eclipse.org.
+ The frequency of these is dependent on the project needs. For more information
+ see: </p>
+ <blockquote>
+ <p>Eclipse project development - <a href="http://www.eclipse.org/eclipse/development/main.html">http://www.eclipse.org/eclipse/development/main.html</a><br>
+ Platform release engineering - <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-releng-home/main.html">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-releng-home/main.html</a></p>
+ </blockquote>
+ <b>Downloads </b><br>
+ The project lead and their appointed committers will receive an account
+ and password on download1.eclipse.org which is a high-bandwidth download
+ server. For projects under the Tools Top-Level Project, for example, the directory will
+ be /home/www/tools/xyz. For mirroring purposes, however, the link to download
+ a file is http://www.eclipse.org/downloads/download.php?file=/tools/xyz/fileName.
+ This will allow mirror site selection based on the file requested. We ask
+ that you not link directly to "download.eclipse.org" or "download1.eclipse.org"
+ <p>Because the downloads space is mirrored to several servers worldwide,
+ we ask you use this space wisely, taking extra care when placing large
+ files in this space, and performing regular file cleanups. Large directories
+ use bandwidth while mirroring and deter new mirror sites because of high
+ disk space requirements. Also, HTML and PHP files must not be placed on
+ the download server.</p>
+ <p>Uploads to this space are via SFTP (preferred) or FTP. Use any SFTP client,
+ such as CoreFTP, to connect to download1.eclipse.org. Although you are
+ connecting to download1.eclipse.org, links to files must be done to download.eclipse.org.
+ <br>
+ <br>
+ RSYNC transfers can be arranged. Please consult the <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a>
+ for details on setting this up.</p>
+ </td>
+ </tr>
+ </table><p></p>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><a name="changes"></a><font face="Arial,Helvetica" color="#FFFFFF">Changes
+ </font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p><b> For more information see the <a href="changes.html">Project Implementation
+ Phase Provisioning</a> document. <br>
+ <br>
+ Getting changes to your infrastructure</b></p>
+ <p>If you need changes to your infrastructure, you need to send an email
+ to webmaster@eclipse.org or to the emo@eclipse.org. In general things
+ like password reset and creating new components are taken care of by the
+ webmaster. Other content related changes such as changes to web elements
+ on www.eclipse.org should be sent to <a href="mailto:emo@eclipse.org">emo@eclipse.org</a>.
+ When sending requests, please clearly identify the Top-Level Project and
+ Project you are working on so that requests that require PMC approval
+ or clarification can be properly routed to the correct PMC by the infrastructure
+ team.</p>
+ <p><b>Changes to your committers list</b><br>
+ Changes to the committers list, including adding new committers, is done
+ through <a href="mailto:emo@eclipse.org">emo@eclipse.org</a>. We also
+ track the committer's address and contact information. We use these lists
+ to determine the developer's voting rights on eclipse.org, so please help
+ us to keep them up to date! For more information see the <a href="changes.html">Project
+ Implementation Phase Provisioning</a> document. <br>
+ <br>
+ </p>
+ </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="checklist"></a>Top-Level project validation phase provisioning
+ checklist</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="1">
+ <tr>
+ <td width="16%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="38%"><b> Description</b></td>
+ <td width="32%"><b>Project team deliverable</b></td>
+ <td width="14%"><b>Review by</b></td>
+ </tr>
+ <tr>
+ <td width="16%" >Committers list</td>
+ <td width="38%">
+ <p>A list of the initial committers for the project.<br>
+ </p>
+ </td>
+ <td width="32%">A list of the initial committers with the following information:<br>
+ - name of the project and new top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - if available, the list of CVS components or modules to which the committer
+ will have update privileges</td>
+ <td width="14%">- nominated by PMC <br>
+ - approved by EMO </td>
+ </tr>
+ <tr>
+
+ <td width="16%" >Committer Guidelines, Agreement, Questionnaire and Employer
+ Consent </td>
+
+ <td width="38%">
+ <p>The EMO is responsible for ensuring that documentation is in place
+ for new committers. <br>
+ <br>
+ Once the documentation is in place, the EMO will contact the webmaster
+ to provide the appropriate accesses to the new committers. </p>
+ </td>
+ <td width="32%">
+ <p>- the project team may appoint a single contact to assist the new
+ committers in completing the required documentation</p>
+ <p> </p>
+ </td>
+ <td width="14%"> </td>
+ </tr>
+ <tr>
+ <td width="16%" >List of initial CVS components</td>
+
+ <td width="38%">Typical components are:<br>
+ org.eclipse.[shortname].[component]<br>
+ <p> </p>
+ </td>
+
+ <td width="32%">- a list of components along with a list of committers who
+ will have access to each component<br>
+ <br>
+ </td>
+
+ <td width="14%">submitted by PMC and reviewed by EMO</td>
+ </tr>
+ <tr>
+
+ <td width="16%" >Project website moves to website CVS</td>
+
+ <td width="38%">- <i><a href="#web">See Website section above</a></i> <br>
+ - the project receives a website address on www.eclipse.org in the format
+ www.eclipse.org/[shortname]/<br>
+ -the website content is checked into the corresponding repository by
+ the project committers <br>
+ Note: Only those committers designated by their project PMC will be
+ granted update rights to the project website CVS. As a bootstrap mechanism,
+ the PMC will have committer access to assist with web maintenance.<br>
+ </td>
+
+ <td width="32%">- a list of which committers have access to the website CVS<br>
+ - the new committers can coordinate the release of their new site with the
+ release of links from the project main page, newsgroups and mailing list
+ pages, etc. </td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Project description</td>
+
+ <td width="38%">the project description is modified on the project main page
+ (www.eclipse.org/projects/index.html) to reflect change in status</td>
+ <td width="32%">- any requested edits to the project description</td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Proposal archived</td>
+
+ <td width="38%">the successful proposal is archived in the proposal archive</td>
+ <td width="32%">- none</td>
+
+ <td width="14%"> </td>
+ </tr>
+ <tr>
+ <td width="16%" >Newsgroup link on newsgroups page </td>
+
+ <td width="38%">the <a href="#newsgroups">newsgroup</a> is moved from a standalone
+ position on the page a new top-level project section </td>
+ <td width="32%">- any requested edits to the newsgroup description</td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Mailing list name </td>
+ <td width="38%">- typical mailing list names are in the form [shortname]-dev@eclipse.org
+ <br>
+ - when multiple components are developed independently, component lists
+ are created in the form [shortname]-[component] -dev@eclipse.org</td>
+ <td width="32%">- confirmation of list name and/or component list names</td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Mailing list short description</td>
+ <td width="38%">- the short description appears on the mailing list main page</td>
+ <td width="32%">- short description based on the examples here <a href="http://www.eclipse.org/mail/index.html" target="_blank">http://www.eclipse.org/mail/index.html</a></td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Mailing list long description </td>
+ <td width="38%">- the long description appears on the introductory page to
+ the individual mailing list </td>
+ <td width="32%">- long description based on the example shown here <a href="http://dev.eclipse.org/mailman/listinfo/platform-dev" target="_blank">http://dev.eclipse.org/mailman/<br>
+ listinfo/platform-dev</a></td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+
+ <td width="16%" >Download directory</td>
+
+ <td width="38%">
+ <p>- the project lead will submit the names of one or two committers
+ per project who will receive an account and password on download1.eclipse.org<br>
+ - <i><a href="#downloadspace">see Downloads above</a></i></p>
+ </td>
+ <td width="32%">- names of committers to be granted update rights to the
+ download site </td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Bugzilla </td>
+ <td width="38%">- Bugzilla product is created with sublisting for each component
+ and component milestone eg. <br>
+ <img src="bugzillacomponent.jpg" width="355" height="113"> <br>
+ </td>
+ <td width="32%">- initial list of components, milestones and component
+ owners</td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+</table>
+<p></p>
+<p></p>
+</body>
+</html>
diff --git a/dev_process/old_provisioning/old1/validation.jpg b/dev_process/old_provisioning/old1/validation.jpg
new file mode 100644
index 0000000..f9e1161
--- /dev/null
+++ b/dev_process/old_provisioning/old1/validation.jpg
Binary files differ
diff --git a/dev_process/old_provisioning/projectimplementation.html b/dev_process/old_provisioning/projectimplementation.html
new file mode 100644
index 0000000..a27a74e
--- /dev/null
+++ b/dev_process/old_provisioning/projectimplementation.html
@@ -0,0 +1,269 @@
+<html><head>
+<link rel="stylesheet" href="../default_style.css"><title>Project Implementation Phase Provisioning</title>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
+<body alink="#ff0000" bgcolor="#ffffff" link="#0000ee" text="#000000" vlink="#551a8b">
+<table border="0" cellpadding="2" cellspacing="5" height="129" width="100%">
+ <tbody><tr>
+ <td align="left" width="60%"><font class="indextop">project implementation phase
+ provisioning</font><br>
+ <font class="indexsub">infrastructure for projects </font></td>
+ <td width="40%"> </td>
+ </tr>
+</tbody></table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody>
+ <tr>
+ <td align="center" valign="top">
+ <p style="border-style: dashed"><b><font face="Arial,Helvetica" size="+1">These
+ pages are out-of-date. <br>
+ Revised and corrected versions of these pages are being developed. <br>
+ Please verify with all information on these pages with the <a href="mailto:emo@eclipse.org">EMO</a>.</font></b></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p><br>
+ This document describes the infrastructure for projects and that are in
+ the validation or implementation phase of their project at eclipse.org.
+ It describes the process for ongoing provisioning activities such as changes
+ to committer lists and updates to Bugzilla components.<br>
+ <br>
+ In general all inquiries related to project provisioning can be sent to the <a href="mailto:emo@eclipse.org">Eclipse Management Organization</a> (EMO). <br>
+ </p>
+ </td> </tr>
+</tbody></table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody><tr bgcolor="#999999">
+
+ <td align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">
+ Eclipse project implementation phase infrastructure</font></b></td>
+ </tr>
+ </tbody>
+</table>
+<table align="top" border="0" cellpadding="3" cellspacing="0" width="100%">
+<tr>
+ <td> <img src="implementation.jpg"></td>
+
+ <td colspan="4" width="100%">
+ <p>If you need changes to your infrastructure, you'll need to send the requests
+ to the webmaster or the EMO. <br>
+ <br>
+ The <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a> should
+ be contacted for:</p>
+ <ul>
+ <li> password reset</li>
+ <li> creating new components</li>
+ <li> changes to Bugzilla components</li>
+ <li> changes to committer component access</li>
+ <li>adding or archiving (read-only) mailing lists</li>
+ <li>adding or archiving (read-only) newsgroups</li>
+ </ul>
+ <p>The <a href="mailto:emo@eclipse.org">emo@eclipse.org</a> should be contacted
+ for: </p>
+ <ul>
+ <li> content related changes such as changes to web elements on www.eclipse.org
+ </li>
+ <li>adding new committers</li>
+ <li>removing committers</li>
+ </ul>
+ <p>When sending requests, please clearly identify the PMC and project you
+ are working on so that requests that require PMC approval or clarification
+ can be properly routed to the correct PMC by the infrastructure team.
+ Please consult the checklist below for items required for implementing
+ provisioning changes. </p>
+ </td>
+ </tr>
+</table>
+<table align="center" cellpadding="3" cellspacing="0" width="100%">
+ <tbody><tr bgcolor="#999999">
+
+ <td align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">
+ Implementation phase provisioning checklist</font></b></td>
+ </tr>
+ </tbody>
+</table>
+<table align="top" border="1" cellpadding="3" cellspacing="0" width="100%">
+ <tr>
+ <td width="19%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="32%"><b> Description</b></td>
+ <td width="34%"><b>Project team deliverable</b></td>
+ <td width="15%"><b>Review by</b></td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding new committers</td>
+ <td width="32%">
+ <p>Once a new committer is voted in (see<b> </b>the individual Top-Level
+ Project Charters for details about voting for new committers) the process
+ is the same as for the initial set of committers. <br>
+ </p>
+ </td>
+
+ <td width="34%">
+ <p>Email <a href="mailto:emo@eclipse.og">emo@eclipse.og</a>, along with the relevant Top-Level PMC approval,
+ the name(s) of the new committers with the following information:<br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which the committer will have update privileges</p>
+ </td>
+
+ <td width="15%">
+ <p>- voted in by relevant project committers<br>
+ - approved by PMC<br>
+ - agreements and information validated by EMO </p>
+ </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Committer Guidelines, Agreement, Questionnaire and Employer
+ Consent </td>
+
+ <td width="32%">
+ <p>The EMO is responsible for ensuring that documentation is in place for
+ new committers. <br>
+ <br>
+ Once the documentation is in place, the EMO will contact the webmaster
+ to provide the appropriate accesses to the new committers. </p>
+ </td>
+ <td width="34%">
+ <p>- the project team may appoint a single contact to assist the new
+ committers in completing the required documentation</p>
+ <p> </p>
+ </td>
+ <td width="15%"> </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Removing committers</td>
+
+ <td width="32%">Removing a committer requires the approval of the PMC.<br>
+ </td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:emo@eclipse.org">emo@eclipse.org</a><br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which commit accesses will be removed</td>
+ <td width="15%">approved by PMC and review by EMO</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changing access privileges on a specific component</td>
+
+ <td width="32%">A committer needs commit-access to a component, or no longer
+ needs commit-access to a component.</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - the list of CVS packages to which commit accesses will change</td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new component to CVS </td>
+
+ <td width="32%">CVS components, or modules, are created as subdirectories
+ in the project's CVS repository location, in the HEAD branch. Component
+ names follow the<i> org.eclipse.component.name</i> naming convention.<br>
+ <p> </p>
+ </td>
+ <td width="34%">Email to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - a list of the new components along with a list of which committers have
+ access to which components <br>
+ - the following format is preferred:<br>
+ <i>module:userid1,iserid2,userid3,userid4...</i><br>
+ - You may also use the formats: <br>
+ <i>module:e@mail,e@mail,e@mail<br>
+ module:Name Surname,Name Surname, Name Surname</i> </td>
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changing access rights to download.eclipse.org</td>
+
+ <td width="32%">Any access rights changes to the downloads area.</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.or">webmaster@eclipse.or</a>g<br>
+ - names of committers to be granted update rights to the download site</td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Changes to content on www.eclipse.org</td>
+
+ <td width="32%">Newsgroup and mailing list main pages, Tools or Technology
+ top-level project pages, and other non-project specific pages</td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - email requested changes to <a href="mailto:emo@eclipse.org">emo@eclipse.rog</a></td>
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new newsgroup</td>
+
+ <td width="32%">One newsgroup is created per project. Newsgroup names follow
+ the convention: eclipse.toplevelname.projectshortname </td>
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - newsgroup name in format news://news.eclipse.org/<br>
+ eclipse.[top-level project].[shortname}<br>
+ - newsgroup description/invitation to participate </td>
+
+ <td width="15%">review by PMC </td>
+ </tr>
+ <tr>
+
+ <td width="19%">Adding a new mailing list</td>
+
+ <td width="32%">Mailing lists are resources used by committers to facilitate
+ group communication. Mail posted to a mailing list is archived and searchable
+ from the website. Normally, a single mailing list is created for a project;
+ however, projects with several components can have several mailing lists.
+ The main project mailing list is normally called projectname-dev, and component
+ lists are called projectname-component. A list of mailing lists can be found
+ here: <a href="https://dev.eclipse.org/mailman/listinfo/">https://dev.eclipse.org/mailman/listinfo/</a></td>
+
+ <td width="34%">Email the following information, along with the relevant Top-Level
+ PMC approval to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a><br>
+ - long description based on the example shown here <a href="http://dev.eclipse.org/mailman/listinfo/platform-dev" target="_blank">http://dev.eclipse.org/mailman/<br>
+ listinfo/platform-dev</a><br>
+ - short description based on the examples here <a href="http://www.eclipse.org/mail/index.html" target="_blank">http://www.eclipse.org/mail/index.html</a></td>
+
+ <td width="15%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="19%">Archiving a newsgroup or mailing list </td>
+ <td width="32%">Newsgroup content, as well as e-mails sent to a mailing list
+ are archived and searchable from the eclipse.org website. The newsgroup
+ or mailing list becomes read-only. </td>
+ <td width="34%">- request to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a></td>
+
+ <td width="15%">review by PMC</td>
+</table>
+<table align="top" border="0" cellpadding="3" cellspacing="0" width="100%">
+ <tr>
+ <td >
+ <p><b>Send us updates to your committers list!</b><br>
+ The committer lists are used to determine the developer's voting rights
+ on eclipse.org, so please help us to keep them up to date! Information
+ includes the committer's address and contact information. Send any
+ changes or updates to the committers list, including adding new committers,
+ to the <a href="mailto:emo@eclipse.org">EMO</a>. <br>
+ <br>
+ </p>
+ </td>
+ </tr>
+</table>
+<p></p>
+<p></p>
+</body></html>
\ No newline at end of file
diff --git a/dev_process/old_provisioning/projectproposal.html b/dev_process/old_provisioning/projectproposal.html
new file mode 100644
index 0000000..f50226a
--- /dev/null
+++ b/dev_process/old_provisioning/projectproposal.html
@@ -0,0 +1,194 @@
+<html>
+<head>
+<link rel="stylesheet" href="../default_style.css">
+<title>Project Proposal Provisioning</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" height="129" >
+ <tr>
+ <td ALIGN=LEFT width="60%"><font class=indextop>project proposal provisioning</font><br>
+ <font class=indexsub>project proposal provisioning </font></td>
+ <td WIDTH="40%"> </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td align="center" valign="top">
+ <p style="border-style: dashed"><b><font face="Arial,Helvetica" size="+1">These
+ pages are out-of-date. <br>
+ Revised and corrected versions of these pages are being developed. <br>
+ Please verify with all information on these pages with the <a href="mailto:emo@eclipse.org">EMO</a>.</font></b></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p><br>
+ This document describes the infrastructure for Project Proposals (proposals
+ for new projects within an existing Top-Level Project) at eclipse.org. The <a href="toplevelproposal.html">Top-Level
+ Project Proposal Provisioning</a> document describes the process for projects
+ that propose a new PMC. These documents follow the Eclipse Project Lifecyle
+ as described in the <a href="../org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf">Eclipse
+ Development Process</a> and are intended to complement the information
+ provided there. In general all inquiries related to project provisioning
+ can be sent to the <a href="mailto:emo@eclipse.org">EMO</a> . <br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ Eclipse project proposal review infrastructure</font></b></td>
+ </TR>
+ <tr>
+ <td> <img src="proposal.jpg" width="180" height="310"></td>
+ <td>
+ <p>When a declaration is made to the EMO, the initiating individual works
+ with a PMC to create a proposal which begins the proposal phase. See the
+ <a href="main.html">Project Provisioning</a> document and review archives
+ of previous successful proposals on the <a href="../proposals/main.php">Proposals</a>
+ page for more details about this process. During the proposal phase the
+ project is provisioned with two items:<br>
+ <br>
+ 1 - a website in the proposals directory on eclipse.org, and <br>
+ 2 - a <a href="#newsgroups">newsgroup</a> to open discussions. <br>
+ <br>
+ Please consult the <a href="#checklist">checklist</a> below for items
+ required to create the proposal website and the newsgroup. Each of the
+ deliverables can be emailed to the <a href="mailto:emo@eclipse.org">EMO</a>.
+ <br>
+ <br>
+ At the end of the Proposal Phase is the <a href="#creationreview">Creation
+ Review</a>. During the proposal phase you may consider an <a href="#pr">Announcment
+ Press Release</a>, or you may decide to do the release after the Creation
+ Review and as part of the launch of the <a href="projectvalidation.html">Project
+ Validation</a> phase. <br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="newsgroups"></a>Proposal newsgroups</font></b></td>
+ </TR>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td colspan "4"> In this phase, the newsgroup is created last for several
+ reasons. Many newsreaders actively inform their users of the existance of
+ a new newsgroup so when we first created all the infrastructure in a single
+ big bang, the project leaders didn't have enough time to populate the main
+ web page of the proposal before it was "pre-announced" by the
+ newsreader software. We now wait for the main web page to be complete before
+ the newsgroups are created. We then post an initial message, inviting people
+ to visit the newly created project page to learn more about the project.
+ <br>
+</td>
+</tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="creationreview"></a>Creation review </font></b></td>
+ </TR>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="0">
+<tr>
+ <td colspan="4" width="100%">
+ <p>The creation review is scheduled roughly one to two months after the
+ proposal is made public to ensure sufficient time to receive and respond
+ to feedback received from the community. The creation review meeting will
+ include the proposed project lead, members of the hosting Top-Level Project
+ PMC and staff of the Eclipse Foundation. The review format is teleconference,
+ and is open to the eclipse membership at large (but not the general public).
+ Notifications of creation review meetings are sent to the eclipse membership
+ mailing list by the EMO. <br>
+ <br>
+ The two key criteria in successfully passing the creation review are:
+ <ol>
+ <li>does the project have a community of contributors and committers who
+ are willing to work towards making this a success? <br>
+ </li>
+ <li>does the project have a technology scope and focus which will have
+ a reasonable likelihood of success</li>
+ </ol>
+ <p> Although the creation review is a relatively informal meeting, the proposed
+ project leads will be expected to make a brief presentation to the review
+ committee. The presentation should include a brief summary of the project
+ proposal, in addition to comments about the community response to the
+ proposal, current project participants, initial implementation focus and
+ future directions. The presentation slides will be posted to the proposal
+ site before the review. You can view previous sucessful creation review
+ slide presentations in the <a href="../proposals/main.html">Proposal Archives</a>.
+ <br>
+ <br>
+ Upon a successful review the PMC will recommend creation of the project
+ for the EMO's final approval.
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="checklist"></a>Project proposal provisioning checklist </font></b></td>
+ </TR>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="1">
+ <tr>
+ <td width="21%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="23%"><b> Description</b></td>
+ <td width="43%"><b>Project team deliverable</b></td>
+ <td width="13%"><b>Review by</b></td>
+ </tr>
+ <tr>
+ <td width="21%" >Proposal published on static web pages </td>
+ <td width="23%">pages published in eclipse.org/proposals directory, linked
+ from projects main page</td>
+ <td width="43%">-HTML documents (where possible) <br>
+ - in this stage no access is granted to the static webpages, therefore an
+ approved draft for posting should be delivered 48 hours before launch date.
+ The project team then has a one-day cycle to review the proposal as it will
+ be published. </td>
+ <td width="13%">EMO and PMC </td>
+ </tr>
+ <tr>
+ <td width="21%" >Project Short Name</td>
+ <td width="23%">The name for the proposal subdirectory on which the newsgroup,
+ mailing list, and CVS addresses will be based </td>
+ <td width="43%">- a 3-6 character short name or acronym for the project title
+ </td>
+ <td width="13%">EMO and PMC </td>
+ </tr>
+ <tr>
+ <td width="21%" >Project Description</td>
+ <td width="23%">a brief description of the project (1 paragraph) for the top-level
+ project home page</td>
+ <td width="43%">- one paragraph description of the proposal</td>
+ <td width="13%">EMO and PMC </td>
+ </tr>
+ <tr>
+ <td width="21%" >Newsgroup</td>
+ <td width="23%">the initial newsgroup for soliciting feedback on the proposal</td>
+ <td width="43%">- confirmation of newsgroup name in format news://news.eclipse.org/<br>
+ eclipse.[top-level project].[shortname}<br>
+ - the newsgroup is the last item to be released on launch day<br>
+ - the preparation cycle is 3-6 hours, therefore a confirmed name 24 hours
+ before the launch is preferred. </td>
+ <td width="13%">EMO and PMC </td>
+ </tr>
+ <tr>
+ <td width="21%" >Newsgroup description </td>
+ <td width="23%">3 line newsgroup description that appears on the <a href="../newsgroups/index.html" target="_top">Newsgroups
+ main page </a></td>
+ <td width="43%">- newsgroup description/invitation to participate</td>
+ <td width="13%">EMO and PMC </td>
+ </tr>
+
+</table>
+
+<p></p>
+<p></p>
+</body>
+</html>
diff --git a/dev_process/old_provisioning/projectvalidation-old.html b/dev_process/old_provisioning/projectvalidation-old.html
new file mode 100644
index 0000000..f763b26
--- /dev/null
+++ b/dev_process/old_provisioning/projectvalidation-old.html
@@ -0,0 +1,447 @@
+<html>
+<head>
+<link rel="stylesheet" href="../default_style.css">
+<title>Project Validation Phase Provisioning</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<style>
+body {
+background-image: url('../images/archive.gif');
+background-repeat: repeat-y
+}
+</style>
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" height="129" >
+ <tr>
+ <td ALIGN=LEFT width="60%"><font class=indextop>project validation phase provisioning</font><br>
+ <font class=indexsub>infrastructure for projects </font></td>
+ <td WIDTH="40%"> </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td align="center" valign="top">
+ <p style="border-style: dashed"><b><font face="Arial,Helvetica" size="+1">These
+ pages are out-of-date. <br>
+ Revised and corrected versions of these pages are being developed. <br>
+ Please verify with all information on these pages with the <a href="mailto:emo@eclipse.org">EMO</a>.</font></b></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p><br><font size="+1">
+ Please use the <a href="/org/processes/project_validation_provisioning_request.html">new
+ combination web-form & document</a>.</font>
+ </p>
+ <p>
+ This document describes the infrastructure for projects that have completed
+ a successful Creation Review and are beginning the Validation Phase of
+ their project (under an existing Top-Level Project) at eclipse.org. The <a href="toplevelvalidation.html">Top-Level
+ Project Validation Phase Provisioning</a> document describes the process
+ for projects that propose a new PMC. These documents follow the Eclipse
+ Project Lifecyle as described in the <a href="../org/documents/Eclipse Development Process 2003_11_09 FINAL.pdf">Eclipse
+ Development Process</a> and are intended to complement the information
+ provided there. In general all inquiries related to project provisioning
+ can be sent to the <a href="mailto:emo@eclipse.org">EMO</a> .<br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ Eclipse project validation phase infrastructure</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="0">
+<tr>
+ <td> <img src="validation.jpg" width="180" height="310"></td>
+
+ <td colspan="4" width="100%">
+ <p>After a successful Creation Review, the project enters the Validation
+ Phase and additional infrastructure is created to support the initial
+ work on the project:</p>
+ <ul>
+ <li>CVS commit rights</li>
+ <li> CVS component structure</li>
+ <li>download site </li>
+ <li>a developer mailing list and</li>
+ <li> the project website<br></li>
+ </ul>
+ Please consult the <a href="#checklist">checklist</a> below for items
+ required to implement this core infrastructure. Each of the deliverables
+ can be emailed to the <a href="mailto:emo@eclipse.org">EMO</a>. <br>
+ <br>
+ The project is 'created' in two steps:
+ <ol>
+ <li>CVS, user accounts, mailing-list, master home page (links to your
+ page in the <a href="#web">website CVS</a>), <a href="#downloadspace">download
+ space</a> on download.eclipse.org, and bugzilla </li>
+ <li> Developer mailing lists, hosting Top-Level Project main page and any additional
+ <a href="#newsgroups">newsgroups</a> are then connected to your project
+ making it "live".</li>
+ </ol>
+ <p> This ensures that all the core infrastructure is ready and that the
+ data and an initial project structure are in place, before the project
+ goes 'live". <br>
+ <br>
+ Ongoing <a href="#changes">changes</a> to the project's core infrastructure
+ are expected especially during the Validation Phase, as the project matures.
+ Please consult the <a href="changes.html">Project Implementation Phase
+ Provisioning</a> document for pointers on how to implement these changes.
+ <br>
+ </p>
+ </td>
+</tr>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="newsgroups"></a>Project newsgroup</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p>At this stage, the proposal newsgroup can be repositioned as the project
+ newsgroup, or the team can archive the existing newsgroup (so it becomes
+ read-only) and start a new project newsgroup. <br><br>
+ </p>
+ </td>
+</tr>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ </font><a name="web"></a><font face="Arial,Helvetica" color="#FFFFFF">Project
+ website</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+
+ <tr>
+ <td>
+ <p>Each project has a web presense on www.eclipse.org. The content for a
+ project web pages is stored in a separate CVS repository on dev.eclipse.org.
+ The repository is automatically checked out to www.eclipse.org, and thereby
+ enables website authors to use HTML and PHP to author websites directly
+ on www.eclipse.org, does not require viewcvs, and paves the way for an
+ eventual MySQL database backend. Only those committers designated by their
+ project PMC will be granted update rights to the project website CVS.
+ As a bootstrap mechanism, the PMC will have committer access to assist
+ with web maintenance.<br>
+ <br>
+ A directory of the form <b>www.eclipse.org/[shortname]</b> will be created
+ by the webmaster for each new project. This also becomes the url for the
+ project home page. A default index.html page containing the required frames
+ is created in the website CVS repository. </p>
+ <p>Here's how it works:</p>
+ <p>1 - In Eclipse, create a new CVS Repository location:</p>
+ <blockquote>
+ <blockquote>
+ <p><b>Server</b>: dev.eclipse.org<br>
+ <b>Path</b>: /home/cvs/org.eclipse<br>
+ <b>Username/Password</b>: your committer credentials are also used
+ for website authoring<br>
+ <b>Website url</b>: www.eclipse.org/[shortname]</p>
+ </blockquote>
+ </blockquote>
+ <p>2 - Checkout the "www" project, and you will see the project directories.
+ Each of these directories has a single index.html file that sets up the
+ frames and opens up main.html.<br>
+ <br>
+ 3 - It may take up to one minute to transfer committed content to www.eclipse.org
+ but essentially committed changes are live.</p>
+ <p>There are some images which you may use in your web pages. These can
+ be viewed at www.eclipse.org/images/.
+ </p>
+ <p>The Tools and Technology Top-Level Projects have modelled the following
+ conventions for project websites. </p>
+ <table width="75%" border="1">
+ <tr>
+ <td>
+ <div align="center"><b>Filename</b></div>
+ </td>
+ <td>
+ <div align="center"><b>Purpose</b></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/main.html</div>
+ </td>
+ <td>
+ <div align="center">the content for the main project page </div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/faq.html</div>
+ </td>
+ <td>
+ <div align="center">the project faq page</div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/download.html</div>
+ </td>
+ <td>
+ <div align="center">the project downloads page</div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/plan.html</div>
+ </td>
+ <td>
+ <div align="center">the project plan page</div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table><p></p>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><a name="downloadspace"></a><font face="Arial,Helvetica" color="#FFFFFF">Builds
+ and downloads</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+
+ <tr>
+ <td>
+ <p><b>Builds </b><br>
+ The project leads are responsible for builds and maintenance on eclipse.org.
+ The frequency of these is dependent on the project needs. For more information
+ see: </p>
+ <blockquote>
+ <p>Eclipse project development - <a href="http://www.eclipse.org/eclipse/development/main.html">http://www.eclipse.org/eclipse/development/main.html</a><br>
+ Platform release engineering - <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-releng-home/main.html">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-releng-home/main.html</a></p>
+ </blockquote>
+ <b>Downloads </b><br>
+ The project lead and their appointed committers will receive an account
+ and password on download1.eclipse.org which is a high-bandwidth download
+ server. For projects under the Tools Top-Level Project, for example, the directory will
+ be /home/www/tools/xyz. For mirroring purposes, however, the link to download
+ a file is http://www.eclipse.org/downloads/download.php?file=/tools/xyz/fileName.
+ This will allow mirror site selection based on the file requested. We ask
+ that you not link directly to "download.eclipse.org" or "download1.eclipse.org"
+ <p>Because the downloads space is mirrored to several servers worldwide,
+ we ask you use this space wisely, taking extra care when placing large
+ files in this space, and performing regular file cleanups. Large directories
+ use bandwidth while mirroring and deter new mirror sites because of high
+ disk space requirements. Also, HTML and PHP files must not be placed on
+ the download server.</p>
+ <p>Uploads to this space are via SFTP (preferred) or FTP. Use any SFTP client,
+ such as CoreFTP, to connect to download1.eclipse.org. Although you are
+ connecting to download1.eclipse.org, links to files must be done to download.eclipse.org.
+ <br>
+ <br>
+ RSYNC transfers can be arranged. Please consult the <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a>
+ for details on setting this up.</p>
+ </td>
+ </tr>
+ </table><p></p>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><a name="changes"></a><font face="Arial,Helvetica" color="#FFFFFF">Changes
+ </font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p><b> For more information see the <a href="changes.html">Project Implementation
+ Phase Provisioning</a> document. <br>
+ <br>
+ Getting changes to your infrastructure</b></p>
+ <p>If you need changes to your infrastructure, you need to send an email
+ to webmaster@eclipse.org or to the emo@eclipse.org. In general things
+ like password reset and creating new components are taken care of by the
+ webmaster. Other content related changes such as changes to web elements
+ on www.eclipse.org should be sent to <a href="mailto:emo@eclipse.org">emo@eclipse.org</a>.
+ When sending requests, please clearly identify the Top-Level Project and
+ Project you are working on so that requests that require PMC approval
+ or clarification can be properly routed to the correct PMC by the infrastructure
+ team.</p>
+ <p><b>Changes to your committers list</b><br>
+ Changes to the committers list, including adding new committers, is done
+ through <a href="mailto:emo@eclipse.org">emo@eclipse.org</a>. We also
+ track the committer's address and contact information. We use these lists
+ to determine the developer's voting rights on eclipse.org, so please help
+ us to keep them up to date! For more information see the <a href="changes.html">Project
+ Implementation Phase Provisioning</a> document. <br>
+ <br>
+ </p>
+ </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="checklist"></a>Project validation phase provisioning checklist
+ </font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="1">
+ <tr>
+ <td width="11%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="43%"><b> Description</b></td>
+ <td width="33%"><b>Project team deliverable</b></td>
+ <td width="13%"><b>Review by</b></td>
+ </tr>
+ <tr>
+ <td width="11%" >Committers list</td>
+ <td width="43%">
+ <p>A list of the initial committers for the project.<br>
+ </p>
+ </td>
+
+ <td width="33%">A list of the initial committers with the following information:<br>
+ - name of the project and hosting top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - if available, the list of CVS components or modules to which the committer
+ will have update privileges</td>
+ <td width="13%">- nominated by PMC <br>
+ - approved by EMO </td>
+ </tr>
+ <tr>
+
+ <td width="11%" >Committer Guidelines, Agreement, Questionnaire and Employer
+ Consent </td>
+
+ <td width="43%">
+ <p>The EMO is responsible for ensuring that documentation is in place for
+ new committers. <br>
+ <br>
+ Once the documentation is in place, the EMO will contact the webmaster
+ to provide the appropriate accesses to the new committers. </p>
+ </td>
+ <td width="33%">
+ <p>- the project team may appoint a single contact to assist the new
+ committers in completing the required documentation</p>
+ <p> </p>
+ </td>
+ <td width="13%"> </td>
+ </tr>
+ <tr>
+ <td width="11%" >List of initial CVS components or modules</td>
+
+ <td width="43%">
+ <p>Typical components are:<br>
+ org.eclipse.[shortname].[component]<br>
+ </p>
+ </td>
+
+ <td width="33%">- a list of components along with a list of committers who
+ will have access to each component<br>
+ </td>
+ <td width="13%">review by PMC and EMO</td>
+ </tr>
+ <tr>
+
+ <td width="11%" >Project website moves to website CVS</td>
+
+ <td width="43%">- <i><a href="#web">See Website section above</a></i> <br>
+ - the project receives a website address on www.eclipse.org in the format
+ www.eclipse.org/[shortname]/<br>
+ -the website content is checked into the corresponding repository by
+ the project committers <br>
+ Note: Only those committers designated by their project PMC will be
+ granted update rights to the project website CVS. As a bootstrap mechanism,
+ the PMC will have committer access to assist with web maintenance.<br>
+ </td>
+
+ <td width="33%">- a list of which committers have access to the website CVS<br>
+ - the new committers can coordinate the release of their new site with the
+ release of links from the hosting top-level project pages, newsgroups and
+ mailing list pages, etc. </td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+ <td width="11%" >Project description</td>
+ <td width="43%">the project description is modified on the top-level project
+ main page to reflect change in status</td>
+ <td width="33%">- any requested edits to the project description</td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+ <td width="11%" >Proposal archived</td>
+
+ <td width="43%">the successful proposal is archived in the proposal archive</td>
+
+ <td width="33%"> </td>
+ <td width="13%">- none</td>
+ </tr>
+ <tr>
+ <td width="11%" >Newsgroup link on newsgroups page </td>
+
+ <td width="43%">the <a href="#newsgroups">newsgroup</a> is moved from a standalone
+ position on the page to the appropriate Top-Level Project</td>
+ <td width="33%">- any requested edits to the newsgroup description</td>
+
+ <td width="13%">review by PMC </td>
+ </tr>
+ <tr>
+ <td width="11%" >Mailing list name </td>
+ <td width="43%">- typical mailing list names are in the form [shortname]-dev@eclipse.org
+ <br>
+ - when multiple components are developed independently, component lists
+ are created in the form [shortname]-[component] -dev@eclipse.org</td>
+ <td width="33%">- confirmation of list name and/or component list names</td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+ <td width="11%" >Mailing list short description</td>
+ <td width="43%">- the short description appears on the mailing list main page</td>
+ <td width="33%">- short description based on the examples here <a href="http://www.eclipse.org/mail/index.html" target="_blank">http://www.eclipse.org/mail/index.html</a></td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+ <td width="11%" >Mailing list long description </td>
+ <td width="43%">- the long description appears on the introductory page to
+ the individual mailing list </td>
+ <td width="33%">- long description based on the example shown here <a href="http://dev.eclipse.org/mailman/listinfo/platform-dev" target="_blank">http://dev.eclipse.org/mailman/<br>
+ listinfo/platform-dev</a></td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+
+ <td width="11%" >Download directory</td>
+
+ <td width="43%">
+ <p>- the project lead will submit the names of one or two committers
+ per project who will receive an account and password on download1.eclipse.org<br>
+ - <i><a href="#downloadspace">see Builds and Downloads above</a></i></p>
+ </td>
+
+ <td width="33%">- names of committers to be granted update rights to the download
+ site </td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+ <tr>
+ <td width="11%" >Bugzilla </td>
+ <td width="43%">- Bugzilla product is created with sublisting for each component
+ and component milestone eg. <br>
+ <img src="bugzillacomponent.jpg" width="355" height="113"> <br>
+ </td>
+ <td width="33%">- initial list of components, milestones, and component owners</td>
+
+ <td width="13%">review by PMC</td>
+ </tr>
+</table>
+<p></p>
+<p></p>
+</body>
+</html>
diff --git a/dev_process/old_provisioning/projectvalidation.html b/dev_process/old_provisioning/projectvalidation.html
new file mode 100644
index 0000000..d4d0c6e
--- /dev/null
+++ b/dev_process/old_provisioning/projectvalidation.html
@@ -0,0 +1,29 @@
+<html>
+<head>
+<link rel="stylesheet" href="../default_style.css">
+<title>Project Validation Phase Provisioning</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" height="129" >
+ <tr>
+ <td ALIGN=LEFT width="60%"><font class=indextop>project validation phase provisioning</font><br>
+ <font class=indexsub>infrastructure for projects </font></td>
+ <td WIDTH="40%"> </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p><br><font size="+1">
+ Please use the <a href="/org/processes/project_validation_provisioning_request.html">new
+ combination web-form & document</a>.</font>
+ </p>
+ <p>The <a href="projectvalidation-old.html">old version</a> of this
+ document is still available from the archives.
+ </p>
+ </td> </tr>
+</table>
+</body>
+</html>
diff --git a/dev_process/old_provisioning/proposal.jpg b/dev_process/old_provisioning/proposal.jpg
new file mode 100644
index 0000000..b021e32
--- /dev/null
+++ b/dev_process/old_provisioning/proposal.jpg
Binary files differ
diff --git a/dev_process/old_provisioning/toplevelproposal.html b/dev_process/old_provisioning/toplevelproposal.html
new file mode 100644
index 0000000..fcf2c7c
--- /dev/null
+++ b/dev_process/old_provisioning/toplevelproposal.html
@@ -0,0 +1,218 @@
+<html>
+<head>
+<link rel="stylesheet" href="../default_style.css">
+<title>Top-Level Project Proposal Provisioning</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" height="129" >
+ <tr>
+ <td ALIGN=LEFT width="60%"><font class=indextop>top-level project proposal
+ provisioning</font><br>
+ <font class=indexsub>infrastructure for projects </font></td>
+ <td WIDTH="40%"> </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <table width="100%" cellspacing="3" cellpadding="2">
+ <tr>
+ <td align="center" valign="top" colspan="2">
+ <p style="border-style: dashed"><b><font face="Arial,Helvetica" size="+1">These
+ pages are out-of-date. <br>
+ Revised and corrected versions of these pages are being developed. <br>
+ Please verify with all information on these pages with the <a href="mailto:emo@eclipse.org">EMO</a>.</font></b></p>
+ </td>
+ </tr>
+ </table>
+ </td> </tr>
+ <tr>
+ <td>
+ <p><br>
+ This document describes the infrastructure for Top-Level Project proposals
+ (projects that propose a new PMC) at eclipse.org. The <a href="projectproposal.html">Project
+ Proposal Provisioning</a> document describes the infrastructure for new
+ projects under an existing Top-Level Project. These documents follow the
+ Eclipse Project Lifecyle as described in the <a href="../org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf">Eclipse
+ Development Process</a> and are intended to complement the information
+ provided there. In general all inquiries related to project provisioning
+ can be sent to the <a href="mailto:emo@eclipse.org">EMO</a> .<br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ Eclipse top-level project proposal review infrastructure</font></b></td>
+ </TR>
+ <tr>
+ <td> <img src="proposal.jpg"></td>
+ <td> When a declaration is made to the EMO, the initiating individual works
+ with a PMC to create a proposal which begins the proposal phase. See the
+ <a href="main.html">Project Provisioning</a> document and review archives
+ of previous successful proposals on the <a href="../proposals/main.html">Proposals</a>
+ page for more details about this process. During the proposal phase the
+ project is provisioned with two items:<br>
+ <br>
+ 1 - a website in the proposals directory on eclipse.org, and <br>
+ 2 - a <a href="#newsgroups">newsgroup</a> to open discussions. <br>
+ <br>
+ Please consult the <a href="#checklist">checklist</a> below for items required
+ to create the proposal website and the newsgroup. Each of the deliverables
+ can be emailed to the <a href="mailto:emo@eclipse.org">EMO</a>. <br>
+ <br>
+ At the end of the Proposal Phase is the <a href="#creationreview">Creation
+ Review</a>. During the proposal phase you may consider an <a href="#pr">Announcment
+ Press Release</a>, or you may decide to do the release after the Creation
+ Review and as part of the launch of the <a href="toplevelvalidation.html">Top-Level
+ Project Validation</a> phase. <br>
+ </td> </tr>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="newsgroups"></a>Proposal newsgroups </font></b></td>
+ </TR>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td colspan "4"> In this phase, the newsgroup is created last for several
+ reasons. Many newsreaders actively inform their users of the existance of
+ a new newsgroup so when we first created all the infrastructure in a single
+ big bang, the project leaders didn't have enough time to populate the main
+ web page of the proposal before it was "pre-announced" by the
+ newsreader software. We now wait for the main web page to be complete before
+ the newsgroups are created. We then post an initial message, inviting people
+ to visit the newly created project page to learn more about the project.
+ <br>
+</td>
+</tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="pr"></a>Announcement press release </font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="0">
+<tr>
+ <td colspan="4" width="100%">
+ <p>The press release is optional. The release could be issued by the Foundation,
+ or it could be a joint release with the project's stakeholders, and includes
+ Q&A's, messages and preparation of the stakeholder spokespeople. The
+ discipline of creating a press release ensures that all stakeholders have
+ agreed on messages, positioning and have identified spokepersons.<br>
+ <br>
+ If you do decide to issue a press release, the Eclipse Foundation Marketing
+ Director can help you coordinate the announcement. (Email the <a href="mailto:emo@eclipse.org">EMO</a>
+ for further information.)<br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="creationreview"></a>Creation review </font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="0">
+<tr>
+ <td colspan="4" width="100%">
+ <p>The creation review is scheduled roughly one to two months after the
+ proposal is made public to ensure sufficient time to receive and respond
+ to feedback received from the community. The creation review meeting will
+ include members of the proposed Top-Level Project PMC, representatives
+ from the existing eclipse PMCs and the Eclipse Foundation. The review
+ format is teleconference, and is open to the eclipse membership at large.
+ Notifications of creation review meetings are sent to the eclipse membership
+ mailing list by the EMO. <br>
+ <br>
+ The two key criteria in successfully passing the creation review are:
+ <ol>
+ <li>does the project have a community of contributors and committers who
+ are willing to work towards making this a success? <br>
+ </li>
+ <li>does the project have a technology scope and focus which will have
+ a reasonable likelihood of success</li>
+ </ol>
+ <p> Although the creation review is a relatively informal meeting, the proposed
+ top-level PMC lead will be expected to make a brief presentation to the
+ review committee. The presentation should include a brief summary of the
+ project proposal, in addition to comments about the community response
+ to the proposal, current project participants, initial implementation
+ focus and future directions. The presentation slides will be posted to
+ the proposal site before the review. You can view previous sucessful creation
+ review slide presentations in the <a href="../proposals/main.html">Proposal
+ Archives</a>. <br>
+ <br>
+ Upon a successful review the EMO will recommend creation of the project
+ for the Eclipse Foundation Board of Director's final approval.
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="checklist"></a>Top-Level project proposal provisioning checklist
+ </font></b></td>
+ </TR>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="1">
+ <tr>
+ <td width="21%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="23%"><b> Description</b></td>
+ <td width="43%"><b>Project team deliverable</b></td>
+ <td width="13%"><b>Review by</b></td>
+ </tr>
+ <tr>
+ <td width="21%" >Proposal published on static web pages </td>
+ <td width="23%">pages published in eclipse.org/proposals directory, linked
+ from proposals main page</td>
+ <td width="43%">-HTML documents (where possible) <br>
+ - in this stage no access is granted to the static webpages, therefore an
+ approved draft for posting should be delivered 48 hours before launch date.
+ The project team then has a one-day cycle to review the proposal as it will
+ be published. </td>
+ <td width="13%">EMO</td>
+ </tr>
+ <tr>
+ <td width="21%" >Project Short Name</td>
+ <td width="23%">The name for the proposal subdirectory on which the newsgroup,
+ mailing list, and CVS addresses will be based </td>
+ <td width="43%">- a 3-6 character short name or acronym for the project title
+ </td>
+ <td width="13%">EMO </td>
+ </tr>
+ <tr>
+ <td width="21%" >Project Description</td>
+ <td width="23%">a brief description of the project (1 paragraph) for the proposals
+ page </td>
+ <td width="43%">- a one paragraph description of the proposed project</td>
+ <td width="13%">EMO </td>
+ </tr>
+ <tr>
+ <td width="21%" >Newsgroup</td>
+ <td width="23%">the initial newsgroup for soliciting feedback on the proposal</td>
+ <td width="43%">- confirmation of newsgroup name in format news://news.eclipse.org/<br>
+ eclipse.[top-level project].[shortname}<br>
+ - the newsgroup is the last item to be released on launch day<br>
+ - the preparation cycle is 3-6 hours, therefore a confirmed name 24 hours
+ before the launch is preferred. </td>
+ <td width="13%">EMO </td>
+ </tr>
+ <tr>
+ <td width="21%" >Newsgroup description </td>
+ <td width="23%">3 line newsgroup description that appears on the <a href="../newsgroups/index.html" target="_top">Newsgroups
+ main page </a></td>
+ <td width="43%">- newsgroup description/invitation to participate</td>
+ <td width="13%">EMO</td>
+ </tr>
+
+</table>
+
+
+</body>
+</html>
diff --git a/dev_process/old_provisioning/toplevelvalidation.html b/dev_process/old_provisioning/toplevelvalidation.html
new file mode 100644
index 0000000..f20f13b
--- /dev/null
+++ b/dev_process/old_provisioning/toplevelvalidation.html
@@ -0,0 +1,439 @@
+<html>
+<head>
+<link rel="stylesheet" href="../default_style.css">
+<title>Top-Level Project Provisioning</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
+<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" height="129" >
+ <tr>
+ <td ALIGN=LEFT width="67%"><font class=indextop>top-level project validation
+ phase provisioning</font><br>
+ <font class=indexsub>infrastructure for projects </font></td>
+ <td WIDTH="33%"> </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td align="center" valign="top">
+ <p style="border-style: dashed"><b><font face="Arial,Helvetica" size="+1">These
+ pages are out-of-date. <br>
+ Revised and corrected versions of these pages are being developed. <br>
+ Please verify with all information on these pages with the <a href="mailto:emo@eclipse.org">EMO</a>.</font></b></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p><br>
+ This document describes the infrastructure for new Top-Level Projects
+ (projects that propose a new PMC) that have completed a sucessful creation
+ review and are beginning the validation phase of their project at eclipse.org.
+ The <a href="projectvalidation.html">Project Validation Phase Provisioning</a>
+ document describes the infrastructure for new projects under an existing
+ Top-Level Project. These documents follow the Eclipse Project Lifecyle as described
+ in the <a href="../org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf">Eclipse
+ Development Process</a> and are intended to complement the information
+ provided there. In general all inquiries related to project provisioning
+ can be sent to the <a href="mailto:emo@eclipse.org">EMO</a> .<br>
+ </p>
+ </td> </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ Eclipse Top-Level project validation phase infrastructure</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="0">
+<tr>
+ <td> <img src="validation.jpg" width="180" height="310"></td>
+ <td width="100%">
+ <p>After a successful Creation Review, the project enters the Validation
+ Phase and additional infrastructure is created to support the initial
+ work on the project:</p>
+ <ul>
+ <li>CVS commit rights</li>
+ <li> CVS component structure</li>
+ <li>download site </li>
+ <li>a developer mailing list and</li>
+ <li> the project website<br>
+ </li>
+ </ul>
+ Please consult the <a href="#checklist">checklist</a> below for items
+ required to implement this core infrastructure. Each of the deliverables
+ can be emailed to the <a href="mailto:emo@eclipse.org">EMO</a>.
+ <p>The project is 'created' in two steps: </p>
+ <ol>
+ <li>CVS, user accounts, mailing-list, master home page (links to your
+ page in the <a href="#web">website CVS</a>), <a href="#downloadspace">download
+ space</a> on download.eclipse.org, and bugzilla </li>
+ <li> Developer mailing lists, hosting Top-Level Project main page and any additional
+ <a href="#newsgroups">newsgroups</a> are then connected to your
+ project making it "live".</li>
+ </ol>
+
+ <p> This ensures that all the core infrastructure is ready and that the
+ data and an initial project structure are in place, before the project
+ goes 'live". <br>
+ <br>
+ Ongoing <a href="#changes">changes</a> to the project's core infrastructure
+ are expected especially during the Validation Phase, as the project matures.
+ Please consult the <a href="changes.html">Project Implementation Phase
+ Provisioning</a> document for pointers on how to implement these changes.
+ </p>
+ </td> </tr>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="newsgroups"></a>Project newsgroup</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p>At this stage, the proposal newsgroup can be repositioned as the project
+ newsgroup, or the team can archive the existing newsgroup (so it becomes
+ read-only) and start a new project newsgroup. <br><br>
+ </p>
+ </td>
+</tr>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ </font><a name="web"></a><font face="Arial,Helvetica" color="#FFFFFF">Project
+ website</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+
+ <tr>
+ <td>
+ <p>Each project has a web presense on www.eclipse.org. The content for
+ a project web pages is stored in a separate CVS repository on dev.eclipse.org.
+ The repository is automatically checked out to www.eclipse.org, and
+ thereby enables website authors to use HTML and PHP to author websites
+ directly on www.eclipse.org, does not require viewcvs, and paves the
+ way for an eventual MySQL database backend. Only those committers
+ designated by their project PMC will be granted update rights to the
+ project website CVS. As a bootstrap mechanism, the PMC will have committer
+ access to assist with web maintenance.<br>
+ <br>
+ A directory of the form <b>www.eclipse.org/[shortname]</b> will be
+ created by the webmaster for each new project. This also becomes the
+ url for the project home page. A default index.html page containing
+ the required frames is created in the website CVS repository. </p>
+ <p>Here's how it works:</p>
+ <p>1 - In Eclipse, create a new CVS Repository location:</p>
+ <blockquote>
+ <blockquote>
+ <p><b>Server</b>: dev.eclipse.org<br>
+ <b>Path</b>: /home/cvs/org.eclipse<br>
+ <b>Username/Password</b>: your committer credentials are also used
+ for website authoring<br>
+ <b>Website url</b>: www.eclipse.org/[shortname]</p>
+ </blockquote>
+ </blockquote>
+ <p>2 - Checkout the "www" project, and you will see the project directories.
+ Each of these directories has a single index.html file that sets up
+ the frames and opens up main.html.<br>
+ <br>
+ 3 - It may take up to one minute to transfer committed content to
+ www.eclipse.org but essentially committed changes are live.</p>
+
+ <p>There are some images which you may use in your web pages. These can
+ be viewed at www.eclipse.org/images. </p>
+
+ <p>The Tools and Technology Top-Level Projects have modelled the following
+ conventions for project websites. </p>
+ <table width="75%" border="1">
+ <tr>
+ <td>
+ <div align="center"><b>Filename</b></div>
+ </td>
+ <td>
+ <div align="center"><b>Purpose</b></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/main.html</div>
+ </td>
+ <td>
+ <div align="center">the content for the main project page </div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/faq.html</div>
+ </td>
+ <td>
+ <div align="center">the project faq page</div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/download.html</div>
+ </td>
+ <td>
+ <div align="center">the project downloads page</div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/plan.html</div>
+ </td>
+ <td>
+ <div align="center">the project plan page</div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table><p></p>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><a name="downloadspace"></a><font face="Arial,Helvetica" color="#FFFFFF">Builds
+ and downloads</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+
+ <tr>
+ <td>
+ <p><b>Builds </b><br>
+ The project leads are responsible for builds and maintenance on eclipse.org.
+ The frequency of these is dependent on the project needs. For more information
+ see: </p>
+ <blockquote>
+ <p>Eclipse project development - <a href="http://www.eclipse.org/eclipse/development/main.html">http://www.eclipse.org/eclipse/development/main.html</a><br>
+ Platform release engineering - <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-releng-home/main.html">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-releng-home/main.html</a></p>
+ </blockquote>
+ <b>Downloads </b><br>
+ The project lead and their appointed committers will receive an account
+ and password on download1.eclipse.org which is a high-bandwidth download
+ server. For projects under the Tools Top-Level Project, for example, the directory will
+ be /home/www/tools/xyz. For mirroring purposes, however, the link to download
+ a file is http://www.eclipse.org/downloads/download.php?file=/tools/xyz/fileName.
+ This will allow mirror site selection based on the file requested. We ask
+ that you not link directly to "download.eclipse.org" or "download1.eclipse.org"
+ <p>Because the downloads space is mirrored to several servers worldwide,
+ we ask you use this space wisely, taking extra care when placing large
+ files in this space, and performing regular file cleanups. Large directories
+ use bandwidth while mirroring and deter new mirror sites because of high
+ disk space requirements. Also, HTML and PHP files must not be placed on
+ the download server.</p>
+ <p>Uploads to this space are via SFTP (preferred) or FTP. Use any SFTP client,
+ such as CoreFTP, to connect to download1.eclipse.org. Although you are
+ connecting to download1.eclipse.org, links to files must be done to download.eclipse.org.
+ <br>
+ <br>
+ RSYNC transfers can be arranged. Please consult the <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a>
+ for details on setting this up.</p>
+ </td>
+ </tr>
+ </table><p></p>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td colspan="2" align="left" valign="top" bgcolor="#0080C0"><b><a name="changes"></a><font face="Arial,Helvetica" color="#FFFFFF">Changes
+ </font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr>
+ <td>
+ <p><b> For more information see the <a href="changes.html">Project Implementation
+ Phase Provisioning</a> document. <br>
+ <br>
+ Getting changes to your infrastructure</b></p>
+ <p>If you need changes to your infrastructure, you need to send an email
+ to webmaster@eclipse.org or to the emo@eclipse.org. In general things
+ like password reset and creating new components are taken care of by the
+ webmaster. Other content related changes such as changes to web elements
+ on www.eclipse.org should be sent to <a href="mailto:emo@eclipse.org">emo@eclipse.org</a>.
+ When sending requests, please clearly identify the Top-Level Project and
+ Project you are working on so that requests that require PMC approval
+ or clarification can be properly routed to the correct PMC by the infrastructure
+ team.</p>
+ <p><b>Changes to your committers list</b><br>
+ Changes to the committers list, including adding new committers, is done
+ through <a href="mailto:emo@eclipse.org">emo@eclipse.org</a>. We also
+ track the committer's address and contact information. We use these lists
+ to determine the developer's voting rights on eclipse.org, so please help
+ us to keep them up to date! For more information see the <a href="changes.html">Project
+ Implementation Phase Provisioning</a> document. <br>
+ <br>
+ </p>
+ </td>
+ </tr>
+</table>
+<table width="100%" cellspacing=0 cellpadding=3 align=center>
+ <tr bgcolor="#999999">
+ <td align="left" valign="top" bgcolor="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">
+ <a name="checklist"></a>Top-Level project validation phase provisioning
+ checklist</font></b></td>
+ </TR>
+ </table>
+<table width="100%" cellspacing=0 cellpadding=3 align=top border="1">
+ <tr>
+ <td width="16%">
+ <p><b>Item</b></p>
+ </td>
+ <td width="38%"><b> Description</b></td>
+ <td width="32%"><b>Project team deliverable</b></td>
+ <td width="14%"><b>Review by</b></td>
+ </tr>
+ <tr>
+ <td width="16%" >Committers list</td>
+ <td width="38%">
+ <p>A list of the initial committers for the project.<br>
+ </p>
+ </td>
+ <td width="32%">A list of the initial committers with the following information:<br>
+ - name of the project and new top-level project<br>
+ - full name of the committer<br>
+ - email address of the committer<br>
+ - if available, the list of CVS components or modules to which the committer
+ will have update privileges</td>
+ <td width="14%">- nominated by PMC <br>
+ - approved by EMO </td>
+ </tr>
+ <tr>
+
+ <td width="16%" >Committer Guidelines, Agreement, Questionnaire and Employer
+ Consent </td>
+
+ <td width="38%">
+ <p>The EMO is responsible for ensuring that documentation is in place
+ for new committers. <br>
+ <br>
+ Once the documentation is in place, the EMO will contact the webmaster
+ to provide the appropriate accesses to the new committers. </p>
+ </td>
+ <td width="32%">
+ <p>- the project team may appoint a single contact to assist the new
+ committers in completing the required documentation</p>
+ <p> </p>
+ </td>
+ <td width="14%"> </td>
+ </tr>
+ <tr>
+ <td width="16%" >List of initial CVS components</td>
+
+ <td width="38%">Typical components are:<br>
+ org.eclipse.[shortname].[component]<br>
+ <p> </p>
+ </td>
+
+ <td width="32%">- a list of components along with a list of committers who
+ will have access to each component<br>
+ <br>
+ </td>
+
+ <td width="14%">submitted by PMC and reviewed by EMO</td>
+ </tr>
+ <tr>
+
+ <td width="16%" >Project website moves to website CVS</td>
+
+ <td width="38%">- <i><a href="#web">See Website section above</a></i> <br>
+ - the project receives a website address on www.eclipse.org in the format
+ www.eclipse.org/[shortname]/<br>
+ -the website content is checked into the corresponding repository by
+ the project committers <br>
+ Note: Only those committers designated by their project PMC will be
+ granted update rights to the project website CVS. As a bootstrap mechanism,
+ the PMC will have committer access to assist with web maintenance.<br>
+ </td>
+
+ <td width="32%">- a list of which committers have access to the website CVS<br>
+ - the new committers can coordinate the release of their new site with the
+ release of links from the project main page, newsgroups and mailing list
+ pages, etc. </td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Project description</td>
+
+ <td width="38%">the project description is modified on the project main page
+ (www.eclipse.org/projects/index.html) to reflect change in status</td>
+ <td width="32%">- any requested edits to the project description</td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Proposal archived</td>
+
+ <td width="38%">the successful proposal is archived in the proposal archive</td>
+ <td width="32%">- none</td>
+
+ <td width="14%"> </td>
+ </tr>
+ <tr>
+ <td width="16%" >Newsgroup link on newsgroups page </td>
+
+ <td width="38%">the <a href="#newsgroups">newsgroup</a> is moved from a standalone
+ position on the page a new top-level project section </td>
+ <td width="32%">- any requested edits to the newsgroup description</td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Mailing list name </td>
+ <td width="38%">- typical mailing list names are in the form [shortname]-dev@eclipse.org
+ <br>
+ - when multiple components are developed independently, component lists
+ are created in the form [shortname]-[component] -dev@eclipse.org</td>
+ <td width="32%">- confirmation of list name and/or component list names</td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Mailing list short description</td>
+ <td width="38%">- the short description appears on the mailing list main page</td>
+ <td width="32%">- short description based on the examples here <a href="http://www.eclipse.org/mail/index.html" target="_blank">http://www.eclipse.org/mail/index.html</a></td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Mailing list long description </td>
+ <td width="38%">- the long description appears on the introductory page to
+ the individual mailing list </td>
+ <td width="32%">- long description based on the example shown here <a href="http://dev.eclipse.org/mailman/listinfo/platform-dev" target="_blank">http://dev.eclipse.org/mailman/<br>
+ listinfo/platform-dev</a></td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+
+ <td width="16%" >Download directory</td>
+
+ <td width="38%">
+ <p>- the project lead will submit the names of one or two committers
+ per project who will receive an account and password on download1.eclipse.org<br>
+ - <i><a href="#downloadspace">see Downloads above</a></i></p>
+ </td>
+ <td width="32%">- names of committers to be granted update rights to the
+ download site </td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+ <tr>
+ <td width="16%" >Bugzilla </td>
+ <td width="38%">- Bugzilla product is created with sublisting for each component
+ and component milestone eg. <br>
+ <img src="bugzillacomponent.jpg" width="355" height="113"> <br>
+ </td>
+ <td width="32%">- initial list of components, milestones and component
+ owners</td>
+
+ <td width="14%">review by EMO</td>
+ </tr>
+</table>
+<p></p>
+<p></p>
+</body>
+</html>
diff --git a/dev_process/old_provisioning/validation.jpg b/dev_process/old_provisioning/validation.jpg
new file mode 100644
index 0000000..f9e1161
--- /dev/null
+++ b/dev_process/old_provisioning/validation.jpg
Binary files differ
diff --git a/dev_process/pre-proposal-phase.php b/dev_process/pre-proposal-phase.php
new file mode 100644
index 0000000..38c67cf
--- /dev/null
+++ b/dev_process/pre-proposal-phase.php
@@ -0,0 +1,250 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Pre-Proposal Phase";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Pre-Proposal Phase</h1>
+<p><i>version 026 - November 10, 2005</i></p>
+<p><a href="index.php">[This is one page of the larger document.]</a></p>
+<h2>Pre-Proposal Phase</h2>
+<p>The Pre-Proposal Phase starts when an individual or company declares their interest in,
+ and rationale for, establishing a project; and ends with a proposal being
+made available to the membership by being posted on the eclipse.org website.</p>
+<p>The first step is to decide whether the new idea is a top-level project, a
+sub-project, or a component. Some rules of thumb on this decision are:</p>
+<table border="1" width="100%">
+ <tr>
+ <td width="25%"> </td>
+ <td width="25%" align="center"><b>Component</b></td>
+ <td width="25%" align="center"><b>Sub-Project</b></td>
+ <td width="25%" align="center"><b>Top-Level Project</b></td>
+ </tr>
+ <tr>
+ <td width="25%"><b>Project Management</b></td>
+ <td width="25%" valign="top">managed as part of a larger effort</td>
+ <td width="25%" valign="top">managed separately<sup>1</sup></td>
+ <td width="25%" valign="top">managed separately</td>
+ </tr>
+ <tr>
+ <td width="25%"><b>Shipping and Releases</b></td>
+ <td width="25%" valign="top">MUST ship at the same time as the other pieces</td>
+ <td width="25%" valign="top">USUALLY ships at the same time as the other
+ pieces</td>
+ <td width="25%" valign="top">shipping deadlines are unrelated to other
+ pieces</td>
+ </tr>
+ <tr>
+ <td width="25%"><b>Code Size</b></td>
+ <td width="25%" valign="top">Small</td>
+ <td width="25%" valign="top">Medium to large</td>
+ <td width="25%" valign="top">Large and larger</td>
+ </tr>
+</table>
+<p>The next step in establishing a new project at Eclipse is to contact the Eclipse Management Organization
+(<a href="mailto:emo@eclipse.org">EMO</a>) and begin working towards a Project Proposal and a Project Declaration.
+The goal of this phase is to ensure that the proposal is clear, understandable,
+and is a good fit with the Purposes.</p>
+<p>A declaration is a short email which is distributed by the EMO to the Eclipse membership-at-large stating that someone wants to start a project at Eclipse. Before a declaration is sent, the EMO will want to talk about the technology areas you are planning on working on, which Project Management Committee (PMC) the new project would best fit in, who you think will be working on the project, etc.
+The EMO will also want to see a nearly complete draft of the proposal as our
+experience is that good proposals more than a week to write.</p>
+<p>The declaration has the following form:</p>
+<blockquote>As per the Eclipse Development Process, we are notifying the Eclipse Membership-at-Large of the intent of
+Company Q to propose the XYZ Project as part of the Technology PMC.<br>
+<br>
+A brief description of the project is below. A draft project proposal has been posted on
+ http://www.eclipse.org/proposals/.../index.html and will become public in a
+ few days.<br>
+<br>
+------------------------------------------------------------------------<br>
+<br>
+*Project Declaration for the "XYZ Project"*<br>
+<br>
+The goal of this project is to add comprehensive support blah blah blah... </blockquote>
+<p>History has shown that companies who are starting their first open-source
+project, or perhaps merely their first Eclipse open-source project, want to
+carefully stage the press announcements. Because the Eclipse membership-at-large
+is large and includes press, the EMO works carefully with the proposers to
+ensure that news is not prematurely leaked.</p>
+<p>The declaration is emailed to the membership more or less a week in advance of the
+proposal being posted. This provides a benefit of membership and allows members
+to raise concerns about projects before they become public.</p>
+<p>The goals of the proposal document itself include:</p>
+<ul>
+ <li><b>Clear and concise description.</b> <br>
+ It is important that the description be understandable by the diverse
+ Eclipse community and not just by specialists in the subject matter. It is
+ also important that the description concentrate on the technical aspects of
+ the project and avoid marketing buzzwords. Terms that are not in common use
+ amongst the Eclipse membership must be defined, and references to standards
+ should be linked to the corresponding URL.
+ <ul>
+ <li>A thought experiment for clarity and conciseness is "if I
+ randomly choose five Committers from the entire Eclipse Committer pool,
+ will those five people understand what this project is about?" The
+ five may not agree with the proposal or even believe that it is
+ feasible, but they need to understand what it is proposing.<sup>2</sup></li>
+ </ul>
+ </li>
+ <li><b>Resources committed.</b><br>
+ Eclipse is a place for active projects, not a place for dumping unwanted
+ code. Eclipse projects involve substantial on-going development activity. Thus proposals should be convincing about the resources that are being
+ brought to the project in addition to any initial code contribution.</li>
+ <li><b>Tools versus Run-time.<br>
+ </b>Currently the Eclipse Bylaws, section 1.1, state that "the Eclipse
+ technology is a vendor-neutral, open development platform supplying
+ frameworks and exemplary, extensible tools".
+ <ul>
+ <li>The distinction between tools and run-times is not as black-and-white as one
+ might like - for example, is the code generated by a tool consider a
+ run-time? What about a library that must be linked to use the code generated
+ by a tool? What about a framework that must be installed on a J2EE server in
+ order to use a particular tool with that server? etc. - and yet the Eclipse
+ organization is conscious of the issue. </li>
+ <li> Currently, the
+ policy is that "plumbing", or primitive, run-times are not
+ acceptable whereas frameworks that work on top of existing run-times (e.g.,
+ works on top of J2EE) are acceptable.</li>
+ <li>Frameworks that are in support of development tools are acceptable;
+ frameworks that are application servers, database servers, operating
+ systems, etc. are not acceptable. Projects that are more appropriate at
+ other more server-centric open source organizations (such as Apache or
+ ObjectWeb) are not.</li>
+ <li> The easiest proposals, of course, are those with no ambiguity: for
+ example, an Eclipse tool that generates configuration files for an Apache
+ run-time to render.</li>
+ </ul>
+ </li>
+ <li>
+ <p align="left"><b>Consistent With The Purposes.<br>
+ </b>Eclipse projects, and hence all proposals, must be consistent with the <a href="/org/documents/Eclipse%20BYLAWS%202003_11_10%20Final.pdf">Purposes</a>.
+ </li>
+ <li><b>Project Name.<br>
+ </b>Naming and branding are challenging issues. In order to provide a consistent
+brand for Eclipse, projects must follow <a href="project-naming-policy.php">the project naming
+ guidelines</a>, summarized here. The best names are descriptive but
+ at the same time memorable. The policy for project names is:
+ <ul>
+ <li><b>Descriptive Name.</b> A descriptive name is one that is useful
+ when placed into a box on <a href="/org/councils/AC/arch2.jpg">the
+ Eclipse architecture diagram</a>. For example "<a href="/gmf">Graphical
+ Modeling Framework</a>", "Trust Framework" or
+ "Component Assembly Tools". We want to avoid having to
+ create a <a href="http://www.apache.org/foundation/projects.html" target="_top">
+ separate web page to explain which names correspond to which
+ technology</a>.
+ <ul>
+ <li>Descriptive names do not include "Eclipse" or
+ "Project". The name should work with or without the
+ prefix and suffix. For example, "The Eclipse Graphical
+ Modeling Framework Project" as well as "Graphical
+ Modeling Framework".</li>
+ <li>Descriptive names may optionally include "Framework"
+ or "Tools" if the project has more of an emphasis on
+ extensible frameworks, or more on exemplary tools. Eclipse
+ projects always provide both but may be tailored more toward one
+ or the other. When choosing to use these words, the team should
+ consider that "Framework" and "Tools"
+ mean different things to different people and may even be
+ becoming overused. </li>
+ <li>Top-level projects may optionally include "Platform"
+ instead of "Framework".</li>
+ </ul>
+ </li>
+ <li><b>An optional Nickname.</b> Some teams like to have a clever
+ nicknames, for example "Higgins" or "Buckminister".</li>
+ <li><b>Project Name. </b>The full name includes the optional nickname, e.g., "The
+ Eclipse Component Assembly Project (Buckminister)".</li>
+ <li><b>Acronym.</b> Most descriptive names are sufficiently long
+ that it can be convenient to abbreviate them in some way. For
+ example, the Eclipse Communication Framework shortens to ECF.</li>
+ </ul>
+ </li>
+ <li><b>Vendor neutral.<br>
+ </b>Eclipse is place for vendor neutral projects which includes being
+ operating system agnostic. If, as is usually the case, the proposal is
+ coming from a single company, the proposal should explain how the resulting
+ project will be vendor neutral. Similarly, the proposal should explain away
+ any operating system dependencies.</li>
+ <li>
+ <p align="left"><b>Place in the Eclipse architecture.</b><br>
+ How does this project fit with the other Eclipse projects? Does it
+ build on top of other projects? What are the dependencies? Does
+ it overlap with existing projects? Why are the needs this project
+ meets are not met by existing Eclipse projects?
+ </li>
+</ul>
+<p>The proposal itself is a static HTML page (with a small fragment of PHP) using the standard Eclipse Proposal
+CSS style sheet (<a href="/proposals/templates/proposal-template.zip">please use
+the template we provide</a>). We have found that there are a number of problems with HTML
+generated by Microsoft Word and thus ask that proposers use some other tool to
+create the page. The proposal should include a list of interested and committed
+persons and companies and their affiliations, but should not include corporate
+or group logos.</p>
+<p>Past proposals are available from the <a href="/proposals/">archived
+proposals page</a>. Three particularly good examples to emulate are: <a href="/proposals/eclipse-mylar/">Mylar</a>,
+<a href="/proposals/eclipse-gmf/">GMF</a>, and <a href="/proposals/eclipse-dsdp/">DSDP</a>.</p>
+<p>The Pre-Proposal Phase ends when the proposal is made publicly available <a href="/proposals/"> on
+the eclipse.org website</a>. The specific mechanics are: (these will eventually be
+entered via a webform)</p>
+<ol>
+ <li>The project short name is confirmed. The short name is the subset,
+ abbreviation, or acronym that the project will most common be known by. For
+ example the <a href="/tptp/">Test and Performance Tools Platform Project</a>'s
+ short name is TPTP.</li>
+ <li>The proposal is placed on the website.</li>
+ <li>The proposal is linked both the dedicated <i><a href="/proposals">proposals</a></i> area of the
+ website and from the hosting PMC's website, both described until the one
+ paragraph project description.</li>
+ <li>A newsgroup for discussion is created.
+ <ul>
+ <li> The newsgroup name will be <code>eclipse.[toplevel].[shortname]</code>.
+The short name can be an abbreviation of the Descriptive Name, or an Acronym, e.g.,
+ eclipse.technology.ecf, or it can be the optional Nickname, e.g.,
+ eclipse.technology.buckminister.</li>
+ <li>A three
+ line newsgroup description is used for <a href="/newsgroups/">the
+ newsgroups page</a>.</li>
+ <li>The newsgroup is created last for several reasons. Many newsreaders actively
+ inform their users of the existence of a new newsgroup so when we first
+ created all the infrastructure in a single big bang, the project leaders
+ didn't have enough time to populate the main web page of the proposal before
+ it was "pre-announced" by the newsreader software. We now wait for
+ the main web page to be complete before the newsgroups are created. We then
+ post an initial message, inviting people to visit the newly created project
+ page to learn more about the project.</li>
+ </ul>
+ </li>
+</ol>
+<p>A press release at this point is optional. Some companies and
+individuals like to have a press release when the project is proposed, while
+others prefer to wait until the project is approved/created, and then others do
+not issue one at all - it is completely up to the proposal team. Any release
+must include Q&A's, messages and preparation by the stakeholder spokespeople. The discipline of creating a press release ensures
+that all stakeholders have agreed on messages, positioning and have identified
+spokepersons.</p>
+<p>If you do decide to issue a press release, the Eclipse Foundation Marketing
+Director must help you coordinate the announcement. (<a href="mailto:emo@eclipse.org">Email
+the EMO</a> for further information.)</p>
+<p>The next phase is the <a href="proposal-phase.php">Proposal Phase</a>.</p>
+
+<h3>Legal Paperwork To Start Now</h3>
+<p>It is important for the proposers to begin moving the various <a href="/legal/newcommitter.html">Committer
+Agreements</a> through their company's legal department as it always seems to
+take longer for this paperwork than one would like. The project cannot be provisioned
+(provisioning happens after the Proposal Phase) without the Questionnaires and signed Agreements.</p>
+
+<hr>
+<p><sup>1</sup> Projects often have seats on the top-level PMC, although the
+exact policy depends on the PMC.<sup><br>
+2 </sup>This thought experiment may become EMO policy in the future.</p>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/dev_process/project-log.php b/dev_process/project-log.php
new file mode 100644
index 0000000..2db7c64
--- /dev/null
+++ b/dev_process/project-log.php
@@ -0,0 +1,103 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Project Log";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Project Log</h1>
+<p><i>version 026 - October 14, 2005</i></p>
+<p><a href="index.php">[This is one page of the larger document.]</a></p>
+<h2>Project Log</h2>
+
+<p align="left">The <a href="/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf"> Eclipse IP Policy</a> requires
+ <a href="/legal/committerguidelines.php"> certain due
+ diligence and record keeping</a>.
+ Small contributions in the form of bugzilla patches and the like can be
+ committed directly to the code base (after the appropriate contributor
+ information is recorded). Medium, large, and all third-party (non-EPL
+ licensed) contributions require the <a href="/legal/ContributionQuestionnairePart1-v1.0.htm"> Code Contribution
+ Questionnaire</a> and
+ additional record keeping. Maintaining a current and accurate Project Log is
+ the best way to keep this information up-to-date.
+
+<p>The Project Log is a CSV file (a spreadsheet saved in the open Comma
+Separated Value file format) containing the following sections. The Project Log
+must be available via a public url on the project's website, and a static copy
+must be included in the <a href="release-review.php">Release Review</a>
+materials for each release.</p>
+
+<h4>Section 1 (Committers)</h4>
+<p>A list of all the Committers, past and present, whose contribution is still
+active in the repository. A Committer whose code has been entirely removed from
+the active branches does not need to be listed. The columns for this section
+are:</p>
+<ul>
+ <li>dev.eclipse.org unix login name</li>
+</ul>
+
+<h4>Section 2 (Developers)</h4>
+
+<p>A list of all the non-Committers whose contribution is still active in the
+repository. The columns for this section are:</p>
+<ul>
+ <li>component (CVS directory)</li>
+ <li>bug #</li>
+ <li>contributor's name (see Additional Information below)</li>
+ <li>contribution size (LOC or "small" where small is defined as
+ "less than 100 LOC")</li>
+ <li>committer who committed this contribution</li>
+ <li>description if there is no bug# or if there are multiple bug #s</li>
+</ul>
+<p>Note that it behooves the project to use the full capabilities of Bugzilla to
+assist with generating this report. If the project uses the following features,
+then simple queries will generate most of section 2:</p>
+<ol>
+ <li>All code changes (100% of them) refer to a Bugzilla entry</li>
+ <li>All commit messages include the corresponding bug numbers.</li>
+ <li>VERIFY and CLOSE all RESOLVED bugs when closing out a release.</li>
+ <li>Target milestones for "fixed in version"</li>
+</ol>
+<h4>Section 3 (Third Party Software)</h4>
+<p>A list of the non-Eclipse third party software included in the project. The
+columns for this section are:</p>
+<ul>
+ <li>name including version</li>
+ <li>directory location or jar file</li>
+ <li>license name and version (including any licenses related to embedded third
+ party software)</li>
+ <li>usage (e.g. modified/unmodified, source, object, derivative work, entire
+ package or which subset)</li>
+</ul>
+<h3>Additional Information</h3>
+<p align="left">The Foundation needs to maintain contact information for all
+contributors however the Foundation also needs to abide by its <a href="/legal/privacy.php">Privacy
+Policy</a>. The projects handles these two requirements by maintaining an internal, non-public,
+database (list) of contact information for all project Contributors. Committers
+are stored by in the Foundation database under their dev.eclipse.org unix login name, thus the only
+requirement for section 1 is that login name. Contributors are stored by
+the Projects in private, in a text file, a spreadsheet, an HTML table, a small
+database, or whatever the project chooses. Section 2 uses the contributor names
+as keys into that information to avoid having to list the
+contributor's email address or mailing address in the Project IP log. The
+Project sends the contact information to the Foundation as part of the process
+of a <a href="release-review.php">Release Review</a>.</p>
+<p align="left">All of this is a long way of saying that the project leadership
+and/or PMC must keep track of the contributors' contact information in private
+and send that private list to the EMO at the Release Review.<sup>1</sup></p>
+<h3>Applicability</h3>
+<p>The project log keeps track of code contributions but also, as per the <a href="/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf"> Eclipse IP Policy</a>,
+documentation and other non-code contributions.</p>
+
+<p><sup>1</sup> For a while, there was a concept of "contributor Foundation
+database key"; we have moved away from that and are no longer using that
+process.</p>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/dev_process/project-naming-policy.php b/dev_process/project-naming-policy.php
new file mode 100644
index 0000000..0672593
--- /dev/null
+++ b/dev_process/project-naming-policy.php
@@ -0,0 +1,97 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Eclipse Project Naming Policy";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h2>Project
+ Name</h2>
+
+ Naming and branding are challenging issues. In order to provide a consistent
+brand for Eclipse, projects must follow these project naming guidelines. The best names are descriptive but
+ at the same time memorable. The policy for project names is:
+ <ul>
+ <li><b>Descriptive Name.</b> A descriptive name is one that is useful
+ when placed into a box on <a href="/org/councils/AC/arch2.jpg">the
+ Eclipse architecture diagram</a>. For example "<a href="/gmf">Graphical
+ Modeling Framework</a>", "Trust Framework" or
+ "Component Assembly Tools". We want to avoid having to
+ create a <a href="http://www.apache.org/foundation/projects.html" target="_top">
+ separate web page to explain which names correspond to which
+ technology</a>.
+ <ul>
+ <li>Descriptive names do not include "Eclipse" or
+ "Project". The name should work with or without the
+ prefix and suffix. For example, "The Eclipse Graphical
+ Modeling Framework Project" as well as as "Graphical
+ Modeling Framework".</li>
+ <li>Descriptive names may optionally include "Framework"
+ or "Tools" if the project has more of an emphasis on
+ extensible frameworks, or more on exemplary tools. Eclipse
+ projects always provide both but may be tailored more toward one
+ or the other. When choosing to use these words, the team should
+ consider that "Framework" and "Tools"
+ mean different things to different people and may even be
+ becoming overused. </li>
+ <li>Top-level projects may optionally include "Platform"
+ instead of "Framework".</li>
+ </ul>
+ </li>
+ <li><b>An optional Nickname.</b> Some teams like to have a clever
+ nicknames, for example "Higgins" or "Buckminister".</li>
+ <li><b>Project Name. </b>The full name includes the optional nickname, e.g., "The
+ Eclipse Component Assembly Project (Buckminister)".</li>
+ <li><b>Acronym.</b> Most descriptive names are sufficiently long
+ that it can be convenient to abbreviate them in some way. For
+ example, the Eclipse Communication Framework shortens to ECF.</li>
+ </ul>
+<
+<h2>Using
+ the Project Name</h2>
+
+Every public use of the project name - in a web page, a presentation, a
+ press release, an article, etc. - should follow these guidelines:
+ <ul>
+ <li>The first use of the Project Name uses the entire Descriptive Name
+ and may include the optional Nickname. For
+ example, "The Eclipse Component Assembly
+ Project (Buckminister)". Subsequent references to the project may use the
+ Nickname, e.g., "Buckminister".</li>
+ <li>If the project is in the Proposal Phase, or is a Technology Project, that fact
+ must be mentioned early in the document. For example, "The proposed
+ Eclipse Phoenix project ..." or "The Buckminister project, a
+ Technology project at Eclipse, is releasing version 0.2 of their framework
+ for early alpha feedback from the community."</li>
+ </ul>
+<p>
+
+<h2>Infrastructure
+ uses of the Project Name</h2>
+
+<b>Newsgroup.<br>
+</b>The project newsgroup name will be <code>eclipse.[toplevel].[shortname]</code>.
+The short name can be an abbreviation of the Descriptive Name, or an Acronym, e.g.,
+eclipse.technology.ecf, or it can be the optional Nickname, e.g.,
+eclipse.technology.buckminister.
+<p><b>Mailing Lists.<br>
+</b>
+New projects typically have a single <code> [shortname]-dev@</code> mailing list. When multiple components are being developed by independent teams, the new project may choose to have additional mailing lists of the form
+<code>[shortname]-[component]-dev@</code>. The short name can be an abbreviation
+of the Descriptive Name, or an Acronym, or the project's optional Nickname.</p>
+<p><b>CVS Components.<br>
+</b> Typical component names are <code>org.eclipse.[shortname].[component]</code>. The
+short name is some variation of the project's Descriptive Name - the Acronym, a
+shortened version, or even the whole name. The project's optional Nickname is <b><i> not</i></b> a valid
+short name for CVS components. For example, org.eclipse.ecf.core and
+org.eclipse.componentassembly.ui are valid component names, but
+org.eclipse.buckminister.internal.connector is not.<br>
+</p>
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
diff --git a/dev_process/proposal-phase.php b/dev_process/proposal-phase.php
new file mode 100644
index 0000000..740dc42
--- /dev/null
+++ b/dev_process/proposal-phase.php
@@ -0,0 +1,168 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Proposal Phase";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Proposal Phase</h1>
+<p><i>version 017 - August 6, 2005</i></p>
+<p><a href="index.php">[This is one page of the larger document.]</a></p>
+<h2>Proposal Phase</h2>
+<p>The Proposal Phase is when the proposers, in conjunction with the destination PMC and the community-at-large,
+ collaborate in public to enhance, refine, and clarify the proposal.
+Historically, the proposal phase has been approximately two months for simpler
+projects and longer than that for complex or controversial projects. When the
+proposers believe that the requirements listed here have been met, they ask the
+EMO to schedule a <a href="#Creation Review">Creation Review</a>.</p>
+<p>In addition to the proposal characteristics described on the pre-proposal
+phase page, the further requirements for exiting the Proposal Phase (i.e., for
+creating the project) are as follows. Note that these requirements are almost
+entirely qualitative and thus there are no "right answers". The
+expectation is that projects will have good answers and explanations for these
+items in order to pass the <a href="#Creation Review">Creation Review</a>..</p>
+<ul>
+ <li><b>Description.</b><br>
+ Refining the project description based on feedback from the community. The
+ community may find certain aspects confusing or unclear and the goal of the
+ Proposal Phase is to make those clear. This is a hard and fast requirement:
+ the Eclipse community must be able to evaluate the proposal. To do that,
+ they must be able to understand the proposal and thus it must be clear and
+ straightforward and marketing-speak-free. </li>
+ <li><b>Maturity Plan.</b><br>
+ The proposal needs to define the destination/end-game/ultimate objectives for the project. What is the
+ expected time scale for this project? Which is the destination top-level PMC
+ for this project? For example, does this project expect to investigate
+ technology for two years and then have proven itself sufficiently to be
+ integrated into the Platform as a component? Does this project expect
+ to be integrated into a the Web Tools Platform as a sub-project (and thus
+ continue to exist, but under that PMC)? Etc. Note that this is a plan,
+ not a commitment, but it does need to be a realistic plan.</li>
+ <li><b>Community.</b><br>
+ Does the project have a community of contributors and committers who are
+ willing to work towards making this a success? This is a bit of a Catch-22
+ situation because it is sometimes hard to attract a community before any
+ milestones or releases, but it is also true that projects with limited
+ developers and even fewer users tend not to have much technical impact.</li>
+ <li><b>Collaborations.</b><br>
+ Successful Eclipse projects extend and enhance the Eclipse tool suite, and
+ thus successful Eclipse projects are those that collaborate with existing
+ Eclipse, or other open source, projects. Again, it can be hard to start a
+ collaboration before demonstrating the technology, but at the same time it
+ is never too early to start discussing collaborations with other projects.
+ Additionally, it never hurts to join and help an existing project to start
+ establishing those social networks that will make future collaborations on
+ the new project possible.</li>
+ <li><b>Extensible frameworks and exemplary tools.</b><br>
+ Is this project visibly committed to producing both extensible
+ frameworks and exemplary tools built on top of those frameworks?
+ Eclipse is dependent on its projects producing both frameworks for the
+ ecosystem to extend, and end-user tools to attract the critical mass of
+ users which enable the ecosystem to exist.</li>
+ <li><b>Technical.</b><br>
+ Does the project have a technology scope and focus which will have a
+ reasonable likelihood of success? Projects that are too big will definitely
+ fail; projects that are too small are unlikely to be interesting.</li>
+ <li>
+<b> Place in the Eclipse architecture.
+ </b> <br>
+For each place this project overlaps an existing Eclipse project, what does
+ the overlapee say about the potential overlap? Note that the
+ overlapee's opinion does not have to be positive, but that it is important
+ for new projects to understand where they fit and for existing project to
+ understand what new developments might be coming along.
+ </li>
+ <li>
+<b>Advocates.</b><br>
+While not required, it is advantageous for new proposals to be advocated or
+championed. A proposal should have at least two advocates. The advocates (or
+lack of advocates) should be listed in the proposal, along with their
+affiliations and (if applicable) their Eclipse projects.
+ </li>
+ <li>
+<b>Use brand graphics and watermarks correctly.<br>
+ </b>Projects in proposal and validation/incubation stages must use the
+ appropriate Eclipse-branded graphics in place of the usual Eclipse graphic (i.e.,
+ the Eclipse Proposal graphic and the Eclipse Incubation graphic<sup>1</sup> respectively) on
+ their webpage and communications. Projects in the proposal and
+ validation/incubation stages must use the appropriate watermark on their web
+ pages.
+ </li>
+</ul>
+<h3>Legal Paperwork To Start Now</h3>
+<p>If haven't already started moving the various <a href="/legal/newcommitter.html">Committer
+Agreements</a> through the proposers' company's legal departments, now is the
+time to start. It always seems to
+take longer for this paperwork than one would like and the project cannot be provisioned
+without the Questionnaires and signed Agreements.</p>
+<h3>Feedback From the Members and Committers</h3>
+<p>The proper functioning of the Eclipse Development Process is contingent on
+the active participation of the Eclipse Members and Committers. The process is
+positive biased in that Reviews require negative votes (vetos) to fail rather
+than positive votes to proceed. Thus a Member or Committer who does not read,
+review, and comment on a proposal <i><b>implicitly</b></i> endorses that
+proposal. Thus it behooves all in the community to take an active role in
+reading proposals and review material in order to make that endorsement
+explicitly rather than implicitly.<sup>2,3</sup></p>
+<p>One should also note that due to the social dynamics of the Eclipse projects
+and membership, it is unlikely that negative votes (vetos) will occur without
+prior notice at Reviews. Thus negative or critical comments are most useful in
+advance, in the newsgroups and mailing lists associated with the proposal or
+review.</p>
+<h3><a name="Creation Review">Creation Review</a></h3>
+<p>The proposal phase ends with a Creation Review. The proposed project lead is expected to make
+a brief presentation to the review committee as well as any interested Eclipse
+members; the <a href="review-mechanisms.php">Review Mechanisms page</a>
+describes the Review itself. The presentation should include:</p>
+<ol>
+ <li>Brief summary of the project proposal</li>
+ <li>Comments about the community response to the proposal</li>
+ <li>Current project participants</li>
+ <li>Initial implementation focus</li>
+ <li>Confirmation that the project members have read and understand the Eclipse
+ Development Process and these guidelines</li>
+ <li>Future directions. </li>
+</ol>
+<p>See the successful
+presentations in the <a href="/proposals/">Proposals Archive</a> for
+examples.</p>
+<p>After a successful Creation Review, the project is considered <i>created</i>,
+and the proposers fill out the <a href="/projects/project_provisioning_request.php">Validation
+Phase Provisioning Request</a> form to create their CVS repository, mailing
+lists, website, download area, etc. The next phase is the <a href="validation-phase.php">Validation
+Phase</a>.
+</p>
+
+<h3>Top-Level Projects
+</h3>
+
+<p>Top-level projects have Charters (sub-projects exist under the Charter of
+their parent top-level project). Thus new top-level projects have their Charters
+reviewed at their Creation Review. Writing a new Charter, especially writing a
+Scope definition that is not overly broad, is a difficult task. New top-level
+projects should start by referencing the <a href="Eclipse_Standard_TopLevel_Charter_v1.0.php">Standard
+Top-Level Charter</a> and then plan to spend many hours across a number of
+calendar weeks refining the statement to the satisfaction of the Board and the
+entire Eclipse community.
+</p>
+
+<hr>
+<p><sup>1</sup> These graphics and watermarks do not yet exist. They will probably
+be created in 4Q2005.<sup><br>
+2</sup> Note that this implicit positive endorsement is different from
+the way the top-level project Charters define the process for adding new
+Committers and code contributions to a project. The Charters are negative biased
+because they require three positive votes.<sup><br>
+3</sup> The EMO is considering a number of schemes for proposal and project
+reviews. One proposal, assuming there are not sufficient resources to review all
+proposals, is to put together small ad-hoc committees of committers to review a
+random sampling of proposals and projects.</p>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/dev_process/release-review.php b/dev_process/release-review.php
new file mode 100644
index 0000000..39d3884
--- /dev/null
+++ b/dev_process/release-review.php
@@ -0,0 +1,296 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Release Review";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Release Review</h1>
+<p><i>version 018 - August 7, 2005</i></p>
+<p><a href="index.php">[This is one page of the larger document.]</a></p>
+<h2>Release Review</h2>
+
+<p> The Release Review is conducted before each major release to verify that the key goals of the release have been accomplished and to verify that all intellectual property rights issues have been
+resolved. For Eclipse projects with typical six week milestones, a plausible time for a release review is one to two weeks into the final six week period, i.e., four or five weeks before the release is scheduled to go live.<br>
+<br>
+The Release Review is attended by the EMO, the project leadership, and members of the Eclipse community.
+The Release Review process is described on the <a href="review-mechanisms.php">Review
+Mechanisms page</a>. The remainder of this page discusses the Review's content.<br>
+<br>
+The Release Review is the final review of the project, process, release and most
+importantly, the IP issues, against the characteristics that help ensure
+<a href="eclipse-quality.php"> Eclipse Quality</a>. In this context, Eclipse Quality means extensible frameworks and
+exemplary tools developed in an open, inclusive, and predictable process involving the entire community. We use this definition so that members of the Eclipse community and ecosystem can rely on and use the frameworks and tools in their work and their businesses, including direct use and use as building blocks of commercial products.</p>
+
+ <p>
+ A Release Review is a fairly comprehensive process. We anticipate that
+ gathering the material for the review and preparing the slide is a
+ non-trivial effort, but we believe that the introspection offered by this
+ exercise is useful for the project and that the results are very useful
+ for the community. </p>
+ <p>The items to be covered in the Review include the following. The slide
+ deck will probably average one or two slides on each of these bullets. (Note the use of the
+ word "summarize" throughout this agenda. Judgment must be used
+ to determine how much to include in each of these bullet items. At the
+ project's request, the EMO will help determine the appropriate level of
+ information.) </p>
+<blockquote><span style="background-color: #FFFFCC">Note that during the Release Review, the project leadership will personally
+assert/guarantee the veracity of the statements. The standard is especially high
+ for the IP Issues because the project leadership are the ones who know whether the
+ <a href="/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf"> IP
+Policy</a> has been followed rigorously or not. An obvious consequence of this is
+that the verbal report and written documents of the Release Review should not make statements
+that the project leadership cannot back up with facts.</span> </blockquote>
+ <ul>
+ <li>
+ <b>Features.</b> 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 (note: compare against the Project Plan section as the
+ forward looking sections apply to the next release). References to existing New & Noteworthy
+ documentation is a useful addition to this summary.
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason:</font></b> </i>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.
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>Non-Code Aspects.</b> Summarize the state of the non-code aspects
+ of the release including: user documentation, localization/externalization, examples,
+ tutorials, articles, and so on. Have the existing artifacts been
+ updated? Are there new artifacts? Have the obsolete ones been retired
+ or at least marked as pertaining only to older material?
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason:</font></b></i> The non-code aspects are essential for the
+ wide-spread adoption of the release.</li>
+ </ul>
+ </li>
+ <li>
+ <b>APIs.</b> Certify that the APIs in this release are <i><a href="eclipse-quality.php">Eclipse
+ Quality</a></i>. The project's Architecture Council representative will
+ personally certify that the requirements for quality have been met
+ and/or discuss any deficiences.
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason:</font></b></i> Eclipse members build commercial tools on top of
+ the extensible frameworks and thus the quality of the APIs is
+ extremely important.</li>
+ </ul>
+ </li>
+ <li><b>Tool Usability. </b>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.
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason:</font></b></i> Without usable
+ tools, the project will not attract the user community necessary
+ to enable the ecosystem. </li>
+ </ul>
+ </li>
+ <li>
+ <b>Architectural Issues.</b> Summarize the architectural quality of
+ the release. Discuss the <i>intrinsic nature of being extensible</i>
+ embodied by this project. Discuss issues such as unresolved overlap with other
+ projects, unpaid "merge debt" from incorporating various
+ components, and so on.
+ <ul>
+ <li><font color="#0080C0"><b>
+ <i>Reason: </i></b></font>Eclipse members build commercial tools
+ on top of the extensible frameworks and thus the quality of the
+ architecture is important.</li>
+ </ul>
+ </li>
+ <li>
+ <b>End-of-Life.</b> Summarize the features (APIs and any significant
+ user features)
+ from previous releases that are being end-of-life'd in this release.
+ End of life includes both deprecation and actual removal.
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason:</font></b></i> The community builds products that rely on
+ features and so they need to know when these features are
+ changing.</li>
+ </ul>
+ </li>
+ <li>
+ <b>Bugzilla.</b> Summarize the bugzilla situation. How many bug
+ records (defects and enhancements) have been
+ opened/closed/deferred/new, etc? How many P1, P2, ..., bug records are
+ outstanding?
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason:</font></b></i> Summaries of the bugzilla records offer a glimpse
+ into the project productivity. They also offer an estimate of the
+ outstanding risk. And the summary is used to alert the community
+ to known issues.</li>
+ </ul>
+ </li>
+ <li>
+ <b>Standards.</b> Summarize the standards compliance of this release.
+ If the features are based on defined, pending, or ad-hoc standards,
+ what is the state of those standards and what is the state of the
+ support for those standards in this release.
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason: </font></b></i>Eclipse is about building frameworks and tools
+ based on standards, so we need to make sure that we are conforming
+ to the appropriate standards.</li>
+ </ul>
+ </li>
+ <li>
+ <b>Schedule.</b> 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.
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason:</font></b></i> The community relies on consistent schedules from
+ Eclipse so that projects and products can plan for the correct
+ dependencies.</li>
+ </ul>
+ </li>
+ <li>
+ <b>Process.</b> Summarize the project's conformance to the <a href="/org/documents/Eclipse%20Development%20Process%202003_11_09%20FINAL.pdf">Eclipse
+ Development Process</a> and to <a href="index.php">these guidelines</a>.
+ Has this release been developed using open,
+ transparent, permeable, and inclusive processes? Has this release followed
+ its charter principles? Consider the use of bugzilla, the
+ mailing lists, the newsgroups, conference calls, committer
+ elections/removals, etc.
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason:</font></b></i> 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 process of building the community.</li>
+ </ul>
+ </li>
+ <li><b>Communities.</b> 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), ...
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason:</font></b></i> 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.</li>
+ </ul>
+ </li>
+ <li>
+ <b>IP Issues.</b> As per the <a href="/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf">Eclipse
+ IP Policy</a>, these steps must be done:
+ <ol>
+ <li>The project leadership verifies that:
+ <ul>
+ <li>... that the about files and use licenses are in place as
+ per the <a href="/legal/guidetolegaldoc.php">Guidelines to
+ Legal Documentation</a>.</li>
+ <li>... 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. (see below)</li>
+ <li>... that all
+ significant contributions have been reviewed by the Foundation's
+ legal staff. (see below)</li>
+ <li>... that all non-committer code contributions, including third-party libraries, have
+ been documented in the release and reviewed by the Foundation's legal
+ staff (see below)</li>
+ <li>... that all contribution questionnaires have been completed
+ (see below)</li>
+ <li>... the "provider" field of each plug-in is set to
+ "eclipse.org"</li>
+ <li>... the "copyright" field of each plug-in is set to
+ the copyright owner.</li>
+ </ul>
+ </li>
+ <li>The PMC provides a <a href="project-log.php"> Project Log</a> that enumerates:
+ <ol type="a">
+ <li>every piece of third party software including information on
+ the license</li>
+ <li>every major contribution</li>
+ <li>the name of every contributor including
+ non-committer contributions via bug fixes with bug #'s</li>
+ <li>the About files which contain any non-standard terms
+ (e.g., a reference to a license other than the EPL, etc)</li>
+ </ol>
+ </li>
+ <li>The EMO will validate for (a) and (b) that contribution questionnaires
+ have been properly submitted and EMO approvals have been
+ completed.</li>
+ <li>The Project Log is part of the Release Review documentation. It
+ can be included in the slides or as a separate document.</li>
+ </ol>
+ </li>
+ <li><b>IP Issues (II).</b> The EMO explicitly asks during the Release
+ Review if any Member would like to assert that this release infringes
+ their IP rights. If so, the EMO and the project will follow the
+ Eclipse IP Policy in discussions with that Member.
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason:</font></b></i> One of the important benefits that the Eclipse
+ Foundation provides for its members is the consistent application
+ of the <a href="/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf">Eclipse
+ IP Policy</a> which helps ensure (but does not guarantee) that the
+ framework and tools are useable in commercial products. </li>
+ </ul>
+ </li>
+ <li>
+ <b>Project Plan.</b> If there is a Project Plan (full or even a draft)
+ for the next release, the final issue to cover in the Release Review
+ is the unveiling of the new plan.
+ </li>
+ <li>
+ <b>Release Review Version. </b>The slides should include reference to
+ the version of this document the Review is based on.
+ <ul>
+ <li>
+ <i><b><font color="#0080C0">Reason:</font></b></i> The guidelines
+ are continually evolving and a reader in the future will want to
+ know what version of the guidelines were in place when the Release
+ Review was completed. </li>
+ </ul>
+ </li>
+ </ul>
+ <p>Example slide decks can be found in the <a href="/projects/previous-release-reviews.php">Release
+ Review archives</a>. </p>
+ <p>
+ After the public Release Review, the EMO (and, if appropriate, the parent
+ PMC) consider the community feedback and announce the result: </p>
+ <ul>
+ <li>
+ Pass - the review is acceptable and the release should proceed
+ </li>
+ <li>
+ Postpone - issues have arisen that must be solved before the
+ release proceeds
+ </li>
+ <li>
+ Pass w/ Notes - the release has some issues that need to be addressed,
+ but they can be addressed with release notes and/or documentation
+ </li>
+ <li>
+ Pass w/ Issues - the release has some issues, but they can be
+ addressed in a future release as agreed to in the review
+ </li>
+ <li>
+ Fail - there are significant problems with the release and/or the
+ project.
+ </li>
+ </ul>
+<p>After a successful Release Review, the project continues in the <a href="implementation-phase.php">Implementation
+Phase</a>.</p>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/dev_process/review-mechanisms.php b/dev_process/review-mechanisms.php
new file mode 100644
index 0000000..3c96cd5
--- /dev/null
+++ b/dev_process/review-mechanisms.php
@@ -0,0 +1,66 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Review Mechanisms";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Review Mechanisms</h1>
+<p><i>version 014 - July 26, 2005</i></p>
+<p><a href="index.php">[This is one page of the larger document.]</a></p>
+<h2>Creation, Checkpoint, and Release Reviews</h2>
+<p>Phases end with Reviews. For each Review, the project leadership makes a presentation to the review committee as well as any interested Eclipse
+members. Their are a number of guidelines/requirements for the presentation
+slides:</p>
+<ul>
+ <li>The presentation slides must be posted to the project website at least one
+ week, preferably two weeks, in advance. For proposals, the slides must be
+ provided to the EMO for posting with the proposal.
+ <ul>
+ <li>If the project posts the slides, the URL is to be emailed to the EMO
+ for reference from other eclipse.org pages.</li>
+ <li>If the project posted the slides, a copy of the current version is to
+ be emailed to the EMO after the review for archiving.</li>
+ </ul>
+ </li>
+ <li>The presentation slides must be available on the website in a format that
+ anyone in the membership can review. For example, PowerPoint is not an
+ acceptable single format - it can be one of the formats available, but not
+ the only one. For a single format, please use PDF. </li>
+ <li>The presentation slides should have page numbers to allow the attendees to
+ follow along.</li>
+ <li>The slides are not authored by the Eclipse Foundation - they are authored
+ by a project lead, or a project lead employed by a company - and thus the
+ footer of the slides should make the authorship clear.</li>
+ <li>The slides must be licensed under the EPL.</li>
+</ul>
+<p>All Reviews are announced by the EMO on <a href="/projects/">the Eclipse
+website</a>.</p>
+<p>Unless otherwise specified, Reviews are held as conference calls -
+the EMO will provide a call-in number. The project team can utilize other
+mechanisms (e.g., web conferencing) at its own expense as long as those
+mechanisms are available to all the attendees without additional costs to the
+attendees.</p>
+
+<h3>Archival Quality</h3>
+<p>The Review presentations are archived on the Eclipse website (Creation
+Reviews are <a href="/proposals/">archived with their proposal</a>,
+Checkpoint and Release Reviews <a href="/projects/previous-release-reviews.php">are
+archived</a>). Eclipse members may not be able to attend the Review conference
+calls for a variety of reasons including that the member did not become a member
+until after the Review occurred - in spite of this, the members still need to
+have access to the Review presentations. Thus the presentation slide decks need
+to be more than just slide decks: they need to be archival quality documents
+that are comprehensible and complete on their own.</p>
+<p>What this means to presentation authors is that the slide deck needs to have
+more detail than a normal face-to-face meeting presentation would usually have.
+Specific facts, numbers, dates, etc.</p>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/dev_process/status-and-planning-reporting.php b/dev_process/status-and-planning-reporting.php
new file mode 100644
index 0000000..3728412
--- /dev/null
+++ b/dev_process/status-and-planning-reporting.php
@@ -0,0 +1,234 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Status and Planning Reporting";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <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. <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><project><br>
+ <name></code><i>project name</i><code></name><br>
+ <short-name></code><i>project short name</i><code></short-name><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>
+ <url></code><i>project home url</i><code></url><br>
+</code>Obviously, the home page for the project.</p>
+<p><code> <summary></code><i>executive summary of current status</i><code></summary><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> <description url="</code><i>url of project description</i><code>"/><br>
+ <description></code><i>description of project</i><code></description><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> <shipping><br>
+ <release url="</code><i>download url 1</i><code>"></code><i>description
+1</i><code></release><br>
+ <release url="</code><i>download url 2</i><code>"></code><i>description
+2</i><code></release><br>
+ ...<br>
+ </shipping><br>
+ <shipping url="</code><i>download page url</i><code>" aname="Latest
+Releases"/><br>
+</code>The latest releases that are currently shipping.</p>
+<p>The first format is an XML version of the "Latest Releases" 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><a name="..."></code></li>
+ <li>from there, search for <code><a href></code>s and extract
+ description and download urls. The <a href>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></table></code>, <code></ul></code>,
+ or <code></ol></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 <a href>
+ 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> <releases include-in-parent="true"><br>
+ <milestone status="tentative|scheduled|completed"><br>
+ <date></code><i>date</i><code></date><br>
+ <plan format="defacto1"></code><i>optional planning or status url</i><code></plan><br>
+ <download></code><i>optional download url</i><code></download><br>
+ <name></code><i>name</i><code></name><br>
+ </milestone><br>
+ ...<br>
+ <release
+status="tentative|scheduled|completed"><br>
+ <date></code><i>date</i><code></date><br>
+ <plan format="defacto1"></code><i>optional planning or status url</i><code></plan><br>
+ <download></code><i>optional download url</i><code></download><br>
+ <name></code><i>name</i><code></name><br>
+ </release><br>
+ ...<br>
+ </releases><br>
+</code>The releases being planned and worked on. Obviously there should be a
+<shipping> entry for all <completed> releases. If this project does
+not ship separately (e.g., the JDT ships as part of the Platform), then there
+should be a <releases include-in-parent="true"> tag; otherwise
+include-in-parent should be excluded or set to "false".</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="defacto1"</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> <project-ip-log url="</code><i>url</i><code>"/><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> <community><br>
+ <mailing-list></code><i>list name</i><code></mailing-list><br>
+ ...<br>
+ <newsgroup></code><i>newsgroup name</i><code></newsgroup><br>
+ ...<br>
+ <bugzilla></code><i>product</i><code></bugzilla><br>
+ <bugzilla></code><i>product:component</i><code></bugzilla><br>
+ ...<br>
+ <blog></code><i>blog url</i><code></blog><br>
+ ...<br>
+ <cvs></code><i>cvs repository path</i><code></cvs><br>
+ ...<br>
+ </community><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 <mailing-list> 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></project></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 "major Eclipse projects".</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 "up-to-dateness" 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
+ "MISSING" 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., "hasn't been
+updated" or "date field '27-Jan-2006' is not in DD/MM/YYYY or MM/YYYY
+or NQYYYY date format", 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 "robo-emailer is giving up".</li>
+</ul>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/dev_process/validation-phase.php b/dev_process/validation-phase.php
new file mode 100644
index 0000000..78902e5
--- /dev/null
+++ b/dev_process/validation-phase.php
@@ -0,0 +1,235 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Validation Phase";
+$pageKeywords = "development process";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+
+<h1>Validation Phase</h1>
+<p><i>version 023 - August 19, 2005</i></p>
+<p><a href="index.php">[This is one page of the larger document.]</a></p>
+<h2>Validation (Incubation) Phase</h2>
+
+<p>The purpose of the validation phase is to establish a
+ fully-functioning open-source project. In this context, validation (incubation) is about
+ developing the process and the community. While it might seem easy, history
+ has shown that it takes experience to run an open, transparent, welcoming, and predictable software development process. And history has shown that it
+ takes a significant investment of time and energy to nurture a community of
+ tool users and framework users around a new project.</p>
+
+<p>The validation phase includes typical software project management issues such
+as identifying critical use cases, producing a high level design, acquiring the
+necessary rights to all requirement intellectual property, and so on. The
+validation phase also includes creating viable user, plug-in developer, and
+committer communities around the project.</p>
+
+<h3><a name="Three Communities">Three Communities</a></h3>
+
+<p>The Eclipse Bylaws section 1.1 describes the purpose of the Eclipse projects
+as "a vendor-neutral, open development platform supplying frameworks and
+exemplary, extensible tools... [the] tools are extensible in that their
+functionality is accessible via documented programmatic interfaces."
+Essential to that purpose is the development of three inter-related communities
+around each project:</p>
+
+<ul>
+ <li><b>Committers</b> - an active, open, transparent, and inclusive community
+ of Committers, developers, and other non-Committer contributors is essential for the health of
+ the project. Attracting new contributors and committers to an open source
+ project is time consuming and requires active recruiting, not just passive
+ "openness". The project leadership must go out of its way to
+ encourage and nurture new contributors. A Committer community
+ comprised entirely, or even in the majority, from a single company is
+ contra-indicated for a project's long-term success as an open source
+ project. </li>
+ <li><b>Users</b> - an active and engaged user community is proof-positive that
+ the project's exemplary tools are useful and needed. Furthermore, a large
+ user community is one of the key factors in creating a viable ecosystem
+ around an Eclipse project, thus bringing additional open source and
+ commercial organizations on board. Like all good things, a user community
+ takes time and effort to bring to fruition, but once established is nicely
+ self-sustaining.</li>
+ <li><b>Plug-in Developers</b> - an active and engaged plug-in developer
+ community is only way to prove that an Eclipse project is providing
+ extensible frameworks and extensible tools accessible via documented APIs.
+ Reuse of the frameworks within the companies that are contributing to the
+ project is necessary, but not sufficient to demonstrate a plug-in community.
+ Again, creating, encouraging, and nurturing a plug-in developer community
+ outside of the project's developers takes time, energy, and creativity by
+ the project leadership, but is essential to the project's long-term open
+ source success.</li>
+</ul>
+<p>The Eclipse community considers the absence of any one or more of these
+communities as proof that the project is not sufficiently open, transparent,
+permeable, and
+inviting, and/or that it has emphasized tools at the expense of extensible
+frameworks or vice versa.</p>
+<p>Many Eclipse projects are proposed and initiated by companies and personnel
+with extensive software development experience. No doubt these teams already
+understand that each organization has a slightly different way of doing things
+and that the Validation/Incubation Phase is useful for "learning the
+ropes" of Eclipse open source projects.</p>
+
+<h3>Initial Code and Development</h3>
+
+<p>The Validation Phase is also when initial code contributions are gathered,
+designs and prototypes are created, and a project plan is formulated. This is
+also when the first APIs are being designed, spec'd and distributed to the
+community for feedback and review. A few of the issues to consider in phase are:</p>
+
+<ol>
+ <li>All code contributions, including initial code contributions, must be
+ vetted against the IP Policy by the EMO. This is one of the issues discussed
+ in the <a href="/legal/committerguidelines.phpl">Due Diligence Guidelines</a>,
+ and is begun by filling out one or more <a href="/legal/ContributionQuestionnairePart1-v1.0.php">Contribution
+ Questionnaire</a>. Note that the due diligence process takes, on average,
+ four to six weeks, thus it is important not to delay starting the process.</li>
+ <li><a href="eclipse-quality.php">Platform quality APIs</a> are extremely
+ important for Eclipse and Platform quality APIs take a lot of hard work to
+ create. Thus it is essential that all new Eclipse projects start their API
+ design, specification, and review process as they start
+ committing code to their CVS repository.</li>
+ <li> The project will most likely produce a number of 0.N releases
+ during this phase in order to garner feedback from the community on their
+ APIs and tools. This feedback loop is essential to bootstrapping the three
+ communities.</li>
+</ol>
+
+<p>The mechanics and obligations of running a Validation Phase project (adding committers,
+adding mailing lists, etc) are similar to those of running an Implementation Phase
+project so the reader is directed to <a href="implementation-phase.php">the
+Implementation Phase page for their descriptions</a>.</p>
+<h4>Project Log</h4>
+<p style="border-style: dotted; border-width: 2; padding-left: 5; padding-right: 5; padding-top: 2; padding-bottom: 2">The <a href="/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf"> Eclipse IP Policy</a> requires
+ <a href="/legal/committerguidelines.php"> certain due
+ diligence and record keeping</a>.
+ Small contributions in the form of bugzilla patches and the like can be
+ committed directly to the code base (after the appropriate contributor
+ information is recorded). Medium, large, and all third-party (non-EPL
+ licensed) contributions require the <a href="/legal/ContributionQuestionnairePart1-v1.0.htm"> Code Contribution
+ Questionnaire</a> and
+ additional record keeping. Maintaining a current and accurate <a href="project-log.php"> Project Log</a> is
+ the best way to keep this information up-to-date.</p>
+<h4>Bugzilla</h4>
+<p>A common question new projects ask is "how should we use Bugzilla
+effectively?". There are many schemes for using Bugzilla, but a common one
+is described on <a href="bugzilla-use.php">another page</a>.</p>
+<h4>Heartbeat Builds</h4>
+<p>We have learned that projects cannot successfully build their three
+communities without regular milestone releases (we recommend six to eight week
+periods), nor can it do so without regular, successful, heartbeat builds (we
+recommend at least nightly). Projects need regular milestones and builds so that
+their three communities can continuously pick up, integrate, test, use, and
+provide feedback on the latest features and improvements. Projects that do not
+provide frequent builds are effectively working in the closed rather than in the
+open.</p>
+
+<p>Projects often make use of the PDE project's <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.releng.basebuilder/readme.html?rev=HEAD">PDE
+BUILD tools</a> to help automate the builds.</p>
+
+<ul>
+ <li>We recommend that the automated build system use anonymous pserver CVS
+ commands rather than extssh because it's faster, it's more secure (no
+ developer password), and build system errors cannot accidentally modify any
+ files.</li>
+</ul>
+
+<h4><b>Brand graphics and watermarks</b></h4>
+
+<p>Projects in proposal and validation/incubation stages must use the
+ appropriate Eclipse-branded graphics in place of the usual Eclipse graphic (i.e.,
+ the Eclipse Proposal graphic and the Eclipse Incubation graphic<sup>1</sup> respectively) on
+ their webpage and communications. Projects in the proposal and
+ validation/incubation stages must use the appropriate watermark on their web
+ pages.</p>
+
+<h3><a name="Exiting Validation">Exiting Validation/Incubation</a></h3>
+
+<p>The criteria for exiting Validation include:</p>
+
+<ul>
+ <li>A working and demonstrable code base.</li>
+ <li>Active communities:
+ <ul>
+ <li>An active framework user (plug-in provider) community.<sup>2</sup>
+ </li>
+ <li>An active tool user community.</li>
+ <li>An active multi-organization committer/contributor/developer community.<sup>3</sup>
+ </li>
+ </ul>
+ </li>
+ <li>The project is operating fully in the open using open source rules of
+ engagement, e.g.,
+ <ul>
+ <li>Open and transparent Bugzilla with a described and documented bug process.</li>
+ <li>Open and transparent project schedules.</li>
+ <li>The project has working policies and procedures for developing,
+ specifying, testing, and getting feedback on APIs.</li>
+ <li>The project decision making processes are published, and all project
+ decisions are being made in public.</li>
+ </ul>
+ </li>
+ <li>The project team members have learned the ropes and logistics of being an
+ Eclipse project. In <a href="http://incubator.apache.org/incubation/Incubation_Policy.html">Apache
+ parlance</a>, the project "gets the Eclipse way".
+ <ul>
+ <li>Conforming to the entire Eclipse Development Process.</li>
+ <li>Adherence to the <a href="/org/documents/Eclipse%20IP%20Policy2003_12_03%20Final.pdf"> Eclipse IP Policy</a> including self-assessment
+ by each Committer on the <a href="/legal/committerguidelines.php"> committer responsibilities and due
+ diligence</a>.</li>
+ <li>Participating in the larger Eclipse community. For example, teaching
+ tutorials at EclipseCon, writing articles, commenting on other projects at
+ Reviews and other times, etc.</li>
+ <li>Working with other projects in its destination PMC.</li>
+ <li>The project is a credit to Eclipse and is functioning well within the
+ Eclipse community.</li>
+ </ul>
+ </li>
+ <li>An in-depth review of the technical architecture of the project, and its
+ dependencies and interactions with other projects.</li>
+</ul>
+<p>Projects are responsible for requesting a Checkpoint Review when the project
+leadership believes the project meets the exit criteria. The EMO will evaluate
+the request and act appropriately. Projects that are not making sufficient
+progress towards a Review will be at first gently, then, over time more
+forcefully, reminded that inaction is the same as negative action.</p>
+<h3><a name="Checkpoint Review">Checkpoint Review</a></h3>
+<p>The validation/incubation phase ends with a Checkpoint Review. <a href="review-mechanisms.php"> Like all
+Reviews</a>, the
+validation review starts with a presentation by the project leadership followed
+by questions from the membership.</p>
+<p>The Checkpoint Review is basically a <a href="release-review.php">Release
+Review</a>, but with added responsibility of verifying that <a href="#Exiting Validation"> the
+exit criteria listed above</a> are met. This is a very important Review because this is the last time
+that the entire Eclipse community will provide a first-level review of the
+project. Historically, future reviews, such as Release Reviews, tend to be second-order
+reviews - reviews that examine the surface appearance of the project/release
+rather than the deep details of the project/release. This is not for a lack of
+desire, but rather for a lack of resources. Thus future Reviews rely on
+self-certification by the project teams that they are following the Eclipse
+principles and standards. The Validation Review is where the community
+ascertains to its own satisfaction that the project team understands and has
+adopted the principles and practices of the Eclipse Development Process.</p>
+<p>The next phase is the <a href="implementation-phase.php">Implementation Phase</a>.</p>
+
+<hr>
+<p align="left"><sup>1</sup> These graphics and watermarks do not yet exist. They
+will probably be created in 4Q2005.<sup><br>
+2</sup> It is essential for an Eclipse project to have
+both an extensible framework and exemplary tools. However, if one had to
+prioritize between the two, an extensible framework is more important -
+Eclipse is about enabling the ecosystem rather than just about giving away free
+tools.<br>
+<sup>3</sup> We note that there is evidence that having a single
+company with a focused, well socialized team, is a good way to start up a
+challenging new project. We do not want to discourage this start-up method, but
+we do want to ensure that for a project to move into the Implementation Phase,
+it has an expanded committer community.</p>
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/fakereports/birt/eclipse-project-info.xml b/fakereports/birt/eclipse-project-info.xml
new file mode 100644
index 0000000..ee62aa5
--- /dev/null
+++ b/fakereports/birt/eclipse-project-info.xml
@@ -0,0 +1,48 @@
+<?xml version='1.0'?>
+<project>
+ <name>Business Intelligence and Reporting Tools</name>
+ <short-name>BIRT</short-name>
+ <url>http://www.eclipse.org/birt</url>
+ <summary>
+ BIRT is an open source, Eclipse-based reporting system that integrates
+ with your application to produce compelling reports for both web and PDF.
+ </summary>
+ <description>
+ BIRT provides core reporting features such as report layout, data access
+ and scripting. The current released version is 1.0.1. Please try BIRT and
+ tell us what you think by filling bugs reports & enhancement requests
+ through Bugzilla as explained on the community page.
+ </description>
+ <shipping url="http://download.eclipse.org/birt/downloads/main.php" aname="download"/>
+ <releases>
+ <release status="completed">
+ <date>05/2005</date>
+ <plan format="defacto1">http://www.eclipse.org/birt/index.php?page=project/project_plan_R1_0.html</plan>
+ <name>1.0</name>
+ </release>
+ <release status="scheduled">
+ <date>07/2005</date>
+ <plan format="defacto1">http://www.eclipse.org/birt/index.php?page=project/project_plan_R1_0_1.html</plan>
+ <name>1.0.1</name>
+ </release>
+ <release status="tentative">
+ <date>12/2005</date>
+ <plan format="defacto1">http://www.eclipse.org/birt/index.php?page=project/project_plan_R2_0_0_Draft.html</plan>
+ <name>2.0</name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>birt-charting-dev</mailing-list>
+ <mailing-list>birt-dev</mailing-list>
+ <mailing-list>birt-news</mailing-list>
+ <mailing-list>birt-pmc</mailing-list>
+ <mailing-list>birt-proposal</mailing-list>
+ <mailing-list>birt-report-designer-dev</mailing-list>
+ <mailing-list>birt-report-engine-dev</mailing-list>
+ <newsgroup>eclipse.birt</newsgroup>
+ <bugzilla>BIRT</bugzilla>
+ <blog>http://birtworld.blogspot.com/</blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/datatools/eclipse-project-info.xml b/fakereports/datatools/eclipse-project-info.xml
new file mode 100644
index 0000000..d93b191
--- /dev/null
+++ b/fakereports/datatools/eclipse-project-info.xml
@@ -0,0 +1,39 @@
+<?xml version='1.0'?>
+<project>
+ <name>Data Tools Platform</name>
+ <short-name>DTP</short-name>
+ <url>http://www.eclipse.org/datatools</url>
+ <summary>
+ Data Tools. is a vast domain, yet there are a fairly small number of
+ foundational requirements when developing with or managing data-centric
+ systems. A developer is interested in an environment that is easy to
+ configure, one in which the challenges of application development are
+ due to the problem domain, not the complexity of the tools employed.
+ Data management, whether by a developer working on an application, or
+ an administrator maintaining or monitoring a production system, should
+ also provide a consistent, highly usable environment that works well with
+ associated technologies.
+ </summary>
+ <description>
+ The Data Tools Platform project is an open source project of eclipse.org,
+ overseen by a Project Management Committee (PMC) and project leaders.
+ </description>
+ <shipping url="http://www.eclipse.org/datatools/downloads.html" aname="downloads"/>
+ <releases>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>dtp-arch</mailing-list>
+ <mailing-list>dtp-connect-dev</mailing-list>
+ <mailing-list>dtp-dev</mailing-list>
+ <mailing-list>dtp-models-dev</mailing-list>
+ <mailing-list>dtp-plan</mailing-list>
+ <mailing-list>dtp-pmc</mailing-list>
+ <mailing-list>dtp-reqs</mailing-list>
+ <mailing-list>dtp-sqldevtools-dev</mailing-list>
+ <newsgroup>eclipse.dtp</newsgroup>
+ <bugzilla>DataTools</bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/dsdp/eclipse-project-info.xml b/fakereports/dsdp/eclipse-project-info.xml
new file mode 100644
index 0000000..5de5d75
--- /dev/null
+++ b/fakereports/dsdp/eclipse-project-info.xml
@@ -0,0 +1,35 @@
+<project>
+ <name>Device Software Development Platform</name>
+ <short-name>DSDP</short-name>
+ <url>http://www.eclipse.org/dsdp/</url>
+ <summary>
+ The Eclipse Device Software Development Platform (DSDP) Project is an
+ open source collaborative software development project dedicated to
+ providing an extensible, standards-based platform to address a broad
+ range of needs in the device software development space using the
+ Eclipse platform. The project is overseen by a Project Management
+ Committee (PMC). The work is done in subprojects working against a
+ CVS repository. The Eclipse DSDP Project Charter describes the
+ organization of the project, as well as roles and responsibilities
+ of the participants.
+ </summary>
+ <description>
+ The Eclipse Device Software Development Platform (DSDP) Project is an
+ open source collaborative software development project dedicated to
+ providing an extensible, standards-based platform to address a broad
+ range of needs in the device software development space using the
+ Eclipse platform.
+ </description>
+ <shipping url="" aname=""/>
+ <releases>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>dsdp-dev</mailing-list>
+ <mailing-list>dsdp-dd-dev</mailing-list>
+ <newsgroup>eclipse.dsdp</newsgroup>
+ <bugzilla>DSDP</bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/index.cgi/?cvsroot=DSDP_Project</cvs>
+ </community>
+</project>
diff --git a/fakereports/eclipse/eclipse-project-info.xml b/fakereports/eclipse/eclipse-project-info.xml
new file mode 100644
index 0000000..b69d0b0
--- /dev/null
+++ b/fakereports/eclipse/eclipse-project-info.xml
@@ -0,0 +1,39 @@
+<project>
+ <name>Eclipse</name>
+ <short-name>Eclipse</short-name>
+ <url>http://www.eclipse.org/eclipse/</url>
+ <summary>
+ The Eclipse Project is an open source project of eclipse.org, overseen
+ by a Project Management Committee (PMC) and project leaders. The work
+ is done in subprojects working against a CVS repository. The Eclipse
+ Project Charter describes the organization of the project, roles and
+ responsibilities of the participants, and top level development process
+ for the project.
+ </summary>
+ <description>
+ Eclipse is an open source software development project dedicated to
+ providing a robust, full-featured, commercial-quality, industry platform
+ for the development of highly integrated tools. It is composed of three
+ projects, the Eclipse Project, the Eclipse Tools Project and the
+ Eclipse Technology Project, each of which is overseen by a Project
+ Management Committee (PMC) and governed by its Project Charter. Each
+ project is composed of its own subprojects and is licensed under the
+ CPL version 1.0.
+ </description>
+ <shipping url="http://www.eclipse.org/downloads/three.php" aname="download"/>
+ <releases>
+ <release status="completed">
+ <date>6/28/2005</date>
+ <plan format="defacto1"></plan>
+ <name>3.1</name>
+ </release>
+ <release status="scheduled">
+ <date>2Q2006</date>
+ <plan format="defacto1"></plan>
+ <name>3.2</name>
+ </release>
+ </releases>
+ <community>
+ <cvs>http://dev.eclipse.org/viewcvs/</cvs>
+ </community>
+</project>
diff --git a/fakereports/eclipse/equinox/emptydirectory.txt b/fakereports/eclipse/equinox/emptydirectory.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fakereports/eclipse/equinox/emptydirectory.txt
diff --git a/fakereports/eclipse/jdt/eclipse-project-info.xml b/fakereports/eclipse/jdt/eclipse-project-info.xml
new file mode 100644
index 0000000..8eac321
--- /dev/null
+++ b/fakereports/eclipse/jdt/eclipse-project-info.xml
@@ -0,0 +1,34 @@
+<project>
+ <name>Java Development Tools</name>
+ <short-name>JDT</short-name>
+ <url>http://www.eclipse.org/jdt/index.html</url>
+ <summary>
+ The JDT project provides the tool plug-ins that implement a Java IDE
+ supporting the development of any Java application, including Eclipse
+ plug-ins. It adds a Java project nature and Java perspective to the
+ Eclipse Workbench as well as a number of views, editors, wizards,
+ builders, and code merging and refactoring tools. The JDT project
+ allows Eclipse to be a development environment for itself.
+ </summary>
+ <description>
+ The JDT project contributes a set of plug-ins that add the capabilities
+ of a full-featured Java IDE to the Eclipse platform. The JDT plugins
+ provide APIs so that they can themselves be further extended by other
+ tool builders.
+ </description>
+ <shipping url="http://download.eclipse.org/eclipse/downloads/index.php" aname="Latest Release"/>
+ <releases include-in-parent="true"/>
+ <community>
+ <mailing-list>jdt-dev</mailing-list>
+ <mailing-list>jdt-apt-dev</mailing-list>
+ <mailing-list>jdt-core-dev</mailing-list>
+ <mailing-list>jdt-doc-dev</mailing-list>
+ <mailing-list>jdt-ui-dev</mailing-list>
+ <mailing-list>jdt-debug-dev</mailing-list>
+ <mailing-list></mailing-list>
+ <newsgroup>eclipse.tools.jdt</newsgroup>
+ <bugzilla>Eclipse.JDT</bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/eclipse/pde/eclipse-project-info.xml b/fakereports/eclipse/pde/eclipse-project-info.xml
new file mode 100644
index 0000000..9d91b83
--- /dev/null
+++ b/fakereports/eclipse/pde/eclipse-project-info.xml
@@ -0,0 +1,29 @@
+<project>
+ <name>Plug-in Development Environment</name>
+ <short-name>PDE</short-name>
+ <url>http://www.eclipse.org/pde/index.html</url>
+ <summary>
+ The PDE project provides a number of views and editors that make is
+ easier to build plug-ins for Eclipse. Using the PDE, you can create
+ your plug-in manifest file (plugin.xml), specify your plug-in runtime
+ and other required plug-ins, define extension points, including their
+ specific markup, associate XML Schema files with the extension point
+ markup so extensions can be validated, create extensions on other
+ plug-in extension points, etc. The PDE makes integrating plug-ins
+ easy and fun.
+ </summary>
+ <description>
+ </description>
+ <shipping url="http://download.eclipse.org/eclipse/downloads/index.php" aname="Latest Release"/>
+ <releases include-in-parent="true" />
+ <community>
+ <mailing-list>pde-dev</mailing-list>
+ <mailing-list>pde-build-dev</mailing-list>
+ <mailing-list>pde-doc-dev</mailing-list>
+ <mailing-list>pde-ui-dev</mailing-list>
+ <newsgroup></newsgroup>
+ <bugzilla>Eclipse.PDE</bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/eclipse/platform/eclipse-project-info.xml b/fakereports/eclipse/platform/eclipse-project-info.xml
new file mode 100644
index 0000000..b9f76cf
--- /dev/null
+++ b/fakereports/eclipse/platform/eclipse-project-info.xml
@@ -0,0 +1,54 @@
+<project>
+ <name>Eclipse Platform</name>
+ <short-name>Eclipse Platform</short-name>
+ <url>http://eclipse.org/platform/index.html</url>
+ <summary>
+ The Eclipse Platform subproject provides the core frameworks and
+ services upon which all plug-in extensions are created. It also
+ provides the runtime in which plug-ins are loaded, integrated, and
+ executed. The primary purpose of the Platform subproject is to
+ enable other tool developers to easily build and deliver integrated
+ tools.
+ </summary>
+ <description>
+ The Eclipse platform itself is a sort of universal tool platform -
+ it is an IDE for anything and nothing in particular. It can deal with
+ any type of resource (Java files, C files, Word files, HTML files,
+ JSP files, etc) in a generic manner but doesn't know how to do
+ anything that is specific to a particular file type. The Eclipse
+ platform, by itself, doesn't provide a great deal of end-user
+ functionality - it is what it enables that is interesting. The real
+ value comes from tool plug-ins for eclipse that "teach" the platform
+ how to work with these different kinds of resources. This pluggable
+ architecture allows a more seamless experience for the end user when
+ moving between different tools than ever before possible.
+ </description>
+ <shipping url="http://download.eclipse.org/eclipse/downloads/index.php" aname="Latest Release"/>
+ <releases include-in-parent="true">
+ </releases>
+ <community>
+ <mailing-list>platform-dev</mailing-list>
+ <mailing-list>platform-ant-dev</mailing-list>
+ <mailing-list>platform-compare-dev</mailing-list>
+ <mailing-list>platform-core-dev</mailing-list>
+ <mailing-list>platform-cvs-dev</mailing-list>
+ <mailing-list>platform-debug-dev</mailing-list>
+ <mailing-list>platform-doc-dev</mailing-list>
+ <mailing-list>platform-help-dev</mailing-list>
+ <mailing-list>platform-releng-dev</mailing-list>
+ <mailing-list>platform-scripting-dev</mailing-list>
+ <mailing-list>platform-search-dev</mailing-list>
+ <mailing-list>platform-swt-dev</mailing-list>
+ <mailing-list>platform-team-dev</mailing-list>
+ <mailing-list>platform-text-dev</mailing-list>
+ <mailing-list>platform-ua-dev</mailing-list>
+ <mailing-list>platform-ui-dev</mailing-list>
+ <mailing-list>platform-update-dev</mailing-list>
+ <mailing-list>platform-webdav-dev</mailing-list>
+ <newsgroup>eclipse.platform</newsgroup>
+ <bugzilla>Eclipse.Platform</bugzilla>
+ <bugzilla>Eclipse.Equinox</bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/ajdt/eclipse-project-info.xml b/fakereports/technology/ajdt/eclipse-project-info.xml
new file mode 100644
index 0000000..daeb11f
--- /dev/null
+++ b/fakereports/technology/ajdt/eclipse-project-info.xml
@@ -0,0 +1,45 @@
+<project>
+ <name>AspectJ Development Tools</name>
+ <short-name>AJDT</short-name>
+ <url>http://www.eclipse.org/ajdt/</url>
+ <summary>
+ The AspectJ Development Tools (AJDT) project provides Eclipse
+ platform based tool support for AOSD with AspectJ. Our goal is
+ to deliver a user experience that is consistent with the Java
+ Development Tools (JDT) when working with AspectJ projects and
+ resources.
+ </summary>
+ <description>
+ The AspectJ Development Tools (AJDT) project provides Eclipse
+ platform based tool support for AOSD with AspectJ. Our goal is
+ to deliver a user experience that is consistent with the Java
+ Development Tools (JDT) when working with AspectJ projects and
+ resources.
+ </description>
+ <shipping url="http://www.eclipse.org/ajdt/downloads/" aname="dev"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>ajdt-dev</mailing-list>
+ <newsgroup>eclipse.technology.ajdt</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.ajdt</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/alf/eclipse-project-info.xml b/fakereports/technology/alf/eclipse-project-info.xml
new file mode 100644
index 0000000..368d527
--- /dev/null
+++ b/fakereports/technology/alf/eclipse-project-info.xml
@@ -0,0 +1,52 @@
+<project>
+ <name>Application Lifecycle Management</name>
+ <short-name>ALF</short-name>
+ <url>http://www.eclipse.org/alf</url>
+ <summary>
+ The Application Lifecycle Framework (ALF) Project is a subproject
+ of the Eclipse Technology Project. Its purpose is to create a
+ technology framework that will enable a diverse set of vendor
+ tools, irrespective of architecture or platform, to exchange user
+ data, manage business processes and collaborate in support the
+ chosen ALM infrastructure technologies in use by development
+ communities.
+ </summary>
+ <description>
+ The Application Lifecycle Framework (ALF) Project is a subproject
+ of the Eclipse Technology Project. Its purpose is to create a
+ technology framework that will enable a diverse set of vendor
+ tools, irrespective of architecture or platform, to exchange user
+ data, manage business processes and collaborate in support the
+ chosen ALM infrastructure technologies in use by development
+ communities.
+ </description>
+ <shipping>
+ </shipping>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>alf-dev</mailing-list>
+ <mailing-list>alf-events</mailing-list>
+ <mailing-list>alf-req</mailing-list>
+ <newsgroup>eclipse.technology.alf</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/aspectj/eclipse-project-info.xml b/fakereports/technology/aspectj/eclipse-project-info.xml
new file mode 100644
index 0000000..aef0fc5
--- /dev/null
+++ b/fakereports/technology/aspectj/eclipse-project-info.xml
@@ -0,0 +1,51 @@
+<project>
+ <name>AspectJ</name>
+ <short-name>AspectJ</short-name>
+ <url>http://www.eclipse.org/aspectj/</url>
+ <summary>
+ AspectJ(tm) is a simple and practical extension to the Java(tm)
+ programming language that adds to Java aspect-oriented programming
+ (AOP) capabilities. AOP allows developers to reap the benefits of
+ modularity for concerns that cut across the natural units of
+ modularity. In object-oriented programs like Java, the natural unit
+ of modularity is the class. In AspectJ, aspects modularize concerns
+ that affect more than one class.
+ </summary>
+ <description>
+ AspectJ(tm) is a simple and practical extension to the Java(tm)
+ programming language that adds to Java aspect-oriented programming
+ (AOP) capabilities. AOP allows developers to reap the benefits of
+ modularity for concerns that cut across the natural units of
+ modularity. In object-oriented programs like Java, the natural unit
+ of modularity is the class. In AspectJ, aspects modularize concerns
+ that affect more than one class.
+ </description>
+ <shipping url="http://www.eclipse.org/aspectj/downloads.php" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>aspectj-announce</mailing-list>
+ <mailing-list>aspectj-dev</mailing-list>
+ <mailing-list>aspectj-users</mailing-list>
+ <newsgroup>eclipse.technology.aspectj</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/index.cgi?cvsroot=Technology_Project</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/bpel-designer/eclipse-project-info.xml b/fakereports/technology/bpel-designer/eclipse-project-info.xml
new file mode 100644
index 0000000..da6c401
--- /dev/null
+++ b/fakereports/technology/bpel-designer/eclipse-project-info.xml
@@ -0,0 +1,41 @@
+<project>
+ <name></name>
+ <short-name></short-name>
+ <url></url>
+ <summary>
+ </summary>
+ <description>
+ </description>
+ <shipping url="" aname=""/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <newsgroup></newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/buckminster/eclipse-project-info.xml b/fakereports/technology/buckminster/eclipse-project-info.xml
new file mode 100644
index 0000000..ab587fb
--- /dev/null
+++ b/fakereports/technology/buckminster/eclipse-project-info.xml
@@ -0,0 +1,55 @@
+<project>
+ <name>Buckminster, Component Assembly</name>
+ <short-name>Buckminster</short-name>
+ <url>http://www.eclipse.org/buckminster/</url>
+ <summary>
+ The objective of the Buckminster, Component Assembly Project is to
+ leverage and extend the Eclipse platform to bring mixed-component
+ development comparable to Eclipse plug-in development in terms of
+ efficiency and ease of use, as well as to extend the Eclipse
+ component dependency model to allow component materialization based
+ on match rules. Buckminster can accomplish this objective by
+ introducing a project-agnostic way of describing the component
+ structure and dependencies of an arbitrarily complex development
+ project, plus a mechanism for materializing all corresponding
+ source and binary artifacts.
+ </summary>
+ <description>
+ The objective of the Buckminster, Component Assembly Project is to
+ leverage and extend the Eclipse platform to bring mixed-component
+ development comparable to Eclipse plug-in development in terms of
+ efficiency and ease of use, as well as to extend the Eclipse
+ component dependency model to allow component materialization based
+ on match rules. Buckminster can accomplish this objective by
+ introducing a project-agnostic way of describing the component
+ structure and dependencies of an arbitrarily complex development
+ project, plus a mechanism for materializing all corresponding
+ source and binary artifacts.
+ </description>
+ <shipping url="http://www.eclipse.org/buckminster/downloads.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>buckminster-dev</mailing-list>
+ <newsgroup>eclipse.technology.buckminster</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/cme/eclipse-project-info.xml b/fakereports/technology/cme/eclipse-project-info.xml
new file mode 100644
index 0000000..9717bd8
--- /dev/null
+++ b/fakereports/technology/cme/eclipse-project-info.xml
@@ -0,0 +1,50 @@
+<project>
+ <name>Concern Manipulation Environment</name>
+ <short-name>CME</short-name>
+ <url>http://www.eclipse.org/cme/</url>
+ <summary>
+ The Concern Manipulation Environment (CME) supports: 1) Software
+ developers who want to use an aspect-oriented software development
+ (AOSD) approach to simplify their existing or new software, whether
+ or not it was originally developed using AOSD technologies, and
+ 2) AOSD tool providers and researchers, who seek to provide novel
+ aspect-related technologies and paradigms, and make these available
+ to the development community in an integrated development environment.
+ </summary>
+ <description>
+ The Concern Manipulation Environment (CME) supports: 1) Software
+ developers who want to use an aspect-oriented software development
+ (AOSD) approach to simplify their existing or new software, whether
+ or not it was originally developed using AOSD technologies, and
+ 2) AOSD tool providers and researchers, who seek to provide novel
+ aspect-related technologies and paradigms, and make these available
+ to the development community in an integrated development environment.
+ </description>
+ <shipping url="http://dev.eclipse.org/viewcvs/indextech.cgi/%7Echeckout%7E/cme-home/downloads/index.html" aname="cme_source"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>cme-dev</mailing-list>
+ <mailing-list>cme-users</mailing-list>
+ <newsgroup>eclipse.technology.cme</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.cme</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/dali-orm/eclipse-project-info.xml b/fakereports/technology/dali-orm/eclipse-project-info.xml
new file mode 100644
index 0000000..98ac866
--- /dev/null
+++ b/fakereports/technology/dali-orm/eclipse-project-info.xml
@@ -0,0 +1,43 @@
+<project>
+ <name>Dali EJB Object-Relational Mapping</name>
+ <short-name>Dali-ORM</short-name>
+ <url>http://www.eclipse.org/dali/</url>
+ <summary>
+ The goal of the Dali EJB Object-Relational Mapping project is to
+ build extensible frameworks and exemplary tools for the definition
+ and editing of Object-Relational (O/R) mappings for EJB 3.0 Entity
+ Beans.
+ </summary>
+ <description>
+ The goal of the Dali EJB Object-Relational Mapping project is to
+ build extensible frameworks and exemplary tools for the definition
+ and editing of Object-Relational (O/R) mappings for EJB 3.0 Entity
+ Beans.
+ </description>
+ <shipping url="http://www.eclipse.org/dali/downloads_main.html" aname="download"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list></mailing-list>
+ newsgroup></newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/ecesis/eclipse-project-info.xml b/fakereports/technology/ecesis/eclipse-project-info.xml
new file mode 100644
index 0000000..6099b65
--- /dev/null
+++ b/fakereports/technology/ecesis/eclipse-project-info.xml
@@ -0,0 +1,43 @@
+<project>
+ <name>Eclipse Community Education Project</name>
+ <short-name>ECESIS</short-name>
+ <url>http://www.eclipse.org/ecesis/</url>
+ <summary>
+ The goal of the Eclipse Community Education Project (ECESIS) is to
+ promote the creation, improvement and distribution of commercial
+ and academic quality Eclipse courseware, education and training
+ technologies, and resource material.
+ </summary>
+ <description>
+ The goal of the Eclipse Community Education Project (ECESIS) is to
+ promote the creation, improvement and distribution of commercial
+ and academic quality Eclipse courseware, education and training
+ technologies, and resource material.
+ </description>
+ <shipping url="http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/ecesis-home/downloads/index.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>ecesis-dev</mailing-list>
+ <newsgroup>eclipse.technology.ecesis</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/ecf/eclipse-project-info.xml b/fakereports/technology/ecf/eclipse-project-info.xml
new file mode 100644
index 0000000..50fd3f1
--- /dev/null
+++ b/fakereports/technology/ecf/eclipse-project-info.xml
@@ -0,0 +1,47 @@
+<project>
+ <name>Eclipse Communication Framework</name>
+ <short-name>ECF</short-name>
+ <url>http://www.eclipse.org/ecf/</url>
+ <summary>
+ The Eclipse Communication Framework (ECF) provides APIs that
+ simplify the creation of interoperable, extensible, reliable
+ distributed applications. The framework is useful for aiding
+ the creation of plugins, tools, or full Eclipse RCP applications,
+ that require client-server and/or peer-to-peer messaging and
+ communications.
+ </summary>
+ <description>
+ The Eclipse Communication Framework (ECF) provides APIs that
+ simplify the creation of interoperable, extensible, reliable
+ distributed applications. The framework is useful for aiding
+ the creation of plugins, tools, or full Eclipse RCP applications,
+ that require client-server and/or peer-to-peer messaging and
+ communications.
+ </description>
+ <shipping url="http://www.eclipse.org/ecf/downloads.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>ecf-dev</mailing-list>
+ <newsgroup>eclipse.technology.ecf</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/emft/eclipse-project-info.xml b/fakereports/technology/emft/eclipse-project-info.xml
new file mode 100644
index 0000000..5716401
--- /dev/null
+++ b/fakereports/technology/emft/eclipse-project-info.xml
@@ -0,0 +1,36 @@
+<project>
+ <name></name>
+ <short-name>EMFT</short-name>
+ <url>http://www.eclipse.org/emft/</url>
+ <summary>
+ </summary>
+ <description>
+ </description>
+ <shipping>
+ </shipping>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>emft-dev</mailing-list>
+ <newsgroup>eclipse.technology.emft</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/ercp/eclipse-project-info.xml b/fakereports/technology/ercp/eclipse-project-info.xml
new file mode 100644
index 0000000..475877b
--- /dev/null
+++ b/fakereports/technology/ercp/eclipse-project-info.xml
@@ -0,0 +1,45 @@
+<project>
+ <name>Embedded Rich Client Platform</name>
+ <short-name>ERCP</short-name>
+ <url>http://www.eclipse.org/ercp/</url>
+ <summary>
+ The intent of this project is to extend the Eclipse Rich Client
+ Platform (RCP) to embedded devices. eRCP is largely a set of
+ components which are subsets of RCP components. It basically
+ enables the same application model used on desktop machines to be
+ used on devices.
+ </summary>
+ <description>
+ The intent of this project is to extend the Eclipse Rich Client
+ Platform (RCP) to embedded devices. eRCP is largely a set of
+ components which are subsets of RCP components. It basically
+ enables the same application model used on desktop machines to be
+ used on devices.
+ </description>
+ <shipping url="http://www.eclipse.org/ercp/downloads-page.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>ercp-dev</mailing-list>
+ <newsgroup>eclipse.technology.ercp</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ercp/?cvsroot=Technology_Project</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/gmf/eclipse-project-info.xml b/fakereports/technology/gmf/eclipse-project-info.xml
new file mode 100644
index 0000000..234b723
--- /dev/null
+++ b/fakereports/technology/gmf/eclipse-project-info.xml
@@ -0,0 +1,52 @@
+<project>
+ <name>Graphical Modelling Framework</name>
+ <short-name>GMF</short-name>
+ <url>http://www.eclipse.org/gmf/</url>
+ <summary>
+ The Graphical Modeling Framework project provides the fundamental
+ infrastructure and components for developing visual design and
+ modeling surfaces in Eclipse. In essence, GMF forms a generative
+ bridge between EMF and GEF, whereby a diagram definition will be
+ linked to a domain model as input to the generation of a visual
+ editor. The project aims to provide this framework, in addition to
+ exemplary tools for select domain models which illustrate its
+ capabilities.
+ </summary>
+ <description>
+ The Graphical Modeling Framework project provides the fundamental
+ infrastructure and components for developing visual design and
+ modeling surfaces in Eclipse. In essence, GMF forms a generative
+ bridge between EMF and GEF, whereby a diagram definition will be
+ linked to a domain model as input to the generation of a visual
+ editor. The project aims to provide this framework, in addition to
+ exemplary tools for select domain models which illustrate its
+ capabilities.
+ </description>
+ <shipping url="http://download.eclipse.org/technology/gmf/downloads/index.php" aname="Latest Release"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>gmf-dev</mailing-list>
+ <mailing-list>gmf-releng</mailing-list>
+ <newsgroup>eclipse.technology.gmf</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.gmf/?cvsroot=Technology_Project</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/gmt/eclipse-project-info.xml b/fakereports/technology/gmt/eclipse-project-info.xml
new file mode 100644
index 0000000..a27cbd9
--- /dev/null
+++ b/fakereports/technology/gmt/eclipse-project-info.xml
@@ -0,0 +1,53 @@
+<project>
+ <name>Generative Model Transformer</name>
+ <short-name>GMT</short-name>
+ <url>http://www.eclipse.org/gmt/</url>
+ <summary>
+ The goal of the Generative Model Transformer project (GMT) is to
+ produce a set of research tools in the area of MDSD (Model Driven
+ Software Development). These contributions are intended to be
+ illustrative of the variety of operations applicable to abstract
+ models. Historically the most important operation was model
+ transformation and this is the origin of the name of the project.
+ Currently model transformation stays an essential operation but other
+ model managenement facilities are also being proposed, broadering
+ the scope of the GMT project.
+ </summary>
+ <description>
+ The goal of the Generative Model Transformer project (GMT) is to
+ produce a set of research tools in the area of MDSD (Model Driven
+ Software Development). These contributions are intended to be
+ illustrative of the variety of operations applicable to abstract
+ models. Historically the most important operation was model
+ transformation and this is the origin of the name of the project.
+ Currently model transformation stays an essential operation but other
+ model managenement facilities are also being proposed, broadering
+ the scope of the GMT project.
+ </description>
+ <shipping url="http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/gmt-home/download/index.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>gmt-dev</mailing-list>
+ <newsgroup>eclipse.technology.gmt</newsgroup>
+ <bugzilla>http://dev.eclipse.org/bugs/buglist.cgi?product=gmt&cmdtype=doit&order=Reuse+same+sort+as+last+time</bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/higgins/eclipse-project-info.xml b/fakereports/technology/higgins/eclipse-project-info.xml
new file mode 100644
index 0000000..8e59e2c
--- /dev/null
+++ b/fakereports/technology/higgins/eclipse-project-info.xml
@@ -0,0 +1,47 @@
+<project>
+ <name>Higgins, the trust framework</name>
+ <short-name>Higgins</short-name>
+ <url>http://www.eclipse.org/higgins/</url>
+ <summary>
+ Higgins is a software framework that manages identity data
+ (e.g. profiles, reputation, and presence) and relationship data
+ (social networks) within and across multiple heterogeneous computer
+ mediated contexts. It provides an abstraction layer for for this
+ kind of information in contexts that are implemented by directories,
+ collaboration spaces, and communications technologies.
+ </summary>
+ <description>
+ Higgins is a software framework that manages identity data
+ (e.g. profiles, reputation, and presence) and relationship data
+ (social networks) within and across multiple heterogeneous computer
+ mediated contexts. It provides an abstraction layer for for this
+ kind of information in contexts that are implemented by directories,
+ collaboration spaces, and communications technologies.
+ </description>
+ <shipping url="http://www.eclipse.org/higgins/downloads.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>higgins-dev</mailing-list>
+ <newsgroup>eclipse.technology.higgins</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/index.cgi/?cvsroot=Technology_Project</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/jsr220-orm/eclipse-project-info.xml b/fakereports/technology/jsr220-orm/eclipse-project-info.xml
new file mode 100644
index 0000000..224e7b4
--- /dev/null
+++ b/fakereports/technology/jsr220-orm/eclipse-project-info.xml
@@ -0,0 +1,45 @@
+<project>
+ <name>JSR220-ORM</name>
+ <short-name>JSR220-ORM</short-name>
+ <url>http://www.eclipse.org/jsr220orm/</url>
+ <summary>
+ The JSR220-ORM project provides Eclipse tooling for implementations
+ of the JSR 220 (EJB 3) persistence and JSR 243 (JDO 2) specifications.
+ This project will track the changes to these specifications, so that
+ as they merge together towards a common persistence standard,
+ appropriate tooling will be fully implemented by this project.
+ </summary>
+ <description>
+ The JSR220-ORM project provides Eclipse tooling for implementations
+ of the JSR 220 (EJB 3) persistence and JSR 243 (JDO 2) specifications.
+ This project will track the changes to these specifications, so that
+ as they merge together towards a common persistence standard,
+ appropriate tooling will be fully implemented by this project.
+ </description>
+ <shipping url="http://www.eclipse.org/jsr220orm/downloads.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>jsr220orm-dev</mailing-list>
+ <newsgroup>eclipse.technology.jsr220-orm</newsgroup>
+ <bugzilla>https://bugs.eclipse.org/bugs/buglist.cgi?query_format=specific&order=relevance+desc&bug_status=__all__&product=JSR220-ORM&content=</bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/laszlo/eclipse-project-info.xml b/fakereports/technology/laszlo/eclipse-project-info.xml
new file mode 100644
index 0000000..9972564
--- /dev/null
+++ b/fakereports/technology/laszlo/eclipse-project-info.xml
@@ -0,0 +1,48 @@
+<project>
+ <name>Laszlo</name>
+ <short-name>Laszlo</short-name>
+ <url>http://www.eclipse.org/laszlo/</url>
+ <summary>
+ IDE for Laszlo is an Eclipse-based development environment for
+ creating, editing, debugging, and testing applications based on
+ the LZX declarative mark-up language. Laszlo is based on LZX,
+ which is an XML and JavaScript description language similar in
+ spirit to XUL (XML User interface Language) and XAML ("Longhorn"
+ mark-up language by Microsoft").
+ </summary>
+ <description>
+ IDE for Laszlo is an Eclipse-based development environment for
+ creating, editing, debugging, and testing applications based on
+ the LZX declarative mark-up language. Laszlo is based on LZX,
+ which is an XML and JavaScript description language similar in
+ spirit to XUL (XML User interface Language) and XAML ("Longhorn"
+ mark-up language by Microsoft").
+ </description>
+ <shipping>
+ </shipping>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>laszlo-dev</mailing-list>
+ <newsgroup>eclipse.technology.laszlo</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/lazlo/eclipse-project-info.xml b/fakereports/technology/lazlo/eclipse-project-info.xml
new file mode 100644
index 0000000..da6c401
--- /dev/null
+++ b/fakereports/technology/lazlo/eclipse-project-info.xml
@@ -0,0 +1,41 @@
+<project>
+ <name></name>
+ <short-name></short-name>
+ <url></url>
+ <summary>
+ </summary>
+ <description>
+ </description>
+ <shipping url="" aname=""/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <newsgroup></newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/lepido/eclipse-project-info.xml b/fakereports/technology/lepido/eclipse-project-info.xml
new file mode 100644
index 0000000..23bb77b
--- /dev/null
+++ b/fakereports/technology/lepido/eclipse-project-info.xml
@@ -0,0 +1,43 @@
+<project>
+ <name>Lepido</name>
+ <short-name>Lepido</short-name>
+ <url>http://www.eclipse.org/lepido/</url>
+ <summary>
+ Lepido, Tools for Apache Cocoon 0.1.0 (milestone 1) provides
+ editors for the sitemap and form definition files, featuring
+ several tabs providing interactive and form-driven views on
+ these files.
+ </summary>
+ <description>
+ Lepido, Tools for Apache Cocoon 0.1.0 (milestone 1) provides
+ editors for the sitemap and form definition files, featuring
+ several tabs providing interactive and form-driven views on
+ these files.
+ </description>
+ <shipping url="http://www.eclipse.org/lepido/download.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>lepido-dev</mailing-list>
+ <newsgroup>eclipse.technology.lepido</newsgroup>
+ <bugzilla>https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Lepido</bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.lepido/</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/mddi/eclipse-project-info.xml b/fakereports/technology/mddi/eclipse-project-info.xml
new file mode 100644
index 0000000..747d172
--- /dev/null
+++ b/fakereports/technology/mddi/eclipse-project-info.xml
@@ -0,0 +1,41 @@
+<project>
+ <name>Model Driven Development integration</name>
+ <short-name>MDDi</short-name>
+ <url>http://www.eclipse.org/mddi/</url>
+ <summary>
+ The Model Driven Development integration (MDDi) project allows
+ developers to integrate modeling technologies and their supporting
+ tools in a dedicated MDD platform on top of Eclipse.
+ </summary>
+ <description>
+ The Model Driven Development integration (MDDi) project allows
+ developers to integrate modeling technologies and their supporting
+ tools in a dedicated MDD platform on top of Eclipse.
+ </description>
+ <shipping url="http://download.eclipse.org/eclipse/downloads/" aname="Latest Release"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>mddi-dev</mailing-list>
+ <newsgroup>eclipse.technology.mddi</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.mddi/?cvsroot=Technology_Project</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/mylar/eclipse-project-info.xml b/fakereports/technology/mylar/eclipse-project-info.xml
new file mode 100644
index 0000000..429fe98
--- /dev/null
+++ b/fakereports/technology/mylar/eclipse-project-info.xml
@@ -0,0 +1,57 @@
+<project>
+ <name>Mylar</name>
+ <short-name>Mylar</short-name>
+ <url>http://www.eclipse.org/mylar/</url>
+ <summary>
+ Mylar is an information focusing user interface seamlessly
+ integrated with Eclipse. It makes working with very large
+ workspaces much easier by monitoring your interaction with
+ Eclipse, and creating a context from the subset of the system
+ that is relevant to the task at hand. Once explicit, this task
+ context drives the Eclipse UI to highlight the interesting
+ elements, filter out the uninteresting, and actively search for
+ related information. The result is a significant reduction in
+ the amount of scrolling, navigating, and searching required to
+ complete a task.
+ </summary>
+ <description>
+ Mylar is an information focusing user interface seamlessly
+ integrated with Eclipse. It makes working with very large
+ workspaces much easier by monitoring your interaction with
+ Eclipse, and creating a context from the subset of the system
+ that is relevant to the task at hand. Once explicit, this task
+ context drives the Eclipse UI to highlight the interesting
+ elements, filter out the uninteresting, and actively search for
+ related information. The result is a significant reduction in
+ the amount of scrolling, navigating, and searching required to
+ complete a task.
+ </description>
+ <shipping url="http://www.eclipse.org/mylar/dl.php" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>mylar-dev</mailing-list>
+ <mailing-list>mylar-announce</mailing-list>
+ <mailing-list>mylar-users</mailing-list>
+ <newsgroup>eclipse.technology.mylar</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/ohf/eclipse-project-info.xml b/fakereports/technology/ohf/eclipse-project-info.xml
new file mode 100644
index 0000000..da6c401
--- /dev/null
+++ b/fakereports/technology/ohf/eclipse-project-info.xml
@@ -0,0 +1,41 @@
+<project>
+ <name></name>
+ <short-name></short-name>
+ <url></url>
+ <summary>
+ </summary>
+ <description>
+ </description>
+ <shipping url="" aname=""/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <newsgroup></newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/phoenix/eclipse-project-info.xml b/fakereports/technology/phoenix/eclipse-project-info.xml
new file mode 100644
index 0000000..cecb05a
--- /dev/null
+++ b/fakereports/technology/phoenix/eclipse-project-info.xml
@@ -0,0 +1,42 @@
+<project>
+ <name>Phoenix</name>
+ <short-name>Phoenix</short-name>
+ <url>http://www.eclipse.org/phoenix/</url>
+ <summary>
+ The purpose of this project is to improve the usability of the
+ eclipse.org site, improving productivity and reducing duplication
+ of effort across the eclipse user community.
+ </summary>
+ <description>
+ The purpose of this project is to improve the usability of the
+ eclipse.org site, improving productivity and reducing duplication
+ of effort across the eclipse user community.
+ </description>
+ <shipping>
+ </shipping>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>phoenix-dev</mailing-list>
+ <newsgroup>eclipse.technology.phoenix</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.phoenix/?cvsroot=Technology_Project</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/photran/eclipse-project-info.xml b/fakereports/technology/photran/eclipse-project-info.xml
new file mode 100644
index 0000000..80a2299
--- /dev/null
+++ b/fakereports/technology/photran/eclipse-project-info.xml
@@ -0,0 +1,38 @@
+<project>
+ <name>Photran</name>
+ <short-name>Photran</short-name>
+ <url>http://www.eclipse.org/photran/</url>
+ <summary>
+ Photran is a Fortran IDE based on Eclipse and the CDT.
+ </summary>
+ <description>
+ Photran is a Fortran IDE based on Eclipse and the CDT.
+ </description>
+ <shipping url="http://www.eclipse.org/photran/download.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>photran</mailing-list>
+ <mailing-list>photran-announce</mailing-list>
+ <newsgroup></newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/pollinate/eclipse-project-info.xml b/fakereports/technology/pollinate/eclipse-project-info.xml
new file mode 100644
index 0000000..4e269e8
--- /dev/null
+++ b/fakereports/technology/pollinate/eclipse-project-info.xml
@@ -0,0 +1,41 @@
+<project>
+ <name>Pollinate</name>
+ <short-name>Pollinate</short-name>
+ <url>http://www.eclipse.org/pollinate/</url>
+ <summary>
+ Pollinate is an Eclipse technology project slated to build an
+ Eclipse-based IDE and toolset that leverages the open source i
+ Apache Beehive application framework.
+ </summary>
+ <description>
+ Pollinate is an Eclipse technology project slated to build an
+ Eclipse-based IDE and toolset that leverages the open source i
+ Apache Beehive application framework.
+ </description>
+ <shipping url="http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/pollinate-home/downloads.html" aname="UpdateSite"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>pollinate.dev</mailing-list>
+ <newsgroup>eclipse.technology.pollinate</newsgroup>
+ <bugzilla>http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/pollinate-home/bugs.html</bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/ptp/eclipse-project-info.xml b/fakereports/technology/ptp/eclipse-project-info.xml
new file mode 100644
index 0000000..c77a6b0
--- /dev/null
+++ b/fakereports/technology/ptp/eclipse-project-info.xml
@@ -0,0 +1,43 @@
+<project>
+ <name>Parallel Tools Platform</name>
+ <short-name>PTP</short-name>
+ <url>http://www.eclipse.org/ptp/</url>
+ <summary>
+ The aim of the parallel tools platform project is to produce an
+ open-source industry-strength platform that provides a highly
+ integrated environment specifically designed for parallel
+ application development.
+ </summary>
+ <description>
+ The aim of the parallel tools platform project is to produce an
+ open-source industry-strength platform that provides a highly
+ integrated environment specifically designed for parallel
+ application development.
+ </description>
+ <shipping url="http://www.eclipse.org/ptp/downloads.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>ptp-dev</mailing-list>
+ <newsgroup>eclipse.technology.ptp</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs>http://www.eclipse.org/ptp/cvs.html</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/voicetools/eclipse-project-info.xml b/fakereports/technology/voicetools/eclipse-project-info.xml
new file mode 100644
index 0000000..c23e681
--- /dev/null
+++ b/fakereports/technology/voicetools/eclipse-project-info.xml
@@ -0,0 +1,49 @@
+<project>
+ <name>Voice Tools Project</name>
+ <short-name>VTP</short-name>
+ <url>http://www.eclipse.org/vtp/</url>
+ <summary>
+ The Voice Tools Project will focus on Voice Application tools
+ in the JSP/J2EE space based on W3C standards, so that these
+ standards become dominant in voice application development.
+ It depends on and extends the XML and Web development capabilities
+ of the Web Tools Platform Project, as a set of Eclipse plugins
+ that will provide development tools for W3C Standards/Recommendations
+ for Voice application markup.
+ </summary>
+ <description>
+ The Voice Tools Project will focus on Voice Application tools
+ in the JSP/J2EE space based on W3C standards, so that these
+ standards become dominant in voice application development.
+ It depends on and extends the XML and Web development capabilities
+ of the Web Tools Platform Project, as a set of Eclipse plugins
+ that will provide development tools for W3C Standards/Recommendations
+ for Voice application markup.
+ </description>
+ <shipping url="http://www.eclipse.org/vtp/downloads.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>vtp-dev</mailing-list>
+ <newsgroup>eclipse.technology.voicetools</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs>http://www.eclipse.org/vtp/cvs.html</cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/wsvt/eclipse-project-info.xml b/fakereports/technology/wsvt/eclipse-project-info.xml
new file mode 100644
index 0000000..da6c401
--- /dev/null
+++ b/fakereports/technology/wsvt/eclipse-project-info.xml
@@ -0,0 +1,41 @@
+<project>
+ <name></name>
+ <short-name></short-name>
+ <url></url>
+ <summary>
+ </summary>
+ <description>
+ </description>
+ <shipping url="" aname=""/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <newsgroup></newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/technology/xsd/eclipse-project-info.xml b/fakereports/technology/xsd/eclipse-project-info.xml
new file mode 100644
index 0000000..da6c401
--- /dev/null
+++ b/fakereports/technology/xsd/eclipse-project-info.xml
@@ -0,0 +1,41 @@
+<project>
+ <name></name>
+ <short-name></short-name>
+ <url></url>
+ <summary>
+ </summary>
+ <description>
+ </description>
+ <shipping url="" aname=""/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <newsgroup></newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/tools/cdt/eclipse-project-info.xml b/fakereports/tools/cdt/eclipse-project-info.xml
new file mode 100644
index 0000000..94e4919
--- /dev/null
+++ b/fakereports/tools/cdt/eclipse-project-info.xml
@@ -0,0 +1,50 @@
+<project>
+ <name>C/C++ Development Tools</name>
+ <short-name>CDT</short-name>
+ <url>http://www.eclipse.org/cdt/</url>
+ <summary>
+ The CDT (C/C++ Development Tools) Project is working towards providing
+ a fully functional C and C++ Integrated Development Environment (IDE)
+ for the Eclipse platform.
+ </summary>
+ <description>
+ The CDT (C/C++ Development Tools) Project is working towards providing
+ a fully functional C and C++ Integrated Development Environment (IDE)
+ for the Eclipse platform.
+ </description>
+ <shipping url="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/cdt-home/downloads/main.html?cvsroot=Tools_Project" aname="3.X"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>cdt-contrib-dev</mailing-list>
+ <mailing-list>cdt-core-dev</mailing-list>
+ <mailing-list>cdt-core-inbox</mailing-list>
+ <mailing-list>cdt-debug-dev</mailing-list>
+ <mailing-list>cdt-dev</mailing-list>
+ <mailing-list>cdt-doc-dev</mailing-list>
+ <mailing-list>cdt-doc-inbox</mailing-list>
+ <mailing-list>cdt-patch</mailing-list>
+ <mailing-list>cdt-test-dev</mailing-list>
+ <mailing-list>cdt-ui-dev</mailing-list>
+ <newsgroup>eclipse.tools.cdt</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/tools/cobol/eclipse-project-info.xml b/fakereports/tools/cobol/eclipse-project-info.xml
new file mode 100644
index 0000000..8b45166
--- /dev/null
+++ b/fakereports/tools/cobol/eclipse-project-info.xml
@@ -0,0 +1,51 @@
+<project>
+ <name>Cobol</name>
+ <short-name>Cobol</short-name>
+ <url>http://www.eclipse.org/cobol</url>
+ <summary>
+ The COBOL IDE for Eclipse Subproject will build a fully functional
+ COBOL Integrated Development Environment (IDE) for the Eclipse
+ platform. Our focus is COBOL application development on Windows /
+ Solaris / Linux for deployment on each platform. We are interested
+ in participation from others who would like to extend our work in
+ other directions. e.g. wizards for developing applications that use
+ particular library or database or messaging APIs, or extension to
+ other languages.
+ </summary>
+ <description>
+ The COBOL IDE for Eclipse Subproject will build a fully functional
+ COBOL Integrated Development Environment (IDE) for the Eclipse platform.
+ </description>
+ <shipping url="http://dev.eclipse.org/viewcvs/indextools.cgi/~checkout~/cobol-home/download/download_300.html" aname="downloads"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <newsgroup></newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/tools/emf/eclipse-project-info.xml b/fakereports/tools/emf/eclipse-project-info.xml
new file mode 100644
index 0000000..125a2ef
--- /dev/null
+++ b/fakereports/tools/emf/eclipse-project-info.xml
@@ -0,0 +1,47 @@
+<project>
+ <name>Eclipse Modeling Framework</name>
+ <short-name>EMF</short-name>
+ <url>http://www.eclipse.org/emf/</url>
+ <summary>
+ The EMF project is a modeling framework and code generation facility
+ for building tools and other applications based on a structured data
+ model. From a model specification described in XMI, EMF provides
+ tools and runtime support to produce a set of Java classes for the
+ model, along with a set of adapter classes that enable viewing and
+ command-based editing of the model, and a basic editor.
+ </summary>
+ <description>
+ The EMF project is a modeling framework and code generation facility
+ for building tools and other applications based on a structured data
+ model. From a model specification described in XMI, EMF provides
+ tools and runtime support to produce a set of Java classes for the
+ model, along with a set of adapter classes that enable viewing and
+ command-based editing of the model, and a basic editor.
+ </description>
+ <shipping url="http://download.eclipse.org/tools/emf/scripts/downloads.php" aname="download"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>emf-dev</mailing-list>
+ <newsgroup>eclipse.tools.emf</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/tools/gef/eclipse-project-info.xml b/fakereports/tools/gef/eclipse-project-info.xml
new file mode 100644
index 0000000..1a460d0
--- /dev/null
+++ b/fakereports/tools/gef/eclipse-project-info.xml
@@ -0,0 +1,49 @@
+<project>
+ <name>Graphical Editor Framework</name>
+ <short-name>GEF</short-name>
+ <url>http://www.eclipse.org/gef</url>
+ <summary>
+ The Graphical Editor Framework (GEF) allows developers to take an
+ existing application model and easily create a rich graphical editor.
+ GEF allows a developer to quickly map any existing model to a graphical
+ editing environment. The graphical environment is the SWT-based drawing
+ plugin "draw2d" (which is part of the overall "GEF" component). The
+ developer can take advantage of the many common operations provided
+ in GEF and/or extend them for the specific domain. GEF is suitable
+ for creating a wide variety of applications, including: flow
+ builders, GUI builders, UML diagram editors (such as work-flow and
+ class modeling diagrams), and even WYSIWYG text editors like HTML.
+ GEF does not assume that you must build one of these applications
+ and is application domain neutral.
+ </summary>
+ <description>
+ The Graphical Editing Framework (GEF) allows developers to take an
+ existing application model and quickly create a rich graphical editor.
+ </description>
+ <shipping url="http://download.eclipse.org/tools/gef/downloads/index.php" aname="Latest Release"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>gef-dev</mailing-list>
+ <newsgroup>eclipse.tools.gef</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/tools/hyades/eclipse-project-info.xml b/fakereports/tools/hyades/eclipse-project-info.xml
new file mode 100644
index 0000000..0591d4a
--- /dev/null
+++ b/fakereports/tools/hyades/eclipse-project-info.xml
@@ -0,0 +1,41 @@
+<project>
+ <name>Hyades</name>
+ <short-name>Hyades</short-name>
+ <url></url>
+ <summary>
+ </summary>
+ <description>
+ </description>
+ <shipping url="" aname=""/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <newsgroup>eclipse.tools.hyades</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fakereports/tools/uml2/eclipse-project-info.xml b/fakereports/tools/uml2/eclipse-project-info.xml
new file mode 100644
index 0000000..7e6986c
--- /dev/null
+++ b/fakereports/tools/uml2/eclipse-project-info.xml
@@ -0,0 +1,44 @@
+<project>
+ <name>UML2</name>
+ <short-name>UML2</short-name>
+ <url>http://www.eclipse.org/uml2</url>
+ <summary>
+ The UML2 project is an EMF-based implementation of the UML 2.0
+ metamodel for the Eclipse platform. The objectives of this project
+ are to provide a useable implementation of the metamodel to support
+ the development of modeling tools, a common XMI schema to facilitate
+ interchange of semantic models, test cases as a means of validating
+ the specification, and validation rules as a means of defining and
+ enforcing levels of compliance
+ </summary>
+ <description>
+ UML2 is an EMF-based implementation of the UML. 2.0 metamodel for
+ the Eclipse platform.
+ </description>
+ <shipping url="http://download.eclipse.org/tools/uml2/scripts/downloads.php" aname="latest"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>uml2-dev</mailing-list>
+ <newsgroup>eclipse.tools.uml2</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.uml2/plugins/</cvs>
+ </community>
+</project>
diff --git a/fakereports/tools/ve/eclipse-project-info.xml b/fakereports/tools/ve/eclipse-project-info.xml
new file mode 100644
index 0000000..368fa22
--- /dev/null
+++ b/fakereports/tools/ve/eclipse-project-info.xml
@@ -0,0 +1,51 @@
+<project>
+ <name>Visual Editor Tools</name>
+ <short-name>VE</short-name>
+ <url>http://www.eclipse.org/vep</url>
+ <summary>
+ The purpose of the Eclipse Visual Editor Project is to advance
+ the creation, evolution, promotion of the Eclipse Visual Editor
+ platform, and to cultivate both an open source community and an
+ ecosystem of complementary products, capabilities, and services.
+ In particular, the Visual Editor Project intends to be useful for
+ creating GUI builders for other languages such as C/C++ and
+ alternate widget sets, including those that are not supported
+ under Java.
+ </summary>
+ <description>
+ The Eclipse Visual Editor project is a vendor-neutral, open
+ development platform supplying frameworks for creating GUI
+ builders, and exemplary, extensible tool implementations for
+ Swing/JFC and SWT/RCP. These tools are exemplary in that they
+ verify the utility of the Eclipse Visual Editor frameworks,
+ illustrate the appropriate use of those frameworks, and support
+ the development and maintenance of the Eclipse Visual Editor
+ Platform itself.
+ </description>
+ <shipping url="http://download.eclipse.org/tools/ve/downoads/index.php" aname="Latest Release"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>ve-dev</mailing-list>
+ <newsgroup>eclipse.tools.ve</newsgroup>
+ <bugzilla>http://bugs.eclipse.org/bugs</bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/index.cgi/?cvsroot=Tools_Project</cvs>
+ </community>
+</project>
diff --git a/fakereports/tptp/eclipse-project-info.xml b/fakereports/tptp/eclipse-project-info.xml
new file mode 100644
index 0000000..12e018d
--- /dev/null
+++ b/fakereports/tptp/eclipse-project-info.xml
@@ -0,0 +1,50 @@
+<project>
+ <name>Eclipse Test & Performance Tools Platform</name>
+ <short-name>TPTP</short-name>
+ <url>http://www.eclipse.org/tptp/index.html</url>
+ <summary>
+ The TPTP Platform Project is the core project and basis for other
+ projects in the Eclipse TPTP Top-Level Project. The TPTP Platform
+ Project encompasses a large amount of common infrastructure and
+ capability which the other TPTP projects expand and specialize. It
+ provides common user interface, standard data models, data collection
+ and communications control, as well as remote execution environments.
+ Additionally, the Platform provides extension points for leveraging
+ or extending these capabilities in solution specific tooling or
+ runtimes. Data collection from additional environments, operating
+ systems and hardware platforms is being added.
+ </summary>
+ <description>
+ </description>
+ <shipping url="http://www.eclipse.org/tptp/home/downloads/drops/TPTP-4.0.1.html" aname="tptp-plugins"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>tptp-monitoring-tools-dev</mailing-list>
+ <mailing-list>tptp-news</mailing-list>
+ <mailing-list>tptp-platform-dev</mailing-list>
+ <mailing-list>tptp-pmc</mailing-list>
+ <mailing-list>tptp-testing-tools-dev</mailing-list>
+ <mailing-list>tptp-tracing-profiling-tools-dev</mailing-list>
+ <newsgroup>eclipse.tptp</newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/index.cgi/?cvsroot=TPTP_Project</cvs>
+ </community>
+</project>
diff --git a/fakereports/webtools/eclipse-project-info.xml b/fakereports/webtools/eclipse-project-info.xml
new file mode 100644
index 0000000..bdaf3f8
--- /dev/null
+++ b/fakereports/webtools/eclipse-project-info.xml
@@ -0,0 +1,51 @@
+<project>
+ <name>Eclipse Web Tools</name>
+ <short-name>Web Tools</short-name>
+ <url>http://www.eclipse.org/webtools/index.html</url>
+ <summary>
+ The Eclipse Web Tools Platform (WTP) project extends the Eclipse
+ platform with tools for developing J2EE Web applications. The WTP
+ project includes the following tools: source editors for HTML,
+ Javascript, CSS, JSP, SQL, XML, DTD, XSD, and WSDL; graphical
+ editors for XSD and WSDL; J2EE project natures, builders, and
+ models and a J2EE navigator; a Web service wizard and explorer,
+ and WS-I Test Tools; and database access and query tools and models.
+ </summary>
+ <description>
+ The Eclipse Web Tools Platform Top-Level Project is an open source
+ collaborative software development project dedicated to providing
+ a generic, extensible, standards-based tool platform for producing
+ Web-centric technologies.
+ </description>
+ <shipping url="http://download.eclipse.org/webtools/downloads/" aname="Released"/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>wtp-dev</mailing-list>
+ <mailing-list>wtp-jst-dev</mailing-list>
+ <mailing-list>wtp-pmc</mailing-list>
+ <mailing-list>wtp-releng</mailing-list>
+ <mailing-list>wtp-requirements</mailing-list>
+ <mailing-list>wtp-wst-dev</mailing-list>
+ <newsgroup>eclipse.webtools</newsgroup>
+ <bugzilla>https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Web%20Tools</bugzilla>
+ <blog></blog>
+ <cvs>http://dev.eclipse.org/viewcvs/index.cgi/?cvsroot=WebTools_Project</cvs>
+ </community>
+</project>
diff --git a/fakereports/webtools/jsf/eclipse-project-info.xml b/fakereports/webtools/jsf/eclipse-project-info.xml
new file mode 100644
index 0000000..da6c401
--- /dev/null
+++ b/fakereports/webtools/jsf/eclipse-project-info.xml
@@ -0,0 +1,41 @@
+<project>
+ <name></name>
+ <short-name></short-name>
+ <url></url>
+ <summary>
+ </summary>
+ <description>
+ </description>
+ <shipping url="" aname=""/>
+ <releases>
+ <release status="completed">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="scheduled">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ <release status="tentative">
+ <date></date>
+ <plan format="defacto1"></plan>
+ <name></name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <mailing-list></mailing-list>
+ <newsgroup></newsgroup>
+ <bugzilla></bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/fragments/archived-reviews-list.php b/fragments/archived-reviews-list.php
new file mode 100644
index 0000000..028ffd1
--- /dev/null
+++ b/fragments/archived-reviews-list.php
@@ -0,0 +1,37 @@
+<?php
+include_once("parse-projects-file.class.php");
+$all = new AllInfo();
+$all->load();
+$reviews = array();
+foreach( $all->_reviews as $review) {
+ if( $review->status() == "J5" ) {
+ array_push( $reviews, $review );
+ }
+}
+usort( $reviews, "most_recent_first_reviews");
+foreach( $reviews as $review ) {
+?>
+<li><a href="<?= $review->get("Project URL") ?>" target="_top"><?= $review->get("Project Name") ?></a>
+<?= $review->get("Review Name") ?> release
+(<a href="<?= $review->get("Slides URL") ?>">slides</a><?php
+ if( $review->get("Status; IP Log Posted") != "" ) {
+?>
+, <a href="<?= $review->get("IP Log URL") ?>">project log</a><?php
+ }
+?>
+)
+</li>
+<?php
+}
+function most_recent_first_reviews($a, $b) {
+ if( $a == $b ) return 0;
+ $am = $a->get("Review Time");
+ $aa = numerical_date( $a->get("Review Date") . " " . substr($am,0,2) . ":" . substr($am,2,2) . ":00 PST" );
+ $bm = $b->get("Review Time");
+ $bb = numerical_date( $b->get("Review Date") . " " . substr($bm,0,2) . ":" . substr($bm,2,2) . ":00 PST" );
+ if( $aa == $bb ) return 0;
+ if( $aa > $bb ) return -1;
+ return 1;
+}
+
+?>
\ No newline at end of file
diff --git a/fragments/parse-projects-file.class.php b/fragments/parse-projects-file.class.php
new file mode 100644
index 0000000..d6e496f
--- /dev/null
+++ b/fragments/parse-projects-file.class.php
@@ -0,0 +1,302 @@
+<?php
+
+class ReviewInfo {
+ var $_attributes;
+ /*
+ * J2 - review scheduled date & time
+ * J3 - review slides posted
+ * J4 - review slides & IP posted
+ * J5 - review successful
+ * J6 - review not complete, further work to occur
+ */
+ var $_status;
+ var $_lastdate;
+
+ function load( $firstbuffer, $file ) {
+ $this->_attributes = Array();
+ $pos = strpos($firstbuffer, ": ");
+ $key = substr($firstbuffer, 0, $pos);
+ $value = substr($firstbuffer, $pos+2);
+ $value = trim($value);
+ $this->_attributes[$key] = $value;
+ if( trim($value) == "" ) {
+ $this->_status = "bogus";
+ return;
+ }
+
+ while(!feof($file)){
+ $buffer = fgets($file);
+ $buffer = substr($buffer,0,-1); // Remove new line char
+
+ if (!strlen(trim($buffer)))
+ break;
+
+ $pos = strpos($buffer, ": ");
+ $key = substr($buffer, 0, $pos);
+ $value = substr($buffer, $pos+2);
+ $this->_attributes[$key] = $value;
+ }
+ if( $this->get("Status; Review Scheduled") != "" ) {
+ $this->_status = "J2";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Slides Posted") != "" ) {
+ $this->_status = "J3";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; IP Log Posted") != "" ) {
+ $this->_status = "J4";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Review Successful") != "" ) {
+ $this->_status = "J5";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Review Unsuccessful") != "" ) {
+ $this->_status = "J6";
+ $this->_lastdate = $this->_lastget;
+ }
+ }
+ function lastdate() {
+ return $this->_lastdate;
+ }
+ function get($key) {
+ if( !array_key_exists($key, $this->_attributes) ) {
+ $this->_lastget = "";
+ return "";
+ }
+ $value = $this->_attributes[$key];
+ if( $value == null ) return "";
+ $value = trim($value);
+ $this->_lastget = $value;
+ return $value;
+ }
+ function status() {
+ return $this->_status;
+ }
+ function name() {
+ return $this->get("Project Name");
+ }
+}
+
+class ProposalInfo {
+ var $_attributes;
+ /*
+ * P1 - proposal posted
+ * P2 - proposal updated
+ * P3 - review scheduled date & time
+ * P4 - review slides posted
+ * P5 - review successful, awaiting provisioning
+ * P6 - review not complete, further work required
+ * P7 - project completed
+ * P8 - proposal withdrawn
+ */
+ var $_status;
+ var $_lastdate;
+ var $_lastget;
+
+ function load( $firstbuffer, $file ) {
+ $this->_attributes = Array();
+ $pos = strpos($firstbuffer, ": ");
+ $key = substr($firstbuffer, 0, $pos);
+ $value = substr($firstbuffer, $pos+2);
+ $value = trim($value);
+ $this->_attributes[$key] = $value;
+ if( $value == "" ) {
+ $this->_status = "bogus";
+ return;
+ }
+
+ while(!feof($file)){
+ $buffer = fgets($file);
+ $buffer = substr($buffer,0,-1); // Remove new line char
+
+ if (!strlen(trim($buffer)))
+ break;
+
+ $pos = strpos($buffer, ": ");
+ $key = substr($buffer, 0, $pos);
+ $value = substr($buffer, $pos+2);
+ $this->_attributes[$key] = $value;
+ }
+ if( $this->get("Status; Proposal Posted") != "" ) {
+ $this->_status = "P1";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Proposal Updated 1") != "" ) {
+ $this->_status = "P2";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Proposal Updated 2") != "" ) {
+ $this->_status = "P2";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Proposal Updated 3") != "" ) {
+ $this->_status = "P2";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Proposal Updated 4") != "" ) {
+ $this->_status = "P2";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Proposal Updated 5") != "" ) {
+ $this->_status = "P2";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Proposal Updated 6") != "" ) {
+ $this->_status = "P2";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Proposal Updated 7") != "" ) {
+ $this->_status = "P2";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Proposal Updated 8") != "" ) {
+ $this->_status = "P2";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Proposal Updated 9") != "" ) {
+ $this->_status = "P2";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Review Scheduled") != "" ) {
+ $this->_status = "P3";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Slides Posted") != "" ) {
+ $this->_status = "P4";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Review Successful") != "" ) {
+ $this->_status = "P5";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Review Unsuccessful") != "" ) {
+ $this->_status = "P6";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Provisioning Complete") != "" ) {
+ $this->_status = "P7";
+ $this->_lastdate = $this->_lastget;
+ }
+ if( $this->get("Status; Proposal Withdrawn") != "" ) {
+ $this->_status = "P8";
+ $this->_lastdate = $this->_lastget;
+ }
+ }
+ function lastdate() {
+ return $this->_lastdate;
+ }
+ function get($key) {
+ if( !array_key_exists($key, $this->_attributes) ) {
+ $this->_lastget = "";
+ return "";
+ }
+ $value = $this->_attributes[$key];
+ if( $value == null ) return "";
+ $value = trim($value);
+ $this->_lastget = $value;
+ return $value;
+ }
+ function status() {
+ return $this->_status;
+ }
+ function name() {
+ return $this->get("Proposal Name");
+ }
+ function is_more_than_two_months_old() {
+ $today = getdate();
+ $then = numerical_date($this->_lastdate);
+ $today = (($today["year"] - 2000) * 365) + ($today["mon"] * 31) + ($today["mday"]);
+ return ($then + 60) < $today;
+ }
+ function is_more_than_one_month_old() {
+ $today = getdate();
+ $then = numerical_date($this->_lastdate);
+ $today = (($today["year"] - 2000) * 365) + ($today["mon"] * 31) + ($today["mday"]);
+ return ($then + 30) < $today;
+ }
+ function is_more_than_two_weeks_old() {
+ $today = getdate();
+ $then = numerical_date($this->_lastdate);
+ $today = (($today["year"] - 2000) * 365) + ($today["mon"] * 31) + ($today["mday"]);
+ return ($then + 15) < $today;
+ }
+}
+
+class AllInfo {
+ var $_reviews;
+ var $_proposals;
+
+ function load() {
+ $this->_reviews = Array();
+ $this->_proposals = Array();
+
+ $path = $_SERVER['DOCUMENT_ROOT'];
+ if( $path == "" ) {
+ $path = "../projects.txt";
+ } else {
+ $path = $_SERVER['DOCUMENT_ROOT'] . "/projects/projects.txt";
+ }
+ $file = fopen($path,"r");
+ if (!$file){
+ print "Could not open file";
+ exit();
+ }
+ while(!feof($file)){
+ $buffer = fgets($file);
+ $buffer = substr($buffer,0,-1); // Remove new line char
+
+ if( substr($buffer, 0, 14) == "Proposal Name:" ) {
+ $temp = new ProposalInfo();
+ $temp->load($buffer,$file);
+ if( $temp->status() != "bogus" )
+ array_push( $this->_proposals, $temp);
+ }
+ if( substr($buffer, 0, 13) == "Project Name:" ) {
+ $temp = new ReviewInfo();
+ $temp->load($buffer,$file);
+ if( $temp->status() != "bogus" )
+ array_push( $this->_reviews, $temp);
+ }
+
+ }
+ fclose($file);
+
+ usort( $this->_proposals, "cmp_proposals");
+ }
+
+}
+
+function cmp_proposals($a, $b) {
+ if( $a == $b ) return 0;
+ if( $a->name() == $b->name() ) return 0;
+ if( $a->name() < $b->name() ) return -1;
+ return 1;
+}
+
+function numerical_date($s) {
+ $sday = substr($s, 0, 3);
+ $s = substr($s, 5);
+ list($day, $smonth, $year, $hour, $minute, $second) = sscanf($s, "%d %s %d %d:%d:%d");
+ $months = array( "Jan" => 1, "Feb" => 2, "Mar" => 3,
+ "Apr" => 4, "May" => 5, "Jun" => 6,
+ "Jul" => 7, "Aug" => 8, "Sep" => 9,
+ "Oct" => 10, "Nov" => 11, "Dec" => 12 );
+ $month = $months[$smonth];
+ return (($year - 2000) * 365) + ($month * 31) + ($day);
+}
+
+function time_and_date_url( $date, $time ) {
+ $hour = substr( $time, 0, 2 );
+ $min = substr( $time, 2, 2 );
+ $s = substr($date, 5);
+ list($day, $smonth, $year) = sscanf($s, "%d %s %d");
+ $months = array( "Jan" => 1, "Feb" => 2, "Mar" => 3,
+ "Apr" => 4, "May" => 5, "Jun" => 6,
+ "Jul" => 7, "Aug" => 8, "Sep" => 9,
+ "Oct" => 10, "Nov" => 11, "Dec" => 12 );
+ $month = $months[$smonth];
+ return "http://www.timeanddate.com/worldclock/fixedtime.html?month=" . $month . "&day=" . $day . "&year=" . $year . "&hour=" . $hour . "&min=" . $min . "&sec=0&p1=0";
+}
+?>
diff --git a/fragments/processes-page-table.php b/fragments/processes-page-table.php
new file mode 100644
index 0000000..8fb9e92
--- /dev/null
+++ b/fragments/processes-page-table.php
@@ -0,0 +1,86 @@
+<table border="1" cellpadding="2">
+<?php
+include_once("parse-projects-file.class.php");
+$all = new AllInfo();
+$all->load();
+$reviews = array();
+foreach( $all->_proposals as $proposal) {
+ if( $proposal->status() == "P3"
+ || $proposal->status() == "P4" ) {
+ array_push( $reviews, $proposal );
+ }
+}
+foreach( $all->_reviews as $review) {
+ if( $review->status() == "J2"
+ || $review->status() == "J3"
+ || $review->status() == "J4" ) {
+ array_push( $reviews, $review );
+ }
+}
+if( count($reviews) == 0 ) {
+?>
+ <tr>
+ <td>No reviews are currently scheduled</td>
+ </tr>
+<?php
+} else {
+usort( $reviews, "cmp_reviews");
+foreach( $reviews as $review ) {
+ if( is_a($review, 'ReviewInfo') ) {
+?>
+<tr>
+<td><?= $review->get("Review Date") ?></td>
+<td><a href="<?= $review->get("Project URL") ?>" target="_top"><?= $review->get("Project Name") ?></a></td>
+<td><?= $review->get("Review Name") ?> Release Review
+<?php
+ if( $review->status() == "J3"
+ || $review->status() == "J4" ) {
+?>
+(<a href="<?= $review->get("Slides URL") ?>">slides</a><?php
+ }
+ if( $review->status() == "J4" ) {
+?>
+, <a href="<?= $review->get("IP Log URL") ?>">project log</a><?php
+ }
+ if( $review->status() == "J3"
+ || $review->status() == "J4" )
+ echo ")";
+?>
+ at <a href="<?= time_and_date_url( $review->get("Review Date"), $review->get("Review Time")) ?>"><?= $review->get("Review Time") ?> UTC</a>
+</td>
+</tr>
+<?php
+ }
+ if( is_a($review, 'ProposalInfo') ) {
+?>
+<tr>
+<td><?= $review->get("Review Date") ?></td>
+<td><?= $review->get("Proposal Name") ?></td>
+<td>Creation Review
+<?php
+ if( $review->status() == "P4" ) {
+?>
+(<a href="<?= $review->get("Slides URL") ?>">slides</a>)
+<?php
+ }
+?>
+ at <a href="<?= time_and_date_url( $review->get("Review Date"), $review->get("Review Time")) ?>"><?= $review->get("Review Time") ?> UTC</a>
+</td>
+</tr>
+<?php
+ }
+}
+}
+function cmp_reviews($a, $b) {
+ if( $a == $b ) return 0;
+ $am = $a->get("Review Time");
+ $aa = numerical_date( $a->get("Review Date") . " " . substr($am,0,2) . ":" . substr($am,2,2) . ":00 PST" );
+ $bm = $b->get("Review Time");
+ $bb = numerical_date( $b->get("Review Date") . " " . substr($bm,0,2) . ":" . substr($bm,2,2) . ":00 PST" );
+ if( $aa == $bb ) return 0;
+ if( $aa < $bb ) return -1;
+ return 1;
+}
+
+?>
+</table>
diff --git a/fragments/project-list.php b/fragments/project-list.php
new file mode 100644
index 0000000..657190f
--- /dev/null
+++ b/fragments/project-list.php
@@ -0,0 +1,62 @@
+<?php
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/classes/projects/projectList.class.php");
+function project_list_as_html( $filename, $parentId ) {
+ $ProjectList = new ProjectList();
+ if( $parentId == "" ) {
+ $ProjectList->selectProjectList("", "", "1", "", "", "");
+ } else {
+ $ProjectList->selectProjectList("", "", "", $parentId, "", "");
+ }
+ for($i = 0; $i < $ProjectList->getCount(); $i++) {
+ $Project = $ProjectList->getItemAt($i);
+ $projectName = $Project->getName();
+ $url = $Project->getUrlIndex();
+ if( substr($url,-1,1) != "/" )
+ $url .= "/";
+ $url .= $filename;
+ #
+ # First look in the project's home directory
+ #
+ $localfile = str_replace("http://www.eclipse.org/", $_SERVER['DOCUMENT_ROOT'] . "/", $url);
+ $localfile = str_replace("http://eclipse.org/", $_SERVER['DOCUMENT_ROOT'] . "/", $localfile);
+ #
+ # Second (temporarily while project Phoenix is not deployed) look on the
+ # project's home directory on the main web server
+ #
+ if( !file_exists($localfile) ) {
+ $localfile = str_replace("http://www.eclipse.org/", "/home/data/httpd/www.eclipse.org/html/", $url);
+ $localfile = str_replace("http://eclipse.org/", "/home/data/httpd/www.eclipse.org/html/", $localfile);
+ }
+ #
+ # Third if the project does not have the file, then use our temporary version
+ # eventually all the projects should have their own files and these
+ # temporary versions can be deleted
+ if( !file_exists($localfile) ) {
+ $localfile = str_replace("http://www.eclipse.org/", $_SERVER['DOCUMENT_ROOT'] . "/projects/temporary/", $url);
+ $localfile = str_replace("http://eclipse.org/", $_SERVER['DOCUMENT_ROOT'] . "/projects/temporary/", $localfile);
+ }
+ #
+ # Fourth if there just isn't a file anywhere, then show only the project name.
+ #
+ if (!file_exists($localfile)){
+ $url = $Project->getUrlIndex();
+ if( $url != "" ) {
+ $listhtml .= "<li><a href=\"$url\">" . $projectName . "</a></li>\n";
+ } else {
+ $listhtml .= "<li>" . $projectName . "</li>\n";
+ }
+ } else {
+ $file = fopen($localfile,"r");
+ $listhtml .= "<li>";
+ while(!feof($file)){
+ $buffer = fgets($file);
+ $listhtml .= $buffer;
+ }
+ fclose($file);
+ $listhtml .= "</li>
+ ";
+ }
+ }
+ return $listhtml;
+}
+?>
diff --git a/fragments/proposal-page-header.php b/fragments/proposal-page-header.php
new file mode 100644
index 0000000..bccfa08
--- /dev/null
+++ b/fragments/proposal-page-header.php
@@ -0,0 +1,59 @@
+<?php
+include_once("parse-projects-file.class.php");
+function generate_header($the_name) {
+ $found = 0;
+ $all = new AllInfo();
+ $all->load();
+ foreach( $all->_proposals as $proposal) {
+ if( $proposal->get("Proposal Name") == $the_name ) {
+ $found = 1;
+ if( $proposal->status() == "P3"
+ || $proposal->status() == "P4" ) {
+?>
+<p align="center"><font size="+1"><a href="/projects/" target="_top">Creation Review</a> is scheduled for
+<a href="<?= time_and_date_url( $review->get("Review Date"), $review->get("Review Time")) ?>"><?= $proposal->get("Review Date") ?>
+ at <?= $review->get("Review Time") ?> UTC</a></font></p>
+<?php
+ }
+ if( $proposal->status() == "P5" ) {
+?>
+<p align="center"><font size="+2">The project has been approved and is awaiting provisioning.</font></p>
+<?php
+ }
+ if( $proposal->status() == "P7" ) {
+?>
+<p align="center"><font size="+2"><a href="<?= $proposal->get("Project URL") ?>" target="_top">The project has been created.
+Please visit the project page.</a></font></p>
+<?php
+ }
+ if( $proposal->status() == "P8" ) {
+?>
+<p align="center"><font size="+1">This proposal has been withdrawn.</font></p>
+<?php
+ }
+ if( $proposal->status() == "P9" ) {
+?>
+<p align="center"><a href="/technology/archived.php"><font size="+1">This project has been archived.</font></a></p>
+<?php
+ }
+ if( ($proposal->status() == "P4"
+ || $proposal->status() == "P5"
+ || $proposal->status() == "P6"
+ || $proposal->status() == "P7"
+ || $proposal->status() == "P8"
+ || $proposal->status() == "P9" )
+ && ($proposal->get("Slides URL") != "") ) {
+?>
+<p align="center"><font size="+1"><a href="<?= $proposal->get("Slides URL") ?>">Download the creation review
+slides<img src="/projects/images/pdf.gif" border="0"/></a></font></p>
+<?php
+ }
+ }
+ }
+ if( !$found ) {
+?>
+<p align="center"><font color="red" size="+1">Incorrect project name in PHP function in this web page; unable to determine project status.</font></p>
+<?php
+ }
+}
+?>
diff --git a/fragments/proposals-page-proposals-table.php b/fragments/proposals-page-proposals-table.php
new file mode 100644
index 0000000..3a15051
--- /dev/null
+++ b/fragments/proposals-page-proposals-table.php
@@ -0,0 +1,47 @@
+<table border="1">
+ <tr>
+ <td align="center"><b>Proposal</b></td>
+ <td align="center"><b>Current State</b></td>
+ </tr>
+<?php
+include_once("parse-projects-file.class.php");
+$all = new AllInfo();
+$all->load();
+foreach( $all->_proposals as $proposal) {
+ $color = "#CCFFCC";
+ if( $proposal->is_more_than_one_month_old() )
+ $color = "white";
+ if( $proposal->is_more_than_two_months_old() )
+ $color = "#FFFFCC";
+ if( $proposal->status() == "P1"
+ || $proposal->status() == "P2"
+ || $proposal->status() == "P3"
+ || $proposal->status() == "P4"
+ || $proposal->status() == "P6" ) {
+ $status = "";
+ if( $proposal->status() == "P1"
+ || $proposal->status() == "P2"
+ || $proposal->status() == "P6" ) {
+ $status = "gathering community";
+ }
+ if( $proposal->status() == "P3" ) {
+ $status = "creation review <a href=\"" . time_and_date_url( $proposal->get("Review Date"), $proposal->get("Review Time")) . "\">"
+ . $proposal->get("Review Date") . " at " . $proposal->get("Review Time") . " UTC</a>";
+ }
+ if( $proposal->status() == "P4" ) {
+ $status = "creation review <a href=\"" . time_and_date_url( $proposal->get("Review Date"), $proposal->get("Review Time")) . "\">"
+ . $proposal->get("Review Date") . " at " . $proposal->get("Review Time") . " UTC</a> (<a href=\""
+ . $proposal->get("Slides URL") . "\">slides<img src=\"/projects/images/pdf.gif\" border=0/></a>)";
+ $color = "green";
+ }
+?>
+ <tr>
+ <td bgcolor="<?= $color ?>"><b><a href="<?= $proposal->get("Proposal URL") ?>" target="_top"><?= $proposal->get("Proposal Name") ?></a></b></td>
+ <td bgcolor="<?= $color ?>" align="center"><?= $status ?></td>
+ </tr>
+
+<?php
+ }
+}
+?>
+</table>
diff --git a/fragments/proposals-page-provisioning-table.php b/fragments/proposals-page-provisioning-table.php
new file mode 100644
index 0000000..989505f
--- /dev/null
+++ b/fragments/proposals-page-provisioning-table.php
@@ -0,0 +1,27 @@
+<table border="1">
+ <tr>
+ <td align="center"> </td>
+ <td align="center"><b>Current State</b></td>
+ </tr>
+<?php
+include_once("parse-projects-file.class.php");
+$all = new AllInfo();
+$all->load();
+foreach( $all->_proposals as $proposal) {
+ $color = "#CCFFCC";
+ if( $proposal->is_more_than_two_weeks_old() )
+ $color = "white";
+ if( $proposal->is_more_than_one_month_old() )
+ $color = "#FFFFCC";
+ if( $proposal->status() == "P5" ) {
+?>
+ <tr>
+ <td bgcolor="<?= $color ?>"><b><a href="<?= $proposal->get("Proposal URL") ?>" target="_top"><?= $proposal->get("Proposal Name") ?></a></b></td>
+ <td bgcolor="<?= $color ?>" align="center">waiting for project lead</td>
+ </tr>
+
+<?php
+ }
+}
+?>
+</table>
diff --git a/fragments/proposals-page-subproject-list.php b/fragments/proposals-page-subproject-list.php
new file mode 100644
index 0000000..ba9a110
--- /dev/null
+++ b/fragments/proposals-page-subproject-list.php
@@ -0,0 +1,17 @@
+<ul>
+<?php
+include_once("parse-projects-file.class.php");
+$all = new AllInfo();
+$all->load();
+foreach( $all->_proposals as $proposal) {
+ if( ($proposal->status() == "P7"
+ || $proposal->status() == "P8"
+ || $proposal->status() == "P9")
+ && ($proposal->get("Project Top-Level") != "") ) {
+?>
+<li><a href="<?= $proposal->get("Proposal URL") ?>" target="_top"><?= $proposal->get("Proposal Name") ?></a></li>
+<?php
+ }
+}
+?>
+</ul>
diff --git a/fragments/proposals-page-top-level-list.php b/fragments/proposals-page-top-level-list.php
new file mode 100644
index 0000000..121fb6c
--- /dev/null
+++ b/fragments/proposals-page-top-level-list.php
@@ -0,0 +1,17 @@
+<ul>
+<?php
+include_once("parse-projects-file.class.php");
+$all = new AllInfo();
+$all->load();
+foreach( $all->_proposals as $proposal) {
+ if( ($proposal->status() == "P7"
+ || $proposal->status() == "P8"
+ || $proposal->status() == "P9")
+ && ($proposal->get("Project Top-Level") == "") ) {
+?>
+<li><a href="<?= $proposal->get("Proposal URL") ?>" target="_top"><?= $proposal->get("Proposal Name") ?></a></li>
+<?php
+ }
+}
+?>
+</ul>
diff --git a/fragments/todo_list.txt b/fragments/todo_list.txt
new file mode 100644
index 0000000..2f4ed52
--- /dev/null
+++ b/fragments/todo_list.txt
@@ -0,0 +1,134 @@
+Proposals page
+- table 1: showing all the proposals
+P1,P2,P3,P4,P6
+green
+white if date > 1 month
+yellow if date > 2 months
+- table 2: showing the being provisioned
+proposals in P5
+green
+white if date > 2 weeks
+yellow if date > 1 month
+- list below
+<li> if P7 or P8 or P9
+
+Each proposal page
+- the header that says status
+"The Creation Review is scheduled for date & time" if P3,P4
+"The project has been approved and is awaiting provisioning" if P5
+"The project has been created. Please visit the project page" if P7
+"This proposal has been withdrawn" if P8
+"This project has been archived" if P9
+- the sub-header that says where the slides are
+"Download the creation review slides" if P4,P5,P6,P7,P8,P9 and slides URL != ""
+
+Processes page
+- table 1: all the upcoming reviews
+date, proposal url, Creation Review at time, if P3
+date, proposal url, Creation Review (slides) at time, if P4
+date, project url, NN Release Review at time, if J2
+date, project url, NN Release Review (slides) at time, if J3
+date, project url, NN Release Review (slides, ip log) at time, if J4
+
+Processes RSS
+(all dates are from data)
+- all the reviews
+<<name>> NN Release Review (date @ time), url is processes if J2
+<<name>> NN Release Review (date @ time) (slides posted, url is processes if J3
+<<name>> NN Release Review (date @ time) (slides & ip log posted), url is processes if J4
+<<name>> NN Release Approved, if J5
+- all the status changes
+<<name>> Proposal Posted, url is proposal if P1
+<<name>> Proposal Updated, url is proposal if P2
+<<name>> Creation Review (date @ time), url is proposal if P3
+<<name>> Creation Review (date @ time) (slides posted), url is proposal if P4
+<<name>> Project Approved, url is proposal if P5
+<<name>> Project Created and Provisioned, url is home if P7
+<<name>> Proposal Withdrawn, url is proposal if P8
+<<name>> Project Archived, url is archives if P9
+
+Emails
+- a php url that Bjorn accesses to send emails, or with a cron
+uses a cache to not announce the same thing again
+send declaration email if P1
+send review schedule and phone number if P4
+send review schedule and phone number if J4
+
+PROPOSALS
+P1 - proposal posted
+P2 - proposal updated
+P3 - review scheduled date & time
+P4 - review slides posted
+P5 - review successful, awaiting provisioning
+P6 - review not complete, further work required
+P7 - project completed
+P8 - proposal withdrawn
+P9 - project archived
+
+PROJECTS
+J1 -
+J2 - review scheduled date & time
+J3 - review slides posted
+J4 - review slides & IP posted
+J5 - review successful
+J6 - review not complete, further work to occur
+
+Proposal Name:
+Status: Proposal Posted: date <-- if date filled in, then P1
+Proposal URL: file
+Status: Proposal Updated 1: date <-- if date filled in, then P2
+Status: Proposal Updated 2: date <-- if date filled in, then P2
+Status: Proposal Updated 3: date <-- if date filled in, then P2
+Status: Proposal Updated N: date <-- if date filled in, then P2
+Status: Review Scheduled: date <-- if date filled in, then P3
+Review Date: date
+Review Time: time UTC
+Status: Slides Posted: date <-- if date filled in, then P4
+Slides URL: url
+Status: Review Successful: date <-- if date filled in, then P5
+Status: Review Unsuccessful: date <-- if date filled in, then P6
+Status: Provisioning Complete: date <-- if date filled in, then P7
+Project URL: url
+Project Top-Level: Technology
+Project Paragraph URL: url
+Status: Proposal Withdrawn: date <-- if date filled in, then P8
+Status; Project Archived: date <-- if date filled in, then P9
+
+Project Name: TPTP
+Project URL: url
+Review Name: 4.1
+Status: Review Scheduled: date <-- if date filled in, then J2
+Review Date: date
+Review Time: time UTC
+Status: Slides Posted: date <-- if date filled in, then J3
+Slides URL: url
+Status: IP Log Posted: date <-- if date filled in, then J4
+IP Log URL: url
+Status: Review Successful: date <-- if date filled in, then J5
+Status: Review Unsuccessful: date <-- if date filled in, then J6
+
+TASKS TO MAKE THIS HAPPEN
+
+[DONE] 1. Parsing Code
+[DONE] 2. Create database of all proposals to date
+[DONE] 3. Code to create proposals table 1
+[DONE] 4. Integrate proposals table 1 code incl php'ing and html forwards
+[DONE] 5. Code to create proposals table 2
+[DONE] 6. Code to create proposals list
+[DONE] 7. Code for individual proposal pages
+[DONE] 8. Add code to individual proposal pages
+[DONE] 9. Add code to proposal template
+[DONE] 10. Code to create processes page table
+[DONE] 11. Integrate processes table code
+[DONE] 12. Code for processes RSS
+[DONE] 13. Change RSS link on page and in header to new RSS
+[DONE] 14. Publish final old RSS reference to new RSS
+[NO] 15. Code for Technology page table
+[NO] 16. Integrate table into Technology page
+[NO] 17. Code for Technology page list
+18. Add code to rest of active proposal pages
+19. Add code to each already approved proposal page
+[DONE] 20. Proposal page code for P3/P4 should point to the date&time link
+[DONE] 21. Add Status; Project Archived
+
+
diff --git a/fragments/top-level-project-list-box.php b/fragments/top-level-project-list-box.php
new file mode 100644
index 0000000..7936dc4
--- /dev/null
+++ b/fragments/top-level-project-list-box.php
@@ -0,0 +1,13 @@
+<?
+require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/project-list.php");
+function top_level_project_list_box() {
+ $projectlisthtml = "<ul>" . project_list_as_html( "home-page-one-liner.html", "" ) . "</ul>";
+ $html = "<div class=\"sideitem\">
+ <h6>Eclipse Top Level Projects</h6>
+ $projectlisthtml
+ <p align=\"right\"><a href=\"#\">Project Map</a></p>
+ </div>
+";
+ return $html;
+}
+?>
diff --git a/images/.cvsignore b/images/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/images/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/images/pdf.gif b/images/pdf.gif
new file mode 100644
index 0000000..d664fa0
--- /dev/null
+++ b/images/pdf.gif
Binary files differ
diff --git a/images/rss.gif b/images/rss.gif
new file mode 100644
index 0000000..eab7cdf
--- /dev/null
+++ b/images/rss.gif
Binary files differ
diff --git a/images/under-construction.gif b/images/under-construction.gif
new file mode 100644
index 0000000..ec1cf32
--- /dev/null
+++ b/images/under-construction.gif
Binary files differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..3585780
--- /dev/null
+++ b/index.html
@@ -0,0 +1,8 @@
+<html>
+ <head>
+ <meta http-equiv="refresh" content="5; url=index.php" />
+ </head>
+ <body>
+ <a href="index.php">This page has moved. Please update your links and bookmarks.</a>
+ </body>
+</html>
\ No newline at end of file
diff --git a/index.php b/index.php
new file mode 100644
index 0000000..7943f4b
--- /dev/null
+++ b/index.php
@@ -0,0 +1,97 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Projects";
+$pageKeywords = "projects";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+$extraHtmlHeaders = "<link rel=\"alternate\" type=\"application/rss+xml\"
+title=\"Eclipse Reviews and Proposals\" href=\"/projects/reviews-rss.php\">
+";
+$App->AddExtraHtmlHeader($extraHtmlHeaders);
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+ <p>All work at Eclipse is done in sub-projects and components organized
+ under top-level projects. The top-level projects are managed by PMCs
+ (project management committees).</p>
+
+ <!--
+ <h2><a name="Who"></a>Who are the committers and project leaders?</h2>
+ <p>
+ See the lists of all the <a href="committers.php"> Eclipse
+ committers</a>, <a href="project-leads.php">sub-project leads</a>, <a href="project-leads.php">PMC
+ members</a>, and <a href="project-leads.php">PMC leads</a>.</p>
+ -->
+
+ <div class="homeitem3col">
+ <h3><a href="/projects/reviews-rss.php"><img src="images/rss.gif" align="right" border="0"></a></a><a name="When"></a>When are the major releases scheduled from each project?</h3>
+ <p>
+ <a href="/projects/timeline/">The Summarized Timeline</a>
+ lists all the planned and pending major releases. Each major release
+ is preceded by a Release Review announced here and via
+ RSS.
+ The slides and IP logs of previous releases are <a href="/projects/previous-release-reviews.php">available
+ for inspection</a>.</p>
+ <div align="center">
+<?php include("fragments/processes-page-table.php") ?>
+<br></a></div>
+ </div>
+
+ <div class="homeitem3col">
+ <h3><a name="Where"></a>Where are the projects going?</h3>
+ <ul class="midlist">
+ <li>
+ <i>[Now]</i> The <a href="dashboard/">project dashboard</a>
+ visualizes the current "liveness" of the projects.</li>
+ <li>
+ <i>[Future] </i>The <a href="/org/councils/roadmap.php">Eclipse Roadmap</a>
+ describes where the existing projects are concentrating their
+ efforts. </li>
+ <li><i>[Future<sup>2</sup>]</i> New project proposals for new technical directions are on the <a href="/proposals/">proposals
+ page</a>.</li>
+ </ul>
+ <div align="center">
+ <br></a><?php include("fragments/proposals-page-proposals-table.php") ?>
+ <br></a></div>
+ </div>
+
+ <div class="homeitem3col">
+ <h3><a name="What"></a>What are the top-level projects?</h3>
+ <ul class="midlist">
+ <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/project-list.php"); ?>
+ <?= project_list_as_html( "project-page-paragraph.html", "" ) ?>
+ </ul>
+ </div>
+
+ <div class="homeitem3col">
+ <h3><a name="How"></a>How do the projects operate?</a></h2>
+ <p>
+ The projects follow the <a href="/projects/dev_process/">Eclipse
+ Development Process</a>. Each PMC defines a top-level
+ project-specific development process that interacts with the overall
+ Eclipse Development Process.</p>
+ <p>At irregular times, there are inter-project <a href="committers/">committer gatherings</a>.</p>
+ </div>
+
+ </div>
+
+ <div id="rightcolumn">
+ <div class="sideitem">
+ <h6>Five Questions</h6>
+ <ul>
+ <li><a href="#Who">Who?</a></li>
+ <li><a href="#What">What?</a></li>
+ <li><a href="#Where">Where?</a></li>
+ <li><a href="#When">When?</a></li>
+ <li><a href="#How">How?</a></li>
+ </ul>
+ </div>
+ </div>
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/ipscanning/timquery.php b/ipscanning/timquery.php
new file mode 100644
index 0000000..1505e94
--- /dev/null
+++ b/ipscanning/timquery.php
@@ -0,0 +1,79 @@
+<?php
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_bugs_ro.class.php";
+
+$dbc = new DBConnectionBugs();
+$dbh = $dbc->connect();
+
+$sql_info = "SELECT bugs.bug_id as bug_id,
+ bugs.bug_status as bug_status,
+ bugs.resolution as bug_resolution,
+ bugs.target_milestone as bug_target_milestone,
+ attachments.filename as filename,
+ attachments.thedata as thedata,
+ profiles.login_name as attachment_login_name
+ FROM bugs,
+ attachments,
+ profiles
+ WHERE attachments.bug_id = bugs.bug_id
+ AND attachments.isobsolete = 0
+ AND (bugs.bug_status = 'RESOLVED'
+ OR bugs.bug_status = 'CLOSED'
+ OR bugs.bug_status = 'VERIFIED')
+ AND bugs.resolution = 'FIXED'
+ AND bugs.product_id = 20
+ AND attachments.submitter_id = profiles.userid
+ ORDER BY bugs.bug_id";
+
+$rs = mysql_query($sql_info, $dbh);
+
+$output_file = "timquerys.csv";
+
+@ini_set('zlib.output_compression', 'Off');
+header('Pragma: public');
+header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
+header('Cache-Control: no-store, no-cache, must-revalidate');
+header('Cache-Control: pre-check=0, post-check=0, max-age=0');
+header('Content-Transfer-Encoding: none');
+// This should work for IE & Opera
+header('Content-Type: application/octetstream; name="' . $output_file . '"');
+// This should work for the rest
+header('Content-Type: application/octet-stream; name="' . $output_file . '"');
+header('Content-Disposition: inline; filename="' . $output_file . '"');
+
+echo "bug_id,bug_status,resolution,target_milestone,filename,filename_is_patch,content_is_patch,attachment_login_name\n";
+
+while( $myrow = mysql_fetch_assoc($rs) ) {
+echo $myrow['bug_id'];
+echo ",";
+echo $myrow['bug_status'];
+echo ",";
+echo $myrow['bug_resolution'];
+echo ",";
+echo $myrow['bug_target_milestone'];
+echo ",";
+echo $myrow['filename'];
+echo ",";
+$count = preg_match( '/patch/', $myrow['filename'] );
+if( $count > 0 ) {
+ echo "TRUE,";
+} else {
+ echo "FALSE,";
+}
+$count = preg_match( '/RCS file:/', $myrow['thedata'] );
+if( $count > 0 ) {
+ echo "TRUE,";
+} else {
+ echo "FALSE,";
+}
+echo $myrow['attachment_login_name'];
+echo "\n";
+}
+
+$dbc->disconnect();
+
+$rs = null;
+$dbh = null;
+$dbc = null;
+
+exit();
+?>
diff --git a/ipscanning/timquery2.php b/ipscanning/timquery2.php
new file mode 100644
index 0000000..b2cbf1a
--- /dev/null
+++ b/ipscanning/timquery2.php
@@ -0,0 +1,77 @@
+<?php
+
+echo "line 1<br>";
+
+$ds = ldap_connect("main");
+
+echo "after ldap_connect<br>";
+
+ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+
+echo "after ldap_set_options<br>";
+
+if ($ds) {
+ $r = @ldap_bind($ds); # anonymous bind
+
+echo "after ldap_bind<br>";
+
+ if($r) {
+ $sr=ldap_search($ds, "ou=people,dc=eclipse,dc=org", "(mail=bjorn.freeman-benson@eclipse.org)");
+ $sr2=ldap_search($ds, "cn=webtools,ou=group,dc=eclipse,dc=org", "(member=*)");
+ $sr3=ldap_search($ds, "ou=group,dc=eclipse,dc=org", "(cn=*)");
+
+echo "after ldap_search<br>";
+
+ $info = ldap_get_entries($ds, $sr);
+ $info2 = ldap_get_entries($ds, $sr2);
+ $info3 = ldap_get_entries($ds, $sr3);
+
+echo "after ldap_get_entries<br>";
+
+ $uid = "DOESNOTEXIST";
+
+ $i = 0;
+ for ($ii=0; $ii<$info[$i]["count"]; $ii++){
+ $data = $info[$i][$ii];
+ echo $data."($i.$ii): ".$info[$i][$data][0]."<br>";
+ if( $data == "uid" ) {
+ $uid = $info[$i][$data][0];
+ }
+ }
+
+ $i = 0;
+ for ($ii=0; $ii<$info2[$i]["count"]; $ii++){
+ $data = $info2[$i][$ii];
+ echo $data."($i.$ii): ".$info2[$i][$data][0]."<br>";
+ if( $data == "member" ) {
+ echo "in member<br>";
+ for($j = 0; $j<$info2[$i][$data]["count"]; $j++ ) {
+ $attr = $info2[$i][$data][$j];
+ echo " ". $attr . "<br>";
+ if( strstr( $attr, $uid ) ) {
+ echo "FOUND<br>";
+ }
+ }
+ }
+ }
+
+ $i = 0;
+ for( $i = 0; $i < $info3["count"]; $i++ ) {
+ for ($ii=0; $ii<$info3[$i]["count"]; $ii++){
+ $data = $info3[$i][$ii];
+ echo $data."($i.$ii): ".$info3[$i][$data][0]."<br>";
+ if( $data == "uid" ) {
+ $uid = $info3[$i][$data][0];
+ }
+ }
+ }
+
+ }
+
+ ldap_close($ds);
+
+echo "after ldap_close<br>";
+}
+echo "last line<br>";
+
+?>
diff --git a/ipscanning/timquery3.php b/ipscanning/timquery3.php
new file mode 100644
index 0000000..3a41c1d
--- /dev/null
+++ b/ipscanning/timquery3.php
@@ -0,0 +1,129 @@
+<?php
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_bugs_ro.class.php";
+
+function check_email_as_webtools_committer( $email ) {
+ $found = FALSE;
+ $ds = ldap_connect("main");
+ ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+ if ($ds) {
+ $r = @ldap_bind($ds); # anonymous bind
+ if( $r ) {
+ $sr=ldap_search($ds, "ou=people,dc=eclipse,dc=org", "(mail=$email)");
+ $sr2=ldap_search($ds, "cn=webtools,ou=group,dc=eclipse,dc=org", "(member=*)");
+ $info = ldap_get_entries($ds, $sr);
+ $info2 = ldap_get_entries($ds, $sr2);
+ $uid = "DOESNOTEXIST";
+ $i = 0;
+ for ($ii=0; $ii<$info[$i]["count"]; $ii++){
+ $data = $info[$i][$ii];
+ #echo $data."($i.$ii): ".$info[$i][$data][0]."<br>";
+ if( $data == "uid" ) {
+ $uid = $info[$i][$data][0];
+ }
+ }
+ $i = 0;
+ for ($ii=0; $ii<$info2[$i]["count"]; $ii++){
+ $data = $info2[$i][$ii];
+ #echo $data."($i.$ii): ".$info2[$i][$data][0]."<br>";
+ if( $data == "member" ) {
+ for($j = 0; $j<$info2[$i][$data]["count"]; $j++ ) {
+ $attr = $info2[$i][$data][$j];
+ #echo " ". $attr . "<br>";
+ if( strstr( $attr, $uid ) ) {
+ $found = true;
+ }
+ }
+ }
+ }
+
+ }
+ }
+ ldap_close($ds);
+ return $found;
+}
+
+$dbc = new DBConnectionBugs();
+$dbh = $dbc->connect();
+
+$sql_info = "SELECT bugs.bug_id as bug_id,
+ bugs.bug_status as bug_status,
+ bugs.resolution as bug_resolution,
+ bugs.target_milestone as bug_target_milestone,
+ attachments.filename as filename,
+ attachments.thedata as thedata,
+ attachments.creation_ts as timestamp,
+ profiles.login_name as attachment_login_name
+ FROM bugs,
+ attachments,
+ profiles
+ WHERE attachments.bug_id = bugs.bug_id
+ AND attachments.isobsolete = 0
+ AND (bugs.bug_status = 'RESOLVED'
+ OR bugs.bug_status = 'CLOSED'
+ OR bugs.bug_status = 'VERIFIED')
+ AND bugs.resolution = 'FIXED'
+ AND bugs.product_id = 20
+ AND attachments.submitter_id = profiles.userid
+ ORDER BY bugs.bug_id";
+
+$rs = mysql_query($sql_info, $dbh);
+
+$output_file = "timquerys.csv";
+
+@ini_set('zlib.output_compression', 'Off');
+header('Pragma: public');
+header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
+header('Cache-Control: no-store, no-cache, must-revalidate');
+header('Cache-Control: pre-check=0, post-check=0, max-age=0');
+header('Content-Transfer-Encoding: none');
+// This should work for IE & Opera
+header('Content-Type: application/octetstream; name="' . $output_file . '"');
+// This should work for the rest
+header('Content-Type: application/octet-stream; name="' . $output_file . '"');
+header('Content-Disposition: inline; filename="' . $output_file . '"');
+
+echo "bug_id,bug_status,resolution,target_milestone,filename,file_timestamp,filename_is_patch,content_is_patch,attachment_login_name,attachment_login_is_committer\n";
+
+while( $myrow = mysql_fetch_assoc($rs) ) {
+echo $myrow['bug_id'];
+echo ",";
+echo $myrow['bug_status'];
+echo ",";
+echo $myrow['bug_resolution'];
+echo ",";
+echo $myrow['bug_target_milestone'];
+echo ",";
+echo $myrow['filename'];
+echo ",";
+echo $myrow['timestamp'];
+echo ",";
+$count = preg_match( '/patch/', $myrow['filename'] );
+if( $count > 0 ) {
+ echo "TRUE,";
+} else {
+ echo "FALSE,";
+}
+$count = preg_match( '/RCS file:/', $myrow['thedata'] );
+if( $count > 0 ) {
+ echo "TRUE,";
+} else {
+ echo "FALSE,";
+}
+echo $myrow['attachment_login_name'];
+echo ",";
+if( check_email_as_webtools_committer( $myrow['attachment_login_name'] ) ) {
+ echo "TRUE";
+} else {
+ echo "FALSE";
+}
+echo "\n";
+}
+
+$dbc->disconnect();
+
+$rs = null;
+$dbh = null;
+$dbc = null;
+
+exit();
+?>
diff --git a/ipscanning/timquery4.php b/ipscanning/timquery4.php
new file mode 100644
index 0000000..4f3078d
--- /dev/null
+++ b/ipscanning/timquery4.php
@@ -0,0 +1,187 @@
+<?php
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_bugs_ro.class.php";
+
+function check_email_as_webtools_committer( $email ) {
+ $found = FALSE;
+ $ds = ldap_connect("main");
+ ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+ if ($ds) {
+ $r = @ldap_bind($ds); # anonymous bind
+ if( $r ) {
+ $sr=ldap_search($ds, "ou=people,dc=eclipse,dc=org", "(mail=$email)");
+ $sr2=ldap_search($ds, "cn=webtools,ou=group,dc=eclipse,dc=org", "(member=*)");
+ $info = ldap_get_entries($ds, $sr);
+ $info2 = ldap_get_entries($ds, $sr2);
+ $uid = "DOESNOTEXIST";
+ $i = 0;
+ for ($ii=0; $ii<$info[$i]["count"]; $ii++){
+ $data = $info[$i][$ii];
+ #echo $data."($i.$ii): ".$info[$i][$data][0]."<br>";
+ if( $data == "uid" ) {
+ $uid = $info[$i][$data][0];
+ }
+ }
+ $i = 0;
+ for ($ii=0; $ii<$info2[$i]["count"]; $ii++){
+ $data = $info2[$i][$ii];
+ #echo $data."($i.$ii): ".$info2[$i][$data][0]."<br>";
+ if( $data == "member" ) {
+ for($j = 0; $j<$info2[$i][$data]["count"]; $j++ ) {
+ $attr = $info2[$i][$data][$j];
+ #echo " ". $attr . "<br>";
+ if( strstr( $attr, $uid ) ) {
+ $found = true;
+ }
+ }
+ }
+ }
+
+ }
+ }
+ ldap_close($ds);
+ return $found;
+}
+
+function check_email_as_eclipse_account( $email ) {
+ $found = FALSE;
+ $ds = ldap_connect("main");
+ ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+ if ($ds) {
+ $r = @ldap_bind($ds); # anonymous bind
+ if( $r ) {
+ $sr=ldap_search($ds, "ou=people,dc=eclipse,dc=org", "(mail=$email)");
+ $info = ldap_get_entries($ds, $sr);
+ $i = 0;
+ for ($ii=0; $ii<$info[$i]["count"]; $ii++){
+ $data = $info[$i][$ii];
+ #echo $data."($i.$ii): ".$info[$i][$data][0]."<br>";
+ if( $data == "uid" ) {
+ $found = true;
+ }
+ }
+
+ }
+ }
+ ldap_close($ds);
+ return $found;
+}
+
+function count_loc( $data ) {
+ $count = substr_count( $data, "\n" );
+ return $count;
+}
+
+$dbc = new DBConnectionBugs();
+$dbh = $dbc->connect();
+
+$sql_info = "SELECT bugs.bug_id as bug_id,
+ bugs.bug_status as bug_status,
+ bugs.resolution as bug_resolution,
+ bugs.target_milestone as bug_target_milestone,
+ attachments.filename as filename,
+ attachments.thedata as thedata,
+ attachments.creation_ts as timestamp,
+ profiles.login_name as attachment_login_name
+ FROM bugs,
+ attachments,
+ profiles
+ WHERE attachments.bug_id = bugs.bug_id
+ AND attachments.isobsolete = 0
+ AND (bugs.bug_status = 'RESOLVED'
+ OR bugs.bug_status = 'CLOSED'
+ OR bugs.bug_status = 'VERIFIED')
+ AND bugs.resolution = 'FIXED'
+ AND bugs.product_id = 20
+ AND attachments.submitter_id = profiles.userid
+ ORDER BY bugs.bug_id";
+
+$rs = mysql_query($sql_info, $dbh);
+
+$output_file = "timquerys.csv";
+
+@ini_set('zlib.output_compression', 'Off');
+header('Pragma: public');
+header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
+header('Cache-Control: no-store, no-cache, must-revalidate');
+header('Cache-Control: pre-check=0, post-check=0, max-age=0');
+header('Content-Transfer-Encoding: none');
+// This should work for IE & Opera
+header('Content-Type: application/octetstream; name="' . $output_file . '"');
+// This should work for the rest
+header('Content-Type: application/octet-stream; name="' . $output_file . '"');
+header('Content-Disposition: inline; filename="' . $output_file . '"');
+
+echo "bug_id,bug_status,resolution,target_milestone,filename,file_timestamp,filename_is_patch,content_is_patch,LOC,attachment_login_name,attachment_login_has_eclipse_account,attachment_login_is_webtools_committer,needs_inspection\n";
+
+while( $myrow = mysql_fetch_assoc($rs) ) {
+
+$needs_inspection = false;
+
+echo $myrow['bug_id'];
+echo ",";
+echo $myrow['bug_status'];
+echo ",";
+echo $myrow['bug_resolution'];
+echo ",";
+echo $myrow['bug_target_milestone'];
+echo ",";
+echo $myrow['filename'];
+echo ",";
+echo $myrow['timestamp'];
+echo ",";
+$count1 = preg_match( '/patch/', $myrow['filename'] );
+if( $count1 > 0 ) {
+ echo "TRUE,";
+} else {
+ echo "FALSE,";
+}
+$count2 = preg_match( '/RCS file:/', $myrow['thedata'] );
+if( $count2 > 0 ) {
+ echo "TRUE,";
+} else {
+ echo "FALSE,";
+}
+if( ($count1 > 0) || ($count2 > 0) ) {
+ $needs_inspection = true;
+}
+$count3 = 0;
+if( $needs_inspection ) {
+ $count3 = count_loc($myrow['thedata']);
+}
+echo $count3;
+if( $count3 <= 150 ) {
+ $needs_inspection = false;
+}
+echo ",";
+echo $myrow['attachment_login_name'];
+echo ",";
+if( check_email_as_eclipse_account( $myrow['attachment_login_name'] ) ) {
+ echo "TRUE";
+ $needs_inspection = false;
+} else {
+ echo "FALSE";
+}
+echo ",";
+if( check_email_as_webtools_committer( $myrow['attachment_login_name'] ) ) {
+ echo "TRUE";
+ $needs_inspection = false;
+} else {
+ echo "FALSE";
+}
+echo ",";
+if( $needs_inspection ) {
+ echo "TRUE";
+} else {
+ echo "FALSE";
+}
+echo "\n";
+}
+
+$dbc->disconnect();
+
+$rs = null;
+$dbh = null;
+$dbc = null;
+
+exit();
+?>
diff --git a/libs/ProjectInfo.class.php b/libs/ProjectInfo.class.php
new file mode 100644
index 0000000..43cf231
--- /dev/null
+++ b/libs/ProjectInfo.class.php
@@ -0,0 +1,220 @@
+<?php
+
+require_once "excludes.php";
+require_once "XMLNode.class.php";
+require_once "XMLParser.class.php";
+require_once "XMLHandler.class.php";
+require_once "URLCheck.class.php";
+require_once "URLReader.class.php";
+require_once "Shipping.class.php";
+
+define("XMLFILE","eclipse-project-info.xml");
+define("FAKEREPORTS","http://phoenix.eclipse.org/projects/temporary");
+
+class ProjectInfo {
+ // Main
+ var $_name;
+ var $_shortname;
+ var $_url;
+ var $_summary;
+ var $_description;
+ var $_shipping;
+ var $_projectiplog;
+ var $_mailinglists;
+ var $_newsgroup;
+ var $_bugzilla;
+ var $_blog;
+ var $_cvs;
+
+ // Auxiliar
+ var $_excludes;
+ var $_excount;
+ var $_projectID;
+ var $_inturl;
+
+
+ function ProjectInfo($projectID,$url){
+ # Get exclude information
+ $this->_excludes = explode(",",EXCLUDED_PROJECTS);
+ $this->_excount = count($this->_excludes);
+
+ $this->_projectID = $projectID;
+ $this->_inturl = dirname($url);
+
+ // Variables with accessors
+ $this->_name = "";
+ $this->_shortname = "";
+ $this->_url = "";
+ $this->_summary = "";
+ $this->_description = "";
+ $this->_shipping = New Shipping();
+ $this->_projectiplog = "";
+ $this->_mailinglists = array();
+ $this->_newsgroup = "";
+ $this->_bugzilla = "";
+ $this->_blog = "";
+ $this->_cvs = "";
+ }
+
+ function validProject($project){
+ $project = strtolower($project);
+
+ for($i=0;$i<$this->_excount;$i++){
+ if ($project == $this->_excludes[$i])
+ return 0;
+ else
+ if (strpos($project,".") && strpos($this->_excludes[$i],".")){
+ $pos1 = strrpos($project,"."); // Check if this
+ $pos2 = strrpos($this->_excludes[$i],"."); // group is excluded
+ $str1 = substr($project,0,$pos1); // by means of a
+ $str2 = substr($this->_excludes[$i],0,$pos2); // wildcard group
+ $str3 = substr($this->_excludes[$i],$pos2+1); // (i.e., tptp.*)
+ if ($str1 == $str2 && $str3 == '*')
+ return 0;
+ }
+ }
+
+ return 1;
+ }
+
+ function getProjectInfo(){
+ if ($this->validProject($this->_projectID)){
+ $this->_inturl .= "/".XMLFILE;
+ $u = new URLCheck($this->_inturl);
+ if (!$u->urlExists()) // if real URL doesn't exist use prototype
+ $this->_inturl = $this->fakeFile($this->_projectID);
+ $p =& new XMLParser(); // Has to be done each time or it fails
+ $p->parse($this->_inturl);
+print_r($p->getOutput()); echo "<br>\n";
+ $h = new XMLHandler($p->getOutput());
+
+ // Name
+ $node = new XMLNode($h->getNodeByPath("/project/name"));
+ if ($node->getContent() != "")
+ $this->_name = $node->getContent();
+
+ // ShortName
+ $node = new XMLNode($h->getNodeByPath("/project/short-name"));
+ if ($node->getContent() != "")
+ $this->_shortname = $node->getContent();
+
+ // URL
+ $node = new XMLNode($h->getNodeByPath("/project/URL"));
+ if ($node->getContent() != "")
+ $this->_url = $node->getContent();
+
+ // Summary
+ $node = new XMLNode($h->getNodeByPath("/project/summary"));
+ if ($node->getContent() != "")
+ $this->_summary = $node->getContent();
+
+ // Description
+ $node->setNode($h->getNodeByPath("/project/description"));
+ if ($node->getContent() != "")
+ $this->_description = $node->getContent();
+
+ // Shipping
+ $node->setNode($h->getNodeByPath("/project/shipping"));
+ if ($node->hasAttributes() && ($node->getAttribute('URL') != "")){
+ $parseurl = new URLReader($node->getAttribute('URL'));
+ $ship = $parseurl->getReleases($node->getAttribute('ANAME'));
+ if (count($a))
+ echo $this->_shipping->setShipping($ship);
+ }
+ // Releases
+
+ // Project IP Log
+ $node->setNode($h->getNodeByPath("/project/project-ip-log"));
+ if ($node->hasAttributes())
+ $this->_projectiplog = $node->getAttribute('URL');
+
+ // Community
+
+ // Mailing Lists
+ $node->setNode($h->getNodeByPath("/project/community/mailing-lists"));
+ if ($node->getContent() != ""){
+ $this->_mailinglists = $node->getContent();
+ }
+
+ // Newsgroup
+ $node->setNode($h->getNodeByPath("/project/community/newsgroup"));
+ if ($node->getContent() != "")
+ $this->_newsgroup = $node->getContent();
+
+ // Bugzilla
+ $node->setNode($h->getNodeByPath("/project/community/bugzilla"));
+ if ($node->getContent() != "")
+ $this->_bugzilla = $node->getContent();
+
+ // Blog
+ $node->setNode($h->getNodeByPath("/project/community/blog"));
+ if ($node->getContent() != "")
+ $this->_blog = $node->getContent();
+
+ // CVS
+ $node->setNode($h->getNodeByPath("/project/community/cvs"));
+ if ($node->getContent() != "")
+ $this->_cvs = $node->getContent();
+ }
+ }
+
+ function fakeFile($pID){
+ $pID = str_replace(".","/",$pID); // For directory search
+ $url = FAKEREPORTS."/".$pID."/".XMLFILE;
+ $u = new URLCheck($url);
+ if (!$u->urlExists())
+ die("Could not find ".$url." aborting...\n");
+
+ return $url;
+ }
+
+ function getName(){
+ return $this->_name;
+ }
+
+ function getShortName(){
+ return $this->_shortname;
+ }
+
+ function getURL(){
+ return $this->_url;
+ }
+
+ function getSummary(){
+ return $this->_summary;
+ }
+
+ function getDescription(){
+ return $this->_description;
+ }
+
+ function getShipping(){
+ return $this->_shipping;
+ }
+
+ function getProjectIPLog(){
+ return $this->_projectiplog;
+ }
+
+ function getMailingLists(){
+ return $this->_mailinglists;
+ }
+
+ function getNewsgroup(){
+ return $this->_newsgroup;
+ }
+
+ function getBugzilla(){
+ return $this->_bugzilla;
+ }
+
+ function getBlog(){
+ return $this->_blog;
+ }
+
+ function getCVS(){
+ return $this->_cvs;
+ }
+
+}
+?>
diff --git a/libs/Shipping.class.php b/libs/Shipping.class.php
new file mode 100644
index 0000000..71005e9
--- /dev/null
+++ b/libs/Shipping.class.php
@@ -0,0 +1,33 @@
+<?php
+
+define("ERROR",-1000);
+
+class Shipping {
+ var $_shipping;
+
+ function Shipping(){
+ $this->_shipping = array();
+ }
+
+ function getCount(){
+ return count($this->_shipping);
+ }
+
+ function getItemAt($at){
+ if (isset($this->shipping[$at]))
+ return $this->shipping[$at];
+ else
+ return ERROR;
+ }
+
+ function setShipping($details){
+ $this->_shipping = $details;
+ }
+
+ function getShipping(){
+ return $this->_shipping;
+ }
+
+}
+
+?>
diff --git a/libs/URLCheck.class.php b/libs/URLCheck.class.php
new file mode 100644
index 0000000..fea235b
--- /dev/null
+++ b/libs/URLCheck.class.php
@@ -0,0 +1,48 @@
+<?php
+
+define("URL_OK","http/1.1 200 ok");
+
+class URLCheck {
+ var $_fp;
+ var $_url;
+ var $_host;
+ var $_uri;
+ var $_port;
+
+ function _scan_url(){
+ $req = $this->_url;
+
+ $pos = strpos($req, '://');
+ $req = substr($req, $pos+3);
+ $pos = strpos($req, '/');
+ if ($pos === false)
+ $pos = strlen($req);
+ $host = substr($req, 0, $pos);
+ $this->_host = $host;
+ $this->_port = 80;
+ $this->_uri = substr($req, $pos);
+ if ($this->_uri == '')
+ $this->_uri = '/';
+ }
+
+ function URLCheck($url){
+ $this->_url = $url;
+ $this->_scan_url();
+ }
+
+ function urlExists(){
+ $req = "GET ".$this->_uri." HTTP/1.0\r\n"."Host: ".$this->_host."\r\n\r\n";
+ $this->_fp = fsockopen($this->_host, $this->_port);
+ fwrite($this->_fp, $req);
+ while(is_resource($this->_fp) && $this->_fp && !feof($this->_fp)){
+ $response = fread($this->_fp, 1024);
+ if (stristr($response,URL_OK)){
+ fclose($this->_fp);
+ return 1;
+ }
+ }
+ fclose($this->_fp);
+ return 0;
+ }
+}
+?>
diff --git a/libs/URLReader.class.php b/libs/URLReader.class.php
new file mode 100644
index 0000000..a485499
--- /dev/null
+++ b/libs/URLReader.class.php
@@ -0,0 +1,92 @@
+<?
+
+require_once "config.php";
+
+class URLReader{
+ var $_handler;
+ var $_url_info; // Used when relative paths are given in the links
+
+ function URLReader($url){
+ $start = strpos($url,"//") + strlen("//");
+ $end = strpos($url,"/",$start);
+ $host = substr($url,$start,$end-$start);
+ $path = substr($url,$end);
+ // Use sockets otherwise cgi fail to open
+ if ($this->_handler = @fsockopen($host, 80, $errno, $errstr, 5)) {
+ fputs($this->_handler, "GET $path HTTP/1.0\r\n");
+ fputs($this->_handler, "Host: $host\r\n");
+ fputs($this->_handler, "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n");
+ fputs($this->_handler, "\r\n");
+ }else
+ die("Unable to connect: $errno :: $errstr");
+ $end = strrpos($url,"/") + 1; // Find last forward slash
+ $end = strlen($url) - $end; // Get actual number of chars
+ $end *= -1; // Search from the end
+ $this->_url_info = substr($url,0,$end);
+ }
+
+ function getLinksAfterAName($aname){
+ $str = "";
+
+ while(!feof($this->_handler)){
+ $buff = fgets($this->_handler,4096);
+ if (stristr($buff,"<a name")) // Found <a name=""> element
+ if (stristr($buff,$aname)){ // Found the one we are looking for
+ while(!feof($this->_handler)){
+ $buff = fgets($this->_handler,4096);
+ if (stristr($buff,"<a href")){ // return all links
+ if (!stristr($buff,"</a>"))
+ $buff = str_replace("\n","",$buff);
+ $str .= $buff;
+ while(!stristr($buff,"</a>")){ // not always on one line
+ $buff = fgets($this->_handler,4096);
+ if (!stristr($buff,"</a>"))
+ $buff = str_replace("\n","",$buff);
+ $str .= $buff;
+ }
+ }
+ if (stristr($buff,"<a name") || stristr($buff,"</ul>") ||
+ stristr($buff,"</table>") || stristr($buff,"</ol>")){
+ $str = substr($str,0,-1); // Remove last \n
+ return $str;
+ }
+ }
+ }
+ }
+
+ return $str;
+ }
+
+ function getReleases($aname,$ignore_RC_and_M = true){
+ $releases = array();
+ $str = $this->getLinksAfterAName($aname);
+ if ($str == "") // "<a name>" not found
+ return $releases;
+
+ $arr = explode("\n",$str);
+ for($i=0;$i<count($arr);$i++){
+ if (!preg_match(DDD,$arr[$i])) // No digit-dot-digit version
+ continue;
+ if ($ignore_RC_and_M && preg_match(RCM,$arr[$i])) // RC & M patterns
+ continue;
+ $begin_pos = strpos($arr[$i],"<a href=") + strlen("<a href=");
+ $end_pos = strpos($arr[$i],">",$begin_pos);
+ $tmp_pos = $end_pos; // Save for next search
+ $end_pos -= $begin_pos;
+ $tmp_str = substr($arr[$i],$begin_pos,$end_pos);
+ $link = str_replace("\"","",$tmp_str); // Get actual link
+ if (!strstr($link,"tp://")) // Check for relative positioning
+ $link = $this->_url_info.$link;
+ $begin_pos = $tmp_pos + 1;
+ $end_pos = strpos($arr[$i],"<",$begin_pos);
+ $end_pos -= $begin_pos;
+ $name = substr($arr[$i],$begin_pos,$end_pos); // Get name for link
+ $name = str_replace(" ","",$name);
+ $releases[$name] = $link;
+ }
+
+ return $releases;
+ }
+}
+
+?>
diff --git a/libs/XMLHandler.class.php b/libs/XMLHandler.class.php
new file mode 100644
index 0000000..b1b0287
--- /dev/null
+++ b/libs/XMLHandler.class.php
@@ -0,0 +1,47 @@
+<?
+
+// This class implements something similar to XPath. Since versions of PVP
+// pre 5.0 don't include XPath implementations
+
+class XMLHandler{
+ var $_tree;
+
+ function XMLHandler($tree){
+ $this->_tree = $tree;
+ }
+
+ function GetNodeByPath($path,$tree=false){
+ if ($path == "")
+ return null;
+ else
+ $path = strtolower($path);
+
+ if ($tree)
+ $tree_to_search = $tree;
+ else
+ $tree_to_search = $this->_tree;
+
+ $arrPath = explode('/',$path);
+ if ($arrPath[0] == "" && count($arrPath) > 1)
+ array_shift($arrPath);
+
+ foreach($tree_to_search as $key => $val){
+ if (gettype($val) == "array"){
+ $nodename = strtolower($val[name]);
+ if ($nodename == $arrPath[0]){
+ if (count($arrPath) == 1)
+ if (isset($val[content][child]))
+ return $val[content][child];
+ else
+ return $val;
+ array_shift($arrPath);
+ $new_path = implode($arrPath,"/");
+
+ return $this->GetNodeByPath($new_path,$val[child]);
+ }
+ }
+ }
+ }
+
+}
+?>
diff --git a/libs/XMLNode.class.php b/libs/XMLNode.class.php
new file mode 100644
index 0000000..954cad4
--- /dev/null
+++ b/libs/XMLNode.class.php
@@ -0,0 +1,35 @@
+<?
+
+class XMLNode {
+ var $_node = array();
+
+ function XMLNode($node){
+ $this->_node = $node;
+ }
+
+ function setNode($node){
+ $this->_node = $node;
+ }
+
+ function getName(){
+ return $this->_node['name'];
+ }
+
+ function getContent(){
+ return $this->_node['content'];
+ }
+
+ function hasAttributes(){
+ if (isset($this->_node['attrs']))
+ return 1;
+ return 0;
+ }
+
+ function getAttribute($attr){
+ if (isset($this->_node['attrs'][$attr]))
+ return $this->_node['attrs'][$attr];
+ return "";
+ }
+}
+
+?>
diff --git a/libs/XMLParser.class.php b/libs/XMLParser.class.php
new file mode 100644
index 0000000..a351c17
--- /dev/null
+++ b/libs/XMLParser.class.php
@@ -0,0 +1,61 @@
+<?php
+
+// This class handles the parsing for the eclipse-project-info.xml files
+
+class XMLParser{
+ var $_xml_obj = null;
+ var $_output = array();
+
+ function XMLParser(){
+ $this->_xml_obj = xml_parser_create();
+ xml_set_object($this->_xml_obj,$this);
+ xml_set_character_data_handler($this->_xml_obj, 'dataHandler');
+ xml_set_element_handler($this->_xml_obj, "startHandler", "endHandler");
+ }
+
+ function parse($path){
+ if (!($fp = fopen($path, "r"))) {
+ die("Cannot open XML data file: $path");
+ return false;
+ }
+ while($data = fread($fp, 4096)){
+ if (!xml_parse($this->_xml_obj, $data, feof($fp))){
+ die(sprintf("XML error: %s at line %d",
+ xml_error_string(xml_get_error_code($this->_xml_obj)),
+ xml_get_current_line_number($this->_xml_obj)));
+ xml_parser_free($this->_xml_obj);
+ }
+ }
+ fclose($fp);
+
+ return true;
+ }
+
+ function startHandler($parser, $name, $attribs){
+ $_content = array('name' => $name);
+ if (!empty($attribs))
+ $_content['attrs'] = $attribs;
+ array_push($this->_output, $_content);
+ }
+
+ function dataHandler($parser, $data){
+ if (!empty($data)){
+ $_output_idx = count($this->_output) - 1;
+ $this->_output[$_output_idx]['content'] .= $data;
+ }
+ }
+
+ function endHandler($parser, $name){
+ if (count($this->_output) > 1){
+ $_data = array_pop($this->_output);
+ $_output_idx = count($this->_output) - 1;
+ $this->_output[$_output_idx]['child'][] = $_data;
+ }
+ }
+
+ function getOutput(){
+ return $this->_output;
+ }
+}
+
+?>
diff --git a/libs/config.php b/libs/config.php
new file mode 100644
index 0000000..6525b70
--- /dev/null
+++ b/libs/config.php
@@ -0,0 +1,6 @@
+<?php
+
+define(DDD,'/.*\d+\.\d+.*/'); // digit-dot-digit pattern
+define(RCM,'/.*\d+\.\d+(M\d+|RC\d)/'); // RC and M pattern
+
+?>
diff --git a/libs/excludes.php b/libs/excludes.php
new file mode 100644
index 0000000..e578622
--- /dev/null
+++ b/libs/excludes.php
@@ -0,0 +1,5 @@
+<?php
+
+define(EXCLUDED_PROJECTS,"birt.ece,datatools.*,dsdp.*,foundation-internal,foundation-internal.*,root,technology,tools,tptp.*,webtools.jst,webtools.wst");
+
+?>
diff --git a/libs/ptest.php b/libs/ptest.php
new file mode 100644
index 0000000..b728286
--- /dev/null
+++ b/libs/ptest.php
@@ -0,0 +1,49 @@
+<?
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_foundation_ro.class.php";
+require_once "ProjectInfo.class.php";
+
+$dbc = new DBConnectionFoundation();
+$dbh = $dbc->connect();
+
+$sql = "SELECT * FROM Projects WHERE Level <> 0 AND UrlIndex NOT LIKE '' LIMIT 1";
+$rs = mysql_query($sql, $dbh);
+echo mysql_error($dbh);
+
+$row = mysql_fetch_assoc($rs);
+
+echo "<html><body>\n";
+$p = new ProjectInfo($row['ProjectID'],$row['UrlIndex']);
+$p->getProjectInfo();
+$name = $p->getName();
+echo "<b>Name:</b> $name<br>\n";
+$shortname = $p->getShortName();
+echo "<b>Short name:</b> $shortname<br>\n";
+$url = $p->getURL();
+echo "<b>URL:</b> $url<br>\n";
+$summary = $p->getSummary();
+echo "<b>Summary:</b><br>\n";
+echo "$summary<br>\n";
+$description = $p->getDescription();
+echo "<b>Description:</b><br>\n";
+echo "$description<br>\n";
+$projectiplog = $p->getProjectIPLog();
+echo "<b>Project IP Log:</b> $projectiplog<br>\n";
+$mailinglists = $p->getMailingLists();
+echo "<b>Mailing Lists:</b><br>\n";
+print_r($mailinglists);
+echo "<br>\n";
+$newsgroup = $p->getNewsgroup();
+echo "<b>Newsgroup:</b> $newsgroup<br>\n";
+$bugzilla = $p->getBugzilla();
+echo "<b>Bugzilla:</b> $bugzilla<br>\n";
+$blog = $p->getBlog();
+echo "<b>Blog:</b> $blog<br>\n";
+$cvs = $p->getCVS();
+echo "<b>CVS:</b> $cvs<br>\n";
+echo "</body></html>\n";
+
+$dbc->disconnect();
+$dbh = null;
+$dbc = null;
+
+?>
diff --git a/libs/test.php b/libs/test.php
new file mode 100644
index 0000000..d185096
--- /dev/null
+++ b/libs/test.php
@@ -0,0 +1,19 @@
+<?php
+
+require_once "xmlparser.class.php";
+require_once "xmlhandler.class.php";
+
+$file = "http://phoenix.eclipse.org/org/processes/fakereports/birt/eclipse-project-info.xml";
+
+$p =& new XMLParser();
+$p->parse($file);
+
+$h = new XMLHandler($p->getOutput());
+$node = $h->getNodeByPath("/project/shipping");
+echo "<html><body>\n";
+print_r($node);
+#print $node['name']."\n";
+print "<br>".$node['attrs']['URL']."<br>\n";
+echo "</body></html>";
+
+?>
diff --git a/main.html b/main.html
new file mode 100644
index 0000000..3585780
--- /dev/null
+++ b/main.html
@@ -0,0 +1,8 @@
+<html>
+ <head>
+ <meta http-equiv="refresh" content="5; url=index.php" />
+ </head>
+ <body>
+ <a href="index.php">This page has moved. Please update your links and bookmarks.</a>
+ </body>
+</html>
\ No newline at end of file
diff --git a/previous-release-reviews.php b/previous-release-reviews.php
new file mode 100644
index 0000000..ae7dfb9
--- /dev/null
+++ b/previous-release-reviews.php
@@ -0,0 +1,24 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Historical Release Reviews";
+$pageKeywords = "projects";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+ Each major release of each Eclipse project goes through a <a href="/projects/dev_process/release-review.php">Release
+ Review</a>. Reviews past included:
+
+<ul class="midlist">
+<?php
+include_once("fragments/archived-reviews-list.php");
+?>
+</ul>
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
diff --git a/project-leads.php b/project-leads.php
new file mode 100644
index 0000000..bd61049
--- /dev/null
+++ b/project-leads.php
@@ -0,0 +1,22 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Project and PMC Leaders";
+$pageKeywords = "project";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+
+ <p><img border="0" src="images/under-construction.gif"></p>
+
+
+ </div>
+ </div>
+<?
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
diff --git a/project_provisioning_request.php b/project_provisioning_request.php
new file mode 100644
index 0000000..b05c57c
--- /dev/null
+++ b/project_provisioning_request.php
@@ -0,0 +1,533 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "New Project Provisioning Request";
+$pageKeywords = "projects";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+<form method="POST" action="submit_project_provisioning_request.php">
+
+<font size="+2">To be completed by a PMC member of the new project.</font>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+ <tr>
+ <td colspan="2">
+<p>August 12, 2005 </p>
+ <p> This form is used to request the infrastructure for projects that have completed a successful Creation Review and are beginning the Validation Phase of their project
+ (under an existing Top-Level Project) at eclipse.org. These documents follow the Eclipse Project Lifecyle as described in the
+ <a href="/projects/dev_process/"> Eclipse Development Process</a> and are intended to complement the information
+ provided there. In general all inquiries related to project provisioning can be sent to the
+ <a href="mailto:emo@eclipse.org"> EMO</a>.
+ </p>
+ <p>
+ </p>
+ <p>This document is to be completed by a PMC member of the new
+ project. After a successful Creation Review, the project enters the Validation Phase and additional infrastructure is created to support the initial work on the project:</p>
+ <ul>
+ <li>CVS commit rights</li>
+ <li>CVS component structure</li>
+ <li>download site</li>
+ <li>a developer mailing list and</li>
+ <li>the project website</li>
+ </ul>
+ <p> Ongoing changes to the project's core infrastructure are expected especially during the Validation Phase, as the project matures. Please consult the
+ Project Implementation Phase Provisioning document for pointers on how to implement these changes. </p>
+ <p> <span style="background-color: #FFFFCC">This form is processed
+ manually. Thus we request that you reduce the sysadmin overhead by
+ only submitting complete data. Please wait until you have all the
+ answers and then submit the completed form once. Multiple partial
+ submission will (unfortunately) just confuse the situation. Thanks
+ for your understanding.</span> </p>
+ <p>If you have any questions, please send an email to the <a href="mailto:emo@eclipse.org"> EMO</a>. </p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"> </td>
+ </tr>
+ <tr><td colspan="2">
+ <hr>
+ <strong>Your Info</strong><br></td></tr>
+ <tr><td width="22%" align="right">Name: </td><td width="78%"><input type="text" size="60" name="yourName"></td></tr>
+ <tr>
+ <td align="right">E-mail: </td>
+ <td><input type="text" size="60" name="yourEmail"></td>
+ </tr>
+ <tr>
+ <td align="right">Phone number: </td><td><input type="text" size="40" name="yourPhone"></td></tr>
+ <tr>
+ <td align="right">Development Process </td><td><input type="checkbox" name="yourDevelopmentProcess" value="I AGREE">
+ I have read and will follow the <a href="/projects/dev_process/">Eclipse
+ Development Process</a></td></tr>
+ <tr>
+ <td colspan="2">
+ <hr>
+ <strong>Project Info</strong><br></td>
+ </tr>
+ <tr>
+ <td align="right">New Eclipse Project: </td>
+ <td><input type="text" size="60" name="yourProject"></td>
+ </tr>
+ <tr>
+ <td align="right">Host Top-Level Project: </td>
+ <td><input type="text" size="60" name="hostProject" value="Technology PMC"></td>
+ </tr>
+ <tr>
+ <td colspan=2> </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <hr>
+ <strong>CVS Components</strong><br></td>
+ </tr>
+ <tr>
+ <td colspan="2">A list of the initial initial components. Typical component names are <code>org.eclipse.[shortname].[component]</code>. The
+short name is some variation of the project's Descriptive Name - the Acronym, a
+shortened version, or even the whole name. The project's optional Nickname is <b><i> not</i></b> a valid
+short name for CVS components. To make the
+ sysadmins' lives easier, please enter the component names one per
+ line. <span style="background-color: #FFFFCC">If you intend to put
+ an initial code contribution in CVS as soon as the repository is
+ created, you will have filled out the <a href="/legal/ContributionQuestionnairePart1-v1.0.htm">Code
+ Contribution Questionaire</a> (because, of course, you remember every
+ detail of the <a href="/legal/committerguidelines.php">Committer
+ Due Diligence Guidelines</a> and would never forget this step :-)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"><textarea cols="90" rows="10" name="initialComponents"></textarea></td>
+ </tr>
+ <tr>
+ <td colspan=2> </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <hr>
+ <strong>Committer List</strong><br></td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <p align="left">A list of the initial committers for the project. <span style="background-color: #FFFFCC">Note
+ that each committer: (see the <a href="/legal/newcommitter.html">new
+ committer process</a> for additional detail)</span>
+ <ol>
+ <li>Must have filled out either a <a href="/legal/member_committer_questionnaire.html">Member
+ Committer Questionaire</a> or an <a href="/legal/individual_committer_questionnaire.html">Individual Committer
+ Questionaire</a></li>
+ <li>Must be covered under either a <a href="/legal/EclipseMemberCommitterAgreementFinal.pdf"> Member Committer
+ Agreement</a> or an <a href="/legal/EclipseIndividualCommitterAgreementFinal.pdf"> Individual Committer Agreement</a></li>
+ <li>If applicable, the Committers employer or contracting party
+ must have submitted the <a href="/legal/employer_consent.pdf"> Committer Employer Consent
+ Form</a>.</li>
+ </ol>
+ <p><span style="background-color: #FFFFCC">The project
+ cannot
+ be provisioned without at least one committer and you cannot be a
+ committer until you have complete these forms and agreements.</span></p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <table border="0" width="100%">
+ <tr>
+ <td width="25%">Name</td>
+ <td width="25%">Email Address</td>
+ <td width="50%">Update privileges to these CVS
+ components</td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="committerName1"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="committerEmail1"><br>
+ <input type="checkbox" name="committerWebsite1" value="YES" checked>Website
+ update privileges<br>
+ <input type="checkbox" name="committerDownloadPrivileges1" value="YES" checked>
+ Download server privileges<br>
+ <input type="checkbox" name="committerLead1" value="YES" checked>Project
+ Lead
+ </td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="committerPackages1"></textarea></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="committerName2"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="committerEmail2"><br>
+ <input type="checkbox" name="committerWebsite2" value="YES">Website
+ update privileges <br>
+ <input type="checkbox" name="committerDownloadPrivileges2" value="YES">
+ Download server privileges<br>
+ <input type="checkbox" name="committerLead2" value="YES">Project
+ Lead</td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="committerPackages2"></textarea></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="committerName3"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="committerEmail3"><br>
+ <input type="checkbox" name="committerWebsite3" value="YES">Website
+ update privileges <br>
+ <input type="checkbox" name="committerLead3" value="YES">Project
+ Lead</td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="committerPackages3"></textarea></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="committerName4"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="committerEmail4"><br>
+ <input type="checkbox" name="committerWebsite4" value="YES">Website
+ update privileges </td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="committerPackages4"></textarea></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="committerName5"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="committerEmail5"><br>
+ <input type="checkbox" name="committerWebsite5" value="YES">Website
+ update privileges </td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="committerPackages5"></textarea></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="committerName6"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="committerEmail6"><br>
+ <input type="checkbox" name="committerWebsite6" value="YES">Website
+ update privileges </td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="committerPackages6"></textarea></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="committerName7"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="committerEmail7"><br>
+ <input type="checkbox" name="committerWebsite7" value="YES">Website
+ update privileges </td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="committerPackages7"></textarea></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=2> </td>
+ </tr>
+
+ <tr>
+ <td colspan="2">
+ <hr>
+ <strong>Project Website</strong><br></td>
+ </tr>
+ <tr>
+ <td colspan="2">Each project has a web presence on www.eclipse.org. The content for a
+ project web pages is stored in a separate CVS repository on dev.eclipse.org.
+ The repository is automatically checked out to www.eclipse.org, and thereby
+ enables website authors to use HTML and PHP to author websites directly
+ on www.eclipse.org, does not require viewcvs, and paves the way for an
+ eventual MySQL database backend. Only those committers designated above will be granted update rights to the project website CVS.<br>
+ <br>
+ A directory of the form www.eclipse.org/[shortname] will be created for each new project. This also becomes the url for the
+ project home page. A default index.html page containing the required frames
+ is created in the website CVS repository.
+
+ <p>Here's how it works:</p>
+ <p>1 - In Eclipse, create a new CVS Repository location:</p>
+ <blockquote>
+ <blockquote>
+ <p><b>Server</b>: dev.eclipse.org<br>
+ <b>Path</b>: /home/cvs/org.eclipse<br>
+
+ <b>Username/Password</b>: your committer credentials are also used
+ for website authoring<br>
+ <b>Website url</b>: www.eclipse.org/[shortname]</p>
+ </blockquote>
+ </blockquote>
+ <p>2 - Checkout the "www" project, and you will see the project directories.
+ Each of these directories has a single index.html file that sets up the
+ frames and opens up main.html.<br>
+ <br>
+
+ 3 - It may take up to one minute to transfer committed content to www.eclipse.org
+ but essentially committed changes are live.</p>
+ <p>There are some images which you may use in your web pages. These can
+ be viewed at www.eclipse.org/images/.
+ </p>
+ <p>The Tools and Technology Top-Level Projects have modeled the following
+ conventions for project websites. </p>
+ <table border="1" width="75%">
+ <tbody><tr>
+ <td>
+ <div align="center"><b>Filename</b></div>
+ </td>
+
+ <td>
+ <div align="center"><b>Purpose</b></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/main.html</div>
+ </td>
+ <td>
+ <div align="center">the content for the main project page </div>
+
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/faq.html</div>
+ </td>
+ <td>
+ <div align="center">the project faq page</div>
+ </td>
+
+ </tr>
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/download.html</div>
+ </td>
+ <td>
+ <div align="center">the project downloads page</div>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <div align="center">www.eclipse.org/xyz/plan.html</div>
+ </td>
+ <td>
+ <div align="center">the project plan page</div>
+ </td>
+ </tr>
+ </tbody></table>
+
+ </td>
+ </tr>
+<tr>
+ <td colspan="2">
+ <hr>
+ <strong>Project Newsgroup</strong><br></td>
+</tr>
+<tr>
+ <td colspan="2">The project newsgroup is listed on the <a href="/newsgroups/">newsgroups
+ page</a> as a "proposal". You'll probably want new and
+ improved wording given that the project is now approved. We strongly
+ suggest that the new wording include a link to the project's home
+ page, e.g., www.eclipse.org/[shortname].
+ Please
+ provide the HTML for the new wording.</td>
+</tr>
+<tr>
+ <td colspan=2><textarea cols="90" rows="5" name="projectNewsgroupParagraph"></textarea></td>
+</tr>
+<tr>
+ <td colspan="2">The newsgroup is moved on both the newsgroups page and
+ (if this is Technology Project) on the Technology PMC page from the
+ proposals section to the appropriate top-level project section.</td>
+</tr>
+<tr>
+ <td colspan="2">
+ <hr>
+ <strong>Project Proposal</strong><br></td>
+</tr>
+<tr>
+ <td colspan="2">The project proposal is automatically archived in the
+ proposals archive.</td>
+</tr>
+<tr>
+ <td colspan="2">
+ <hr>
+ <strong>Project Mailing Lists</strong><br></td>
+</tr>
+<tr>
+ <td colspan="2">
+New projects typically have a single <code> [shortname]-dev@</code> mailing list. When multiple components are being developed by independent teams, the new project may choose to have additional mailing lists of the form
+<code>[shortname]-[component]-dev@</code>. The short name can be an abbreviation
+of the Descriptive Name, or an Acronym, or the project's optional Nickname. The <i>short name</i> appears on <a href="/mail/">the
+ mailing list main page</a>. The <i>long description</i> appears on
+ the introductory page to the individual mailing list, for example, <a href="https://dev.eclipse.org/mailman/listinfo/platform-dev">the
+ platform-dev mailing list</a>.</td>
+</tr>
+<tr>
+ <td colspan="2">
+ <table border="0" width="100%">
+ <tr>
+ <td width="25%">Mailing List Name</td>
+ <td width="25%">Short Description</td>
+ <td width="50%">Long Description</td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="mailingList1" value="[shortname]-dev"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="shortDescription1"></td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="longDescription1"></textarea></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="mailingList2"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="shortDescription2"></td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="longDescription2"></textarea></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="mailingList3"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="shortDescription3"></td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="longDescription3"></textarea></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="mailingList4"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="shortDescription4"></td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="longDescription4"></textarea></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="mailingList5"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="shortDescription5"></td>
+ <td width="50%" valign="top" align="left"><textarea cols="40" rows="3" name="longDescription5"></textarea></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td colspan="2">
+ <hr>
+ <strong>Builds</strong><br></td>
+</tr>
+<tr>
+ <td colspan="2">
+ The project leads are responsible for builds and maintenance on eclipse.org.
+ The frequency of these is dependent on the project needs. For more information
+ see the documention on <a href="/eclipse/development/">Eclipse project development</a>
+ and the <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-releng-home/main.html">Platform release engineering</a></p>
+ </td>
+</tr>
+<tr>
+ <td colspan="2">
+ <hr>
+ <strong>Downloads</strong><br></td>
+</tr>
+<tr>
+ <td colspan="2">One or two appointed committers (see the checkboxes
+ above) will have access to
+ download.eclipse.org which is a high-bandwidth download
+ server. For projects under the Tools Top-Level Project, for example, the directory will
+ be /home/www/tools/xyz. For mirroring purposes, however, the link to download
+ a file is /downloads/download.php?file=/tools/xyz/fileName.
+ This will allow mirror site selection based on the file requested. We ask
+ that you not link directly to "download.eclipse.org".
+ <p>Because the downloads space is mirrored to several servers worldwide,
+ we ask you use this space wisely, taking extra care when placing large
+ files in this space, and performing regular file cleanups. Large directories
+ use bandwidth while mirroring and deter new mirror sites because of high
+ disk space requirements. Also, HTML and PHP files must not be placed on
+ the download server.</p>
+ <p>Uploads to this space are via SFTP or SCP. Use any SFTP or SCP client,
+ such as CoreFTP or WinSCP, to connect to download1.eclipse.org. Although you are
+ connecting to download1.eclipse.org, links to files must be done to www.eclipse.org/downloads/download.php?file=.
+ <br>
+ <br>
+ RSYNC transfers can be arranged. Please consult the <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a>
+ for details on setting this up.</p></td>
+</tr>
+<tr>
+ <td colspan="2">
+ <hr>
+ <strong>Bugzilla</strong><br></td>
+</tr>
+<tr>
+ <td colspan="2">
+ A Bugzilla "product" is created for the new project.
+ Underneath that product are a set of "components". There are
+ two schemes for the component owners - some projects choose one, some
+ choose the other:
+ <ol>
+ <li>The component owners are actualy humans - project committers as
+ listed above. With this scheme, the component owner receives
+ notifications of new bugs for this component. <br>
+ <img border="0" src="arrow2.gif" width="23" height="22"> If you
+ choose this scheme, enter the component owners' email addresses. The
+ components owners must already have <span style="background-color: #FFFFCC">existing</span>
+ Bugzilla user accounts.</li>
+ <li>The component owners are abstract "inbox" entities. With
+ this scheme, anyone who wants to receive notifications of new bugs
+ for this component uses the Bugzilla "watch this address"
+ feature to watch the inbox email address. Thus plus for this scheme
+ is that it is easy to change component owners and have multiple
+ owners (just have them watch the inbox address); the minus is that
+ if nobody is watching the inbox address, the notifications go to
+ /dev/null.<br>
+ <img border="0" src="arrow2.gif" width="23" height="22"> If you
+ choose this scheme, enter the inbox email addresses in form
+ "[short name].[component name]-inbox@eclipse.org". These
+ bugzilla accounts do <i>not </i>have to exist (and, in fact, they
+ should not exist).</li>
+ </ol>
+
+ <p><img border="0" src="/projects/dev_process/bugzillacomponent.jpg" width="355" height="113"></p>
+
+
+ </td>
+</tr>
+<tr>
+ <td colspan="2">
+ <table border="0" width="100%">
+ <tr>
+ <td width="25%">Component Name</td>
+ <td width="25%"> Description</td>
+ <td width="50%">Component Owner's Email Address</td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="component1"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="componentDescription1"></td>
+ <td width="50%" valign="top" align="left"><input type="text" size="40" name="componentOwner1"></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="component2"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="componentDescription2"></td>
+ <td width="50%" valign="top" align="left"><input type="text" size="40" name="componentOwner2"></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="component3"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="componentDescription3"></td>
+ <td width="50%" valign="top" align="left"><input type="text" size="40" name="componentOwner3"></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="component4"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="componentDescription4"></td>
+ <td width="50%" valign="top" align="left"><input type="text" size="40" name="componentOwner4"></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="component5"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="componentDescription5"></td>
+ <td width="50%" valign="top" align="left"><input type="text" size="40" name="componentOwner5"></td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top" align="left"><input type="text" size="30" name="component6"></td>
+ <td width="25%" valign="top" align="left"><input type="text" size="40" name="componentDescription6"></td>
+ <td width="50%" valign="top" align="left"><input type="text" size="40" name="componentOwner6"></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2">
+ <hr>
+
+ </td>
+ </tr>
+ <tr><td colspan=2>
+ <input type="hidden" name="state" value="submit" />
+ <input type="submit" name="Submit" value="Submit" />
+ </td></tr>
+ <tr>
+ <td colspan="2">
+
+
+</td></tr>
+ <tr>
+ <td colspan="2">
+
+ FYI: The project is 'created' in two steps:
+ <ol>
+ <li>First the CVS, user accounts, mailing-list, master home page (links to your page in the website CVS), download space on download.eclipse.org, and bugzilla
+ components are created.</li>
+ <li>Then the developer mailing lists and the hosting Top-Level Project main page are connected to
+ the project</li>
+ <li>And, voila, the project is "live".</li>
+ </ol>
+ <p>This sequencing ensures that all the core infrastructure is ready and that the data and an initial project structure are in place, before the project goes
+ live.</p>
+</td></tr></table>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
diff --git a/projects.txt b/projects.txt
new file mode 100644
index 0000000..9760d04
--- /dev/null
+++ b/projects.txt
@@ -0,0 +1,929 @@
+#
+# This file is under CVS control. If you change this file on
+# the website without changing it in CVS, your changes will be
+# lost when CVS is updated.
+#
+
+Proposal Name:
+Status; Proposal Posted:
+Proposal URL:
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Project Name:
+Project URL:
+Review Name:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; IP Log Posted:
+IP Log URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+
+
+Project Name: BIRT
+Project URL: /birt/
+Review Name: 2.0
+Status; Review Scheduled: Tue, 22 Nov 2005 12:14:00 PST
+Review Date: Fri, 16 Dec 2005
+Review Time: 1700
+Status; Slides Posted:
+Slides URL:
+Status; IP Log Posted:
+IP Log URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+
+Project Name: Phoenix
+Project URL: /phoenix/
+Review Name: 1.0
+Status; Review Scheduled: Mon, 21 Nov 2005 09:09:00 PST
+Review Date: Mon, 28 Nov 2005
+Review Time: 1600
+Status; Slides Posted: Thu, 24 Nov 2005 08:53:00 PST
+Slides URL: /projects/slides/Phoenix-review.pdf
+Status; IP Log Posted: Thu, 24 Nov 2005 08:53:00 PST
+IP Log URL: /projects/slides/Phoenix-review.pdf
+Status; Review Successful: Mon, 28 Nov 2005 08:39:00 PST
+Status; Review Unsuccessful:
+
+Proposal Name: Native Application Builder (eWideStudio)
+Status; Proposal Posted: Sat, 12 Nov 2005 19:03:00 PST
+Proposal URL: /proposals/nab/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Dash, Tools for Committers
+Status; Proposal Posted: Fri, 04 Nov 2005 19:32:00 PDT
+Proposal URL: /proposals/dash/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Dynamic Languages Toolkit
+Status; Proposal Posted: Mon, 24 Oct 2005 19:32:00 PDT
+Proposal URL: /proposals/dltk/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Process Framework (Beacon)
+Status; Proposal Posted: Tue, 25 Oct 2005 19:32:00 PDT
+Proposal URL: /proposals/beacon/
+Status; Proposal Updated 1: Thu, 10 Nov 2005 23:11:00 PST
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Java Workflow Toolbox
+Status; Proposal Posted: Mon, 25 Jul 2005 19:32:00 PDT
+Proposal URL: /proposals/jwt/
+Status; Proposal Updated 1: Tue, 20 Sep 2005 19:32:00 PDT
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Mobile Tools for Java
+Status; Proposal Posted: Tue, 20 Sep 2005 19:32:00 PDT
+Proposal URL: /proposals/mtj/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level: DSDP
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: SOA Tools Top-Level
+Status; Proposal Posted: Mon, 12 Sep 2005 19:32:00 PDT
+Proposal URL: /proposals/stp/
+Status; Proposal Updated 1: Tue, 20 Sep 2005 19:32:00 PDT
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level:
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Supplement Widgets for SWT (Nebula)
+Status; Proposal Posted: Mon, 12 Sep 2005 19:32:00 PDT
+Proposal URL: /proposals/nebula/
+Status; Proposal Updated 1: Mon, 03 Oct 2005 19:32:00 PDT
+Status; Proposal Updated 2: Fri, 04 Nov 2005 19:32:00 PDT
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: BEPL-Designer
+Status; Proposal Posted: Tue, 05 Jul 2005 19:32:00 PDT
+Proposal URL: /proposals/bpel-designer/
+Status; Proposal Updated 1: Mon, 29 Aug 2005 19:32:00 PDT
+Status; Proposal Updated 2: Tue, 25 Oct 2005 19:32:00 PDT
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Thu, 13 Oct 2005 19:32:00 PDT
+Slides URL: /proposals/bpel-designer/BPEL-Creation-Review.pdf
+Status; Review Successful: Wed, 19 Oct 2005 19:32:00 PDT
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Tue, 22 Nov 2005 18:37:00 PST
+Project URL: /bpel/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Open Healthcare Framework
+Status; Proposal Posted: Wed, 16 Mar 2005 19:32:00 PDT
+Proposal URL: /proposals/eclipse-ohf/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Thu, 13 Oct 2005 19:32:00 PDT
+Slides URL: /proposals/eclipse-ohf/CreationReview.pdf
+Status; Review Successful: Thu, 20 Oct 2005 19:32:00 PDT
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Mon, 21 Nov 2005 12:27:00 PST
+Project URL: /ohf/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Business Intelligence and Reporting Tools Top-Level
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-birt/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /birt/
+Project Top-Level:
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Data Tools Top-Level
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-dtp/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /dtp/CreationReview.pdf
+Status; Review Successful: Sat, 11 Jun 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Wed, 15 Jun 2005 01:00:00 PST
+Project URL: /datatools/
+Project Top-Level:
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Device Software Development Platform Top-Level
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-dsdp/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-dsdp/dsdp/DSDPCreationReview.pdf
+Status; Review Successful: Sat, 11 Jun 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Mon, 15 Aug 2005 01:00:00 PST
+Project URL: /dsdp/
+Project Top-Level:
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Test and Performance Tools Platform Top-Level
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-tptp/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /tptp/
+Project Top-Level:
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Web Tools Platform Top-Level
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-webtools/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /webtools/
+Project Top-Level:
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Project Name: TPTP
+Project URL: /tptp/
+Review Name: 4.1
+Status; Review Scheduled: Fri, 04 Nov 2005 01:00:00 PST
+Review Date: Tue, 08 Nov 2005
+Review Time: 1500
+Status; Slides Posted: Fri, 04 Nov 2005 01:00:00 PST
+Slides URL: /projects/slides/Eclipse%20TPTP%204_1%20Release%20Review%208%20November%202005%20rev-4.pdf
+Status; IP Log Posted: Fri, 04 Nov 2005 01:00:00 PST
+IP Log URL: /projects/slides/TPTP%204_1%20Project%20Log%203-Nov-05.zip
+Status; Review Successful: Tue, 15 Nov 2005 09:09:00 PST
+Status; Review Unsuccessful:
+
+Project Name: WTP
+Project URL: /webtools/
+Review Name: 1.0
+Status; Review Scheduled: Mon, 07 Nov 2005 01:00:00 PST
+Review Date: Wed, 16 Nov 2005
+Review Time: 1700
+Status; Slides Posted: Wed, 09 Nov 2005 23:33:00 PST
+Slides URL: /projects/slides/Eclipse%20WTP%201.0%20Release%20Review.pdf
+Status; IP Log Posted: Thu, 10 Nov 2005 19:00:00 PST
+IP Log URL: /projects/slides/Web%20Tools%20Platform%201.0%20Project%20IP%20Log.pdf
+Status; Review Successful: Mon, 21 Nov 2005 09:33:00 PST
+Status; Review Unsuccessful:
+
+Proposal Name: Application Lifecycle Framework
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-almiff/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-almiff/ALF_Creation_Review.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /alf
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Buckminster Component Assembly
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-buckminster/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-buckminster/Buckminster_creation_review_may05.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /buckminster/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Desktop Technology Integration
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-desk/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn: Sat, 01 Jan 2005 01:00:00 PST
+Status; Project Archived:
+
+Proposal Name: Eclipse Communication Framework
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/ecomm/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/ecomm/reviewslides.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /ecf/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: EJB3.0-ORM (Dali)
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-ejb30-orm/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-ejb30-orm/Eclipse%20EJB%203.0%20ORM.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /dali/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Embedded Rich Client Platform
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-ercp/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-ercp/eRCPCreationReviewv2.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /ercp/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Eclipse Modeling Framework Technology
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-emft/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: proposals/eclipse-emft/EMFT_Creation_Review.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /emft/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Equinox move to Platform
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/equinox-move/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/equinox-move/transition.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /equinox/
+Project Top-Level: Platform
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Graphical Modeling Framework
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-gmf/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /eclipse-gmf/GMF_Creation_Review.ppt
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /gmf/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Higgins, The Trust Framework
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/etf/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/etf/ETFCreationReview3.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /higgins/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: IDE for Laszlo
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/laszlo/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/laszlo/Laszlo_Creation_Review.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /laszlo/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: JavaServer Faces
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-jsf/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-jsf/CreationReview.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /webtools/jsf/
+Project Top-Level: WTP
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: JSR220-ORM
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-jsr220-orm/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-jsr220-orm/JSR220_ORM_Creation_Review.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /jsr220orm/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Language Development Toolkit
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-ldt/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn: Sat, 01 Jan 2005 01:00:00 PST
+Status; Project Archived:
+
+Proposal Name: Lepido, Tools for Apache Cocoon
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-jsr220-orm/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-lepido/Lepido_Creation_Review.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /lepido/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Model Driven Development Integration
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-mddi/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-mddi/MDDi_Creation_Review.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /mddi/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Mylar
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-mylar/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-mylar/mylar-creation-review.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /mylar/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Parallel Tools Platform
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-ptp/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /ptp/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Pollinate
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-pollinate/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: http://www.instantiations.com/pollinate/?page=creation-review.html
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /pollinate/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Phoenix
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-phoenix/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-phoenix/CreationReview.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /phoenix/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Photran
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-photran/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /projects/slides/Photran-Creation-Review.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /photran/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Proposal Name: Technology Project Infrastructure (Barn Raising)
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-tpi/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted:
+Slides URL:
+Status; Review Successful:
+Status; Review Unsuccessful:
+Status; Provisioning Complete:
+Project URL:
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn: Sat, 01 Jan 2005 01:00:00 PST
+Status; Project Archived:
+
+Proposal Name: Voice Tools Project
+Status; Proposal Posted: Sat, 01 Jan 2005 01:00:00 PST
+Proposal URL: /proposals/eclipse-voicetools/
+Status; Proposal Updated 1:
+Status; Proposal Updated 2:
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Sat, 01 Jan 2005 01:00:00 PST
+Slides URL: /proposals/eclipse-voicetools/VTPCreationReview.pdf
+Status; Review Successful: Sat, 01 Jan 2005 01:00:00 PST
+Status; Review Unsuccessful:
+Status; Provisioning Complete: Sat, 01 Jan 2005 01:00:00 PST
+Project URL: /vtp/
+Project Top-Level: Technology
+Project Paragraph URL:
+Status; Proposal Withdrawn:
+Status; Project Archived:
+
+Project Name: BIRT
+Project URL: /birt/
+Review Name: 1.0
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Tue, 14 Jun 2005 09:00:00 PST
+Slides URL: /projects/slides/Eclipse_BIRT_Project_1_0_Release_Review_2005-04-28.pdf
+Status; IP Log Posted:
+IP Log URL:
+Status; Review Successful: Tue, 14 Jun 2005 09:00:00 PST
+Status; Review Unsuccessful:
+
+Project Name: CDT
+Project URL: /cdt/
+Review Name: 3.0
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Mon, 08 Aug 2005 09:00:00 PST
+Slides URL: /projects/slides/CDT_3_0_Release_Review.pdf
+Status; IP Log Posted:
+IP Log URL:
+Status; Review Successful: Mon, 08 Aug 2005 09:00:00 PST
+Status; Review Unsuccessful:
+
+Project Name: EMF
+Project URL: /emf/
+Review Name: 2.1
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Tue, 30 Jun 2005 09:00:00 PST
+Slides URL: /projects/slides/EMF_2.1_Release_Review.pdf
+Status; IP Log Posted:
+IP Log URL:
+Status; Review Successful: Tue, 30 Jun 2005 09:00:00 PST
+Status; Review Unsuccessful:
+
+Project Name: GEF
+Project URL: /gef/
+Review Name: 3.1
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Wed, 22 Jun 2005 09:00:00 PST
+Slides URL: /projects/slides/GEF_Release_Review_3.1.pdf
+Status; IP Log Posted:
+IP Log URL:
+Status; Review Successful: Wed, 22 Jun 2005 09:00:00 PST
+Status; Review Unsuccessful:
+
+Project Name: Platform
+Project URL: /eclipse/
+Review Name: 3.1
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Fri, 17 Jun 2005 09:00:00 PST
+Slides URL: /eclipse/development/eclipse31_release_review.pdf
+Status; IP Log Posted:
+IP Log URL:
+Status; Review Successful: Fri, 17 Jun 2005 09:00:00 PST
+Status; Review Unsuccessful:
+
+Project Name: TPTP
+Project URL: /tptp/
+Review Name: 4.0
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Wed, 15 Jun 2005 09:00:00 PST
+Slides URL: /tptp/home/project_info/devplans/Eclipse%20TPTP%204_0%20Release%20Review%2015%20June%202005%20rev-3.pdf
+Status; IP Log Posted:
+IP Log URL:
+Status; Review Successful: Wed, 15 Jun 2005 09:00:00 PST
+Status; Review Unsuccessful:
+
+Project Name: UML2
+Project URL: /uml2/
+Review Name: 1.1
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Fri, 17 Jun 2005 09:00:00 PST
+Slides URL: /projects/slides/UML2_1.1_Release_Review.pdf
+Status; IP Log Posted:
+IP Log URL:
+Status; Review Successful: Fri, 17 Jun 2005 09:00:00 PST
+Status; Review Unsuccessful:
+
+Project Name: WTP
+Project URL: /wtp/
+Review Name: 0.7
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Wed, 06 Jul 2005 09:00:00 PST
+Slides URL: /projects/slides/WTP_0.7_Release_Review.pdf
+Status; IP Log Posted:
+IP Log URL:
+Status; Review Successful: Wed, 06 Jul 2005 09:00:00 PST
+Status; Review Unsuccessful:
+
+Project Name: VE
+Project URL: /ve/
+Review Name: 1.1
+Status; Review Scheduled:
+Review Date:
+Review Time:
+Status; Slides Posted: Fri, 22 Jul 2005 09:00:00 PST
+Slides URL: /projects/slides/VE-1.1-release-review.pdf
+Status; IP Log Posted:
+IP Log URL:
+Status; Review Successful: Fri, 22 Jul 2005 09:00:00 PST
+Status; Review Unsuccessful:
diff --git a/reviews-rss.php b/reviews-rss.php
new file mode 100644
index 0000000..512345d
--- /dev/null
+++ b/reviews-rss.php
@@ -0,0 +1,150 @@
+<?php
+header("Content-Type: application/rss+xml");
+include_once("fragments/parse-projects-file.class.php");
+$result = "";
+
+$maxlast = 0;
+$lastdate = "";
+
+$all = new AllInfo();
+$all->load();
+foreach( $all->_reviews as $review) {
+ if( $review->status() == "J2"
+ || $review->status() == "J3"
+ || $review->status() == "J4" ) {
+ $result .= "\n<item><title>" . $review->get("Project Name") . " " . $review->get("Review Name")
+ . " Release Review (" . $review->get("Review Date") . " @ " . $review->get("Review Time") . " UTC)";
+ if( $review->status() == "J3" )
+ $result .= " (slides posted)";
+ if( $review->status() == "J4" )
+ $result .= " (slides & project log posted)";
+ $result .= "</title>\n";
+ $result .= "<link>http://www.eclipse.org/projects/</link>\n";
+ $result .= "<pubDate>" . $review->_lastdate . "</pubDate>\n";
+ $n = numerical_date( $review->_lastdate );
+ if( $n > $maxlast ) $lastdate = $review->_lastdate;
+ $result .= "<guid isPermaLink=\"false\">guid:eclipse.org_" . $review->get("Project Name") . "_" . $review->get("Review Name") . "_Release_Review</guid>\n";
+ $result .= "</item>\n";
+ }
+ if( $review->status() == "J5" ) {
+ $result .= "\n<item><title>" . $review->get("Project Name") . " " . $review->get("Review Name")
+ . " Release Approved</title>\n";
+ $url = $review->get("Project URL");
+ if( strpos($url, "http:") == false )
+ $url = "http://www.eclipse.org" . $url;
+ $result .= "<link>" . $url . "</link>\n";
+ $result .= "<pubDate>" . $review->_lastdate . "</pubDate>\n";
+ $n = numerical_date( $review->_lastdate );
+ if( $n > $maxlast ) $lastdate = $review->_lastdate;
+ $result .= "<guid isPermaLink=\"false\">guid:eclipse.org_" . $review->get("Project Name") . "_" . $review->get("Review Name") . "_Release_Review</guid>\n";
+ $result .= "</item>\n";
+ }
+}
+
+foreach( $all->_proposals as $proposal) {
+ if( $proposal->status() == "P1" ) {
+ $result .= "\n<item><title>" . $proposal->get("Proposal Name") . " Proposal Posted</title>\n";
+ $url = $proposal->get("Proposal URL");
+ if( strpos($url, "http:") == false )
+ $url = "http://www.eclipse.org" . $url;
+ $result .= "<link>" . $url . "</link>\n";
+ $result .= "<pubDate>" . $proposal->_lastdate . "</pubDate>\n";
+ $n = numerical_date( $proposal->_lastdate );
+ if( $n > $maxlast ) $lastdate = $proposal->_lastdate;
+ $result .= "<guid isPermaLink=\"false\">guid:eclipse.org_" . $proposal->get("Proposal Name") . "_Proposal</guid>\n";
+ $result .= "</item>\n";
+ }
+ if( $proposal->status() == "P2" ) {
+ $result .= "\n<item><title>" . $proposal->get("Proposal Name") . " Proposal Updated</title>\n";
+ $url = $proposal->get("Proposal URL");
+ if( strpos($url, "http:") == false )
+ $url = "http://www.eclipse.org" . $url;
+ $result .= "<link>" . $url . "</link>\n";
+ $result .= "<pubDate>" . $proposal->_lastdate . "</pubDate>\n";
+ $n = numerical_date( $proposal->_lastdate );
+ if( $n > $maxlast ) $lastdate = $proposal->_lastdate;
+ $result .= "<guid isPermaLink=\"false\">guid:eclipse.org_" . $proposal->get("Proposal Name") . "_Proposal</guid>\n";
+ $result .= "</item>\n";
+ }
+ if( $proposal->status() == "P3"
+ || $proposal->status() == "P4" ) {
+ $result .= "\n<item><title>" . $proposal->get("Proposal Name") . " Creation Review ("
+ . $proposal->get("Review Date") . " @ " . $proposal->get("Review Time") . " UTC)";
+ if( $proposal->status() == "P4" )
+ $result .= " (slides posted)";
+ $result .= "</title>\n";
+ $url = $proposal->get("Proposal URL");
+ if( strpos($url, "http:") == false )
+ $url = "http://www.eclipse.org" . $url;
+ $result .= "<link>" . $url . "</link>\n";
+ $result .= "<pubDate>" . $proposal->_lastdate . "</pubDate>\n";
+ $n = numerical_date( $proposal->_lastdate );
+ if( $n > $maxlast ) $lastdate = $proposal->_lastdate;
+ $result .= "<guid isPermaLink=\"false\">guid:eclipse.org_" . $proposal->get("Proposal Name") . "_Proposal</guid>\n";
+ $result .= "</item>\n";
+ }
+ if( $proposal->status() == "P5" ) {
+ $result .= "\n<item><title>" . $proposal->get("Proposal Name") . " Project Approved</title>\n";
+ $url = $proposal->get("Proposal URL");
+ if( strpos($url, "http:") == false )
+ $url = "http://www.eclipse.org" . $url;
+ $result .= "<link>" . $url . "</link>\n";
+ $result .= "<pubDate>" . $proposal->_lastdate . "</pubDate>\n";
+ $n = numerical_date( $proposal->_lastdate );
+ if( $n > $maxlast ) $lastdate = $proposal->_lastdate;
+ $result .= "<guid isPermaLink=\"false\">guid:eclipse.org_" . $proposal->get("Proposal Name") . "_Proposal</guid>\n";
+ $result .= "</item>\n";
+ }
+ if( $proposal->status() == "P7" ) {
+ $result .= "\n<item><title>" . $proposal->get("Proposal Name") . " Project Created and Provisioned</title>\n";
+ $url = $proposal->get("Project URL");
+ if( strpos($url, "http:") == false )
+ $url = "http://www.eclipse.org" . $url;
+ $result .= "<link>" . $url . "</link>\n";
+ $result .= "<pubDate>" . $proposal->_lastdate . "</pubDate>\n";
+ $n = numerical_date( $proposal->_lastdate );
+ if( $n > $maxlast ) $lastdate = $proposal->_lastdate;
+ $result .= "<guid isPermaLink=\"false\">guid:eclipse.org_" . $proposal->get("Proposal Name") . "_Proposal</guid>\n";
+ $result .= "</item>\n";
+ }
+ if( $proposal->status() == "P8" ) {
+ $result .= "\n<item><title>" . $proposal->get("Proposal Name") . " Proposal Withdrawn</title>\n";
+ $url = $proposal->get("Proposal URL");
+ if( strpos($url, "http:") == false )
+ $url = "http://www.eclipse.org" . $url;
+ $result .= "<link>" . $url . "</link>\n";
+ $result .= "<pubDate>" . $proposal->_lastdate . "</pubDate>\n";
+ $n = numerical_date( $proposal->_lastdate );
+ if( $n > $maxlast ) $lastdate = $proposal->_lastdate;
+ $result .= "<guid isPermaLink=\"false\">guid:eclipse.org_" . $proposal->get("Proposal Name") . "_Proposal</guid>\n";
+ $result .= "</item>\n";
+ }
+ if( $proposal->status() == "P9" ) {
+ $result .= "\n<item><title>" . $proposal->get("Proposal Name") . " Project Archived</title>\n";
+ $result .= "<link>http://www.eclipse.org/technology/archived.html</link>\n";
+ $result .= "<pubDate>" . $proposal->_lastdate . "</pubDate>\n";
+ $n = numerical_date( $proposal->_lastdate );
+ if( $n > $maxlast ) $lastdate = $proposal->_lastdate;
+ $result .= "<guid isPermaLink=\"false\">guid:eclipse.org_" . $proposal->get("Proposal Name") . "_Proposal</guid>\n";
+ $result .= "</item>\n";
+ }
+}
+
+$result = "<rss version=\"2.0\">
+<channel>
+<title>Eclipse Proposals and Reviews</title>
+<link>http://www.eclipse.org/projects/</link>
+<description>Upcoming Creation, Validation, and Release Reviews of Projects
+and Proposals along with state changes to Proposals (new proposals, updated proposals, approved
+projects, etc) at the Eclipse Foundation.</description>
+<language>en-us</language>
+<pubDate>" . $lastdate . "</pubDate>
+<docs>http://blogs.law.harvard.edu/tech/rss</docs>
+<managingEditor>emo@eclipse.org</managingEditor>
+<webMaster>webmaster@eclipse.org</webMaster>
+" . $result . "
+</channel>
+</rss>
+";
+echo $result;
+?>
diff --git a/slides/ALF_Creation_Review.pdf b/slides/ALF_Creation_Review.pdf
new file mode 100644
index 0000000..dbe6684
--- /dev/null
+++ b/slides/ALF_Creation_Review.pdf
Binary files differ
diff --git a/slides/ALF_Creation_Review.ppt b/slides/ALF_Creation_Review.ppt
new file mode 100644
index 0000000..566e764
--- /dev/null
+++ b/slides/ALF_Creation_Review.ppt
Binary files differ
diff --git a/slides/CDT_3_0_Release_Review.pdf b/slides/CDT_3_0_Release_Review.pdf
new file mode 100644
index 0000000..2dd7c5e
--- /dev/null
+++ b/slides/CDT_3_0_Release_Review.pdf
Binary files differ
diff --git a/slides/CDT_3_0_Release_Review.ppt b/slides/CDT_3_0_Release_Review.ppt
new file mode 100644
index 0000000..234e1c8
--- /dev/null
+++ b/slides/CDT_3_0_Release_Review.ppt
Binary files differ
diff --git a/slides/EMF_2.1_Release_Review.pdf b/slides/EMF_2.1_Release_Review.pdf
new file mode 100644
index 0000000..48e6478
--- /dev/null
+++ b/slides/EMF_2.1_Release_Review.pdf
Binary files differ
diff --git a/slides/EMF_2.1_Release_Review.ppt b/slides/EMF_2.1_Release_Review.ppt
new file mode 100644
index 0000000..bc85d1b
--- /dev/null
+++ b/slides/EMF_2.1_Release_Review.ppt
Binary files differ
diff --git a/slides/Eclipse TPTP 4_0 Release Review 15 June 2005 rev-3.ppt b/slides/Eclipse TPTP 4_0 Release Review 15 June 2005 rev-3.ppt
new file mode 100644
index 0000000..eaaf264
--- /dev/null
+++ b/slides/Eclipse TPTP 4_0 Release Review 15 June 2005 rev-3.ppt
Binary files differ
diff --git a/slides/Eclipse TPTP 4_1 Release Review 8 November 2005 rev-4.pdf b/slides/Eclipse TPTP 4_1 Release Review 8 November 2005 rev-4.pdf
new file mode 100644
index 0000000..de9e79c
--- /dev/null
+++ b/slides/Eclipse TPTP 4_1 Release Review 8 November 2005 rev-4.pdf
Binary files differ
diff --git a/slides/Eclipse TPTP 4_1 Release Review 8 November 2005 rev-4.ppt b/slides/Eclipse TPTP 4_1 Release Review 8 November 2005 rev-4.ppt
new file mode 100644
index 0000000..6d66006
--- /dev/null
+++ b/slides/Eclipse TPTP 4_1 Release Review 8 November 2005 rev-4.ppt
Binary files differ
diff --git a/slides/Eclipse WTP 1.0 Release Review.pdf b/slides/Eclipse WTP 1.0 Release Review.pdf
new file mode 100644
index 0000000..9b6a04f
--- /dev/null
+++ b/slides/Eclipse WTP 1.0 Release Review.pdf
Binary files differ
diff --git a/slides/Eclipse WTP 1.0 Release Review.ppt b/slides/Eclipse WTP 1.0 Release Review.ppt
new file mode 100644
index 0000000..2945bbe
--- /dev/null
+++ b/slides/Eclipse WTP 1.0 Release Review.ppt
Binary files differ
diff --git a/slides/EclipseDevelopmentProcess_EclipseWorld_Aug_2005.pdf b/slides/EclipseDevelopmentProcess_EclipseWorld_Aug_2005.pdf
new file mode 100644
index 0000000..4b678e9
--- /dev/null
+++ b/slides/EclipseDevelopmentProcess_EclipseWorld_Aug_2005.pdf
Binary files differ
diff --git a/slides/Eclipse_BIRT_Project_1_0_Release_Review_2005-04-28.pdf b/slides/Eclipse_BIRT_Project_1_0_Release_Review_2005-04-28.pdf
new file mode 100644
index 0000000..379a413
--- /dev/null
+++ b/slides/Eclipse_BIRT_Project_1_0_Release_Review_2005-04-28.pdf
Binary files differ
diff --git a/slides/GEF_Release_Review_3.1.pdf b/slides/GEF_Release_Review_3.1.pdf
new file mode 100644
index 0000000..f3074e2
--- /dev/null
+++ b/slides/GEF_Release_Review_3.1.pdf
Binary files differ
diff --git a/slides/GEF_Release_Review_3.1.ppt b/slides/GEF_Release_Review_3.1.ppt
new file mode 100644
index 0000000..f8eb799
--- /dev/null
+++ b/slides/GEF_Release_Review_3.1.ppt
Binary files differ
diff --git a/slides/MDDi_Creation_Review.pdf b/slides/MDDi_Creation_Review.pdf
new file mode 100644
index 0000000..33b04da
--- /dev/null
+++ b/slides/MDDi_Creation_Review.pdf
Binary files differ
diff --git a/slides/MDDi_Creation_Review.ppt b/slides/MDDi_Creation_Review.ppt
new file mode 100644
index 0000000..11d45de
--- /dev/null
+++ b/slides/MDDi_Creation_Review.ppt
Binary files differ
diff --git a/slides/Phoenix-review.pdf b/slides/Phoenix-review.pdf
new file mode 100644
index 0000000..1d566b5
--- /dev/null
+++ b/slides/Phoenix-review.pdf
Binary files differ
diff --git a/slides/Phoenix-review.ppt b/slides/Phoenix-review.ppt
new file mode 100644
index 0000000..056bc2f
--- /dev/null
+++ b/slides/Phoenix-review.ppt
Binary files differ
diff --git a/slides/Photran-Creation-Review.pdf b/slides/Photran-Creation-Review.pdf
new file mode 100644
index 0000000..30e3431
--- /dev/null
+++ b/slides/Photran-Creation-Review.pdf
Binary files differ
diff --git a/slides/Photran-Creation-Review.ppt b/slides/Photran-Creation-Review.ppt
new file mode 100644
index 0000000..2b0f02b
--- /dev/null
+++ b/slides/Photran-Creation-Review.ppt
Binary files differ
diff --git a/slides/TPTP 4_1 Project Log 3-Nov-05.zip b/slides/TPTP 4_1 Project Log 3-Nov-05.zip
new file mode 100644
index 0000000..c01bdf3
--- /dev/null
+++ b/slides/TPTP 4_1 Project Log 3-Nov-05.zip
Binary files differ
diff --git a/slides/UML2_1.1_Release_Review.pdf b/slides/UML2_1.1_Release_Review.pdf
new file mode 100644
index 0000000..1f2e561
--- /dev/null
+++ b/slides/UML2_1.1_Release_Review.pdf
Binary files differ
diff --git a/slides/UML2_1.1_Release_Review.ppt b/slides/UML2_1.1_Release_Review.ppt
new file mode 100644
index 0000000..517971b
--- /dev/null
+++ b/slides/UML2_1.1_Release_Review.ppt
Binary files differ
diff --git a/slides/VE-1.1-release-review .sxi b/slides/VE-1.1-release-review .sxi
new file mode 100644
index 0000000..d9957c1
--- /dev/null
+++ b/slides/VE-1.1-release-review .sxi
Binary files differ
diff --git a/slides/VE-1.1-release-review.pdf b/slides/VE-1.1-release-review.pdf
new file mode 100644
index 0000000..38ef3b8
--- /dev/null
+++ b/slides/VE-1.1-release-review.pdf
Binary files differ
diff --git a/slides/VE-1.1-release-review.ppt b/slides/VE-1.1-release-review.ppt
new file mode 100644
index 0000000..b020161
--- /dev/null
+++ b/slides/VE-1.1-release-review.ppt
Binary files differ
diff --git a/slides/WTP_0.7_Release_Review.pdf b/slides/WTP_0.7_Release_Review.pdf
new file mode 100644
index 0000000..2e04595
--- /dev/null
+++ b/slides/WTP_0.7_Release_Review.pdf
Binary files differ
diff --git a/slides/WTP_0.7_Release_Review.ppt b/slides/WTP_0.7_Release_Review.ppt
new file mode 100644
index 0000000..32cc98d
--- /dev/null
+++ b/slides/WTP_0.7_Release_Review.ppt
Binary files differ
diff --git a/slides/Web Tools Platform 1.0 Project IP Log.doc b/slides/Web Tools Platform 1.0 Project IP Log.doc
new file mode 100644
index 0000000..b9dca95
--- /dev/null
+++ b/slides/Web Tools Platform 1.0 Project IP Log.doc
Binary files differ
diff --git a/slides/Web Tools Platform 1.0 Project IP Log.pdf b/slides/Web Tools Platform 1.0 Project IP Log.pdf
new file mode 100644
index 0000000..0d0489b
--- /dev/null
+++ b/slides/Web Tools Platform 1.0 Project IP Log.pdf
Binary files differ
diff --git a/slides/committer_issues_slides.pdf b/slides/committer_issues_slides.pdf
new file mode 100644
index 0000000..4477b1c
--- /dev/null
+++ b/slides/committer_issues_slides.pdf
Binary files differ
diff --git a/slides/eclipse31_release_review.ppt b/slides/eclipse31_release_review.ppt
new file mode 100644
index 0000000..2362dde
--- /dev/null
+++ b/slides/eclipse31_release_review.ppt
Binary files differ
diff --git a/slides/release-train-name.gif b/slides/release-train-name.gif
new file mode 100644
index 0000000..041bd9a
--- /dev/null
+++ b/slides/release-train-name.gif
Binary files differ
diff --git a/stats/alter_dash2bugs.php b/stats/alter_dash2bugs.php
new file mode 100644
index 0000000..00734f2
--- /dev/null
+++ b/stats/alter_dash2bugs.php
@@ -0,0 +1,51 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "hostname.php";
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+$new_column = array('bugs_total',
+ 'bugs_7_delta',
+ 'bugs_7_percentage',
+ 'bugs_7_gainloss',
+ 'bugs_30_delta',
+ 'bugs_30_percentage',
+ 'bugs_30_gainloss',
+ 'bugs_180_delta',
+ 'bugs_180_percentage',
+ 'bugs_180_gainloss');
+
+$old_column = array('dashboard_number_bugs',
+ 'dashboard_7_delta',
+ 'dashboard_7_percentage',
+ 'dashboard_7_gainloss',
+ 'dashboard_30_delta',
+ 'dashboard_30_percentage',
+ 'dashboard_30_gainloss',
+ 'dashboard_180_delta',
+ 'dashboard_180_percentage',
+ 'dashboard_180_gainloss');
+
+$data_type = array('smallint',
+ 'smallint',
+ 'tinyint',
+ 'smallint',
+ 'smallint',
+ 'tinyint',
+ 'smallint',
+ 'smallint',
+ 'tinyint',
+ 'smallint');
+
+
+for($i=0;$i<count($old_column);$i++){
+ $query = "ALTER TABLE ".stats_table()." CHANGE COLUMN ".$old_column[$i]." ".$new_column[$i]." ".$data_type[$i];
+ echo $query."<br>";
+ mysql_query($query,$db_handle) or die("Could not alter table: ".mysql_error());
+}
+
+$db_handle = null;
+$db_connection = null;
+?>
diff --git a/stats/alter_news.php b/stats/alter_news.php
new file mode 100644
index 0000000..0098ba4
--- /dev/null
+++ b/stats/alter_news.php
@@ -0,0 +1,27 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "hostname.php";
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+$new_column = array('news_30_answer_average_time',
+ 'news_7_answer_average_time');
+
+$old_column = array('news_30_answer_average_time',
+ 'news_7_answer_average_time');
+
+$data_type = array('int',
+ 'int');
+
+
+for($i=0;$i<count($old_column);$i++){
+ $query = "ALTER TABLE ".stats_table()." CHANGE COLUMN ".$old_column[$i]." ".$new_column[$i]." ".$data_type[$i];
+ echo $query."<br>";
+ mysql_query($query,$db_handle) or die("Could not alter table: ".mysql_error());
+}
+
+$db_handle = null;
+$db_connection = null;
+?>
diff --git a/stats/alter_table.php b/stats/alter_table.php
new file mode 100644
index 0000000..ef9c0ad
--- /dev/null
+++ b/stats/alter_table.php
@@ -0,0 +1,23 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "hostname.php";
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+$query = "ALTER TABLE ".stats_table()." ADD (";
+
+// Mail stats
+$query .= "mail_7_number_posts smallint, mail_7_average_posts float, mail_7_number_subscribers smallint, mail_7_average_subscribers float, ";
+$query .= "mail_30_number_posts smallint, mail_30_average_posts float, mail_30_number_subscribers smallint, mail_30_average_subscribers float, ";
+$query .= "mail_180_number_posts smallint, mail_180_average_posts float, mail_180_number_subscribers smallint, mail_180_average_subscribers float)";
+
+
+echo $query."<br>";
+
+mysql_query($query,$db_handle) or die("Could not alter table: ".mysql_error());
+
+$db_handle = null;
+$db_connection = null;
+?>
diff --git a/stats/common_queries.php b/stats/common_queries.php
new file mode 100644
index 0000000..e4e742e
--- /dev/null
+++ b/stats/common_queries.php
@@ -0,0 +1,13 @@
+<?php
+
+require_once "hostname.php";
+
+function get_last_date($handle){
+ $query = "SELECT stats_date FROM ".stats_table()." ORDER BY stats_date DESC LIMIT 1";
+ $result = mysql_query($query,$handle);
+ $row = mysql_fetch_assoc($result);
+
+ return $row['stats_date'];
+}
+
+?>
diff --git a/stats/compute_bugs_stats.php b/stats/compute_bugs_stats.php
new file mode 100644
index 0000000..3c9f62f
--- /dev/null
+++ b/stats/compute_bugs_stats.php
@@ -0,0 +1,239 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_bugs_ro.class.php";
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "config.php";
+require_once "groups.class.php";
+require_once "hostname.php";
+
+function countbugs($whereclause, $bugzilla_conn){
+ $sql_info = "SELECT count(*)
+ FROM bugs
+ WHERE " . $whereclause;
+ $rs = mysql_query($sql_info, $bugzilla_conn);
+ $myrow = mysql_fetch_row($rs);
+ $value = $myrow[0];
+
+ return $value;
+}
+
+function total_bugs($product_id, $dbh_bugzilla){
+ # Get the number of bugs today, a week ago, a month ago, six months ago
+ $B0 = countbugs("product_id = $product_id",
+ $dbh_bugzilla);
+ $B7 = countbugs("product_id = $product_id
+ AND creation_ts < DATE_SUB(NOW(), INTERVAL 7 DAY)",
+ $dbh_bugzilla);
+ $B30 = countbugs("product_id = $product_id
+ AND creation_ts < DATE_SUB(NOW(), INTERVAL 1 MONTH)",
+ $dbh_bugzilla);
+ $B180 = countbugs("product_id = $product_id
+ AND creation_ts < DATE_SUB(NOW(), INTERVAL 6 MONTH)",
+ $dbh_bugzilla);
+
+ return array($B0,$B7,$B30,$B180);
+}
+
+function closed_bugs($product_id, $dbh_bugzilla){
+ # Get the number of closed bugs today, etc.
+ $C0 = countbugs("(bug_status = 'RESOLVED' OR bug_status = 'VERIFIED'
+ OR bug_status = 'CLOSED') AND product_id = $product_id",
+ $dbh_bugzilla);
+ $C7 = countbugs("(bug_status = 'RESOLVED' OR bug_status = 'VERIFIED'
+ OR bug_status = 'CLOSED') AND product_id = $product_id
+ AND creation_ts < DATE_SUB(NOW(), INTERVAL 7 DAY)",
+ $dbh_bugzilla);
+ $C30 = countbugs("(bug_status = 'RESOLVED' OR bug_status = 'VERIFIED'
+ OR bug_status = 'CLOSED') AND product_id = $product_id
+ AND creation_ts < DATE_SUB(NOW(), INTERVAL 1 MONTH)",
+ $dbh_bugzilla);
+ $C180 = countbugs("(bug_status = 'RESOLVED' OR bug_status = 'VERIFIED'
+ OR bug_status = 'CLOSED') AND product_id = $product_id
+ AND creation_ts < DATE_SUB(NOW(), INTERVAL 6 MONTH)",
+ $dbh_bugzilla);
+
+ return array($C0,$C7,$C30,$C180);
+}
+
+function open_bugs($product_id, $dbh_bugzilla){
+ # Get the number of open bugs (P1, P2, P3 non-enhancements) today, etc.
+ $O0 = countbugs("(bug_status = 'UNCONFIRMED' OR bug_status = 'NEW'
+ OR bug_status = 'ASSIGNED' OR bug_status = 'REOPENED')
+ AND (priority = 'P1' OR priority = 'P2'
+ OR (priority = 'P3' AND bug_severity <> 'enchancement'))
+ AND product_id = $product_id",
+ $dbh_bugzilla);
+ $O7 = countbugs("(bug_status = 'UNCONFIRMED' OR bug_status = 'NEW'
+ OR bug_status = 'ASSIGNED' OR bug_status = 'REOPENED')
+ AND (priority = 'P1' OR priority = 'P2' OR
+ (priority = 'P3' AND bug_severity <> 'enchancement'))
+ AND product_id = $product_id
+ AND creation_ts < DATE_SUB(NOW(), INTERVAL 7 DAY)",
+ $dbh_bugzilla);
+ $O30 = countbugs("(bug_status = 'UNCONFIRMED' OR bug_status = 'NEW'
+ OR bug_status = 'ASSIGNED' OR bug_status = 'REOPENED')
+ AND (priority = 'P1' OR priority = 'P2'
+ OR (priority = 'P3' AND bug_severity <> 'enchancement'))
+ AND product_id = $product_id
+ AND creation_ts < DATE_SUB(NOW(), INTERVAL 1 MONTH)",
+ $dbh_bugzilla);
+ $O180 = countbugs("(bug_status = 'UNCONFIRMED' OR bug_status = 'NEW'
+ OR bug_status = 'ASSIGNED' OR bug_status = 'REOPENED')
+ AND (priority = 'P1' OR priority = 'P2'
+ OR (priority = 'P3' AND bug_severity <> 'enchancement'))
+ AND product_id = $product_id
+ AND creation_ts < DATE_SUB(NOW(), INTERVAL 6 MONTH)",
+ $dbh_bugzilla);
+
+ return array($O0,$O7,$O30,$O180);
+}
+
+function delta($bugs1,$bugs2,$closed1,$closed2,$open1,$open2){
+ $delta1 = $bugs1 - $bugs2;
+ $delta2 = $closed1 - $closed2;
+ $delta3 = $open1 - $open2;
+
+ return array($delta1,$delta2,$delta3);
+}
+
+function gainloss($cdelta,$odelta){
+ return $cdelta - $odelta;
+}
+
+function percents($delta,$gainloss){
+ return round(($gainloss / $delta) * 100);
+}
+
+echo "<html>\n<body>\n";
+
+# MAIN CODE
+
+$dbc_bugzilla = new DBConnectionBugs();
+$dbh_bugzilla = $dbc_bugzilla->connect();
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+$mysql_date = date('Y-m-d');
+$groups = new Groups();
+$groups->loadGroups(); # Get group info from file
+$groupids = $groups->getIds();
+
+while(count($groupids)){
+ $id = array_pop($groupids); # Get group IDs from file
+ $project = $groups->getProjectFromId($id); # Get project name using the ID
+ echo "<b>Processing project: $project</b><br>\n";
+$text = "Bugs information for project $project\r\n\r\n";
+ ob_flush(); flush();
+
+ $perc = array();
+ $gl = array();
+
+ // Get bugs
+ $bugs = total_bugs($id, $dbh_bugzilla);
+ $closed = closed_bugs($id, $dbh_bugzilla);
+ $open = open_bugs($id, $dbh_bugzilla);
+
+ // Write to log (Bugs)
+ $text .= "Bugs,Today,Last week,Last month,Last six months\r\n";
+ $text .= "Total,".$bugs[0].",".$bugs[1].",".$bugs[2].",".$bugs[3]."\r\n";
+ $text .= "Closed,".$closed[0].",".$closed[1].",".$closed[2].",".$closed[3]."\r\n";
+ $text .= "Open,".$open[0].",".$open[1].",".$open[2].",".$open[3]."\r\n\r\n";
+
+ // Compute deltas
+ $delta7 = delta($bugs[0],$bugs[1],$closed[0],$closed[1],$open[0],$open[1]);
+ $delta30 = delta($bugs[0],$bugs[2],$closed[0],$closed[2],$open[0],$open[2]);
+ $delta180 = delta($bugs[0],$bugs[3],$closed[0],$closed[3],$open[0],$open[3]);
+ $deltas[0] = $delta7[0];
+ $deltas[1] = $delta30[0];
+ $deltas[2] = $delta180[0];
+
+ // Write to log (Deltas)
+ $text .= "Deltas,Last week,Last month,Last six months\r\n";
+ $text .= "Total,".$delta7[0].",".$delta30[0].",".$delta180[0]."\r\n";
+ $text .= "Closed,".$delta7[1].",".$delta30[1].",".$delta180[1]."\r\n";
+ $text .= "Open,".$delta7[2].",".$delta30[2].",".$delta180[2]."\r\n\r\n";
+
+ // Compute gain-loss
+ $gl[0] = gainloss($delta7[1],$delta7[2]);
+ $gl[1] = gainloss($delta30[1],$delta30[2]);
+ $gl[2] = gainloss($delta180[1],$delta180[2]);
+
+ // Write to log (Gain-Loss)
+ $text .= "Gain-Loss,Last week,Last month,Last six months\r\n";
+ $text .= ",".$gl[0].",".$gl[1].",".$gl[2]."\r\n\r\n";
+
+ // Compute percentages
+ $perc[0] = $delta7[0]?percents($delta7[0],$gl[0]):0;
+ $perc[1] = $delta30[0]?percents($delta30[0],$gl[1]):0;
+ $perc[2] = $delta180[0]?percents($delta180[0],$gl[2]):0;
+
+ // Write to log (Percentages)
+ $text .= "Percentages,Last week,Last month,Last six months\r\n";
+ $text .= ",".$perc[0].",".$perc[1].",".$perc[2]."\r\n";
+
+ // Store the computer stats in the DB
+ $days = explode(",",BUGS_DAYS);
+ $i = 0;
+ while(count($days)){ # For every expected date
+ $day = array_pop($days);
+ updateStats($db_handle,$day,$project,$mysql_date,$bugs[0],$deltas[$i],$perc[$i],$gl[$i]);
+ $i++;
+ }
+ updateLog($db_handle,$project,$text);
+}
+
+echo "\n</body>\n</html>\n";
+
+function updateLog($db_handle,$project,$text){
+ $text = str_replace("\"","'",$text); // mysql can't handle
+ $query = "SELECT * FROM ".log_table()." WHERE project = \"".$project."\"";
+ $result = mysql_query($query,$db_handle);
+ if ($result && mysql_num_rows($result)){
+ $query = "UPDATE ".log_table()." SET bugs_text = \"".$text."\"";
+ $query .= " WHERE project = \"".$project."\"";
+ }else{
+ $query = "INSERT INTO ".log_table()." (project, bugs_text) ";
+ $query .= "VALUES(\"".$project."\",\"".$text."\")";
+ }
+
+#echo "<pre>".$text."</pre><br>\n";
+ mysql_query($query,$db_handle) or die("Error: ".mysql_error());
+}
+
+
+function updateStats($db_handle,$day,$project,$mysql_date,$bugs,$delta,$perc,$gl){
+ $query = "SELECT * FROM ".stats_table()." WHERE project = \"".$project."\" AND stats_date = \"".$mysql_date."\"";
+ $result = mysql_query($query,$db_handle);
+ if ($result && mysql_num_rows($result))
+ updateBugs($db_handle,$day,$project,$mysql_date,$bugs,$delta,$perc,$gl);
+ else
+ insertBugs($db_handle,$day,$project,$mysql_date,$bugs,$delta,$perc,$gl);
+}
+
+function updateBugs($db_handle,$day,$project,$mysql_date,$bugs,$delta,$perc,$gl){
+ $query = "UPDATE ".stats_table()." SET bugs_total = ".$bugs.", bugs_".$day."_delta = ".$delta.", bugs_".$day."_percentage = ".$perc.", bugs_".$day."_gainloss = ".$gl;
+ $query .= " WHERE project = \"".$project."\" AND stats_date = \"".$mysql_date.
+"\"";
+
+ echo "<pre>$query</pre>";
+ mysql_query($query,$db_handle);
+}
+
+function insertBugs($db_handle,$day,$project,$mysql_date,$bugs,$delta,$perc,$gl){
+ $query = "INSERT INTO ".stats_table()." (project, stats_date, bugs_total, bugs_".$day."_delta, bugs_".$day."_percentage, bugs_".$day."_gainloss) VALUES (\"".$project."\",\"".$mysql_date."\",".$bugs.",".$delta.",".$perc.",".$gl.")";
+
+ echo "<pre>$query</pre>";
+ mysql_query($query,$db_handle);
+}
+
+$dbc_bugzilla->disconnect();
+//$db_connection->disconnect();
+
+$rs = null;
+$dbh_bugzilla = null;
+$dbc_bugzilla = null;
+$db_handle = null;
+$db_connection = null;
+
+?>
diff --git a/stats/compute_liveness.php b/stats/compute_liveness.php
new file mode 100644
index 0000000..3993f00
--- /dev/null
+++ b/stats/compute_liveness.php
@@ -0,0 +1,10 @@
+<?php
+
+require_once "live.class.php";
+require_once "hostname.php";
+
+$liveinfo = New Live();
+$liveinfo->computeData(stats_table());
+$liveinfo->destroyLive();
+
+?>
diff --git a/stats/compute_mail_stats.php b/stats/compute_mail_stats.php
new file mode 100644
index 0000000..fc167e7
--- /dev/null
+++ b/stats/compute_mail_stats.php
@@ -0,0 +1,224 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection.class.php";
+require_once "config.php";
+require_once "groups.class.php";
+require_once "mailinglists.class.php";
+require_once "hostname.php";
+require_once "utils.php";
+
+function get_last_data_date($db_handle){
+ $query = "SELECT summary_date FROM mailing_list_stats ORDER BY summary_date ASC LIMIT 1";
+ $result = mysql_query($query,$db_handle);
+ $row = mysql_fetch_assoc($result);
+
+ $tdate = $row['summary_date'];
+ $old_date = substr($tdate,0,4).substr($tdate,5,2).substr($tdate,8,2);
+
+ return getTimeDiff($old_date,date('Ymd'));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// function valid_list($list) //
+// //
+// Compatibility function to determine if the mailing list in the groups.txt //
+// file is valid compared to the information available from the Eclipse //
+// database. //
+///////////////////////////////////////////////////////////////////////////////
+function valid_list($db_handle,$list){
+ $query = "SELECT count(*) FROM mailing_lists WHERE list_name = \"";
+ $query .= $list."\" AND is_private <> 1";
+ $result = mysql_query($query,$db_handle);
+ $row = mysql_fetch_row($result);
+
+ return $row[0];
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// function mailing_list_query($mlists) //
+// //
+// Function that creates the last part of the queries that will be used to //
+// fetch the statistical information from the database. It will add all //
+// mailing lists for a particular project in the following format: //
+// //
+// (list_name = "list1" OR list_name = "list2" OR ... list_name = "listN") //
+///////////////////////////////////////////////////////////////////////////////
+function mailing_list_query($db_handle,$mlists){
+ $num_lists = $mlists->numberOfMailingLists();
+ if ($num_lists == 0) # No mailing lists defined
+ return $tmp_query;
+
+ $tmp_query = "(";
+
+ for($i=0;$i<$num_lists;){
+ $curr_list = $mlists->mailingListAt($i);
+ $i++;
+ if (!valid_list($db_handle,$curr_list))
+ continue;
+ $tmp_query .= "list_name = \"".$curr_list."\"";
+ if ($i != $num_lists)
+ $tmp_query .= " OR ";
+ else
+ $tmp_query .= ")";
+ }
+
+ if ($tmp_query == "(")
+ return "";
+ else
+ return $tmp_query;
+}
+
+function number_posts_since($db_handle,$mysql_date,$day,$tmp_query){
+ if ($tmp_query == "") # No mailing list data available
+ return 0;
+
+ $query = "SELECT SUM(daily_post_count) FROM mailing_list_stats WHERE ";
+ $query .= "summary_date > DATE_SUB(\"".$mysql_date."\", INTERVAL ".$day." DAY) AND ";
+ $query .= $tmp_query;
+ $result = mysql_query($query,$db_handle);
+ $row = mysql_fetch_row($result);
+
+ return $row[0]; // count(number_messages)
+}
+
+function average_number_subscribers($db_handle,$mysql_date,$day,$tmp_query){
+ if ($tmp_query == "") # No mailing list data available
+ return 0;
+
+ $query = "SELECT SUM(total_member_count) FROM mailing_list_stats WHERE ";
+ $query .= "summary_date > DATE_SUB(\"".$mysql_date."\", INTERVAL ";
+ $query .= $day." DAY) AND ".$tmp_query;
+ $result = mysql_query($query,$db_handle);
+ $row = mysql_fetch_row($result);
+
+ return ($row[0] / $day);
+}
+
+function update_database($db_handle,$project,$mysql_date,$day,$num_posts,$avg_posts,$avg_subscribers){
+ $query = "SELECT * FROM ".stats_table()." WHERE project = \"".$project."\"";
+ $query .= " AND stats_date = \"".$mysql_date."\"";
+ $result = mysql_query($query,$db_handle);
+ if ($result && mysql_num_rows($result))
+ updateMail($db_handle,$project,$mysql_date,$day,$num_posts,$avg_posts,$avg_subscribers);
+ else
+ insertMail($db_handle,$project,$mysql_date,$day,$num_posts,$avg_posts,$avg_subscribers);
+}
+
+function updateMail($db_handle,$project,$mysql_date,$day,$num_posts,$avg_posts,$avg_subscribers){
+ $query = "UPDATE ".stats_table()." SET mail_".$day."_number_posts = ";
+ $query .= $num_posts.", mail_".$day."_average_posts = ".$avg_posts;
+ $query .= ", mail_".$day."_average_subscribers = ".$avg_subscribers;
+ $query .= " WHERE project = \"".$project."\" AND stats_date = \"".$mysql_date."\"";
+
+echo "QRY: $query<br>\n";
+
+ mysql_query($query,$db_handle);
+}
+
+function insertMail($db_handle,$project,$mysql_date,$day,$num_posts,$avg_posts,$avg_subscribers){
+ $query = "INSERT INTO ".stats_table()." (project,stats_date, mail_".$day;
+ $query .= "_number_posts, mail_".$day."_average_posts";
+ $query .= ", mail_".$day."_average_subscribers) VALUES(\"";
+ $query .= $project."\",\"".$mysql_date."\",".$num_posts.",".$avg_posts;
+ $query .= ",".$avg_subscribers.")";
+
+echo "QRY: $query<br>\n";
+
+ mysql_query($query,$db_handle);
+}
+
+function updateLog($db_handle,$project,$text){
+ $text = str_replace("\"","'",$text); // mysql can't handle
+ $query = "SELECT * FROM ".log_table()." WHERE project = \"".$project."\"";
+ $result = mysql_query($query,$db_handle);
+ if ($result && mysql_num_rows($result)){
+ $query = "UPDATE ".log_table()." SET mail_text = \"".$text."\"";
+ $query .= " WHERE project = \"".$project."\"";
+ }else{
+ $query = "INSERT INTO ".log_table()." (project, mail_text) ";
+ $query .= "VALUES(\"".$project."\",\"".$text."\")";
+ }
+
+#echo "<pre>".$text."</pre><br>\n";
+ mysql_query($query,$db_handle) or die("Error: ".mysql_error());
+}
+
+// Dashboard connection
+$dbd_connection = new DBConnectionDashboard();
+$dbd_handle = $dbd_connection->connect();
+
+// Eclipse connection
+$db_connection = new DBConnection();
+$db_handle = $db_connection->connect();
+
+
+echo "<html>\n<head>\n<title>Compute Mail Stats</title>\n</head>\n<body>\n";
+
+# Date to process info from
+#
+# IMPORTANT: since the mail data is always one day behind we have to
+# use yesterday's date to get information but the current
+# date to store it
+#
+$mysql_date = date('Y-m-d');
+$date = getDateBefore(1);
+$old_date = substr($date,0,4)."-".substr($date,4,2)."-".substr($date,6,2);
+
+# Load groups from file
+$groups = new Groups();
+$groups->loadGroups(); # Get group info from file
+$grouplists = $groups->getMailingLists();
+$projectlist = $groups->getProjects(); # Need for empty groups
+
+while(count($grouplists)){
+ $list = array_pop($grouplists);
+ $pr = array_pop($projectlist);
+ $project = $groups->getProjectFromMailingList($list);
+ if ($project != -1){ // No project name found
+ echo "<b>Processing project: $project</b><br>\n";
+ $mlquery = mailing_list_query($db_handle,$list);
+ }else
+ echo "<b>Processing project: $pr</b><br>\n";
+$tmp = implode(", ",$list->getMailingLists());
+$s = ($list->numberOfMailingLists()>1)?"s":"";
+$text = "Processing ".$tmp." mailing list".$s." for project ".$project."\r\n\r\n";
+ $days = explode(",",MAIL_DAYS);
+ $data_date = get_last_data_date($db_handle); // How old is the data
+ while(count($days)){ // Compute stats
+ $day = array_pop($days); // for every day
+ if ($project == -1){
+ update_database($dbd_handle,$pr,$mysql_date,$day,-1,-1,-1);
+ $text = "No mailing lists found for project ".$pr;
+ updateLog($dbd_handle,$pr,$text);
+ continue;
+ }
+$text .= "INFORMATION FOR THE LAST ".$day." DAYS\r\n\r\n";
+ if ($data_date < $day){ // Not enough info
+ $divisor = $data_date; // so divide by available
+$text .= "Could not find $day days worth of information in the mailing list table.\r\nGetting information for the last $divisor days\r\n\r\n";
+ }else
+ $divisor = $day;
+ $num_posts = number_posts_since($db_handle,$old_date,$divisor,$mlquery);
+ $avg_posts = round(($num_posts / $divisor),1);
+ $avg_subscribers = round(average_number_subscribers($db_handle,$old_date,$divisor,$mlquery));
+
+$text .= "Total number of posts for all lists: ".$num_posts."\r\n";
+$text .= "Average number of posts for all lists: ".$avg_posts."\r\n";
+$text .= "Average number of subscribers for all lists: ".$avg_subscribers."\r\n\r\n";
+
+ update_database($dbd_handle,$project,$mysql_date,$day,$num_posts,$avg_posts,$avg_subscribers);
+ }
+ if ($project != -1) // Valid mailing list
+ updateLog($dbd_handle,$project,$text);
+}
+
+echo "\n</body>\n</html>\n";
+
+$result = null;
+$db_handle = null;
+$db_connection = null;
+$dbd_handle = null;
+$dbd_connection = null;
+
+?>
diff --git a/stats/compute_newsgroups_stats.php b/stats/compute_newsgroups_stats.php
new file mode 100644
index 0000000..7453875
--- /dev/null
+++ b/stats/compute_newsgroups_stats.php
@@ -0,0 +1,419 @@
+<?php
+
+require_once('news.class.php');
+require_once('post.class.php');
+require_once('config.php');
+require_once('utils.php');
+require_once('insiders.class.php');
+require_once('groups.class.php');
+require_once('hostname.php');
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+
+
+echo "<html>\n<body>\n";
+echo "<b>Starting at: </b>".date("H:i:s")."<br>\n";
+
+# Establish a connection to the newsgroups server
+$news = new News();
+$news->connect(NEWS_SERVER,NEWS_PORT,NEWS_TIMEOUT);
+$news->authenticate(NEWS_USER,NEWS_PASS);
+
+# Establish a connection to the database server
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+echo "Connected to DB<br>\n";
+
+# Get group list from file;
+$groups = New Groups();
+$groups->loadGroups();
+$grouplist = $groups->getNewsgroups();
+
+# Group information
+$ginfo = new GInfo();
+
+# Insider object
+$ins = new Insider();
+
+$mysql_date = date('Y-m-d');
+
+# How many days ago do we want stats for?
+$days = explode(",",DAYS);
+$num_days = count($days);
+
+if (ob_get_level() == 0){
+ ob_start();
+}
+
+while(count($grouplist)){ # For every group
+ $text = ""; # New log for this group
+ $tgroup = array_pop($grouplist);
+ $project = $groups->getProjectFromNewsgroup($tgroup);
+ flush_print("<b>Processing group: ".$tgroup."</b>");
+ # Select group and get info
+ $ginfo = $news->selectGroup($tgroup);
+
+ if ($ginfo->getNewsGroupName() != -1){ # Non existant newsgroup
+ # Cache all message IDs & Timestamps for later search from 2 months ago
+ $messages = null;
+ $two_month_date = getDateBefore(DAYS_IN_TWO_MONTHS);
+ $two_month_post = $news->getFirstArticleFromDate($ginfo->getFirstPost(),$ginfo->getLastPost(),$two_month_date);
+ if ($two_month_post != -1){ # If there are posts 2 months or older
+ $messages = $news->cacheMessageID($two_month_post,$ginfo->getLastPost());
+ $cachedposts = $news->cachePosts($two_month_post,$ginfo->getLastPost());
+ # Get standard deviation and mean from last two months posts time
+ $extra_time = get_times($cachedposts);
+ list($mean,$std) = get_stats($cachedposts);
+ }
+ }
+
+ for($ptr=0;$ptr<$num_days;$ptr++){ # For every expected date
+ $day = $days[$ptr];
+
+ $text .= "\r\n\r\nINFORMATION FOR THE LAST ".$day. " DAYS\r\n\r\n";
+
+ if ($ginfo->getNewsGroupName() == -1){ # Non existant newsgroup
+ echo "Newsgroup $tgroup for project $project does not exist<br>\n";
+ $text = "Newsgroup: $tgroup for project $project does not exist\r\n";
+ updateLog($db_handle,$project,$text);
+ updateNewsStats($db_handle,$project,$mysql_date,$day,-1,-1,-1,-1,-1);
+ continue;
+ }
+
+ # Get the date for $day days ago
+ $date = getDateBefore($day);
+
+ # Initialize variables
+ $top_level = array();
+ $unanswered = 0;
+ $avg_time = 0;
+ $total_time = 0;
+ $responded = 0;
+ $insidercount = 0;
+
+ # Get first article from date. Start looking from the first post from
+ # two months ago until the most recent.
+ $num = $news->getFirstArticleFromDate($two_month_post,$ginfo->getLastPost(),$date);
+
+ # No posts (since date || in newsgroup)
+ if ($num == -1 || $ginfo->getNumberPosts() == 0){
+ echo "No posts since date or no posts in group<br>\n";
+ $text .= "No posts since date or no posts in group\r\n";
+ updateLog($db_handle,$project,$text);
+ updateNewsStats($db_handle,$project,$mysql_date,$day,0,0,-1,0,0);
+ continue;
+ }
+
+ # Get total number of posts since date
+ $numposts = $news->numPostsSinceDate($num,$ginfo->getLastPost());
+ $text .= "Number posts: ".$numposts."\r\n";
+
+ # Average number of posts
+ $average = round(($numposts / $day),1);
+ $text .= "Average: ".$average."\r\n";
+
+ # Cache the new posts for processing
+ $cposts = $news->cachePosts($num,$ginfo->getLastPost());
+ $total = count($cposts);
+
+ # Insiders Vs. Outsiders
+ $insidercount = get_insiders($text,$ins,$cposts,
+ $groups->getProjectfromNewsgroup($tgroup));
+ $insidercount /= $total; // Pct of insiders
+
+ # Answered & Unanswered posts
+ list($avg_time,$unanswered) = answered_and_unanswered($text,$cposts,
+ $extra_time,$mean,
+ $std);
+
+flush_print("DAY ".$day.": ".$numposts."|".$average."|".$avg_time."|".$unanswered."|".$insidercount);
+
+ updateNewsStats($db_handle,$project,$mysql_date,$day,$numposts,$average,
+ $avg_time,$unanswered,$insidercount);
+ }
+ if ($ginfo->getNewsGroupName() != -1) // Non existant newsgroup
+ updateLog($db_handle,$project,$text);
+}
+
+echo "<b>Ending at: </b>".date("H:i:s")."<br>\n";
+echo "</body>\n</html>\n";
+
+$db_handle = null;
+$db_connection = null;
+$news->disconnect();
+$news = null;
+
+
+function updateLog($db_handle,$project,$text){
+ $text = str_replace("\"","'",$text); // mysql can't handle
+ $query = "SELECT * FROM ".log_table()." WHERE project = \"".$project."\"";
+ $result = mysql_query($query,$db_handle);
+ if ($result && mysql_num_rows($result)){
+ $query = "UPDATE ".log_table()." SET news_text = \"".$text."\"";
+ $query .= " WHERE project = \"".$project."\"";
+ }else{
+ $query = "INSERT INTO ".log_table()." (project, news_text) ";
+ $query .= "VALUES(\"".$project."\",\"".$text."\")";
+ }
+
+#echo "<pre>".$text."</pre><br>\n";
+ mysql_query($query,$db_handle); // or die("Error: ".mysql_error());
+}
+
+function updateNewsStats($db_handle,$project,$mysql_date,$day,$numposts,
+ $average,$avg_time,$unanswered,$insidercount){
+ $query = "SELECT * FROM ".stats_table()." WHERE project = \"".$project;
+ $query .= "\" AND stats_date = \"".$mysql_date."\"";
+ $result = mysql_query($query,$db_handle);
+ if ($result && mysql_num_rows($result)){
+ updateNews($db_handle,$project,$mysql_date,$day,$numposts,$average,
+ $avg_time,$unanswered,$insidercount);
+ }else{
+ insertNews($db_handle,$project,$mysql_date,$day,$numposts,$average,
+ $avg_time,$unanswered,$insidercount);
+ }
+}
+
+function updateNews($db_handle,$project,$mysql_date,$day,$numposts,$average,
+ $avg_time,$unanswered,$insidercount){
+ $query = "UPDATE ".stats_table()." SET news_".$day."_answer_average_time = ";
+ $query .= $avg_time.", news_".$day."_unanswered_number = ".$unanswered;
+ $query .= ", news_".$day."_insider_posts = ".$insidercount.", news_".$day;
+ $query .= "_number_posts = ".$numposts.", news_".$day."_average_posts = ";
+ $query .= $average." WHERE project = \"".$project."\" AND stats_date = \"";
+ $query .= $mysql_date."\"";
+
+ mysql_query($query,$db_handle); // or die("could not update");
+}
+
+function insertNews($db_handle,$project,$mysql_date,$day,$numposts,$average,
+ $avg_time,$unanswered,$insidercount){
+ $query = "INSERT INTO ".stats_table()." (project,stats_date,news_".$day;
+ $query .= "_answer_average_time, news_".$day."_unanswered_number, news_";
+ $query .= $day."_insider_posts, news_".$day."_number_posts, news_".$day;
+ $query .= "_average_posts) VALUES(\"".$project."\",\"".$mysql_date."\",";
+ $query .= $avg_time.",".$unanswered.",".$insidercount.",".$numposts.",";
+ $query .= $average.")";
+
+ mysql_query($query,$db_handle); // or die("could not insert");
+}
+
+function get_insiders(&$text,$ins,$cached_posts,$project){
+ $text .= "Project insiders:\r\n\r\n";
+ $total = count($cached_posts);
+ for($i=0;$i<$total;$i++){
+ $post = $cached_posts[$i];
+ if ($ins->isInsider($post->getAuthor(),$project)){
+ $text .= $post->getAuthor()."\r\n";
+ $insidercount++;
+ }
+ }
+ $text .= "\r\n";
+
+ return $insidercount;
+}
+
+function get_times($cached_posts){
+ $times = array();
+
+ $total = count($cached_posts);
+ for($i=0;$i<$total;$i++){
+ $post = $cached_posts[$i];
+ $time = getUnixTimestamp($post->getDate(),$post->getTime());
+ $times[$post->getMessageID()] = $time;
+ }
+
+ return $times;
+}
+
+function get_timediffs($cached_posts){
+ $answers = array();
+ $times = array();
+ $timediff = array();
+ $top_level = array();
+ $k = 0;
+ $unanswered = 0;
+
+ # Populate data structures
+ $total = count($cached_posts);
+ for($i=0;$i<$total;$i++){
+ $post = $cached_posts[$i];
+ if (!isset($answers[$post->getMessageID()])) # First time
+ $answers[$post->getMessageID()] = "";
+ if ($post->getReference() != ""){ # Not for top-level
+ if (isset($answers[$post->getReference()])) # Only for found posts
+ $answers[$post->getReference()] .= $post->getMessageID().",";
+ }else
+ $top_level[$post->getMessageID()] = 1;
+ $time = getUnixTimestamp($post->getDate(),$post->getTime());
+ $times[$post->getMessageID()] = $time;
+ }
+
+ # Get time differences
+ $total = count($answers);
+ $keys = array_keys($answers);
+ for($i=0;$i<$total;$i++){
+ $key = $keys[$i];
+ if ($answers[$key] == ""){ # No replies
+ if (isset($top_level[$key]))
+ $unanswered++;
+ continue;
+ }
+ $original_post_time = $times[$key];
+ $tmp_array = explode(",",$answers[$key]);
+ $tmp_total = count($tmp_array)-1;
+ for($j=0;$j<$tmp_total;$j++)
+ $timediff[$k++] = $times[$tmp_array[$j]] - $original_post_time;
+ }
+
+ return array($timediff,$unanswered);
+}
+
+function get_answers(&$text,$cached_posts,$extra_times){
+ $answers = array();
+ $times = array();
+ $timediff = array();
+ $top_level = array();
+ $k = 0;
+ $unanswered = 0;
+ $old_unanswered = -1; // Bug # 115497
+
+ $text .= "Getting top-level and reply posts\r\n\r\n";
+ # Populate data structures
+ $total = count($cached_posts);
+ for($i=0;$i<$total;$i++){
+ $post = $cached_posts[$i];
+ if (!isset($answers[$post->getMessageID()])) # First time
+ $answers[$post->getMessageID()] = "";
+ if ($post->getReference() != ""){ # Not for top-level
+ $text .= "Reply post: ".$post->getMessageID()." to post: ";
+ $text .= $post->getReference()."\r\n";
+ $answers[$post->getReference()] .= $post->getMessageID().",";
+ }else{
+ $text .= "Top level post: ".$post->getMessageID()."\r\n";
+ $top_level[$post->getMessageID()] = 1;
+ }
+ $time = getUnixTimestamp($post->getDate(),$post->getTime());
+ $times[$post->getMessageID()] = $time;
+ }
+
+ $text .= "\r\nGetting time differences\r\n\r\n";
+ # Get time differences
+ $total = count($answers);
+ $keys = array_keys($answers);
+ for($i=0;$i<$total;$i++){
+ $key = $keys[$i];
+ if ($answers[$key] == ""){ # No replies
+ if (isset($top_level[$key])){
+ $text .= "Unanswered top level post: ".$key."\r\n";
+ $unanswered++;
+ if (is_before_today($times[$key])){
+ $old_unanswered = 0;
+ }
+ }
+ continue;
+ }
+ if (isset($times[$key])){
+ $ans = substr($answers[$key],0,-1);
+ $text .= "Answer ".$ans." found on main search window\r\n";
+ $original_post_time = $times[$key];
+ }else
+ if (isset($extra_times[$key])){
+ $ans = substr($answers[$key],0,-1);
+ $text .= "Answer ".$ans." found on extended search ";
+ $text .= "window\r\n";
+ $original_post_time = $extra_times[$key];
+ }else{
+ $ans = substr($answers[$key],0,-1);
+ $text .= "Answer ".$ans." for post $key not found on ";
+ $text .= "allowed window\r\n";
+ continue; # Not found in the extra time window
+ }
+ $tmp_array = explode(",",$answers[$key]);
+ $tmp_total = count($tmp_array)-1;
+ for($j=0;$j<$tmp_total;$j++)
+ $timediff[$k++] = $times[$tmp_array[$j]] - $original_post_time;
+ }
+ $text .= "\r\n";
+
+ return array($timediff,$unanswered,$old_unanswered);
+}
+
+function is_before_today($date){
+ $today = mktime(0, 0, 0, date("m"), date("d")+1, date("Y"));
+ if (($date + ONE_DAY) < $today)
+ return 1;
+
+ return 0;
+}
+
+function get_stats($cached_posts){
+ $timediffs = array();
+ $tmp_sum = 0;
+ $mean = 0;
+ $std = 0;
+
+ list($timediffs,$dummy) = get_timediffs($cached_posts);
+
+ # Compute mean and std. deviation
+ $total = count($timediffs);
+ for($i=0;$i<$total;$i++)
+ $mean += $timediffs[$i];
+ if ($total != 0){
+ $mean /= $total;
+ $mean = round($mean);
+
+ for($i=0;$i<$total;$i++)
+ $tmp_sum += pow(($timediffs[$i] - $mean),2);
+ $total = ($total != 1)?--$total:$total;
+ $std = round(sqrt($tmp_sum/$total));
+ }
+
+#echo "<br>\nMEAN: ".realDate($mean)." STD: ".realDate($std)."[".$std."]"."<br>\n";
+
+ return array($mean,$std);
+}
+
+function answered_and_unanswered(&$text,$cached_posts,$times,$mean,$std_dev){
+ $timediffs = array();
+ $average_ttr = 0;
+ $skip_count = 0;
+ $count = 0;
+ $sum = 0;
+
+ # Get ranges
+ $low = $mean - (TIMES_STD * $std_dev);
+ $low = ($low < 0)?0:$low;
+ $high = $mean + (TIMES_STD * $std_dev);
+ $text .= "Comparison ranges: mean +/- (".TIMES_STD." * standard deviation)";
+ $text .= "\r\n";
+ $text .= "low: ".$low."\r\n";
+ $text .= "high: ".$high."\r\n\r\n";
+
+ list($timediffs,$unanswered,$old) = get_answers($text,$cached_posts,$times);
+ $total = count($timediffs);
+ for($i=0;$i<$total;$i++){
+ if ($timediffs[$i] >= $low && $timediffs[$i] <= $high){
+ $sum += $timediffs[$i];
+ $count++;
+ }else{
+ $skipcount++;
+ }
+ }
+ $text .= $skipcount." articles not within comparison range\r\n\r\n";
+
+ if ($count != 0)
+ $average_ttr = round($sum / $count);
+ else // Bug 115497
+ $average_ttr = $old;
+
+ return array($average_ttr,$unanswered);
+}
+
+function flush_print($text){
+ echo $text."<br>\n";
+ ob_flush();
+ flush();
+}
+
+?>
diff --git a/stats/compute_stats.sh b/stats/compute_stats.sh
new file mode 100644
index 0000000..ae66a8a
--- /dev/null
+++ b/stats/compute_stats.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+MAILLOG=/tmp/openmex_dashboard_mail_stats.log
+NEWSLOG=/tmp/openmex_dashboard_news_stats.log
+BUGSLOG=/tmp/openmex_dashboard_bugs_stats.log
+LIVELOG=/tmp/openmex_dashboard_live_stats.log
+ERRORLOG=/tmp/openmex_dashboard_stats_errors.log
+STDERRLOG=/tmp/openmex_dashboard_stats_stderr.log
+
+function html() {
+ tmp=`tail -1 $1 | tr -d '<>/'`
+ if [ "X$tmp" == "Xhtml" ]; then
+ return 1
+ else
+ return 0
+ fi
+}
+
+if [ $# -ne 1 ]; then
+ echo "You must pass the item to compute" > $ERRORLOG
+else
+ case "X$1" in
+ "Xbugs")
+ wget http://www.eclipse.org/org/processes/stats/compute_bugs_stats.php --quiet --output-document=$BUGSLOG 2>> $STDERRLOG
+ ;;
+ "Xlive")
+ wget http://www.eclipse.org/org/processes/stats/compute_liveness.php --quiet --output-document=$LIVELOG 2>> $STDERRLOG
+ ;;
+ "Xnews")
+ wget http://www.eclipse.org/org/processes/stats/compute_newsgroups_stats.php --quiet --output-document=$NEWSLOG 2>> $STDERRLOG
+ ;;
+ "Xmail")
+ wget http://www.eclipse.org/org/processes/stats/compute_mail_stats.php --quiet --output-document=$MAILLOG 2>> $STDERRLOG
+ ;;
+ "Xcheck")
+ # Check whether all files got generated through the cron
+ test -e $MAILLOG
+ mail=$?
+ test -e $NEWSLOG
+ news=$?
+ test -e $BUGSLOG
+ bugs=$?
+ test -e $LIVELOG
+ live=$?
+ if [ $mail -eq 1 -o $news -eq 1 -o $live -eq 1 -o $bugs -eq 1 ]
+ then
+ echo "SIZE m: $mail n: $news l: $live b: $bugs" >> $ERRORLOG
+ mail 4167169356@pcs.rogers.com < $ERRORLOG
+ exit
+ fi
+ # Determine if all files close HTML properly. If they don't there
+ # might be an error
+ html $MAILLOG
+ mail=$?
+ html $NEWSLOG
+ news=$?
+ html $BUGSLOG
+ bugs=$?
+ html $LIVELOG
+ live=$?
+ if [ $mail -eq 0 -o $bugs -eq 0 -o $news -eq 0 -o $live -eq 0 ]; then
+ echo "HTML m: $mail n: $news l: $live b: $bugs" > $ERRORLOG
+ mail 4167169356@pcs.rogers.com < $ERRORLOG
+ exit
+ fi
+ if [ -s "$STDERRLOG" ]; then
+ mail 4167169356@pcs.rogers.com < $STDERRLOG
+ mail dfiguero@openmex.com < $STDERRLOG
+ else # No errors
+ rm $MAILLOG $NEWSLOG $BUGSLOG $LIVELOG $ERRORLOG $STDERRLOG
+ fi
+ ;;
+ esac
+fi
diff --git a/stats/config.php b/stats/config.php
new file mode 100644
index 0000000..51bed3f
--- /dev/null
+++ b/stats/config.php
@@ -0,0 +1,50 @@
+<?php
+
+# Newsgroups information
+define("NEWS_SERVER","news.eclipse.org");
+define("NEWS_PORT",119);
+define("NEWS_TIMEOUT",10);
+define("NEWS_USER","exquisitus");
+define("NEWS_PASS","flinder1f7");
+
+define("DAYS_IN_TWO_MONTHS",60);
+define("TWO_MONTHS_TIMESTAMP",5184000);
+define("ONE_DAY",86400);
+
+define("TIMES_STD",2); # Std. deviation multiplier
+
+# General information
+define("DAYS","7,30"); # Days to check for newsgroups
+define("MAIL_DAYS","180,30,7"); # Days to check for mail
+define("BUGS_DAYS","180,30,7"); # Days to check for bugs
+
+# Groups file
+define("GROUPS_FILE","groups.txt");
+
+
+### TEST CASES CONSTANTS
+define("_NUM_POST_7_ANSER_NA", -1);
+define("_NUM_POST_7_NA", -1);
+define("_NUM_POST_7_NO_POSTS", 0);
+define("_NUM_POST_7_GOOD", 10);
+
+define("_NUM_POST_30_ANSER_NA", -1);
+define("_NUM_POST_30_NA", -1);
+define("_NUM_POST_30_NO_POSTS", 0);
+define("_NUM_POST_30_BAD", 10);
+define("_NUM_POST_30_GOOD", 40);
+
+define("_ART_7_NOANSW", "no answer");
+define("_ART_7_NOPOST", "no posts");
+define("_ART_7_NA", "N/A");
+define("_ART_7_GOOD", 1);
+define("_ART_7_BAD", 2);
+
+define("_ART_30_NOANSW", "no answer");
+define("_ART_30_NOPOST", "no posts");
+define("_ART_30_NA", "N/A");
+define("_ART_30_GOOD", 1);
+define("_ART_30_BAD", 2);
+
+
+?>
diff --git a/stats/create_log_tables.php b/stats/create_log_tables.php
new file mode 100644
index 0000000..bf00475
--- /dev/null
+++ b/stats/create_log_tables.php
@@ -0,0 +1,26 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "hostname.php";
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+//////////////////////////////////////////////
+// //
+// Create the table that will hold all logs //
+// //
+//////////////////////////////////////////////
+$query = "CREATE TABLE ".log_table()." (project varchar(50), ";
+$query .= " news_text mediumtext, mail_text mediumtext, bugs_text mediumtext, ";
+
+// Primary key
+$query .= "PRIMARY KEY(project))";
+
+echo $query;
+
+mysql_query($query,$db_handle) or die("Could not create table: ".mysql_error());
+
+$db_handle = null;
+$db_connection = null;
+?>
diff --git a/stats/create_tables.php b/stats/create_tables.php
new file mode 100644
index 0000000..74ea995
--- /dev/null
+++ b/stats/create_tables.php
@@ -0,0 +1,41 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "hostname.php";
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+///////////////////////////////////////////////
+// //
+// Create the table that will hold all stats //
+// //
+///////////////////////////////////////////////
+$query = "CREATE TABLE ".stats_table()." (project varchar(50), stats_date date, liveness smallint, ";
+
+// News stats
+$query .= "news_7_answer_average_time int, news_7_unanswered_number smallint, ";
+$query .= "news_7_insider_posts float, news_7_number_posts smallint, news_7_average_posts float, ";
+$query .= "news_30_answer_average_time int, news_30_unanswered_number smallint, ";
+$query .= "news_30_insider_posts float, news_30_number_posts smallint, news_30_average_posts float, ";
+
+// Dashboard stats
+$query .= "bugs_total smallint, bugs_7_delta smallint, bugs_7_percentage tinyint, bugs_7_gainloss smallint, ";
+$query .= "bugs_30_delta smallint, bugs_30_percentage tinyint, bugs_30_gainloss smallint, ";
+$query .= "bugs_180_delta smallint, bugs_180_percentage tinyint, bugs_180_gainloss smallint, ";
+
+// Mail stats
+$query .= "mail_7_number_posts smallint, mail_7_average_posts float, mail_7_average_subscribers float, ";
+$query .= "mail_30_number_posts smallint, mail_30_average_posts float, mail_30_average_subscribers float, ";
+$query .= "mail_180_number_posts smallint, mail_180_average_posts float, mail_180_average_subscribers float, ";
+
+// Primary key
+$query .= "PRIMARY KEY(project,stats_date))";
+
+echo $query;
+
+mysql_query($query,$db_handle) or die("Could not create table: ".mysql_error());
+
+$db_handle = null;
+$db_connection = null;
+?>
diff --git a/stats/delete_posts.php b/stats/delete_posts.php
new file mode 100644
index 0000000..2e3b125
--- /dev/null
+++ b/stats/delete_posts.php
@@ -0,0 +1,16 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "hostname.php";
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+$query = "DELETE FROM ".stats_table();
+echo $query;
+mysql_query($query,$db_handle) or die("Could not delete: ".mysql_error()."\n");
+
+$db_handle = null;
+$db_connection = null;
+
+?>
diff --git a/stats/drop_tables.php b/stats/drop_tables.php
new file mode 100644
index 0000000..b26d2b9
--- /dev/null
+++ b/stats/drop_tables.php
@@ -0,0 +1,20 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "hostname.php";
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+echo "<html><body>";
+
+$query = "DROP TABLE ".stats_table();
+echo $query."<br>";
+mysql_query($query,$db_handle) or die("Could not drop table: ".mysql_error()."\n");
+
+echo "</body></html>";
+
+$db_handle = null;
+$db_connection = null;
+
+?>
diff --git a/stats/groups.class.php b/stats/groups.class.php
new file mode 100644
index 0000000..dfa1406
--- /dev/null
+++ b/stats/groups.class.php
@@ -0,0 +1,125 @@
+<?php
+
+require_once "mailinglists.class.php";
+require_once "config.php";
+
+class Groups {
+ var $_ids; # Bugzilla IDs
+ var $_newsgroups; # Newsgroup names
+ var $_projects; # Project names
+ var $_mailinglists; # Maling lists
+ var $_descriptions; # Project description
+
+ function Groups(){
+ $this->_ids = Array();
+ $this->_newsgroups = Array();
+ $this->_projects = Array();
+ $this->_mailinglists = Array();
+ $this->_descriptions = Array();
+ }
+
+ function loadGroups(){
+ $group_info = array();
+ $i = 0;
+ //$tmpML = New MailingLists();
+
+ $file = fopen(GROUPS_FILE,"r");
+ if (!$file){
+ print "Could not open file ".GROUPS_FILE;
+ exit();
+ }
+ while(!feof($file)){
+ $buffer = fgets($file);
+ $buffer = substr($buffer,0,-1); // Remove new line char
+ if (substr($buffer,0,1) == '#')
+ continue;
+ if (!strlen($buffer))
+ break;
+ $group_info = explode("|",$buffer);
+ $this->_ids[$i] = $group_info[0];
+ $this->_newsgroups[$i] = $group_info[1];
+ $this->_projects[$i] = $group_info[2];
+ $tmpML = new MailingLists();
+ $tmpML->setMailingLists($group_info[3]);
+ $this->_mailinglists[$i] = $tmpML;
+ $this->_descriptions[$i] = $group_info[4];
+ $i++;
+ }
+ fclose($file);
+ }
+
+ function getIds(){
+ return $this->_ids;
+ }
+
+ function getNewsgroups(){
+ return $this->_newsgroups;
+ }
+
+ function getProjects(){
+ return $this->_projects;
+ }
+
+ function getMailingLists(){
+ return $this->_mailinglists;
+ }
+
+ function getDescriptions(){
+ return $this->_descriptions;
+ }
+
+ function getProjectFromID($id){
+ $number_elements = count($this->_ids);
+ for($i=0;$i<$number_elements;$i++)
+ if ($this->_ids[$i] == $id)
+ break;
+
+ if ($i == $number_elements)
+ return -1; // Not found
+ else
+ return $this->_projects[$i];
+ }
+
+ function getProjectFromNewsgroup($newsgroup){
+ $number_elements = count($this->_newsgroups);
+ for($i=0;$i<$number_elements;$i++)
+ if ($this->_newsgroups[$i] == $newsgroup)
+ break;
+
+ if ($i == $number_elements)
+ return -1; // Not found
+ else
+ return $this->_projects[$i];
+ }
+
+ function getProjectFromMailingList($mailinglists){
+ if ($mailinglists->getMailingLists() == Array())
+ return -1; // No lists defined
+ $number_elements = count($this->_mailinglists);
+ for($i=0;$i<$number_elements;$i++){
+ $tmpML = $this->_mailinglists[$i];
+ if ($tmpML->getMailingLists() == $mailinglists->getMailingLists())
+ break;
+ }
+
+ if ($i == $number_elements)
+ return -1; // Not found
+ else
+ return $this->_projects[$i];
+ }
+
+ function getDescriptionFromProject($project){
+ $number_elements = count($this->_projects);
+ for($i=0;$i<$number_elements;$i++)
+ if ($this->_projects[$i] == $project)
+ break;
+
+ if ($i == $number_elements)
+ return -1; // Not found
+ else
+ return $this->_descriptions[$i];
+ }
+
+}
+
+?>
diff --git a/stats/groups.txt b/stats/groups.txt
new file mode 100644
index 0000000..eed2836
--- /dev/null
+++ b/stats/groups.txt
@@ -0,0 +1,86 @@
+############################################################################
+# This file contains the glue to all the stats computation information. #
+# The php code depends on the correct information on this file to #
+# determine the relationship between the project name, its newsgroup, its #
+# mailing list(s), its ID on the dashboard DB and its description. #
+# #
+# All lines starting with a hash character (#) are ignored. #
+# #
+# Format of the file is: #
+# #
+# ID|Newsgroup|Project name|mailing list1, maling list2, ... |Description #
+# #
+############################################################################
+9|eclipse.technology.xsd|XSD||XML Schema Infoset Model
+#
+14|eclipse.technology.wsvt|WSVT||Web Service Validation Tools
+#
+28|eclipse.technology.voicetools|Voice Tools|vtp-dev|Voice Tools Project
+#
+16|eclipse.tools.ve|VE|ve-dev|Visual Editor Tools
+#
+17|eclipse.tools.uml2|UML2|uml2-dev|Unified Modeling Language 2.0
+#
+41|eclipse.dsdp.tm|TM|dsdp-tm-dev|DSDP Target Management Project
+#
+27|eclipse.technology.ptp|PTP|ptp-dev|Parallel Tools Platform
+#
+35|eclipse.technology.phoenix|Phoenix|phoenix-dev|Phoenix - eclipse.org website redesign
+#
+21|eclipse.technology.pollinate|Pollinate|pollinate-dev|Pollinate Project
+#
+1|eclipse.platform|Platform|platform-dev,platform-ant-dev,platform-compare-dev,platform-core-dev,platform-cvs-dev,platform-debug-dev,platform-doc-dev,platform-help-dev,platform-releng-dev,platform-scripting-dev,platform-search-dev,platform-swt-dev,platform-team-dev,platform-text-dev,platform-ua-dev,platform-ui-dev,platform-update-dev,platform-webdav-dev|Eclipse Platform
+#
+2|eclipse.pde|PDE|pde-dev,pde-build-dev,pde-doc-dev,pde-ui-dev|Plugin Development Environment
+#
+31|eclipse.technology.mylar|Mylar|mylar-dev,mylar-announce,mylar-users|Mylar Project
+#
+40|eclipse.technology.mddi|MDDI|mddi-dev|Model Driven Development Integration Project
+#
+32|eclipse.technology.lepido|Lepido|lepido-dev|Lepido, Tools for Apache Cocoon developer discussions
+#
+39|eclipse.technology.jsr220-orm|JSR220-ORM|jsr220orm-dev|JSR220-ORM project
+#
+3|eclipse.tools.jdt|JDT|jdt-dev,jdt-apt-dev,jdt-core-dev,jdt-doc-dev,jdt-ui-dev,jdt-debug-dev|Java Development Toolkit
+#
+13|eclipse.tools.hyades|Hyades||Automated Software Quality Tools
+#
+30|eclipse.technology.higgins|Higgins|higgins-dev|Higgins, The Trust Framework
+#
+29|eclipse.technology.gmf|GMF|gmf-dev,gmf-releng|Graphical Modeling Framework
+#
+12|eclipse.technology.gmt|GMT|gmt-dev|Generative Model Transformer
+#
+5|eclipse.tools.gef|GEF|gef-dev|Graphical Editing Framework
+#
+23|eclipse.technology.ercp|ERCP|ercp-dev|Embedded Rich Client Platform (RCP) Project
+#
+8|eclipse.tools.emf|EMF|emf-dev|Eclipse Modeling Framework
+#
+20|eclipse.webtools|Web Tools|wtp-dev,wtp-jst-dev,wtp-pmc,wtp-releng,wtp-requirements,wtp-wst-dev|Web Tools
+#
+26|eclipse.tptp|TPTP|tptp-monitoring-tools-dev,tptp-news,tptp-platform-dev,tptp-pmc,tptp-testing-tools-dev,tptp-tracing-profiling-tools-dev|Eclipse Test & Performance Tools Platform Project
+#
+42|eclipse.technology.emft|EMFT|emft-dev|Eclipse Modeling Framework Technology
+#
+25|eclipse.technology.ecf|ECF|ecf-dev|Eclipse Communications Framework
+#
+15|eclipse.technology.ecesis|ECESIS|ecesis-dev|Eclipse Techology Open Courseware Project
+#
+37|eclipse.dsdp|DSDP|dsdp-dev,dsdp-dd-dev|The Device Software Development Platform
+#
+36|eclipse.dtp|Data Tools|dtp-arch,dtp-connect-dev,dtp-dev,dtp-models-dev,dtp-plan,dtp-pmc,dtp-reqs,dtp-sqldevtools-dev|Data Tools platform
+#
+18|eclipse.technology.cme|CME|cme-dev,cme-users|Concern Manipulation Environment for AOSD
+#
+4|eclipse.tools.cdt|CDT|cdt-contrib-dev,cdt-core-dev,cdt-core-inbox,cdt-debug-dev,cdt-dev,cdt-doc-dev,cdt-doc-inbox,cdt-patch,cdt-test-dev,cdt-ui-dev|C/C++ Development Toolkit
+#
+24|eclipse.birt|BIRT|birt-charting-dev,birt-dev,birt-news,birt-pmc,birt-proposal,birt-report-designer-dev,birt-report-engine-dev|Business Intelligence and Reporting Tools (BIRT) Project
+#
+33|eclipse.technology.buckminster|Buckminster|buckminster-dev|The Buckminster dependency project
+#
+10|eclipse.technology.aspectj|AspectJ|aspectj-announce,aspectj-dev,aspectj-users|AspectJ Language and Compiler
+#
+38|eclipse.technology.alf|ALF|alf-dev,alf-events,alf-req|Application Lifecycle Framework
+#
+6|eclipse.technology.ajdt|AJDT|ajdt-dev|AspectJ Development Tools
diff --git a/stats/hostname.php b/stats/hostname.php
new file mode 100644
index 0000000..aa637e2
--- /dev/null
+++ b/stats/hostname.php
@@ -0,0 +1,21 @@
+<?php
+
+function stats_table(){
+ if ($_SERVER['SERVER_NAME'] == "phoenix.eclipse.org")
+ $table = "test_stats";
+ else
+ $table = "stats";
+
+ return $table;
+}
+
+function log_table(){
+ if ($_SERVER['SERVER_NAME'] == "phoenix.eclipse.org")
+ $table = "test_log";
+ else
+ $table = "stats_log";
+
+ return $table;
+}
+
+?>
diff --git a/stats/insiders.class.php b/stats/insiders.class.php
new file mode 100644
index 0000000..105e69e
--- /dev/null
+++ b/stats/insiders.class.php
@@ -0,0 +1,20 @@
+<?php
+
+class Insider {
+
+ function Insider(){
+
+ }
+
+ function isInsider($author,$newsgroup){
+ $pstr = strpos($author,"@");
+ $len = strlen($author);
+
+ if (substr($author,$pstr,$len-$pstr) == "@eclipse.org")
+ return 1;
+ else
+ return 0;
+ }
+
+}
+?>
diff --git a/stats/live.class.php b/stats/live.class.php
new file mode 100644
index 0000000..ea7e0e8
--- /dev/null
+++ b/stats/live.class.php
@@ -0,0 +1,92 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+
+ function logNotZero($value) {
+ if( $value == 0 ) {
+ return $value;
+ } else {
+ return log($value);
+ }
+ }
+
+ function logAbsZero($value) {
+ if( $value == 0 ) {
+ return $value;
+ } else {
+ if( $value < 0 ) {
+ return -1 * log(abs($value));
+ } else {
+ return log($value);
+ }
+ }
+ }
+
+ function inverseNotZero($value) {
+ if($value == 0) {
+ return $value;
+ } else {
+ return 1.0 / $value;
+ }
+ }
+
+class Live {
+ var $db_connection;
+ var $db_handle;
+
+ function Live(){
+ // Initialize the DB connection
+ $this->db_connection = new DBConnectionDashboard();
+ $this->db_handle = $this->db_connection->connect();
+ }
+
+ function computeData($table){
+ $i = 0;
+ $livenesss = Array();
+ $today = date('Y-m-d');
+
+ $query = "SELECT * FROM ".$table." WHERE stats_date = \"".$today."\"";
+ $result = mysql_query($query,$this->db_handle);
+ while($row = mysql_fetch_assoc($result)){
+ $project[$i] = $row['project'];
+ $delta_bugs_7 = 1 * logNotZero($row['bugs_7_delta']);
+ $percent_bugs_7 = 1 * logAbsZero($row['bugs_7_percentage']);
+ $percent_bugs_30 = 2 * logAbsZero($row['bugs_30_percentage']);
+ $percent_bugs_180 = 1 * logAbsZero($row['bugs_180_percentage']);
+ $posts_news_7 = 2 * logAbsZero($row['news_7_number_posts']);
+ $answers_news_7 = 2 * inverseNotZero($row['news_7_answer_average_time']);
+ $posts_news_30 = 3 * logAbsZero($row['news_30_number_posts']);
+ $answers_news_30 = 3 * inverseNotZero($row['news_30_answer_average_time']);
+
+ $total = $delta_bugs_7 +
+ $percent_bugs_7 +
+ $percent_bugs_30 +
+ $percent_bugs_180 +
+ $posts_news_7 +
+ $answers_news_7 +
+ $posts_news_30 +
+ $answers_news_30;
+
+ if( ($total == 0) && ($percent_bugs_180 == 0) ) {
+ $total = -1000;
+ }
+
+ $liveness[$i] = $total;
+ $i++;
+ }
+ echo "<html>\n<body>\n";
+ while(--$i >= 0){
+ echo "<b>Processing project:</b> ".$project[$i]." <b>Liveness:</b> ".$liveness[$i]."<br>\n";
+ $query = "UPDATE ".$table." SET liveness = ".$liveness[$i]." WHERE project = \"".$project[$i]."\" AND stats_date = \"".$today."\"";
+ mysql_query($query,$this->db_handle) or die("Could not update stats: ".mysql_error());
+ }
+ echo "\n</body>\n</html>\n";
+ }
+
+ function destroyLive(){
+ $this->db_handle = null;
+ $this->db_connection = null;
+ }
+}
+
+?>
diff --git a/stats/mail_create_table.php b/stats/mail_create_table.php
new file mode 100644
index 0000000..c2f84aa
--- /dev/null
+++ b/stats/mail_create_table.php
@@ -0,0 +1,20 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+echo "<HTML>\n<HEAD><TITLE>Test page</TITLE></HEAD>\n";
+echo "<BODY>\n<H1>Create table</H1>\n</BODY>\n</HTML>";
+
+$query = "CREATE TABLE mail_stats (listname varchar(100), stats_date date, number_subscribers smallint unsigned, number_messages mediumint unsigned)";
+echo $query."<br>";
+mysql_query($query,$db_handle) or die("Could not create table: ".mysql_error());
+
+echo "</BODY></HTML>";
+
+$db_handle = null;
+$db_connection = null;
+
+?>
diff --git a/stats/mail_drop_table.php b/stats/mail_drop_table.php
new file mode 100644
index 0000000..b0f10d4
--- /dev/null
+++ b/stats/mail_drop_table.php
@@ -0,0 +1,20 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+echo "<HTML>\n<HEAD><TITLE>Test page</TITLE></HEAD>\n";
+echo "<BODY>\n<H1>Drop table</H1>\n</BODY>\n</HTML>";
+
+$query = "DROP TABLE mail_stats";
+echo $query."<br>";
+mysql_query($query,$db_handle) or die("Could not create table: ".mysql_error());
+
+echo "</BODY></HTML>";
+
+$db_handle = null;
+$db_connection = null;
+
+?>
diff --git a/stats/mailinglists.class.php b/stats/mailinglists.class.php
new file mode 100644
index 0000000..4158099
--- /dev/null
+++ b/stats/mailinglists.class.php
@@ -0,0 +1,42 @@
+<?php
+
+class MailingLists {
+ var $_mailinglists;
+
+ function MailingLists(){
+ $this->_mailinglists = Array();
+ }
+
+ function setMailingLists($mailinglists){
+ $elements = explode(",",$mailinglists);
+ while(count($elements)){
+ $element = array_pop($elements);
+ if ($element != "")
+ array_push($this->_mailinglists,$element);
+ }
+ }
+
+ function getMailingLists(){
+ return $this->_mailinglists;
+ }
+
+ function numberOfMailingLists(){
+ return count($this->_mailinglists);
+ }
+
+ function mailingListAt($position){
+ return $this->_mailinglists[$position];
+ }
+
+ function findMailingList($mailinglistname){
+ $num = $this->numberOfMailingLists();
+ for($i=0;$i<$num;$i++)
+ if ($this->mailingListAt($i) == $mailinglistname)
+ return 1;
+
+ return 0;
+ }
+
+}
+
+?>
diff --git a/stats/mysql_dialog.php b/stats/mysql_dialog.php
new file mode 100644
index 0000000..e89814e
--- /dev/null
+++ b/stats/mysql_dialog.php
@@ -0,0 +1,145 @@
+<?php
+/***
+**** @class: mysql_dialog
+**** @version: 1.4;
+**** @author: Giorgos Tsiledakis;
+**** @date: 2004-08-25;
+**** @license: GNU GENERAL PUBLIC LICENSE;
+***/
+class mysql_dialog {
+var $msg1="Not connected to MySQL Server! Please check your connection data or call function \"connect()\" first";
+var $msg2="Please check your SQL statement or call function \"speak()\" first!";
+
+var $errors=""; // the last error occured;
+var $rows=""; // number of rows of the query, created by listen();
+var $fields=""; // number fields of the query, created by listen();
+var $printerror=false;
+var $error_id=false;
+var $con=false;
+var $sql_id=false;
+
+/*##
+#### Call first Class Constructor mysql_dialog() to beginn;
+#### If some value!=0 is passed to mysql(),
+#### the errors occured, after each function is called, will be printed in the main script
+##*/
+function mysql_dialog($mode=false) {
+if ($mode){
+$this->printerror=true;
+}
+}
+
+/*##
+#### Call then connect("mysqlhost","mysqluser","mysqlpasswd","name of mysql database")
+#### it returns some public $con or creates errors;
+##*/
+function connect($host=false, $user=false, $pass=false, $dbname=false) {
+$con=@mysql_connect($host, $user, $pass);
+if (!$con) {
+$this->makeerror();
+return false;
+}
+$this->con=$con;
+$db=@mysql_select_db($dbname, $con);
+if (!$db) {
+$this->makeerror();
+return false;
+}
+return $this->con;
+}
+
+
+function connecteclipse($connection) {
+ $this->con=$connection;
+return $this->con;
+}
+/*##
+#### Call speak("SQL STRING") to send some sql query to the database;
+#### it returns some public $sql_id, or creates errors;
+##*/
+function speak($sql=false) {
+if (!$this->con) {
+$this->error_id=$this->msg1;
+$this->makeerror();
+return false;
+}
+if ($this->sql_id) {
+@mysql_free_result($this->sql_id);
+}
+$sql_id=mysql_query($sql, $this->con);
+$this->sql_id=$sql_id;
+return $this->sql_id;
+}
+
+/*##
+#### Call listen() to get the result of the query;
+#### it returns an array with the results of the query, or creates errors;
+#### listen() must be called after speak("SQL STRING") was called;
+##*/
+function listen() {
+if (!$this->con) {
+$this->error_id=$this->msg1;
+$this->makeerror();
+return false;
+}
+if (!$this->sql_id) {
+$this->error_id=$this->msg2;
+$this->makeerror();
+return false;
+}
+$data=@mysql_fetch_array($this->sql_id, MYSQL_BOTH);
+$this->rows=@mysql_num_rows($this->sql_id);
+$this->fields=@mysql_num_fields($this->sql_id);
+return $data;
+}
+
+/*##
+#### Call onscreen("SQL STRING") to print a table with the result of the query;
+##*/
+function onscreen($sql=false) {
+$this->speak($sql);
+echo ("<table border=\"1\" cellpadding=\"4\"><tr>");
+while ($fields=@mysql_fetch_field($this->sql_id)) {
+echo ("<th align=\"left\">$fields->name</th>");
+}
+echo ("</tr>\n");
+while ($rows = $this->listen()) {
+echo ("<tr>");
+for ($x=0; $x<@mysql_num_fields($this->sql_id); $x++) {
+echo ("<td align=\"left\">".htmlentities($rows[$x])."</td>");
+}
+echo ("</tr>\n");
+}
+echo ("</table>");
+}
+
+/*##
+#### Function makeerror() is called whenever some error has occured;
+#### If there is any error_id, it returns the user specified messages $msg1, $msg2,
+#### else it returns the mysql error number and message;
+#### If $printerror is true, the error message will be printed in the main script;
+##*/
+function makeerror() {
+if (!$this->error_id) {
+if (mysql_errno()){
+$result="<b>" .mysql_errno(). " :<font color=\"red\">" . mysql_error(). "</font></b><br>";
+$this->errors=$result;
+if ($this->printerror){
+echo $result;
+}
+return $result;
+exit;
+}
+}
+else {
+$result="<b><font color=\"red\">$this->error_id</font></b><br>";
+$this->errors=$result;
+if ($this->printerror){
+echo $result;
+}
+return $result;
+}
+}
+
+}
+?>
\ No newline at end of file
diff --git a/stats/news.class.php b/stats/news.class.php
new file mode 100644
index 0000000..fb037db
--- /dev/null
+++ b/stats/news.class.php
@@ -0,0 +1,250 @@
+<?php
+
+################################################################
+# NAME: news.class.php #
+# AUTHOR: Diego Figueroa #
+# DESC: Implementation of methods to access newsgroups. This #
+# is not a complete/standard implementation of RFC 977 #
+# http://www.w3.org/Protocols/rfc977/rfc977.html #
+# DATE: Aug 31, 2005 #
+# LAST MOD: Sep 1, 2005 #
+# #
+# REQUIRES: config.php #
+################################################################
+
+require_once("responses.php");
+require_once("utils.php");
+require_once("post.class.php");
+
+class GInfo {
+ var $_ginfo;
+
+ function GInfo(){
+ $this->_ginfo = array();
+ }
+
+ function setInfo($info){
+ $this->_ginfo = $info;
+ }
+
+ function getNumberPosts(){
+ return $this->_ginfo[0];
+ }
+
+ function getFirstPost(){
+ return $this->_ginfo[1];
+ }
+
+ function getLastPost(){
+ return $this->_ginfo[2];
+ }
+
+ function getNewsGroupName(){
+ return $this->_ginfo[3];
+ }
+}
+
+class News {
+ var $_handle;
+
+ # Constructor
+ function News(){
+ $this->_handle = 0;
+ }
+
+ function perror($text){
+ print $text."<br>\n";
+ exit();
+ }
+
+ function warning($text){
+# print $text."<br>\n"; // Only on when debugging
+ }
+
+ function response($code){
+ return substr($code,0,RESPONSE_LENGTH);
+ }
+
+ function connect($server,$port,$timeout){
+ $this->_handle = fsockopen($server, $port, $errno, $errstr, $timeout);
+
+ if (!$this->_handle)
+ $this->perror("Connection failed");
+ else {
+ echo "Connected\n";
+ $tmp = fgets($this->_handle, 1024);
+ print $tmp."\n";
+ }
+ }
+
+ function disconnect(){
+ fputs($this->_handle, "QUIT\n");
+ $tmp = fgets($this->_handle, 1024);
+ if ($this->response($tmp) != R205)
+ $this->perror("Error while disconnecting from server");
+ }
+
+ function authenticate($user,$pass){
+ if (!$this->_handle)
+ $this->perror("Invalid handle");
+ fputs($this->_handle, "AUTHINFO USER ".$user."\n");
+ $tmp = fgets($this->_handle, 1024);
+
+ fputs($this->_handle, "AUTHINFO PASS ".$pass."\n");
+ $tmp = fgets($this->_handle, 1024);
+
+ if ($tmp != "281 Ok\r\n")
+ $this->perror("502 Authentication error");
+ }
+
+ function getGroups(){
+ $groups = array();
+
+ fputs($this->_handle, "LIST\n");
+ $tmp = fgets($this->_handle, 1024);
+ if ($this->response($tmp) != R215)
+ $this->perror($tmp);
+ while($tmp != '.'){ # As defined in RFC 977
+ $tmp = substr(fgets($this->_handle, 1024),0,-2);
+ if ($tmp != '.')
+ array_push($groups,substr($tmp,0,strpos($tmp,' ')));
+ }
+
+ return $groups;
+ }
+
+ function selectGroup($gname){
+ $ginfo = new GInfo();
+
+ fputs($this->_handle, "GROUP ".$gname."\n");
+ $tmp = fgets($this->_handle, 1024);
+ if ($this->response($tmp) != R211){
+ $this->warning($tmp);
+ $ginfo->setInfo(array(0,0,0,-1));
+ return $ginfo;
+ }
+ $tmp = substr($tmp,RESPONSE_LENGTH+1); # Remove response
+
+ $ginfo->setInfo(explode(" ",$tmp));
+
+ return $ginfo; # [num. posts | First | Last | newsgroup]
+ }
+
+ function getPostHead($article){
+ $head = array();
+
+ fputs($this->_handle, "HEAD ".$article."\n");
+ $tmp = fgets($this->_handle, 1024);
+ if ($this->response($tmp) != R221){ # If not a valid post
+ $tmp = substr($tmp,0,-2); # Remove 'new line' char
+ $this->warning($tmp.". Article: $article\n");
+ return (new Post(array()));
+ }
+ while($tmp != '.'){ # As defined in RFC 977
+ $tmp = substr(fgets($this->_handle, 1024),0,-2);
+ if ($tmp != '.')
+ array_push($head,$tmp);
+ }
+
+ return (new Post($head));
+ }
+
+ function numPosts($group){
+ $tmp = select_group($this->_handle,$group);
+
+ return $tmp[0];
+ }
+
+ function numPostsSinceDate($first,$last){
+ $count = $last - $first + 1;
+
+ return $count;
+ }
+
+ function cachePosts($first,$last){
+ $posts = array();
+
+ for($i=$first;$i<=$last;$i++){
+ $thepost = $this->getPostHead($i);
+ if ($thepost->getDate() != "")
+ array_push($posts,$thepost);
+ }
+
+ return $posts;
+ }
+
+ function cacheMessageID($first,$last){
+ $messages = array();
+
+ for($i=$first;$i<=$last;$i++){
+ $thepost = $this->getPostHead($i);
+ if ($thepost->getDate() != "")
+ $messages[$thepost->getMessageID()] = getUnixTimestamp($thepost->getDate(),$thepost->getTime());
+ }
+
+ return $messages;
+ }
+
+ function answeredPosts($cachedposts){
+ $answer_time = 0;
+ $unanswered = 0;
+
+ $total = count($cachedposts);
+ for($i=0;$i<$total;$i++){
+ $post = $cachedposts[$i];
+ }
+
+ return array($answer_time, $unanswered);
+ }
+
+ function getFirstArticleFromDate($first,$last,$date){
+ $post = new Post(array());
+ $tmp = new Post(array());
+ $tmp_first = $first;
+
+ # All posts are greater than the passed date
+ while($tmp->getDate() == "")
+ $tmp = $this->getPostHead($tmp_first++);
+ if ($tmp->getDate() >= $date)
+ return --$tmp_first;
+
+ $search = (int) ceil(($first + $last) / 2);
+
+ # We've reached the end and no date matches the passed date
+ if ($search == $last){
+ $tmp = $this->getPostHead($last); # Make sure the last one is
+ if ($tmp->getDate() < $date) # not a valid date either
+ return -1;
+ }
+#print "F: $first L: $last S: $search\n";
+ while($post->getDate() == "" && $search <= $last){
+ $post = $this->getPostHead($search);
+ if ($post->getDate() == ""){
+ $search++;
+ }
+ }
+ if ($post->getDate() == ""){
+ return -1; // Error
+ }
+ $pdate = $post->getDate();
+#print "P: $pdate D: $date\n";
+ if ($pdate == $date){ # Found an article from the $date
+ $tmp_search = $search;
+ while($pdate == $date){ # now get the first one (faster)
+ $post = $this->getPostHead(--$search);
+ $pdate = $post->getDate();
+ if ($pdate == ""){ # Error fetching article
+ if ($search < $first){
+ return $tmp_search;
+ }
+ }
+ }
+ return ++$search;
+ } else if ($pdate < $date){
+ return $this->getFirstArticleFromDate($search,$last,$date);
+ } else if ($pdate > $date){
+ return $this->getFirstArticleFromDate(($search*2)-$last,$search,$date);
+ }
+ }
+}
+?>
diff --git a/stats/original_groups.txt b/stats/original_groups.txt
new file mode 100644
index 0000000..9f4f9e1
--- /dev/null
+++ b/stats/original_groups.txt
@@ -0,0 +1,53 @@
+9,technology.xsd,1,XSD
+14,technology.wsvt,1,WSVT
+0,webtools.wst,2,WST - Web Standards Tools
+28,technology.voicetools,1,Voice Tools Project
+16,tools.ve,1,VE - Visual Editor
+17,tools.uml2,1,UML2
+0,tptp.performance,2,Tracing & Profiling Tools
+0,tptp.test,2,Testing Tools
+41,dsdp.tm,2,Target Management
+0,datatools.sqltools,2,SQL Dev Tools
+27,technology.ptp,1,PTP - Parallel Tools Platform
+35,technology.phoenix,1,Project Phoenix
+21,technology.pollinate,1,Pollinate
+1,eclipse.platform,1,Platform
+0,tptp.platform,2,Platform
+2,eclipse.pde,1,PDE - Plugin Development Environment
+31,technology.mylar,1,Mylar Project
+0,tptp.monitoring,2,Monitoring Tools
+40,technology.mddi,1,Model Driven Development Infrastructure
+0,datatools.modelbase,2,Model Base
+32,technology.lepido,1,Lepido, Tools for Apache Cocoon
+39,technology.jsr220-orm,1,JSR220-ORM
+3,eclipse.jdt,1,JDT - Java Development Tools
+0,webtools.jst,2,J2EE Standard Tools
+13,tools.hyades,1,Hyades
+30,technology.higgins,1,Higgins, The Trust Framework
+29,technology.gmf,1,Graphical Modeling Framework
+12,technology.gmt,1,GMT - Generative Model Transformer
+5,tools.gef,1,GEF - Graphical Editor Framework
+23,technology.ercp,1,ERCP - Embedded Rich Client Platform
+8,tools.emf,1,EMF
+-1,technology.ejb30-orm,1,EJB30-ORM
+20,webtools,1,Eclipse Web Tools Platform Project
+-1,tools,1,Eclipse Tools Project
+26,tptp,1,Eclipse Test and Performance Tools Platform Project
+-1,technology,1,Eclipse Technology Project
+-1,eclipse,1,Eclipse Project
+42,technology.emft,1,Eclipse Model Framework Technology
+25,technology.ecf,1,Eclipse Communications Framework
+0,birt.ece,2,Eclipse Chart Engine
+15,technology.ecesis,1,ECESIS - Eclipse Community Education Project
+37,dsdp,1,Device Software Development Platform
+0,dsdp.dd,2,Device Debugging
+36,datatools,1,Data Tools Platform
+0,datatools.connectivity,2,Connectivity (ODA Component)
+-1,tools.cobol,1,COBOL
+18,technology.cme,1,CME - Concern Manipulation Environment
+4,tools.cdt,1,C/C++ IDE
+24,birt,1,Business Intelligence and Reporting Tools (BIRT) Project
+33,technology.buckminster,1,Buckminister Component Assembly Project
+10,technology.aspectj,1,AspectJ
+38,technology.alf,1,Application Lifecycle Management Framework
+6,technology.ajdt,1,AJDT - AspectJ Development Tools Project
diff --git a/stats/post.class.php b/stats/post.class.php
new file mode 100644
index 0000000..7497b5f
--- /dev/null
+++ b/stats/post.class.php
@@ -0,0 +1,80 @@
+<?php
+
+require_once("utils.php");
+
+class Post {
+ var $_date;
+ var $_time;
+ var $_subject;
+ var $_author;
+ var $_messageid;
+ var $_reference;
+
+ function Post($post_head){
+ while(count($post_head)){ # Extract Date
+ $line = array_pop($post_head);
+ $tpos = 0;
+ if (substr($line,0,17) == "NNTP-Posting-Date"){
+ $tpos = strpos($line,",");
+ if (!$tpos){
+ $tpos = strpos($line," ") + 1;
+ }else
+ $tpos += 2; # Pass whitespaces, some posts are not conventional
+ $tstr = substr($line,$tpos);
+ # Get date
+ $data = explode(" ",$tstr,4);
+ $this->_date = convertNewsDate($data[0]." ".$data[1]." ".$data[2]);
+ # Get time
+ $tpos = strpos($line,":") + 1;
+ $tpos = strpos($line,":",$tpos) - 2;
+ $this->_time = substr($line,$tpos,8);
+ } else if (substr($line,0,7) == "Subject"){ # Extract Subject
+ $this->_subject = substr($line,9);
+ } else if (substr($line,0,4) == "From"){ # Extract Author
+ $data = explode(" ",$line);
+ $rstr = array("<",">");
+ while(count($data)){
+ $tmp = array_pop($data);
+ $tmp = str_replace($rstr,"",$tmp);
+ if (strpos($tmp,"@"))
+ break;
+ }
+ $this->_author = $tmp;
+ } else if (substr($line,0,10) == "References"){ # Extract References
+ $tpos = strrpos($line,"<") + 1;
+ $end = strrpos($line,"@");
+ $this->_reference = substr($line,$tpos,$end-$tpos);
+ } else if (substr($line,0,10) == "Message-ID"){ # Extract Message-ID
+ $tpos = strpos($line,"<") + 1;
+ $end = strpos($line,"@");
+ $this->_messageid = substr($line,$tpos,$end-$tpos);
+ }
+ }
+ }
+
+ function getDate(){
+ return $this->_date;
+ }
+
+ function getTime(){
+ return $this->_time;
+ }
+
+ function getSubject(){
+ return $this->_subject;
+ }
+
+ function getAuthor(){
+ return $this->_author;
+ }
+
+ function getReference(){
+ return $this->_reference;
+ }
+
+ function getMessageID(){
+ return $this->_messageid;
+ }
+}
+
+?>
diff --git a/stats/responses.php b/stats/responses.php
new file mode 100644
index 0000000..b2bbe06
--- /dev/null
+++ b/stats/responses.php
@@ -0,0 +1,47 @@
+<?php
+
+define("RESPONSE_LENGTH",3);
+
+# List of responses according to RFC 977
+
+define("R100", 100); # help text follows
+define("R199", 199); # debug output
+define("R200", 200); # server ready - posting allowed
+define("R201", 201); # server ready - no posting allowed
+define("R202", 202); # slave status noted
+define("R205", 205); # closing connection - goodbye!
+define("R211", 211); # n f l s group selected
+define("R215", 215); # list of newsgroups follows
+define("R220", 220); # n <a> article retrieved - head and body follow
+define("R221", 221); # n <a> article retrieved - head follows
+define("R222", 222); # n <a> article retrieved - body follows
+define("R223", 223); # n <a> article retrieved - request text separately
+define("R230", 230); # list of new articles by message-id follows
+define("R231", 231); # list of new newsgroups follows
+define("R235", 235); # article transferred ok
+define("R240", 240); # article posted ok
+define("R281", 281); # authentication successful
+
+define("R335", 335); # send article to be transferred. End with <CR-LF>.<CR-LF>
+define("R340", 340); # send article to be posted. End with <CR-LF>.<CR-LF>
+
+define("R400", 400); # service discontinued
+define("R411", 411); # no such news group
+define("R412", 412); # no newsgroup has been selected
+define("R420", 420); # no current article has been selected
+define("R421", 421); # no next article in this group
+define("R422", 422); # no previous article in this group
+define("R423", 423); # no such article number in this group
+define("R430", 430); # no such article found
+define("R435", 435); # article not wanted - do not send it
+define("R436", 436); # transfer failed - try again later
+define("R437", 437); # article rejected - do not try again.
+define("R440", 440); # posting not allowed
+define("R441", 441); # posting failed
+
+define("R500", 500); # command not recognized
+define("R501", 501); # command syntax error
+define("R502", 502); # access restriction or permission denied
+define("R503", 503); # program fault - command not performed
+
+?>
diff --git a/stats/run_sql.php b/stats/run_sql.php
new file mode 100644
index 0000000..94e632a
--- /dev/null
+++ b/stats/run_sql.php
@@ -0,0 +1,79 @@
+<HTML>
+<HEAD><TITLE>Run SQL</TITLE>
+<link type="text/css" rel="stylesheet" href="http://www.eclipse.org/org/processes/dashboard/eclipse-dashboard.css">
+</HEAD>
+<BODY>
+<?php
+
+
+ require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+
+ require_once "groups.class.php";
+ require_once "../dashboard/utils.php";
+ require_once "hostname.php";
+ require_once "common_queries.php";
+ require_once "../dashboard/constants.php";
+
+ $dbc_cache = new DBConnectionDashboard();
+ $db_handle = $dbc_cache->connect();
+
+ $project = $_GET['project'];
+
+
+ $groups = new Groups();
+ $groups->loadGroups(); // Load groups
+
+ // Get last date available for $project in DB
+ $mysql_date = get_last_date($db_handle);
+
+ // Get info for the project
+
+
+
+?>
+
+<p id="header"><img src="http://www.eclipse.org/images/Idea.jpg" align="right" height="86" hspace="50" width="120">
+<br>
+
+<span class="indextop">Project Dashboards</span><br>
+<span class="indexsub">Test Cases </span></p>
+
+<h1>Run SQL </h1>
+<p><br>
+</p>
+<form name="form1" method="post" action="">
+ <p>
+ <textarea name="sql" cols="50" rows="10" id="sql"></textarea>
+</p>
+ <p>
+ <input type="submit" name="Submit" value="Submit">
+</p>
+</form>
+<p>
+ <?
+ include("mysql_dialog.php");
+ $sql="show tables"; // SQL String to send to the Database Server
+ if(isset($_REQUEST['sql']) && strlen($_REQUEST['sql']) > 0)
+ {
+ $sql = $_REQUEST['sql'];
+ }
+
+
+ $db=new mysql_dialog("1"); // with "1" possible errors will be printed
+ $db->connecteclipse($db_handle);
+ $db->onscreen($sql);
+ $db->speak($sql);
+ while ($out=$db->listen()){
+ for ($x=0; $x<$db->fields; $x++){
+ echo $out[$x]."<br>";
+ }
+ }
+ echo "Number of rows: ".$db->rows."<br>";
+ echo "Number of fields: ".$db->fields."<br>";
+ ?>
+</p>
+<p><br>
+ <font color="grey">Last update 15/11/2005 </font>
+</p>
+</BODY>
+</HTML>
\ No newline at end of file
diff --git a/stats/testcase.php b/stats/testcase.php
new file mode 100644
index 0000000..0370b35
--- /dev/null
+++ b/stats/testcase.php
@@ -0,0 +1,209 @@
+<HTML>
+<HEAD><TITLE>Test Cases</TITLE>
+<link type="text/css" rel="stylesheet" href="http://www.eclipse.org/org/processes/dashboard/eclipse-dashboard.css">
+</HEAD>
+<BODY>
+<?php
+
+if (isset($_GET['project']) && strlen($_GET['project']) > 0)
+{
+
+ require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+
+ require_once "groups.class.php";
+ require_once "../dashboard/utils.php";
+ require_once "hostname.php";
+ require_once "common_queries.php";
+ require_once "../dashboard/constants.php";
+
+ $dbc_cache = new DBConnectionDashboard();
+ $db_handle = $dbc_cache->connect();
+
+ $project = $_GET['project'];
+
+
+ $groups = new Groups();
+ $groups->loadGroups(); // Load groups
+
+ // Get last date available for $project in DB
+ $mysql_date = get_last_date($db_handle);
+
+ // Get info for the project
+ $query = "SELECT * FROM ".stats_table()." WHERE project = \"".$project."\" AND stats_date = \"".$mysql_date."\"";
+ $result_7 = mysql_query($query,$db_handle);
+ $row = mysql_fetch_assoc($result_7);
+
+ // Newsgroups stats
+ $num_posts_7 = $row['news_7_number_posts'];
+ $num_posts_30 = $row['news_30_number_posts'];
+ $avg_posts_7 = $row['news_7_average_posts'];
+ $avg_posts_30 = $row['news_30_average_posts'];
+ $avg_time_answer_7 = $row['news_7_answer_average_time'];
+ $avg_time_answer_30 = $row['news_30_answer_average_time'];
+ $unanswered_posts_7 = $row['news_7_unanswered_number'];
+ $unanswered_posts_30 = $row['news_30_unanswered_number'];
+ $insider_posts_7 = $row['news_7_insider_posts'];
+ $insider_posts_30 = $row['news_30_insider_posts'];
+
+ // Mail stats
+ $mail_posts_7 = $row['mail_7_number_posts'];
+ $mail_posts_30 = $row['mail_30_number_posts'];
+ $mail_posts_180 = $row['mail_180_number_posts'];
+ $mail_average_posts_7 = $row['mail_7_average_posts'];
+ $mail_average_posts_30 = $row['mail_30_average_posts'];
+ $mail_average_posts_180 = $row['mail_180_average_posts'];
+ $mail_average_subscribers_7 = $row['mail_7_average_subscribers'];
+ $mail_average_subscribers_30 = $row['mail_30_average_subscribers'];
+ $mail_average_subscribers_180 = $row['mail_180_average_subscribers'];
+
+ $result_7 = "Error!";
+ $ligth_7= "";
+ if($num_posts_7 < _NUM_POST_7_ANSER_NA)
+ {
+ $result_7 = "Answer N/A";
+ $ligth_7 = "White";
+ }
+ if($num_posts_7 == _NUM_POST_7_NA)
+ {
+ $result_7 = "N/A";
+ $ligth_7 = "White";
+ }
+ if($num_posts_7 == _NUM_POST_7_NO_POSTS)
+ {
+ $result_7 = "0 (No posts)";
+ $ligth_7 = "Red";
+ }
+ if($num_posts_7 > _NUM_POST_7_NO_POSTS)
+ {
+ $result_7 = "Number of Posts: " . $num_posts_7;
+ if($num_posts_7 >= _NUM_POST_7_GREEN)
+ $ligth_7 = "Green";
+ else
+ $ligth_7 = "Red";
+ }
+
+ $result_30 = "Error!";
+ $ligth_30 = "";
+ if($num_posts_30 < _NUM_POST_30_ANSER_NA)
+ {
+ $result_30 = "Answer N/A";
+ }
+ if($num_posts_30 == _NUM_POST_30_NA)
+ {
+ $result_30 = "N/A";
+ $ligth_30 = "White";
+ }
+ if($num_posts_30 == _NUM_POST_30_NO_POSTS)
+ {
+ $result_30 = "0 (No posts)";
+ $ligth_30 = "Red";
+ }
+ if($num_posts_30 > _NUM_POST_30_NO_POSTS)
+ {
+ $result_30 = "Number of Posts: " . $num_posts_30;
+ if($num_posts_30 <= 10)
+ $ligth_30 = "Red";
+ if($num_posts_30 > _NUM_POST_30_BAD && $num_posts_30 < _NUM_POST_30_GOOD)
+ $ligth_30 = "White";
+ if($num_posts_30 >= _NUM_POST_30_GOOD)
+ $ligth_30 = "Green";
+ }
+
+ // AVERAGE RESPONSE TIME
+ $avg_7 = "Error!";
+ $avg_ligth_7= "";
+ if($avg_time_answer_7 < _ART_7_NOANSW)
+ {
+ $avg_result_7 = "No Answer";
+ $avg_ligth_7 = "Red";
+ }
+ if($avg_time_answer_7 == _ART_7_NOPOST)
+ {
+ $avg_result_7 = "No Posts";
+ $avg_ligth_7 = "Red";
+ }
+ if($avg_time_answer_7 == _ART_7_NA)
+ {
+ $avg_result_7 = "N/A";
+ $avg_ligth_7 = "White";
+ }
+ if($avg_time_answer_7 > _NUM_POST_7_NO_POSTS)
+ {
+ $avg_result_7 = "Number of Posts: " . $avg_time_answer_7;
+ if($avg_time_answer_7 >= _NUM_POST_7_GREEN)
+ $avg_ligth_7 = "Green";
+ else
+ $avg_ligth_7 = "Red";
+ }
+
+ $result_30 = "Error!";
+ $ligth_30 = "";
+ if($avg_time_answer_30 < _NUM_POST_30_ANSER_NA)
+ {
+ $avg_result_30 = "Answer N/A";
+ }
+ if($avg_time_answer_30 == _NUM_POST_30_NA)
+ {
+ $avg_result_30 = "N/A";
+ $avg_ligth_30 = "White";
+ }
+ if($avg_time_answer_30 == _NUM_POST_30_NO_POSTS)
+ {
+ $avg_result_30 = "0 (No posts)";
+ $avg_ligth_30 = "Red";
+ }
+ if($avg_time_answer_30 > _NUM_POST_30_NO_POSTS)
+ {
+ $avg_result_30 = "Number of Posts: " . $avg_time_answer_30;
+ if($avg_time_answer_30 <= 10)
+ $avg_ligth_30 = "Red";
+ if($avg_time_answer_30 > _NUM_POST_30_BAD && $num_posts_30 < _NUM_POST_30_GOOD)
+ $avg_ligth_30 = "White";
+ if($avg_time_answer_30 >= _NUM_POST_30_GOOD)
+ $avg_ligth_30 = "Green";
+ }
+
+
+ $img_7 = "http://www.eclipse.org/org/processes/dashboard/lights/" . strtolower($ligth_7) . ".gif";
+ $img_30 = "http://www.eclipse.org/org/processes/dashboard/lights/" . strtolower($ligth_30) . ".gif";
+ $avg_img_7 = "http://www.eclipse.org/org/processes/dashboard/lights/" . strtolower($avg_ligth_7) . ".gif";
+ $avg_img_30 = "http://www.eclipse.org/org/processes/dashboard/lights/" . strtolower($avg_ligth_30) . ".gif";
+}
+?>
+
+<p id="header"><img src="http://www.eclipse.org/images/Idea.jpg" align="right" height="86" hspace="50" width="120">
+<br>
+
+<span class="indextop">Project Dashboards</span><br>
+<span class="indexsub">Test Cases </span></p>
+
+<h1>Test Cases </h1>
+<p><br>
+ <br>
+</p>
+<table width="80%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <th width="47%" scope="col">Project Name</th>
+ <th width="5%" scope="col"> </th>
+ <th colspan="2" scope="col">Bugs</th>
+ <th width="5%" scope="col"> </th>
+ <th width="19%" colspan="2" scope="col">News</th>
+ <th width="6%" scope="col"> </th>
+ </tr>
+ <tr>
+ <td><?= $project ?>;</td>
+ <td> </td>
+ <td width="9%"><?php echo " This Week: ". $result_7 . " ($num_posts_7) " . "<img src=\"$img_7\" alt=\"$ligth_7\" title=\"$ligth_7\">";?></td>
+ <td width="9%"><?php echo " This Month: ". $result_30 . " ($num_posts_30) " . "<img src=\"$img_30\" alt=\"$ligth_30\" title=\"$ligth_30\">"; ?></td>
+ <td> </td>
+ <td><?php echo " This Week: ". $result_7 . " ($num_posts_7) " . "<img src=\"$img_7\" alt=\"$ligth_7\" title=\"$ligth_7\">";?></td>
+ <td><?php echo " This Month: ". $result_30 . " ($num_posts_30) " . "<img src=\"$img_30\" alt=\"$ligth_30\" title=\"$ligth_30\">"; ?></td>
+ <td> </td>
+ </tr>
+</table>
+<p> </p>
+<p><br>
+ <font color="grey">Last update 15/11/2005 </font>
+</p>
+</BODY>
+</HTML>
\ No newline at end of file
diff --git a/stats/utils.php b/stats/utils.php
new file mode 100644
index 0000000..78870b7
--- /dev/null
+++ b/stats/utils.php
@@ -0,0 +1,88 @@
+<?php
+
+###############################################################
+# function getDateBefore($days) #
+# #
+# * returns the date from $days days before #
+###############################################################
+
+function getDateBefore($days){
+ $oneWeek = time() - ($days * 24 * 60 * 60);
+
+ return date('Ymd', $oneWeek);
+}
+
+###############################################################
+# function convertNewsDate($date) #
+# #
+# * Transforms a news post date (NNTP-Posting-Date) into #
+# YYYYMMDD format #
+###############################################################
+function convertNewsDate($date){
+ $months = array('Jan','Feb','Mar','Apr','May','Jun',
+ 'Jul','Aug','Sep','Oct','Nov','Dec');
+ $i = 0;
+
+ $parts = explode(" ",$date);
+ $day = (strlen($parts[0]) == 1)?"0".$parts[0]:$parts[0];
+ $year = $parts[2];
+ while($parts[1] != $months[$i++]);
+ $month = (strlen($i) == 1)?"0".$i:$i;
+
+ return $year.$month.$day;
+}
+
+function getUnixTimeStamp($date,$time){
+ # Date info
+ $year = substr($date,0,4);
+ $month = substr($date,4,2);
+ $day = substr($date,6,2);
+ # Time info
+ $hour = substr($time,0,2);
+ $min = substr($time,3,2);
+ $sec = substr($time,6,2);
+
+ return mktime($hour,$min,$sec,$month,$day,$year);
+}
+
+function getUnixTimestampDiff($ts1,$ts2){
+ return ($ts2 - $ts1);
+}
+
+function realDate($timestamp){
+ $rest = ($timestamp % 86400);
+ $days = ($timestamp - $rest) / 86400;
+ if ($days != 0)
+ $str = $days."d ";
+ $rest1 = ($rest % 3600);
+ $hours = ($rest - $rest1) / 3600;
+ if ($hours != 0 || $days != 0)
+ $str .= $hours."h ";
+# $rest2 = ($rest1 % 60);
+# $minutes = ($rest1 - $rest2) / 60;
+# if ($minutes != 0 || $hours != 0)
+# $str .= $minutes."m ";
+# $seconds = $rest2;
+# $str .= $seconds."s";
+
+ return $str;
+}
+
+function getTimeDiff($date1,$date2){
+ $y1 = substr($date1,0,4);
+ $m1 = substr($date1,4,2);
+ $d1 = substr($date1,6,2);
+
+ $y2 = substr($date2,0,4);
+ $m2 = substr($date2,4,2);
+ $d2 = substr($date2,6,2);
+
+ $date1 = mktime(0,0,0,$m1, $d1, $y1);
+ $date2 = mktime(0,0,0,$m2, $d2, $y2);
+
+ $difference = $date2-$date1;
+
+ return floor($difference/60/60/24);
+}
+
+?>
diff --git a/submit_project_provisioning_request.php b/submit_project_provisioning_request.php
new file mode 100644
index 0000000..532711e
--- /dev/null
+++ b/submit_project_provisioning_request.php
@@ -0,0 +1,305 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "New Project Provisioning Request Result";
+$pageKeywords = "projects";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+<?php
+
+function mail_string($committer_number){
+ $committer_name = "committerName" . $committer_number;
+ $committer_email = "committerEmail" . $committer_number;
+ $committer_website = "committerWebsite" . $committer_number;
+ $committer_packages = "committerPackages" . $committer_number;
+ $committer_lead = "committerLead" . $committer_number;
+ $committer_download = "committerDownloadPrivileges" . $committer_number;
+
+ $tmp_str .= "
+ Name: " . $_POST[$committer_name] . "
+ Email: " . $_POST[$committer_email] . "
+ ";
+ if ($_POST[$committer_lead] != ""){
+ $tmp_str .= "Project Lead: " . $_POST[$committer_lead] . "
+ ";
+ }
+ if ($_POST[$committer_website] != ""){
+ $tmp_str .= "Website: " . $_POST[$committer_website] . "
+ ";
+ }
+ if ($_POST[$committer_download] != ""){
+ $tmp_str .= "Download: " . $_POST[$committer_download] . "
+ ";
+ }
+ $tmp_str .= "Packages: " . $_POST[$committer_packages] . "
+ ";
+
+ return $tmp_str;
+}
+
+function mail_committers($committer_number){
+ $committer_name = "committerName" . $committer_number;
+ $committer_email = "committerEmail" . $committer_number;
+ $committer_packages = "committerPackages" . $committer_number;
+ $committer_website = "committerWebsite" . $committer_number;
+
+$cmailstr = "
+
+Committer Request
+
+Name: " . $_POST['yourName'] . "
+
+Email: " . $_POST['yourEmail'] . "
+
+Committer Info: ===================
+Has been elected: initial project creation: " . $_POST['yourProject'] . "
+
+Name: " . $_POST[$committer_name] . "
+Project: " . $_POST['yourProject'] . "
+
+Email: " . $_POST[$committer_email] . "
+
+CVS package List: " . $_POST[$committer_packages] . "
+Web Package List: " . $_POST[$committer_website] . "
+
+-------------------------------------------------
+Dear " . $_POST[$committer_name] . ",
+If you do not already have a dev.eclipse.org unix account,
+please follow the instructions on this page (especially item 4):
+ http://www.eclipse.org/legal/newcommitter.html
+If you have not already done so, you need to fill out a web
+form questionnaire and possibly one or two paper agreements.
+Your committer account cannot be processed until these
+forms are received.
+
+ Thank you.
+
+";
+ $CEMailDest = "emo-records@eclipse.org";
+ if ($_POST[$committer_email] != ""){
+ $CEMailDest .= "," . $_POST[$committer_email];
+ }
+ $CEMailSubject = $_POST[$committer_name] . " - New Committer Request Form";
+ mail($CEMailDest, $CEMailSubject, $cmailstr);
+}
+
+function committers(){
+ for($i=1;$i<=7;$i++){
+ $committer_name = "committerName".$i;
+ if ($_POST[$committer_name] != ""){
+ $tmp_str .= mail_string($i);
+ mail_committers($i);
+ }else
+ if (($_POST[$committer_name] == "") && ($i == 1)){
+ $tmp_str .= "* ERROR: No committers listed *
+ ";
+ }
+ }
+
+ return $tmp_str;
+}
+
+function website(){
+ for($i=1;$i<=7;$i++){
+ $committer_website = "committerWebsite".$i;
+ $committer_name = "committerName".$i;
+ $committer_email = "committerEmail".$i;
+
+ if ($_POST[$committer_website] != ""){
+ $tmp_str .= "
+ Name: " . $_POST[$committer_name] . "
+ Email: " . $_POST[$committer_email] . "
+ ";
+ }else
+ if (($_POST[$committer_website] == "") && ($i == 1)){
+ $tmp_str .= "* ERROR: No committers were given website access *
+ ";
+ }
+ }
+
+ return $tmp_str;
+}
+
+function download_privileges(){
+ for($i=1;$i<=7;$i++){
+ $committerDownloadPrivileges = "committerDownloadPrivileges".$i;
+ $committerName = "committerName".$i;
+ $committerEmail = "committerEmail".$i;
+
+ if ($_POST[$committerDownloadPrivileges] != ""){
+ $tmp_str .= "
+ Name: " . $_POST[$committerName] . "
+ Email: " . $_POST[$committerEmail] . "
+ ";
+ }else
+ if (($_POST[$committerDownloadPrivileges] == "") && ($i == 1)){
+ $tmp_str .= "* ERROR: No committers were given download access *
+ ";
+ }
+ }
+
+ return $tmp_str;
+}
+
+function mailing_lists(){
+ for($i=1;$i<=5;$i++){
+ $mailing_list = "mailingList".$i;
+ $short_description = "shortDescription".$i;
+ $long_description = "longDescription".$i;
+
+ if ($_POST[$mailing_list] != ""){
+ $tmp_str .= "
+ Name: " . $_POST[$mailing_list] . "
+ Short Description: " . $_POST[$short_description] . "
+ Long Description: " . $_POST[$long_description] . "
+ ";
+ }else
+ if (($_POST[$mailing_list] == "") && ($i == 1)){
+ $tmp_str .= "* ERROR: No mailing lists specified *
+ ";
+ }
+ }
+
+ return $tmp_str;
+}
+
+function components(){
+ for($i=1;$i<=6;$i++){
+ $component = "component".$i;
+ $component_description = "componentDescription".$i;
+ $component_owner = "componentOwner".$i;
+
+ if ($_POST[$component] != ""){
+ $tmp_str .= "
+ Name: " . $_POST[$component] . "
+ Description: " . $_POST[$component_description] . "
+ Owner: " . $_POST[$component_owner] . "
+ ";
+ }else
+ if (($_POST[$component] == "") && ($i == 1)){
+ $tmp_str .= "* ERROR: No Bugzilla components specified *
+ ";
+ }
+ }
+
+ return $tmp_str;
+}
+
+#############
+# Main Code #
+#############
+
+$EMailDest = "webmaster@eclipse.org,bjorn.freeman-benson@eclipse.org";
+$EMailSubject = "New Project Validation Phase Provisioning Request Form";
+$EMailHeaders = "From: \"Eclipse WebMaster (Automated)\"<webmaster@eclipse.org>\n";
+$EMailHeaders .= "X-Mailer: Eclipse.org automailer process\n";
+
+$_STATE = $_POST['state'];
+
+if ($_STATE == "submit"){
+ echo "Thank you for submitting this form. You have submitted:";
+
+$mailStr .= "
+New Project Validation Phase Provisioning Request
+
+Name: " . $_POST['yourName'] . "
+Email: " . $_POST['yourEmail'] . "
+Phone: " . $_POST['yourPhone'] . "
+Process: " . $_POST['yourDevelopmentProcess'] . "
+
+New Project: " . $_POST['yourProject'] . "
+Host Project: " . $_POST['hostProject'] . "
+
+_____ Committers _____
+1. Create UNIX accounts for these committers.
+2. Update the Foundation database to record that these people are
+ committers and/or leads on project " . $_POST['yourProject'] . "
+";
+
+$mailStr .= committers();
+
+$mailStr .= "
+_____ Intial CVS Components _____
+" . $_POST['initialComponents'] . "
+";
+
+####################
+# Project Websites #
+####################
+
+$mailStr .= "
+_____ Project Newsgroup _____
+Change the newsgroup paragraph to:
+" . $_POST['projectNewsgroupParagraph'] . "
+
+_____ Project Proposal ______
+1. Move the proposal from the active section of the www.eclipse.org/proposals page to the archive section.
+2. Move the project from the proposal section of the Technology (or other) PMC to the sub-projects section.
+
+_____ Project Website ______
+1. Create the /home/cvs/org.eclipse website CVS component.
+2. Create the initial \"intentionally blank\" default index.html and main.html files in that component.
+3. Create the www.eclipse.org/[shortname] directory
+4. Set up the auto-update mechanism from the CVS to the www.eclipse.org directory
+5. Grant CVS access for the website to:
+";
+
+
+$mailStr .= website();
+
+#############
+# Downloads #
+#############
+
+$mailStr .= "
+_____ Downloads ______
+1. Create the download1.eclipse.org downloads area. Provide passwords to:
+";
+
+$mailStr .= download_privileges();
+
+#################
+# Mailing Lists #
+#################
+
+$mailStr .= "
+_____ Mailing Lists _____";
+
+$mailStr .= mailing_lists();
+
+#######################
+# Bugzilla Components #
+#######################
+
+$mailStr .= "
+_____ Bugzilla Components _____";
+
+
+$mailStr .= components();
+
+$EMailSubject = $EMailSubject . " (" . $_POST['yourProject'] . ")";
+
+if ($_POST['yourEmail'] != ""){
+ $EMailDest .= "," . $_POST['yourEmail'];
+}
+
+mail($EMailDest, $EMailSubject, $mailStr, $EMailHeaders);
+
+echo "<pre>
+" . $mailStr . "
+</pre>
+";
+
+}
+
+?>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
diff --git a/temporary/alf/project-page-paragraph.html b/temporary/alf/project-page-paragraph.html
new file mode 100644
index 0000000..8730477
--- /dev/null
+++ b/temporary/alf/project-page-paragraph.html
@@ -0,0 +1,15 @@
+<p><b><a href="/alf/">Application Lifecycle Management</a></b> <br/>
+An Application Lifecycle is the continuum of activities required to
+support an enterprise application from its initial inception through
+its deployment and system optimization.
+</p><p>
+The goal of the ALF project is to solve this integration problem
+by introducing a central negotiator that manages interactions
+between applications. This service-oriented event manager
+provides a very useful uncoupling function. Using an intermediate
+communication format prevents having to integrate an application
+several times with several other applications, and simply carries
+out one integration on the central node. The central node then
+carries out communication with other applications through
+orchestration of their corresponding web services.
+</p>
\ No newline at end of file
diff --git a/temporary/birt/.cvsignore b/temporary/birt/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/temporary/birt/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/temporary/birt/eclipse-project-info.xml b/temporary/birt/eclipse-project-info.xml
new file mode 100644
index 0000000..276479a
--- /dev/null
+++ b/temporary/birt/eclipse-project-info.xml
@@ -0,0 +1,50 @@
+<?xml version='1.0'?>
+<project>
+ <name>Business Intelligence and Reporting Tools</name>
+ <short-name>BIRT</short-name>
+ <url>http://www.eclipse.org/birt</url>
+ <summary>
+ BIRT is an open source, Eclipse-based reporting system that integrates
+ with your application to produce compelling reports for both web and PDF.
+ </summary>
+ <description>
+ BIRT provides core reporting features such as report layout, data access
+ and scripting. The current released version is 1.0.1. Please try BIRT and
+ tell us what you think by filling bugs reports & enhancement requests
+ through Bugzilla as explained on the community page.
+ </description>
+ <shipping url="http://download.eclipse.org/birt/downloads/main.php" aname="download"/>
+ <releases>
+ <release status="completed">
+ <date>05/2005</date>
+ <plan format="defacto1">http://www.eclipse.org/birt/index.php?page=project/project_plan_R1_0.html</plan>
+ <name>1.0</name>
+ </release>
+ <release status="scheduled">
+ <date>07/2005</date>
+ <plan format="defacto1">http://www.eclipse.org/birt/index.php?page=project/project_plan_R1_0_1.html</plan>
+ <name>1.0.1</name>
+ </release>
+ <release status="tentative">
+ <date>12/2005</date>
+ <plan format="defacto1">http://www.eclipse.org/birt/index.php?page=project/project_plan_R2_0_0_Draft.html</plan>
+ <name>2.0</name>
+ </release>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-lists>
+ <mailing-list>birt-charting-dev</mailing-list>
+ <mailing-list>birt-dev</mailing-list>
+ <mailing-list>birt-news</mailing-list>
+ <mailing-list>birt-pmc</mailing-list>
+ <mailing-list>birt-proposal</mailing-list>
+ <mailing-list>birt-report-designer-dev</mailing-list>
+ <mailing-list>birt-report-engine-dev</mailing-list>
+ </mailing-lists>
+ <newsgroup>eclipse.birt</newsgroup>
+ <bugzilla>BIRT</bugzilla>
+ <blog>http://birtworld.blogspot.com/</blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/temporary/birt/home-page-one-liner.html b/temporary/birt/home-page-one-liner.html
new file mode 100644
index 0000000..96c0abf
--- /dev/null
+++ b/temporary/birt/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/birt/">Business Intelligence and Reporting Tools</a>
diff --git a/temporary/birt/project-page-paragraph.html b/temporary/birt/project-page-paragraph.html
new file mode 100644
index 0000000..b74b7cd
--- /dev/null
+++ b/temporary/birt/project-page-paragraph.html
@@ -0,0 +1,3 @@
+<p><b><a href="/birt/">The Business Intelligence and Reporting Tools (BIRT) Project</a></b>
+- open source and extensible tools and frameworks for easily incorporating reporting functions within applications.
+</p>
diff --git a/temporary/datatools/.cvsignore b/temporary/datatools/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/temporary/datatools/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/temporary/datatools/eclipse-project-info.xml b/temporary/datatools/eclipse-project-info.xml
new file mode 100644
index 0000000..d93b191
--- /dev/null
+++ b/temporary/datatools/eclipse-project-info.xml
@@ -0,0 +1,39 @@
+<?xml version='1.0'?>
+<project>
+ <name>Data Tools Platform</name>
+ <short-name>DTP</short-name>
+ <url>http://www.eclipse.org/datatools</url>
+ <summary>
+ Data Tools. is a vast domain, yet there are a fairly small number of
+ foundational requirements when developing with or managing data-centric
+ systems. A developer is interested in an environment that is easy to
+ configure, one in which the challenges of application development are
+ due to the problem domain, not the complexity of the tools employed.
+ Data management, whether by a developer working on an application, or
+ an administrator maintaining or monitoring a production system, should
+ also provide a consistent, highly usable environment that works well with
+ associated technologies.
+ </summary>
+ <description>
+ The Data Tools Platform project is an open source project of eclipse.org,
+ overseen by a Project Management Committee (PMC) and project leaders.
+ </description>
+ <shipping url="http://www.eclipse.org/datatools/downloads.html" aname="downloads"/>
+ <releases>
+ </releases>
+ <project-ip-log url=""/>
+ <community>
+ <mailing-list>dtp-arch</mailing-list>
+ <mailing-list>dtp-connect-dev</mailing-list>
+ <mailing-list>dtp-dev</mailing-list>
+ <mailing-list>dtp-models-dev</mailing-list>
+ <mailing-list>dtp-plan</mailing-list>
+ <mailing-list>dtp-pmc</mailing-list>
+ <mailing-list>dtp-reqs</mailing-list>
+ <mailing-list>dtp-sqldevtools-dev</mailing-list>
+ <newsgroup>eclipse.dtp</newsgroup>
+ <bugzilla>DataTools</bugzilla>
+ <blog></blog>
+ <cvs></cvs>
+ </community>
+</project>
diff --git a/temporary/datatools/home-page-one-liner.html b/temporary/datatools/home-page-one-liner.html
new file mode 100644
index 0000000..728dd4c
--- /dev/null
+++ b/temporary/datatools/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/datatools/">Data Tools Platform (DTP)</a>
diff --git a/temporary/datatools/project-page-paragraph.html b/temporary/datatools/project-page-paragraph.html
new file mode 100644
index 0000000..a499ccc
--- /dev/null
+++ b/temporary/datatools/project-page-paragraph.html
@@ -0,0 +1,2 @@
+<p><b><a href="/dsdp/">Device Software Development Platform (DSDP)</a></b> - frameworks and exemplary tools to support activities in each phase of the device software
+(embedded software) development process.</p>
diff --git a/temporary/dsdp/.cvsignore b/temporary/dsdp/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/temporary/dsdp/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/temporary/dsdp/home-page-one-liner.html b/temporary/dsdp/home-page-one-liner.html
new file mode 100644
index 0000000..766195d
--- /dev/null
+++ b/temporary/dsdp/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/dsdp/">Device Specific Development Platform (DSDPD)</a>
diff --git a/temporary/dsdp/project-page-paragraph.html b/temporary/dsdp/project-page-paragraph.html
new file mode 100644
index 0000000..9f7579e
--- /dev/null
+++ b/temporary/dsdp/project-page-paragraph.html
@@ -0,0 +1,2 @@
+<p><a href="/dsdp/">Device Software Development Platform (DSDP)</b></a> -
+frameworks and exemplary tools to support all phases of the device software (embedded) development process.</p>
diff --git a/temporary/eclipse/.cvsignore b/temporary/eclipse/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/temporary/eclipse/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/temporary/eclipse/home-page-one-liner.html b/temporary/eclipse/home-page-one-liner.html
new file mode 100644
index 0000000..2fa3912
--- /dev/null
+++ b/temporary/eclipse/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/eclipse/">Eclipse (Platform)</a>
diff --git a/temporary/eclipse/index.html/home-page-one-liner.html b/temporary/eclipse/index.html/home-page-one-liner.html
new file mode 100644
index 0000000..2fa3912
--- /dev/null
+++ b/temporary/eclipse/index.html/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/eclipse/">Eclipse (Platform)</a>
diff --git a/temporary/eclipse/index.html/project-page-paragraph.html b/temporary/eclipse/index.html/project-page-paragraph.html
new file mode 100644
index 0000000..2af34e4
--- /dev/null
+++ b/temporary/eclipse/index.html/project-page-paragraph.html
@@ -0,0 +1,5 @@
+<p><b><a href="/eclipse/">The Eclipse Top-Level Project</a></b>
+- an open source, robust, full-featured, commercial-quality, industry
+platform for the development of highly integrated tools
+and <a href="/rcp/">rich client applications</a>.
+ </p>
\ No newline at end of file
diff --git a/temporary/eclipse/project-page-paragraph.html b/temporary/eclipse/project-page-paragraph.html
new file mode 100644
index 0000000..2af34e4
--- /dev/null
+++ b/temporary/eclipse/project-page-paragraph.html
@@ -0,0 +1,5 @@
+<p><b><a href="/eclipse/">The Eclipse Top-Level Project</a></b>
+- an open source, robust, full-featured, commercial-quality, industry
+platform for the development of highly integrated tools
+and <a href="/rcp/">rich client applications</a>.
+ </p>
\ No newline at end of file
diff --git a/temporary/technology/.cvsignore b/temporary/technology/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/temporary/technology/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/temporary/technology/home-page-one-liner.html b/temporary/technology/home-page-one-liner.html
new file mode 100644
index 0000000..7c04116
--- /dev/null
+++ b/temporary/technology/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/technology/">Technology (incubator)</a>
diff --git a/temporary/technology/index.html/home-page-one-liner.html b/temporary/technology/index.html/home-page-one-liner.html
new file mode 100644
index 0000000..7c04116
--- /dev/null
+++ b/temporary/technology/index.html/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/technology/">Technology (incubator)</a>
diff --git a/temporary/technology/index.html/project-page-paragraph.html b/temporary/technology/index.html/project-page-paragraph.html
new file mode 100644
index 0000000..c5b800c
--- /dev/null
+++ b/temporary/technology/index.html/project-page-paragraph.html
@@ -0,0 +1,2 @@
+<p><b><a href="/technology/"> The Eclipse Technology Project (Incubators)</a></b> - new channels for open source developers, researchers, academics and educators to participate in the on-going evolution of Eclipse.
+Organized in three streams: Research, Incubators and Education.</p>
diff --git a/temporary/technology/project-page-paragraph.html b/temporary/technology/project-page-paragraph.html
new file mode 100644
index 0000000..c5b800c
--- /dev/null
+++ b/temporary/technology/project-page-paragraph.html
@@ -0,0 +1,2 @@
+<p><b><a href="/technology/"> The Eclipse Technology Project (Incubators)</a></b> - new channels for open source developers, researchers, academics and educators to participate in the on-going evolution of Eclipse.
+Organized in three streams: Research, Incubators and Education.</p>
diff --git a/temporary/tools/.cvsignore b/temporary/tools/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/temporary/tools/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/temporary/tools/home-page-one-liner.html b/temporary/tools/home-page-one-liner.html
new file mode 100644
index 0000000..c8d400a
--- /dev/null
+++ b/temporary/tools/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/tools/">Tools (C/C++, Modelling, ...)</a>
diff --git a/temporary/tools/index.html/.cvsignore b/temporary/tools/index.html/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/temporary/tools/index.html/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/temporary/tools/index.html/home-page-one-liner.html b/temporary/tools/index.html/home-page-one-liner.html
new file mode 100644
index 0000000..c8d400a
--- /dev/null
+++ b/temporary/tools/index.html/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/tools/">Tools (C/C++, Modelling, ...)</a>
diff --git a/temporary/tools/index.html/project-page-paragraph.html b/temporary/tools/index.html/project-page-paragraph.html
new file mode 100644
index 0000000..f2ba08a
--- /dev/null
+++ b/temporary/tools/index.html/project-page-paragraph.html
@@ -0,0 +1,2 @@
+<p><b><a href="/tools/">The Eclipse Tools Project</a></b> - a focal point for diverse tool
+projects on the Eclipse Platform in order to minimize overlap and duplication, ensure maximum sharing and creation of common components, and promote seamless interoperability between diverse types of tools.</p>
diff --git a/temporary/tools/project-page-paragraph.html b/temporary/tools/project-page-paragraph.html
new file mode 100644
index 0000000..f2ba08a
--- /dev/null
+++ b/temporary/tools/project-page-paragraph.html
@@ -0,0 +1,2 @@
+<p><b><a href="/tools/">The Eclipse Tools Project</a></b> - a focal point for diverse tool
+projects on the Eclipse Platform in order to minimize overlap and duplication, ensure maximum sharing and creation of common components, and promote seamless interoperability between diverse types of tools.</p>
diff --git a/temporary/tptp/.cvsignore b/temporary/tptp/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/temporary/tptp/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/temporary/tptp/home-page-one-liner.html b/temporary/tptp/home-page-one-liner.html
new file mode 100644
index 0000000..f5ee684
--- /dev/null
+++ b/temporary/tptp/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/tptp/">Test and Performance Tools Platform</a>
diff --git a/temporary/tptp/project-page-paragraph.html b/temporary/tptp/project-page-paragraph.html
new file mode 100644
index 0000000..b3b2417
--- /dev/null
+++ b/temporary/tptp/project-page-paragraph.html
@@ -0,0 +1,5 @@
+<p><b><a href="/tptp/">The Eclipse Test and Performance Tools Platform Project</a></b> - a generic, extensible, standards-based tool platform
+for specialized, differentiated, and interoperable test and performance tools
+throughout the software lifecycle (e.g., testing, tracing/profiling, tuning, logging, monitoring, analysis, autonomics, administration,
+etc) and across a spectrum of computing systems (e.g., from standalone through highly-distributed, and from embedded to
+enterprise).</p>
diff --git a/temporary/webtools/.cvsignore b/temporary/webtools/.cvsignore
new file mode 100644
index 0000000..553e3a8
--- /dev/null
+++ b/temporary/webtools/.cvsignore
@@ -0,0 +1 @@
+_vti_cnf
diff --git a/temporary/webtools/home-page-one-liner.html b/temporary/webtools/home-page-one-liner.html
new file mode 100644
index 0000000..741bfb8
--- /dev/null
+++ b/temporary/webtools/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/webtools/">Web Tools Platform</a>
diff --git a/temporary/webtools/index.html/home-page-one-liner.html b/temporary/webtools/index.html/home-page-one-liner.html
new file mode 100644
index 0000000..741bfb8
--- /dev/null
+++ b/temporary/webtools/index.html/home-page-one-liner.html
@@ -0,0 +1 @@
+<a href="/webtools/">Web Tools Platform</a>
diff --git a/temporary/webtools/index.html/project-page-paragraph.html b/temporary/webtools/index.html/project-page-paragraph.html
new file mode 100644
index 0000000..d022513
--- /dev/null
+++ b/temporary/webtools/index.html/project-page-paragraph.html
@@ -0,0 +1,3 @@
+<p><b><a href="/webtools/"> The Eclipse Web Tools Platform Project</a> </b> - a generic, extensible and standards-based tool platform
+for specialized, differentiated tools for J2EE and Web-centric application development.
+</p>
diff --git a/temporary/webtools/project-page-paragraph.html b/temporary/webtools/project-page-paragraph.html
new file mode 100644
index 0000000..d022513
--- /dev/null
+++ b/temporary/webtools/project-page-paragraph.html
@@ -0,0 +1,3 @@
+<p><b><a href="/webtools/"> The Eclipse Web Tools Platform Project</a> </b> - a generic, extensible and standards-based tool platform
+for specialized, differentiated tools for J2EE and Web-centric application development.
+</p>
diff --git a/tests/call.html b/tests/call.html
new file mode 100644
index 0000000..12d9e09
--- /dev/null
+++ b/tests/call.html
@@ -0,0 +1,89 @@
+<html><body>
+
+<form action="submit_modified.php" method="post">
+<input type="hidden" name="state" value="submit">
+Email: <input type="text" name="yourEmail"><br>
+Name: <input type="text" name="yourName"><br>
+Phone: <input type="text" name="yourPhone"><br>
+Dev Process: <input type="text" name="yourDevelopmentProcess"><br>
+Project: <input type="text" name="yourProject"><br>
+Host: <input type="text" name="hostProject"><br>
+Committer1: <input type="text" name="committerName1"><br>
+Committer Lead1: <input type="text" name="committerLead1"><br>
+Committer Website1: <input type="text" name="committerWebsite1"><br>
+Committer Email1: <input type="text" name="committerEmail1"><br>
+Committer Packages1: <input type="text" name="committerPackages1"><br>
+Download Privileges1: <input type="text" name="committerDownloadPrivileges1"><br>
+Mailing List1: <input type="text" name="mailingList1"><br>
+Short Description1: <input type="text" name="shortDescription1"><br>
+Long Description1: <input type="text" name="longDescription1"><br>
+Component name1: <input type="text" name="component1"><br>
+Component Description1: <input type="text" name="componentDescription1"><br>
+Component Owner1: <input type="text" name="componentOwner1"><br>
+
+Committer2: <input type="text" name="committerName2"><br>
+Committer Lead2: <input type="text" name="committerLead2"><br>
+Committer Website2: <input type="text" name="committerWebsite2"><br>
+Committer Email2: <input type="text" name="committerEmail2"><br>
+Committer Packages2: <input type="text" name="committerPackages2"><br>
+Download Privileges2: <input type="text" name="committerDownloadPrivileges2"><br>
+Mailing List2: <input type="text" name="mailingList2"><br>
+Short Description2: <input type="text" name="shortDescription2"><br>
+Long Description2: <input type="text" name="longDescription2"><br>
+Component name2: <input type="text" name="component2"><br>
+Component Description2: <input type="text" name="componentDescription2"><br>
+Component Owner2: <input type="text" name="componentOwner2"><br>
+
+Committer3: <input type="text" name="committerName3"><br>
+Committer Lead3: <input type="text" name="committerLead3"><br>
+Committer Website3: <input type="text" name="committerWebsite3"><br>
+Committer Email3: <input type="text" name="committerEmail3"><br>
+Committer Packages3: <input type="text" name="committerPackages3"><br>
+Mailing List3: <input type="text" name="mailingList3"><br>
+Short Description3: <input type="text" name="shortDescription3"><br>
+Long Description3: <input type="text" name="longDescription3"><br>
+Component name3: <input type="text" name="component3"><br>
+Component Description3: <input type="text" name="componentDescription3"><br>
+Component Owner3: <input type="text" name="componentOwner3"><br>
+
+Committer4: <input type="text" name="committerName4"><br>
+Committer Website4: <input type="text" name="committerWebsite4"><br>
+Committer Email4: <input type="text" name="committerEmail4"><br>
+Committer Packages4: <input type="text" name="committerPackages4"><br>
+Mailing List4: <input type="text" name="mailingList4"><br>
+Short Description4: <input type="text" name="shortDescription4"><br>
+Long Description4: <input type="text" name="longDescription4"><br>
+Component name4: <input type="text" name="component4"><br>
+Component Description4: <input type="text" name="componentDescription4"><br>
+Component Owner4: <input type="text" name="componentOwner4"><br>
+
+Committer5: <input type="text" name="committerName5"><br>
+Committer Website5: <input type="text" name="committerWebsite5"><br>
+Committer Email5: <input type="text" name="committerEmail5"><br>
+Committer Packages5: <input type="text" name="committerPackages5"><br>
+Mailing List5: <input type="text" name="mailingList5"><br>
+Short Description5: <input type="text" name="shortDescription5"><br>
+Long Description5: <input type="text" name="longDescription5"><br>
+Component name5: <input type="text" name="component5"><br>
+Component Description5: <input type="text" name="componentDescription5"><br>
+Component Owner5: <input type="text" name="componentOwner5"><br>
+
+Committer6: <input type="text" name="committerName6"><br>
+Committer Website6: <input type="text" name="committerWebsite6"><br>
+Committer Email6: <input type="text" name="committerEmail6"><br>
+Committer Packages6: <input type="text" name="committerPackages6"><br>
+Component name6: <input type="text" name="component6"><br>
+Component Description6: <input type="text" name="componentDescription6"><br>
+Component Owner6: <input type="text" name="componentOwner6"><br>
+
+Committer7: <input type="text" name="committerName7"><br>
+Committer Website7: <input type="text" name="committerWebsite7"><br>
+Committer Email7: <input type="text" name="committerEmail7"><br>
+Committer Packages7: <input type="text" name="committerPackages7"><br>
+
+Newsgroup Paragraph: <input type="text" name="projectNewsgroupParagraph"><br>
+Initial Components: <input type="text" name="initialComponents"><br>
+<input type=submit>
+</form>
+
+</body></html>
diff --git a/tests/data.xml b/tests/data.xml
new file mode 100644
index 0000000..5f6be21
--- /dev/null
+++ b/tests/data.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<markers>
+ <marker lat="43.672" lng="-79.489"/>
+ <marker lat="37.441" lng="-122.141"/>
+ <marker lat="37.322" lng="-122.213"/>
+ <marker lat="37.745" lng="-122.420"/>
+</markers>
diff --git a/tests/foundation.php b/tests/foundation.php
new file mode 100644
index 0000000..8af93b6
--- /dev/null
+++ b/tests/foundation.php
@@ -0,0 +1,76 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_foundation_ro.class.php";
+
+?>
+
+<br />
+<td width="100%" valign="top" class="normal">
+<font class="large_title">Bugzilla database schema</font><br /><br />
+</td>
+
+<?php
+$dbc = new DBConnectionFoundation();
+$dbh = $dbc->connect();
+
+$sql = "SHOW TABLES";
+$rs = mysql_query($sql, $dbh);
+echo mysql_error($dbh);
+
+
+while($myrow = mysql_fetch_assoc($rs)){
+$TableName = $myrow['Tables_in_eclipsefoundation'];
+$sql = "DESCRIBE " . $TableName;
+$rs2 = mysql_query($sql, $dbh);
+echo mysql_error($dbh);
+
+
+$sql = "SELECT COUNT(*) AS RecordCount FROM " . $TableName;
+$rs3 = mysql_query($sql, $dbh);
+echo mysql_error($dbh);
+
+$myrow3 = mysql_fetch_assoc($rs3);
+
+if($myrow3['RecordCount'] > 0) {
+
+?>
+<table border="1">
+<tr><td colspan="6"><b>Table: <?= $TableName ?> </b></td></tr>
+<tr>
+<td>Field </td>
+<td>Type </td>
+<td>Null </td>
+<td>Key </td>
+<td>Default </td>
+<td>Extra </td>
+</tr>
+<?php
+
+
+while($myrow2 = mysql_fetch_assoc($rs2)) {
+?>
+<tr>
+<td><?= $myrow2['Field'] ?> </td>
+<td><?= $myrow2['Type'] ?> </td>
+<td><?= $myrow2['Null'] ?> </td>
+<td><?= $myrow2['Key'] ?> </td>
+<td><?= $myrow2['Default'] ?> </td>
+<td><?= $myrow2['Extra'] ?> </td>
+</tr>
+<?php
+}
+
+echo "<tr><td colspan=\"6\">" . number_format($myrow3['RecordCount'], 0, '', ',') . " row(s)</td></tr></table><br />";
+}
+}
+
+
+$dbc->disconnect();
+
+$rs = null;
+$rs2 = null;
+$rs3 = null;
+$dbh = null;
+$dbc = null;
+
+?>
diff --git a/tests/foundation_projects.php b/tests/foundation_projects.php
new file mode 100644
index 0000000..1b03a6a
--- /dev/null
+++ b/tests/foundation_projects.php
@@ -0,0 +1,21 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_foundation_ro.class.php";
+
+$dbc = new DBConnectionFoundation();
+$dbh = $dbc->connect();
+
+$sql = "SELECT * FROM Projects WHERE Level <> 0 AND UrlIndex NOT LIKE ''";
+$rs = mysql_query($sql, $dbh);
+echo mysql_error($dbh);
+
+while($row = mysql_fetch_assoc($rs)){
+ echo $row['ProjectID']."<br>\n";
+ #echo "<b>".$row['Name']."</b>|".$row['ProjectID']."|".$row['ParentProjectID']."|".$row['UrlIndex']."|".$row['UrlDownload']."<br>\n";
+}
+
+$dbc->disconnect();
+
+$rs = null;
+
+?>
diff --git a/tests/google.html b/tests/google.html
new file mode 100644
index 0000000..9d55fa8
--- /dev/null
+++ b/tests/google.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <script src="http://maps.google.com/maps?file=api&v=1&key=ABQIAAAAhRoXexB6DsOeOsg5zak8bxT4bqueZzmlWMPpMo4vH427YXUnbxQKNUwVYFh5uBKFCtJrgAwZq3U0sQ" type="text/javascript"></script>
+ </head>
+ <body>
+ <div id="map" style="width: 800px; height: 500px"></div>
+ <script type="text/javascript">
+ //<![CDATA[
+
+ // Center the map on Palo Alto
+ var map = new GMap(document.getElementById("map"));
+ map.addControl(new GLargeMapControl());
+ map.addControl(new GMapTypeControl());
+ map.centerAndZoom(new GPoint(-96.0, 42.0), 13);
+
+ // Download the data in data.xml and load it on the map. The format we
+ // expect is:
+ // <markers>
+ // <marker lat="37.441" lng="-122.141"/>
+ // <marker lat="37.322" lng="-121.213"/>
+ // </markers>
+ var request = GXmlHttp.create();
+ request.open("GET", "data.xml", true);
+ request.onreadystatechange = function() {
+ if (request.readyState == 4) {
+ var xmlDoc = request.responseXML;
+ var markers = xmlDoc.documentElement.getElementsByTagName("marker");
+ for (var i=0; i<markers.length; i++) {
+ var point = new GPoint(parseFloat(markers[i].getAttribute("lng")),
+ parseFloat(markers[i].getAttribute("lat")));
+ var marker = new GMarker(point);
+ map.addOverlay(marker);
+ }
+ }
+ }
+ request.send(null);
+
+ //]]>
+ </script>
+ </body>
+</html>
diff --git a/tests/groups.txt b/tests/groups.txt
new file mode 100644
index 0000000..eed2836
--- /dev/null
+++ b/tests/groups.txt
@@ -0,0 +1,86 @@
+############################################################################
+# This file contains the glue to all the stats computation information. #
+# The php code depends on the correct information on this file to #
+# determine the relationship between the project name, its newsgroup, its #
+# mailing list(s), its ID on the dashboard DB and its description. #
+# #
+# All lines starting with a hash character (#) are ignored. #
+# #
+# Format of the file is: #
+# #
+# ID|Newsgroup|Project name|mailing list1, maling list2, ... |Description #
+# #
+############################################################################
+9|eclipse.technology.xsd|XSD||XML Schema Infoset Model
+#
+14|eclipse.technology.wsvt|WSVT||Web Service Validation Tools
+#
+28|eclipse.technology.voicetools|Voice Tools|vtp-dev|Voice Tools Project
+#
+16|eclipse.tools.ve|VE|ve-dev|Visual Editor Tools
+#
+17|eclipse.tools.uml2|UML2|uml2-dev|Unified Modeling Language 2.0
+#
+41|eclipse.dsdp.tm|TM|dsdp-tm-dev|DSDP Target Management Project
+#
+27|eclipse.technology.ptp|PTP|ptp-dev|Parallel Tools Platform
+#
+35|eclipse.technology.phoenix|Phoenix|phoenix-dev|Phoenix - eclipse.org website redesign
+#
+21|eclipse.technology.pollinate|Pollinate|pollinate-dev|Pollinate Project
+#
+1|eclipse.platform|Platform|platform-dev,platform-ant-dev,platform-compare-dev,platform-core-dev,platform-cvs-dev,platform-debug-dev,platform-doc-dev,platform-help-dev,platform-releng-dev,platform-scripting-dev,platform-search-dev,platform-swt-dev,platform-team-dev,platform-text-dev,platform-ua-dev,platform-ui-dev,platform-update-dev,platform-webdav-dev|Eclipse Platform
+#
+2|eclipse.pde|PDE|pde-dev,pde-build-dev,pde-doc-dev,pde-ui-dev|Plugin Development Environment
+#
+31|eclipse.technology.mylar|Mylar|mylar-dev,mylar-announce,mylar-users|Mylar Project
+#
+40|eclipse.technology.mddi|MDDI|mddi-dev|Model Driven Development Integration Project
+#
+32|eclipse.technology.lepido|Lepido|lepido-dev|Lepido, Tools for Apache Cocoon developer discussions
+#
+39|eclipse.technology.jsr220-orm|JSR220-ORM|jsr220orm-dev|JSR220-ORM project
+#
+3|eclipse.tools.jdt|JDT|jdt-dev,jdt-apt-dev,jdt-core-dev,jdt-doc-dev,jdt-ui-dev,jdt-debug-dev|Java Development Toolkit
+#
+13|eclipse.tools.hyades|Hyades||Automated Software Quality Tools
+#
+30|eclipse.technology.higgins|Higgins|higgins-dev|Higgins, The Trust Framework
+#
+29|eclipse.technology.gmf|GMF|gmf-dev,gmf-releng|Graphical Modeling Framework
+#
+12|eclipse.technology.gmt|GMT|gmt-dev|Generative Model Transformer
+#
+5|eclipse.tools.gef|GEF|gef-dev|Graphical Editing Framework
+#
+23|eclipse.technology.ercp|ERCP|ercp-dev|Embedded Rich Client Platform (RCP) Project
+#
+8|eclipse.tools.emf|EMF|emf-dev|Eclipse Modeling Framework
+#
+20|eclipse.webtools|Web Tools|wtp-dev,wtp-jst-dev,wtp-pmc,wtp-releng,wtp-requirements,wtp-wst-dev|Web Tools
+#
+26|eclipse.tptp|TPTP|tptp-monitoring-tools-dev,tptp-news,tptp-platform-dev,tptp-pmc,tptp-testing-tools-dev,tptp-tracing-profiling-tools-dev|Eclipse Test & Performance Tools Platform Project
+#
+42|eclipse.technology.emft|EMFT|emft-dev|Eclipse Modeling Framework Technology
+#
+25|eclipse.technology.ecf|ECF|ecf-dev|Eclipse Communications Framework
+#
+15|eclipse.technology.ecesis|ECESIS|ecesis-dev|Eclipse Techology Open Courseware Project
+#
+37|eclipse.dsdp|DSDP|dsdp-dev,dsdp-dd-dev|The Device Software Development Platform
+#
+36|eclipse.dtp|Data Tools|dtp-arch,dtp-connect-dev,dtp-dev,dtp-models-dev,dtp-plan,dtp-pmc,dtp-reqs,dtp-sqldevtools-dev|Data Tools platform
+#
+18|eclipse.technology.cme|CME|cme-dev,cme-users|Concern Manipulation Environment for AOSD
+#
+4|eclipse.tools.cdt|CDT|cdt-contrib-dev,cdt-core-dev,cdt-core-inbox,cdt-debug-dev,cdt-dev,cdt-doc-dev,cdt-doc-inbox,cdt-patch,cdt-test-dev,cdt-ui-dev|C/C++ Development Toolkit
+#
+24|eclipse.birt|BIRT|birt-charting-dev,birt-dev,birt-news,birt-pmc,birt-proposal,birt-report-designer-dev,birt-report-engine-dev|Business Intelligence and Reporting Tools (BIRT) Project
+#
+33|eclipse.technology.buckminster|Buckminster|buckminster-dev|The Buckminster dependency project
+#
+10|eclipse.technology.aspectj|AspectJ|aspectj-announce,aspectj-dev,aspectj-users|AspectJ Language and Compiler
+#
+38|eclipse.technology.alf|ALF|alf-dev,alf-events,alf-req|Application Lifecycle Framework
+#
+6|eclipse.technology.ajdt|AJDT|ajdt-dev|AspectJ Development Tools
diff --git a/tests/stats_test.php b/tests/stats_test.php
new file mode 100644
index 0000000..036f9ca
--- /dev/null
+++ b/tests/stats_test.php
@@ -0,0 +1,29 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+echo "<HTML>\n<HEAD><TITLE>Test page</TITLE></HEAD>\n";
+echo "<BODY>\n<H1>Test</H1>\n";
+
+$table = "stats";
+
+$query = "SELECT * FROM ".$table." WHERE stats_date = DATE_SUB(\"".date('Y-m-d')."\", INTERVAL 1 DAY)";
+
+#$query = "SELECT * FROM ".$table." WHERE stats_date = \"".date('Y-m-d')."\"";
+echo $query."<br>";
+$res = mysql_query($query,$db_handle);
+while($a = mysql_fetch_assoc($res)){
+ print_r($a);
+ echo "<br>";
+}
+
+echo "</BODY></HTML>";
+
+$db_handle = null;
+$db_connection = null;
+
+
+?>
diff --git a/tests/submit_modified.php b/tests/submit_modified.php
new file mode 100644
index 0000000..d50cd82
--- /dev/null
+++ b/tests/submit_modified.php
@@ -0,0 +1,324 @@
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<title>New Project Validation Phase Provisioning Request</title>
+<link rel="stylesheet" href="../default_style.css">
+</head>
+
+<body lang=EN-US link=blue vlink=purple>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+<tr>
+ <td align=LEFT valign=TOP colspan="2" bgcolor="#0080C0"><strong><font color="#FFFFFF" face="Arial,Helvetica">Eclipse Foundation New Committer Request Form</font></strong></td
+>
+</tr>
+<tr>
+ <td>
+
+<?php
+
+function test_mail($a,$b,$c){
+ echo "<pre>$a\n$b\n$c</pre>";
+}
+
+function test_mail2($a,$b,$c,$d){
+ echo "<pre>$a\n$b\n$c\n$d</pre>";
+}
+
+function mail_string($committer_number){
+ $committer_name = "committerName" . $committer_number;
+ $committer_email = "committerEmail" . $committer_number;
+ $committer_website = "committerWebsite" . $committer_number;
+ $committer_packages = "committerPackages" . $committer_number;
+
+ $tmp_str .= "
+ Name: " . $_POST[$committer_name] . "
+ Email: " . $_POST[$committer_email] . "
+ ";
+ if ($committer_number <= 3){
+ $committer_lead = "committerLead" + $committer_number;
+ if ($_POST[$committer_lead] != ""){
+ $tmp_str .= "Project Lead: " . $_POST[$committer_lead] . "
+ ";
+ }
+ }
+ if ($_POST[$committer_website] != ""){
+ $tmp_str .= "Website: " . $_POST[$committer_website] . "
+ ";
+ }
+ if ($committer_number <= 2){
+ $committer_download = "committerDownloadPrivileges" + $committer_number;
+ if ($_POST[$committer_download] != ""){
+ $tmp_str .= "Download: " . $_POST[$committer_download] . "
+ ";
+ }
+ }
+ $tmp_str .= "Packages: " . $_POST[$committer_packages] . "
+ ";
+
+ return $tmp_str;
+}
+
+function mail_committers($committer_number){
+ $committer_name = "committerName" . $committer_number;
+ $committer_email = "committerEmail" . $committer_number;
+ $committer_packages = "committerPackages" . $committer_number;
+ $committer_website = "committerWebsite" . $committer_number;
+
+$cmailstr = "
+
+Committer Request
+
+Name: " . $_POST['yourName'] . "
+
+Email: " . $_POST['yourEmail'] . "
+
+Committer Info: ===================
+Has been elected: initial project creation: " . $_POST['yourProject'] . "
+
+Name: " . $_POST[$committer_name] . "
+Project: " . $_POST['yourProject'] . "
+
+Email: " . $_POST[$committer_email] . "
+
+CVS package List: " . $_POST[$committer_packages] . "
+Web Package List: " . $_POST[$committer_website] . "
+
+-------------------------------------------------
+Dear " . $_POST[$committer_name] . ",
+If you do not already have a dev.eclipse.org unix account,
+please follow the instructions in item 3 on this web page:
+ http://www.eclipse.org/legal/newcommitter.html
+If you have not already done so, you need to fill out a web
+form questionnaire and possibly one or two paper agreements.
+Your committer account cannot be processed until these
+forms are received.
+
+ Thank you.
+
+";
+ $CEMailDest = "emo@eclipse.org";
+ if ($_POST[$committer_email] != ""){
+ $CEMailDest .= "," . $_POST[$committer_email];
+ }
+ $CEMailSubject = $_POST[$committer_name] . " - New Committer Request Form";
+ test_mail($CEMailDest, $CEMailSubject, $cmailstr);
+}
+
+function committers(){
+ for($i=1;$i<=7;$i++){
+ $committer_name = "committerName".$i;
+ if ($_POST[$committer_name] != ""){
+ $tmp_str .= mail_string($i);
+ mail_committers($i);
+ }else
+ if (($_POST[$committer_name] == "") && ($i == 1)){
+ $tmp_str .= "* ERROR: No committers listed *
+ ";
+ }
+ }
+
+ return $tmp_str;
+}
+
+function website(){
+ for($i=1;$i<=7;$i++){
+ $committer_website = "committerWebsite".$i;
+ $committer_name = "committerName".$i;
+ $committer_email = "committerEmail".$i;
+
+ if ($_POST[$committer_website] != ""){
+ $tmp_str .= "
+ Name: " . $_POST[$committer_name] . "
+ Email: " . $_POST[$committer_email] . "
+ ";
+ }else
+ if (($_POST[$committer_website] == "") && ($i == 1)){
+ $tmp_str .= "* ERROR: No committers were given website access *
+ ";
+ }
+ }
+
+ return $tmp_str;
+}
+
+function download_privileges(){
+ for($i=1;$i<=2;$i++){
+ $committerDownloadPrivileges = "committerDownloadPrivileges".$i;
+ $committerName = "committerName".$i;
+ $committerEmail = "committerEmail".$i;
+
+ if ($_POST[$committerDownloadPrivileges] != ""){
+ $tmp_str .= "
+ Name: " . $_POST[$committerName] . "
+ Email: " . $_POST[$committerEmail] . "
+ ";
+ }else
+ if (($_POST[$committerDownloadPrivileges] == "") && ($i == 1)){
+ $tmp_str .= "* ERROR: No committers were given download access *
+ ";
+ }
+ }
+
+ return $tmp_str;
+}
+
+function mailing_lists(){
+ for($i=1;$i<=5;$i++){
+ $mailing_list = "mailingList".$i;
+ $short_description = "shortDescription".$i;
+ $long_description = "longDescription".$i;
+
+ if ($_POST[$mailing_list] != ""){
+ $tmp_str .= "
+ Name: " . $_POST[$mailing_list] . "
+ Short Description: " . $_POST[$short_description] . "
+ Long Description: " . $_POST[$long_description] . "
+ ";
+ }else
+ if (($_POST[$mailing_list] == "") && ($i == 1)){
+ $tmp_str .= "* ERROR: No mailing lists specified *
+ ";
+ }
+ }
+
+ return $tmp_str;
+}
+
+function components(){
+ for($i=1;$i<=6;$i++){
+ $component = "component".$i;
+ $component_description = "componentDescription".$i;
+ $component_owner = "componentOwner".$i;
+
+ if ($_POST[$component] != ""){
+ $tmp_str .= "
+ Name: " . $_POST[$component] . "
+ Description: " . $_POST[$component_description] . "
+ Owner: " . $_POST[$component_owner] . "
+ ";
+ }else
+ if (($_POST[$component] == "") && ($i == 1)){
+ $tmp_str .= "* ERROR: No Bugzilla components specified *
+ ";
+ }
+ }
+
+ return $tmp_str;
+}
+
+#############
+# Main Code #
+#############
+
+$EMailDest = "webmaster@eclipse.org,bjorn.freeman-benson@eclipse.org";
+$EMailSubject = "New Project Validation Phase Provisioning Request Form";
+$EMailHeaders = "From: \"Eclipse WebMaster (Automated)\"<webmaster@eclipse.org>\n";
+$EMailHeaders .= "X-Mailer: Eclipse.org automailer process\n";
+
+$_STATE = $_POST['state'];
+
+if ($_STATE == "submit"){
+ echo "Thank you for submitting this form. You have submitted:";
+
+$mailStr .= "
+New Project Validation Phase Provisioning Request
+
+Name: " . $_POST['yourName'] . "
+Email: " . $_POST['yourEmail'] . "
+Phone: " . $_POST['yourPhone'] . "
+Process: " . $_POST['yourDevelopmentProcess'] . "
+
+New Project: " . $_POST['yourProject'] . "
+Host Project: " . $_POST['hostProject'] . "
+
+_____ Committers _____
+1. Create UNIX accounts for these committers.
+2. Update the Foundation database to record that these people are
+ committers and/or leads on project " . $_POST['yourProject'] . "
+";
+
+$mailStr .= committers();
+
+$mailStr .= "
+_____ Intial CVS Components _____
+" . $_POST['initialComponents'] . "
+";
+
+####################
+# Project Websites #
+####################
+
+$mailStr .= "
+_____ Project Newsgroup _____
+Change the newsgroup paragraph to:
+" . $_POST['projectNewsgroupParagraph'] . "
+
+_____ Project Proposal ______
+1. Move the proposal from the active section of the www.eclipse.org/proposals page to the archive section.
+2. Move the project from the proposal section of the Technology (or other) PMC to the sub-projects section.
+
+_____ Project Website ______
+1. Create the /home/cvs/org.eclipse website CVS component.
+2. Create the initial \"intentionally blank\" default index.html and main.html files in that component.
+3. Create the www.eclipse.org/[shortname] directory
+4. Set up the auto-update mechanism from the CVS to the www.eclipse.org directory
+5. Grant CVS access for the website to:
+";
+
+
+$mailStr .= website();
+
+#############
+# Downloads #
+#############
+
+$mailStr .= "
+_____ Downloads ______
+1. Create the download1.eclipse.org downloads area. Provide passwords to:
+";
+
+$mailStr .= download_privileges();
+
+#################
+# Mailing Lists #
+#################
+
+$mailStr .= "
+_____ Mailing Lists _____";
+
+$mailStr .= mailing_lists();
+
+#######################
+# Bugzilla Components #
+#######################
+
+$mailStr .= "
+_____ Bugzilla Components _____";
+
+
+$mailStr .= components();
+
+$EMailSubject = $EMailSubject . " (" . $_POST['yourProject'] . ")";
+
+if ($_POST['yourEmail'] != ""){
+ $EMailDest .= "," . $_POST['yourEmail'];
+}
+
+test_mail2($EMailDest, $EMailSubject, $mailStr, $EMailHeaders);
+
+echo "<pre>
+" . $mailStr . "
+</pre>
+";
+
+}
+
+?>
+
+ </td>
+</tr>
+</table>
+
+</body>
+</html>
diff --git a/tests/test.php b/tests/test.php
new file mode 100644
index 0000000..9c4b555
--- /dev/null
+++ b/tests/test.php
@@ -0,0 +1,32 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+
+$db_connection = new DBConnectionDashboard();
+$db_handle = $db_connection->connect();
+
+echo "<HTML>\n<HEAD><TITLE>Test page</TITLE></HEAD>\n";
+echo "<BODY>\n<H1>Test</H1>\n";
+
+if ($_SERVER['SERVER_NAME'] == "phoenix.eclipse.org")
+ $table = "test_stats";
+else
+ $table = "stats";
+
+#$table = mail_stats;
+
+$query = "SELECT * FROM ".$table." WHERE stats_date =\"".date('Y-m-d')."\"";
+echo $query."<br>";
+$res = mysql_query($query,$db_handle);
+while($a = mysql_fetch_assoc($res)){
+ print_r($a);
+ echo "<br>";
+}
+
+echo "</BODY></HTML>";
+
+$db_handle = null;
+$db_connection = null;
+
+
+?>
diff --git a/tests/test2.php b/tests/test2.php
new file mode 100644
index 0000000..d075262
--- /dev/null
+++ b/tests/test2.php
@@ -0,0 +1,27 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection.class.php";
+$db_connection = new DBConnection();
+$db_handle = $db_connection->connect();
+
+echo "<HTML>\n<HEAD><TITLE>Test page</TITLE></HEAD>\n";
+echo "<BODY>\n<H1>Test2</H1>\n";
+
+//$query = "SELECT * FROM mailing_lists WHERE is_private <> 1";
+$query = "SELECT * FROM mailing_list_stats WHERE list_name LIKE 'alf%'";
+//$query = "SELECT total_member_count FROM mailing_list_stats WHERE summary_date = DATE_SUB(NOW(), INTERVAL 1 DAY) AND (list_name = \"ajdt-dev\")";
+//$query = "SELECT SUM(total_member_count) AS tot_count FROM mailing_list_stats WHERE summary_date >= DATE_SUB(\"2005-10-05\", INTERVAL 7 DAY) AND list_name = \"ajdt-dev\"";
+echo $query."<br>";
+$res = mysql_query($query,$db_handle);
+while($a = mysql_fetch_assoc($res))
+// echo "Total Member Count: ".$a['total_member_count'];
+ echo "Name: ".$a['list_name']." Summary date: ".$a['summary_date']." Daily post count: ".$a['daily_post_count']." Member count: ".$a['total_member_count']."<br>";
+// echo "List name: ".$a['list_name']." Description: ".$a['list_description']."<br>";
+// echo "Count: ".$a['tot_count']."<br>";
+
+echo "</BODY></HTML>";
+
+$db_handle = null;
+$db_connection = null;
+
+?>
diff --git a/tests/test3.php b/tests/test3.php
new file mode 100644
index 0000000..a0b8824
--- /dev/null
+++ b/tests/test3.php
@@ -0,0 +1,23 @@
+<?php
+
+require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
+require_once "../stats/hostname.php";
+
+$dbc_cache = new DBConnectionDashboard();
+$db_handle = $dbc_cache->connect();
+
+$query = "SELECT stats_date FROM ".stats_table()." ORDER BY stats_date DESC LIMIT 1";
+$result = mysql_query($query,$db_handle);
+$row = mysql_fetch_assoc($result);
+$last_date = $row['stats_date'];
+
+echo "<HTML><BODY>";
+echo "QRY: ".$query;
+echo "</BODY></HTML>";
+
+$query = null;
+$result = null;
+$dbc_cache = null;
+$db_handle = null;
+
+?>
diff --git a/timeline/_projectCommon.php b/timeline/_projectCommon.php
new file mode 100644
index 0000000..86c3fe8
--- /dev/null
+++ b/timeline/_projectCommon.php
@@ -0,0 +1,5 @@
+<?php
+
+include("../_projectCommon.php");
+
+?>
diff --git a/timeline/arrow.gif b/timeline/arrow.gif
new file mode 100644
index 0000000..acbff85
--- /dev/null
+++ b/timeline/arrow.gif
Binary files differ
diff --git a/timeline/dots.gif b/timeline/dots.gif
new file mode 100644
index 0000000..efb755d
--- /dev/null
+++ b/timeline/dots.gif
Binary files differ
diff --git a/timeline/how-things-work.php b/timeline/how-things-work.php
new file mode 100644
index 0000000..16b3d81
--- /dev/null
+++ b/timeline/how-things-work.php
@@ -0,0 +1,41 @@
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "How The Master Timeline Page Works";
+$pageKeywords = "timeline";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+ The <a href="master-timeline.php">master timeline page</a> is generated by a PHP script that reads the ".dates.txt" files in the top-level web directories of the major Eclipse projects. The ".dates.txt" file has the following structure:
+ <ul>
+ <li>Line 1: project abbreviation/name</li>
+ <li>Line 2: project URL</li>
+ <li>Lines 3..N: release name <space> month / year <space> kind of release <space> url<br>
+ The kind of release and planning document url are optional fields; the defaults are "Planned" and "none".
+ <ul>
+ <li><code>Completed</code>; the url should point to the release
+ download</li>
+ <li><code>Planned</code>; the url should point to the planning
+ document</li>
+ <li><code>Tentative</code>; the optional url should point to the
+ planning document</li>
+ </ul>
+ </li>
+ </ul>
+ <p> For example:
+ <pre>TPTP
+http://www.eclipse.org/tptp
+3.3 6/2004 Completed http://www.eclipse.org/tptp/home/downloads/drops/3.3.0.html
+4.1 6/2005 Planned http://www.eclipse.org/tptp/home/project_info/...&file=TPTPFeatures_4.1.xml
+5.0 6/2006 Tentative</pre>
+ With more work on the script, these files could be XML instead of straight
+ text.
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
\ No newline at end of file
diff --git a/timeline/index.php b/timeline/index.php
new file mode 100644
index 0000000..91635c7
--- /dev/null
+++ b/timeline/index.php
@@ -0,0 +1,292 @@
+<?php
+
+include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-before-definitions.php");
+
+$pageTitle = "Master Timeline";
+$pageKeywords = "timeline";
+$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
+
+include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-after-definitions.php");
+?>
+ <div id="maincontent">
+ <div id="midcolumn">
+ <h1><?= $pageTitle ?></h1>
+
+
+<?php
+
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/classes/projects/projectList.class.php");
+
+define("QUARTERS_TO_DISPLAY",8);
+define("TOTAL_COLSPAN",24);
+define ("DATES_TXT",".dates.txt");
+
+$rows = array();
+$baseyear = date('Y'); // This year
+
+function getfile($file){
+ $fp = fopen($file,"r");
+ while(!feof($fp))
+ $output .= fgets($fp,1024);
+ fclose($fp);
+
+ return $output;
+}
+
+$rows = array();
+$baseyear = date('Y'); // This year
+$basemonth = date('m');
+switch($basemonth){
+ case ($basemonth <= 3) : $basemonth = 10;
+ $baseyear--;
+ break;
+ case ($basemonth <= 6) : $basemonth = 1;
+ break;
+ case ($basemonth <= 9) : $basemonth = 4;
+ break;
+ case ($basemonth <= 12): $basemonth = 7;
+ break;
+}
+
+function makedates($year,$month){
+ $lastyear = 0;
+ $i = 0;
+ $totalspan = 0;
+
+ if ($month <= 3){
+ $firstquarter = 1;
+ $firstcolspan = 12;
+ $lastcolspan = 12;
+ }else if ($month <= 6){
+ $firstquarter = 2;
+ $firstcolspan = 9;
+ $lastcolspan = 3;
+ }else if ($month <= 9){
+ $firstquarter = 3;
+ $firstcolspan = 6;
+ $lastcolspan = 6;
+ }else{
+ $firstquarter = 4;
+ $firstcolspan = 3;
+ $lastcolspan = 9;
+ }
+
+ $quarter = $firstquarter;
+ while($i<QUARTERS_TO_DISPLAY){
+ if ($i == 0){
+ $colspan = $firstcolspan;
+ $totalspan += $colspan;
+ }else if ($lastyear != $year){
+ $colspan = TOTAL_COLSPAN - $totalspan - $lastcolspan;
+ if ($colspan == 0)
+ $colspan += $lastcolspan;
+ $totalspan += $colspan;
+ }
+ if ($lastyear != $year){
+ $years[] = array($year,$colspan);
+ $lastyear = $year;
+ }
+ if ($quarter % 4 == 0)
+ $year++;
+ $q = array('Q'.$quarter,3);
+ $quarters[$i++] = $q;
+ $quarter = (++$quarter % 4);
+ if ($quarter == 0)
+ $quarter = 4;
+ }
+
+ return array($years,$quarters);
+}
+
+list($years,$quarters) = makedates($baseyear,$basemonth);
+
+$c = count($years)-1;
+$lastyear = $years[$c][0];
+$c = count($quarters)-1;
+$lastmonth = substr($quarters[$c][0],1,1); // Get last quarter
+$lastmonth *= 3; // 3 months in each quarter
+switch($basemonth){
+ case ($basemonth <= 3) : $firstmonth = 1;
+ break;
+ case ($basemonth <= 6) : $firstmonth = 4;
+ break;
+ case ($basemonth <= 9) : $firstmonth = 7;
+ break;
+ case ($basemonth <= 12): $firstmonth = 10;
+ break;
+}
+
+$projectList = new ProjectList();
+$projectList->selectProjectList("", "", "1", "", "", "");
+$count = $projectList->getCount();
+for($pr=0;$pr<$projectList->getCount();$pr++){
+ $project = $projectList->getItemAt($pr);
+ $projectName = $project->getName();
+ $url = $project->getUrlIndex();
+ if (substr($url,-1,1) != "/")
+ $url .= "/";
+ $url .= DATES_TXT;
+ $localfile = str_replace("http://www.eclipse.org/",$_SERVER['DOCUMENT_ROOT']."/", $url);
+ $localfile = str_replace("http://eclipse.org/", $_SERVER['DOCUMENT_ROOT']."/", $localfile);
+ if (!file_exists($localfile)){
+ $localfile = str_replace("http://www.eclipse.org/", "/home/data/httpd/www.eclipse.org/html/", $url);
+ $localfile = str_replace("http://eclipse.org/", "/home/data/httpd/www.eclipse.org/html/", $localfile);
+ $indexpos = strpos($localfile,"index.");
+ if ($indexpos){
+ $localfile = substr($localfile,0,$indexpos);
+ if (substr($localfile,-1,1) != "/")
+ $localfile .= "/";
+ $localfile .= DATES_TXT;
+ }
+ }
+ if (!file_exists($localfile))
+ continue;
+
+ $contents = getfile($localfile);
+ $lines = explode("\n", $contents);
+ $arow = array($lines[0], $lines[1], array()); // project name, url, array
+ for($i=2;$i<count($lines);$i++){ // Find dates on the rest of the lines
+ $words = explode(" ", $lines[$i]);
+ if (strlen($words[0]) > 0){
+ list($name, $month, $year,$url,$kind) = sscanf($lines[$i], "%s %d/%d %s %s");
+ if (($year == $lastyear) && ($month > $lastmonth))
+ continue;
+ if (($year == $baseyear) && ($month < $firstmonth))
+ continue;
+ if (($month >= 1) && ($month <= 12) && ($year >= $baseyear)){
+ $x = $month + (($year - $baseyear) * 12) - $basemonth + 1;
+ $arow[2][] = array($x, $words[0], $url, $kind);
+ }
+ }
+ }
+ $rows[] = $arow;
+}
+
+?>
+
+<table border=0 cellspacing="0" cellpadding="0">
+
+<!-- YEARS -->
+<tr><td></td>
+
+<?php
+$max_month = 0;
+foreach($years as $v2){
+ echo "<td colspan=".$v2[1]." align=\"center\" bgcolor=gray><table width=\"100%\" cellspacing=\"1\" cellpadding=\"0\">";
+ echo "<tr><td bgcolor=\"#0000FF\" align=\"center\"><font color=\"#FFFF00\">" .$v2[0]."</font>";
+ echo "</td></tr></table></td>\n";
+ $max_month += $v2[1];
+}
+?>
+</tr>
+<!-- QUARTERS -->
+<tr><td></td>
+
+<?php
+foreach($quarters as $v2){
+ echo "<td colspan=".$v2[1]." align=\"center\" bgcolor=gray><table width=\"75\" cellspacing=\"1\" cellpadding=\"0\">";
+ echo "<tr><td bgcolor=\"#0000FF\" align=\"center\"><font color=\"#FFFF00\">" .$v2[0]."</font>";
+ echo "</td></tr></table></td>\n";
+}
+?>
+</tr>
+
+<!-- INITIAL ARROWS -->
+<tr>
+<?php
+$arrows = array();
+$arrows[0] = " ";
+for($i=1;$i<=$max_month;$i++)
+ $arrows[$i] = " ";
+foreach($rows as $arow)
+ foreach ($arow[2] as $releases)
+ $arrows[$releases[0]] = "<img src=\"arrow.gif\"/>";
+foreach($arrows as $cell)
+ echo "<td width=25 align=\"center\">".$cell."</td>\n";
+?>
+</tr>
+
+<!-- ROWS -->
+<?php
+$cells = array();
+for($y=0;$y<count($rows);$y++){
+ $cells[$y] = array();
+ $arow = $rows[$y];
+ $cells[$y][0] = "<td align=right><font face=\"Arial,Helvetica\" size=2><b><a href=\"".$arow[1]."\">".$arow[0]."</a></b></font></td>\n";
+ for($i=1;$i<=$max_month;$i++)
+ $cells[$y][$i] = " ";
+ $items = $arow[2];
+ for($i=count($items)-1;$i>=0;$i--){
+ $item = $items[$i];
+ $idx = $item[0];
+ $string = $item[1];
+ if (strlen($string) > 3)
+ $string = "<span style=\"letter-spacing: -1pt\">".$string."</span>";
+ if (strtolower($item[2]) == "tentative")
+ $string = "<font color=gray><em>".$string."</em>";
+ else
+ if (strtolower($item[2]) == "completed")
+ $string = "<font color=\"#006600\">".$string."</font>";
+ else
+ $string = "<font color=black>".$string."</font>";
+ if ($item[3] != "")
+ $string = "<a href=\"".$item[3]."\">".$string."</a>";
+ $cells[$y][$idx] = $string;
+ for ($z =$y-1;$z>=0;$z--)
+ if ($cells[$z][$idx] == " ")
+ $cells[$z][$idx] = "|";
+ }
+}
+
+for($y=0;$y<count($cells);$y++){
+ for($x=count($cells[$y])-1;$x>1;$x--)
+ if (strlen($cells[$y][$x]) > 1)
+ break;
+ for(;$x>0;$x--){
+ if ($cells[$y][$x] == " ")
+ $cells[$y][$x] = "@";
+ if ($cells[$y][$x] == "|")
+ $cells[$y][$x] = "#";
+ }
+}
+
+foreach($cells as $cellrow){
+ echo "<tr>\n";
+ $first = 0;
+ foreach($cellrow as $cell){
+ if ($first == 0){
+ $first = 1;
+ echo $cell;
+ }else
+ if (strlen($cell) == 1){
+ if ($cell == " ")
+ echo "<td> </td>\n";
+ if ($cell == "@")
+ echo "<td align=center><img src=\"dots.gif\"/></td>\n";
+ if ($cell == "#")
+ echo "<td align=center><img src=\"line-dots.gif\"/></td>\n";
+ if ($cell == "|")
+ echo "<td align=center><img src=\"line.gif\"/></td>\n";
+ }else
+ echo "<td align=center>".$cell."</td>\n";
+ }
+ echo "</tr>\n";
+}
+?>
+</table>
+<p> </p>
+<p><font color="#006600">Green</font> releases are completed.
+Normal black releases are planned.
+<font color=gray><em>Grey italic</em></font> releases are tentative.</p>
+<p> </p>
+<p> </p>
+<p> </p>
+<p>See <a href="how-things-work.php">How Things Work</a> for how this page is generated.</p>
+
+ </td>
+</tr>
+</table>
+
+<?php
+ include($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/include-end-of-page.php");
+?>
diff --git a/timeline/line-dots.gif b/timeline/line-dots.gif
new file mode 100644
index 0000000..5e96acc
--- /dev/null
+++ b/timeline/line-dots.gif
Binary files differ
diff --git a/timeline/line.gif b/timeline/line.gif
new file mode 100644
index 0000000..a17724c
--- /dev/null
+++ b/timeline/line.gif
Binary files differ