blob: 6876bdaf4a1252c8b7fd6dbd50038a168e8ff1ef [file] [log] [blame]
<?php
// votes required to be considered "approved"
$nvotesRequired = 3;
$targetMilestone="3.1.2";
$targetMilestoneJPA="2.2.2";
$debug = false;
// for reference
// See https://dev.eclipse.org/committers/committertools/dbo_bugs_schema.php
// and https://dev.eclipse.org/committers/committertools/dbo_index.php
if ($debug)
{
ini_set("display_errors", "true");
error_reporting (E_ALL);
}
require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_bugs_ro.class.php";
$approvedList = "";
$pendingList = "";
?>
<html>
<head>
<meta
http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<link
rel="stylesheet"
href="../../../default_style.css"
type="text/css">
<link
rel="stylesheet"
href="../../wtp.css"
type="text/css">
<title>Web Tools 3.1.2 Bugs</title>
</head>
<body>
<table
width="100%"
cellspacing="5"
cellpadding="2"
border="0">
<tr>
<td
width="60%"
align="left"><font class="indextop">wtp 3.1.2 pmc review bug list</font> <br>
<font class="indexsub">Web Tools 3.1.2 Bugs for PMC Review</font></td>
<td width="40%"><img
width="207"
hspace="50"
height="129"
align="middle"
src="../../images/wtplogosmall.jpg"></td>
</tr>
</table>
<table
width="100%"
cellspacing="5"
cellpadding="2"
border="0">
<tr>
<td
valign="top"
bgcolor="#0080c0"
align="left"
colspan="2"><b> <font
face="Arial,Helvetica"
color="#ffffff">Introduction</font></b></td>
</tr>
<tr>
<td
valign="top"
align="right">&nbsp;</td>
<td valign="top"><?php
echo 'This document lists bugs that require PMC approval in WTP ' . $targetMilestone . '<br />';
echo ' Currently there is (are) ' . $nvotesRequired . ' vote(s) required for PMC Approval during this phase of development. <br />'
?> <a href="http://wiki.eclipse.org/index.php/WTP_PMC_Defect_Review">The WTP PMC Review process defined.</a></td>
</tr>
</table>
<br>
<table
width="100%"
cellspacing="5"
cellpadding="2"
border="0">
<tr>
<td
valign="top"
bgcolor="#0080c0"
align="left"
colspan="2"><b> <font
face="Arial,Helvetica"
color="#ffffff">Defect List</font></b></td>
</tr>
</table>
<table
align="center"
cellpadding="4"
width="80%"
border="1">
<tr>
<th>Count</th>
<th>Bug</th>
<th>Review Status</th>
<!-- <th>Bug Status</th> -->
<th>Owner</th>
<th>Yes</th>
<th>No</th>
</tr>
<?php
# Connect to database
$sqlquery = "SELECT
BUG.bug_id,
USR.realname,
USR.login_name,
BUG.status_whiteboard
FROM
bugs AS BUG
INNER JOIN products AS PROD ON PROD.id = BUG.product_id
INNER JOIN profiles AS USR ON USR.userid = BUG.assigned_to
WHERE
BUG.status_whiteboard like '%PMC%'
AND
(
(
(BUG.target_milestone like '$targetMilestone%'
AND BUG.target_milestone not like '$targetMilestone.%')
AND (
PROD.name='Web Tools'
OR PROD.name='Java Server Faces'
OR PROD.name='WTP Common Tools'
OR PROD.name='WTP Datatools'
OR PROD.name='WTP EJB Tools'
OR PROD.name='WTP Incubator'
OR PROD.name='WTP Java EE Tools'
OR PROD.name='WTP Releng'
OR PROD.name='WTP ServerTools'
OR PROD.name='WTP Source Editing'
OR PROD.name='WTP Webservices'
OR PROD.name='WTP Website'
)
)
OR
(
BUG.target_milestone like '$targetMilestoneJPA%'
AND BUG.target_milestone like '$targetMilestoneJPA.%'
AND PROD.name='Dali JPA Tools'
)
)
ORDER BY
BUG.bug_id";
$dbc = new DBConnectionBugs();
$dbh = $dbc->connect();
$rs = mysql_query($sqlquery, $dbh);
if(mysql_errno($dbh) > 0) {
echo "There was an error processing this request <br />".
$dbc->disconnect();
exit;
}
$rowcount = 0;
while($myrow = mysql_fetch_assoc($rs))
{
$rowcount++;
if ($debug) {
echo "Debug: myrow: " ;
echo print_r($myrow) ;
echo " <br />";
}
echo "<tr>";
echo "<td align='right'>".$rowcount."</td>";
echo "<td align='center'><a href=\"https://bugs.eclipse.org/bugs/show_bug.cgi?id=".$myrow['bug_id']."\">".$myrow['bug_id']."</a></td>";
echo "<td>";
$yes = "";
$no = "";
$pmc_approved = stripos($myrow['status_whiteboard'], 'PMC_approved');
$sqlquery3 = "SELECT
flags.type_id,
flags.setter_id,
flags.status
FROM
flags
WHERE
(flags.setter_id='583'
OR flags.setter_id='550'
OR flags.setter_id='12789'
OR flags.setter_id='17882'
OR flags.setter_id='18449'
OR flags.setter_id='26550')
AND flags.bug_id=".$myrow['bug_id'];
$rs3 = mysql_query($sqlquery3, $dbh);
if(mysql_errno($dbh) <= 0)
{
$votes=0;
while($myrow3 = mysql_fetch_assoc($rs3)) {
if ($debug) {
echo "Debug: myrow3: " ; echo print_r($myrow3) ; echo " <br />";
}
$sqlquery4 = "SELECT
flagtypes.name
FROM
flagtypes
WHERE
flagtypes.name='pmc_approved'
AND flagtypes.id=".$myrow3['type_id'];
$rs4 = mysql_query($sqlquery4, $dbh);
while ($myrow4 = mysql_fetch_assoc($rs4)) {
if ($debug) {
echo "Debug: myrow4: " ; echo print_r($myrow4) ; echo " <br />";
}
if($myrow3['setter_id']=="583") {
$realname="David Williams";
} else if($myrow3['setter_id']=="550") {
$realname="Tim deBoer";
} else if($myrow3['setter_id']=="12789") {
$realname="Naci Dai";
} else if($myrow3['setter_id']=="17882") {
$realname="Neil Hauge";
} else if($myrow3['setter_id']=="18449") {
$realname="Raghu Srinivasan";
} else if ($myrow3['setter_id']=="26550") {
$realname="Kaloyan Raev";
} else $realname = "UNKNOWN!";
if ($myrow3['status']=="+") {
if (strpos($yes, $realname) === false) {
if ($votes > 0) {
$yes = $yes . "<br />" . $realname;
}
else {
$yes = $realname;
}
// don't increment, if already veto'd
if ($votes >= 0) {
$votes++;
}
}
}
else if ($pmc_approved === false && $myrow3['status']=="-") {
if ($vote < 0) {
$no = $no . "<br>" . $realname;
}
else {
$no = $realname;
}
$votes = -1;
break;
}
}
}
if ($debug) {
echo "Debug: votes: $votes required: $nvotesRequired <br />";
}
if ($votes < 0) {
echo "<font color=\"red\"><b>Deferred</b></font>";
}
else if ($votes >= $nvotesRequired || (!($pmc_approved === false))) {
if (strlen($approvedList) > 0) {
$approvedList=$approvedList . "," . $myrow['bug_id'];
} else {
$approvedList=$myrow['bug_id'];
}
echo "<font color=\"green\"><b>Approved</b></font>";
}
else if ($votes > 0) {
if (strlen($pendingList) > 0) {
$pendingList=$pendingList . "," . $myrow['bug_id'];
} else {
$pendingList=$myrow['bug_id'];
}
// echo "<font color=\"yellow\"><b>Tentatively Approved</b></font>";
echo "<font color=\"yellow\"><b>Pending...</b></font>";
}
else {
// $votes == 0
if (strlen($pendingList) > 0) {
$pendingList=$pendingList . "," . $myrow['bug_id'];
} else {
$pendingList=$myrow['bug_id'];
}
echo "Pending...";
}
}
else {
echo "Error occured on sqlquery3: . " . mysql_errno($dbh) . "<br />";
echo "sqlquery: " . mysql_info($dbh) . "<br />";
}
$rs3 = null;
echo "</td>";
//echo "<td>";
//echo "bug status";
//echo "</td>";
$owner = $myrow['realname'];
if (strlen($owner) > 0) {
echo "<td>".$owner."</td>";
}
else {
echo "<td>".$myrow['login_name']."</td>";
}
echo "<td>".$yes."&nbsp;</td>";
echo "<td>".$no."&nbsp;</td>";
echo "</tr>";
}
$dbc->disconnect();
$rs = null;
$dbh = null;
$dbc = null;
?>
</table>
<?php
if (strlen($pendingList) > 0 || strlen($approvedList) > 0) {
echo "<p>You can use";
if (strlen($pendingList) > 0) {
echo " this <a href=\"https://bugs.eclipse.org/bugs/buglist.cgi?bug_id=" . $pendingList ."\">pending list</a>";
}
if (strlen($pendingList) > 0 && strlen($approvedList) > 0) {
echo " or ";
}
if (strlen($approvedList) > 0) {
echo " this <a href=\"https://bugs.eclipse.org/bugs/buglist.cgi?bug_id=" . $approvedList ."\">approved list</a>";
}
echo " for above table to first list all the bugs in that table with the bugzilla web interface, and then narrow or sort the result how ever you would like.</p>";
}
?>
</body>
</html>