blob: 8d5adadcfd54d1fd92d28abe0ce8050a024d78e8 [file] [log] [blame]
<?php
$basebugs = "251715,252789,252790,252791,252792,252793,252794,252795,252796,252797,252798,252799,252800,252801,252803,252804,252805,252806,252807,252808,252809,252813,252810,252811,252812,252814,252815,252816";
$projects = array();
$requirements = array();
$must_or_should = array();
$target = array();
$data = array();
$data2 = array();
$bugid = array();
//tracks the count of bugs green/yellow/pink/orange
$project_bug_status = array();
$contents = file_get_contents( "https://bugs.eclipse.org/bugs/show_bug.cgi?id=${basebugs}&ctype=xml" );
$contents = utf8_encode( $contents );
$xml = simplexml_load_string( $contents );
//print_r( $xml );
function projectof( $rec ) {
switch( '' . $rec->product ) {
case 'BIRT':
case 'Buckminster':
case 'CDT':
case 'DD':
case 'DLTK':
case 'Data Tools':
case 'ECF':
case 'EMF':
case 'EMFT':
case 'EPP':
case 'Equinox':
case 'GEF':
case 'GMF':
case 'JWT':
case 'M2M':
case 'MDT':
case 'PDT':
case 'Platform':
case 'Riena':
case 'RAP':
case 'SOA':
case 'Subversive':
case 'SWTBot':
case 'TPTP':
case 'Target Management':
case 'Web Tools':
case 'EclipseLink':
return '' . $rec->product;
case 'TMF':
return 'TMF Xtext';
default: return $rec->product . " " . $rec->component;
}
}
$i = 0;
foreach( $xml->bug as $each ) {
$req = trim('' . $each->short_desc);
$reqid = trim('' . $each->bug_id);
$requirements[$reqid] = $req;
$must_or_should[$reqid] = ('' . $each->priority) == 'P1';
$target[$reqid] = trim('' . $each->target_milestone);
$q = array();
foreach( $each->dependson as $qe ) {
$q[] = $qe;
}
$contents = file_get_contents( "https://bugs.eclipse.org/bugs/show_bug.cgi?id=" . implode( ',', $q ) . "&field=short_desc&field=bug_id&field=bug_status&field=resolution&field=product&field=component&ctype=xml" );
$contents = utf8_encode( $contents );
$yml = simplexml_load_string( $contents );
foreach( $yml->bug as $yach ) {
$pk = projectof( $yach );
$projects[$pk] = 1;
$data[$reqid][$pk] = '' . $yach->bug_status;
$data2[$reqid][$pk] = '' . $yach->resolution;
$bugid[$reqid][$pk] = '' . $yach->bug_id;
}
$i++;
}
$projects = array_keys( $projects );
sort( $projects );
?>
<table border="1">
<tr><th></th><th></th>
<?php
foreach( $projects as $each ) {
?><th><?= $each ?></th><?php
}
?>
</tr>
<?php
function cmpreq( $a, $b ) {
global $must_or_should;
global $target;
global $requirements;
if( $must_or_should[$a] == $must_or_should[$b] ) {
if( $target[$a] == $target[$b] ) {
return strcmp($requirements[$a],$requirements[$b]);
} else {
return strcmp($target[$a],$target[$b]);
}
} else {
if( $must_or_should[$a] )
return -1;
else return 1;
}
}
uksort( $requirements, 'cmpreq' );
foreach( $requirements as $reqid => $req ) {
?><tr><td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=<?= $reqid ?>"><?=
$must_or_should[$reqid] ? '<b>' : '' ?><?=
$req ?><?=
$must_or_should[$reqid] ? '</b>' : '' ?></a></td>
<td><?= $target[$reqid] ?></td><?php
foreach( $projects as $proj ) {
if( isset($data[$reqid][$proj]) ) {
switch( $data[$reqid][$proj] ) {
case 'NEW':
case 'ASSIGNED':
case 'REOPENED':
?><td style="text-align: center; background-color: #FFFFCC"><a style="text-decoration: none; color: black;"
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=<?= $bugid[$reqid][$proj] ?>"><?= $bugid[$reqid][$proj] ?></a></td><?php
$project_bug_status[$proj]['yellow'] ++;
break;
case 'RESOLVED':
case 'VERIFIED':
case 'CLOSED':
switch( $data2[$reqid][$proj] ) {
case 'FIXED':
case 'WORKSFORME':
case 'DUPLICATE':
?><td style="text-align: center; background-color: #CCFFCC"><a style="text-decoration: none; color: black;"
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=<?= $bugid[$reqid][$proj] ?>"><?= $bugid[$reqid][$proj] ?></a></td><?php
$project_bug_status[$proj]['green'] ++;
break;
case 'WONTFIX':
case 'INVALID':
case 'WONTFIX':
case 'LATER':
case 'REMIND':
case 'NOT_ECLIPSE':
default:
?><td style="text-align: center; background-color: <?= $must_or_should[$reqid] ? "#FFCCCC" : "#FFCC99" ?>"><a style="text-decoration: none; color: black;"
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=<?= $bugid[$reqid][$proj] ?>"><?= $bugid[$reqid][$proj] ?></a></td><?php
if($must_or_should[$reqid]){
$project_bug_status[$proj]['red'] ++;
}else{
$project_bug_status[$proj]['orange'] ++;
}
break;
}
break;
default:
?><td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=<?= $bugid[$reqid][$proj] ?>"><?= $data[$reqid][$proj] ?></a></td><?php
$project_bug_status[$proj]['white'] ++;
break;
}
} else {
?><td style="background-color: #EEEEFF; text-align: center;"><em>missing</em></td><?php
}
}
?></tr>
<?php
}
?>
<tr><th></th><th></th>
<?php
foreach( $projects as $each ) {
?><th><?php
?><div style="text-align: center; background-color: #CCFFCC;"><?= $project_bug_status[$each]['green'] ? $project_bug_status[$each]['green'] : "-" ; ?></div><?php
?><div style="text-align: center; background-color: #FFFFCC;"><?= $project_bug_status[$each]['yellow'] ? $project_bug_status[$each]['yellow'] : "-"; ?></div><?php
?><div style="text-align: center; background-color: #FFCC99;"><?= $project_bug_status[$each]['orange'] ? $project_bug_status[$each]['orange'] : "-"; ?></div><?php
?><div style="text-align: center; background-color: #FFCCCC;"><?= $project_bug_status[$each]['red'] ? $project_bug_status[$each]['red'] : "-"; ?></div><?php
?></th><?php
}
?>
</tr>
</table>