blob: 95db4d71afdb986ba0fa57435e11e44225c5e12b [file] [log] [blame]
<?php
/**
* Copyright (c) Eclipse Foundation and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*/
require_once dirname ( __FILE__ ) . '/../../eclipse.org-common/system/app.class.php';
require_once dirname ( __FILE__ ) . '/../../eclipse.org-common/system/nav.class.php';
require_once dirname ( __FILE__ ) . '/../../eclipse.org-common/system/menu.class.php';
require_once dirname(__FILE__) . '/../classes/database.inc';
$App = new App ();
$Nav = new Nav ();
$Menu = new Menu ();
include ($App->getProjectCommon ());
$pageTitle = "Eclipse Project Releases in Good Standing";
$pageKeywords = "";
$pageAuthor = "Wayne Beaton";
ob_start ();
?>
<style>
li.future {color: gray}
li.future a:link {color: gray}
li.future a:visited {color: gray}
li.past {}
</style>
<div id="maincontent">
<div id="midcolumn">
<h1><?=$pageTitle?></h1>
<p>
<strong>EXPERIMENTAL</strong>. This page shows a list of Eclipse open
source projects and releases from the last year that are believed to be in good
standing.
</p>
<h2 id="projects">Projects</h2>
<p>
The projects listed below are considered to be in good standing and
are in active development. A project that conforms to the Eclipse
Foundation Development Process but is not in active development (e.g.,
the code is stable) would be considered to be in good standing, but
is none-the-less excluded here. To be included in this list, the
corresponding Eclipse open source project must have engaged in either
a release or progress review in the year preceding the release.</p>
<ul>
<?php
$sql = <<<EOQ
select
distinct p.id,
p.name,
p.url,
max(rev.date) as lastReviewDate
from Project as p
join ProjectReleases as rel on p.id=rel.project
join ProjectReviews as rev on p.id=rev.project
where
rev.type in ('release','graduation', 'other')
and rev.status = 'success'
group by p.id
having lastReviewDate >= date_sub(now(), interval 1 year)
order by p.name;
EOQ;
query('dashboard', $sql, array (), function ($row) {
echo "<li><a href=\"{$row['url']}\">{$row['name']}</a></li>";
});
?>
</ul>
<h2 id="releases">Releases</h2>
<p>
Grayed out releases are have future dates (these releases have been
projected into the future by the corresponding project team); only
the releases scheduled in the next month are included in this block.
</p>
<p>
Note that service releases that are based on releases in good standing,
but are themselves dated more than one year after a review are
absent from this list.
</p>
<p>
If you believe that your project's release should be listed here,
first confirm that your project engaged in a review within the 12
months leading up to the release date, and if you're satisfied that your
release is in good standing, contact emo@eclipse-foundation.org for
assistance (or to initiate a review).
</p>
<ul>
<?php
$sql = <<<EOQ
select
p.id,
concat(p.name, ' ', rel.name) as name,
rel.url as url,
rel.date as releaseDate,
max(rev.date) as lastReviewDate
from Project as p
join ProjectReleases as rel on p.id=rel.project
join ProjectReviews as rev on p.id=rev.project
where
rev.type in ('release','graduation', 'other')
and rev.status = 'success'
and
rel.date between date_sub(now(), interval 1 year) and date_add(now(), interval 1 month)
group by p.id, rel.name
having lastReviewDate >= date_sub(releaseDate, interval 1 year)
order by releaseDate desc;
EOQ;
query('dashboard', $sql, array (), function ($row) {
$class = strtotime($row['releaseDate']) > time() ? 'future' : 'past';
echo "<li class=\"{$class}\"> {$row['releaseDate']} <a href=\"{$row['url']}\">{$row['name']}</a></li>";
});
?>
</ul>
</div>
</div>
<?php
$html = ob_get_contents ();
ob_end_clean ();
$App->generatePage ( $theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
?>