blob: 3e58aa4dc7d93adb99599a98c9ca922d523b2426 [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 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 );
?>