Commit:    37fe83041c50c000f2a556c2eb68207591752f5a
Author:    Sara Golemon <poll...@php.net>         Mon, 12 Jun 2017 14:03:59 
-0400
Parents:   1458b6b91aee756e25e5c1cba92260210f27888b
Branches:  master

Link:       
http://git.php.net/?p=web/qa.git;a=commitdiff;h=37fe83041c50c000f2a556c2eb68207591752f5a

Log:
Refactor include/releases-qa.php a little

Stuff the post-processing into a closure to protect global scope from pollution.
Treat file types as an extensible list rather than individual hard-coded types.
Degrade gracefully when type/algo combinations are not available.

Changed paths:
  M  include/release-qa.php


Diff:
diff --git a/include/release-qa.php b/include/release-qa.php
index ffd2595..77eb7f0 100644
--- a/include/release-qa.php
+++ b/include/release-qa.php
@@ -112,16 +112,13 @@ $QA_RELEASES = array(
 // new algorithm is read from the $QA_RELEASES array under the 'release' index 
for each version 
 // in the form of "$algorithm_$filetype".
 //
-// For example, if SHA256 were to be supported, the following indices would 
have to be added:
+// For example, if SHA512 were to be supported, the following indices would 
have to be added:
 //
-// 'sha256_bz2' => 'xxx', 
-// 'sha256_gz' => 'xxx', 
-// 'sha256_xz' => 'xxx', 
+// 'sha512_bz2' => 'xxx',
+// 'sha512_gz' => 'xxx',
+// 'sha512_xz' => 'xxx',
 
-$QA_CHECKSUM_TYPES = Array(
-                               'md5', 
-                               'sha256'
-                               );
+$QA_CHECKSUM_TYPES = [ 'md5', 'sha256' ];
 
 /*** End Configuration 
*******************************************************************/
 
@@ -129,58 +126,59 @@ $QA_CHECKSUM_TYPES = Array(
 // release  : These are encouraged for use (e.g., linked at qa.php.net)
 // reported : These are allowed to report @ the php.qa.reports mailing list
 
-foreach ($QA_RELEASES as $pversion => $info) {
+(function () use (&$QA_RELEASES, $QA_CHECKSUM_TYPES) {
+       foreach ($QA_RELEASES as $pversion => $info) {
 
-       if (isset($info['active']) && $info['active']) {
+               if (isset($info['active']) && $info['active']) {
        
-               // Allow -dev versions of all active types
-               // Example: 5.3.6-dev
-               $QA_RELEASES['reported'][] = "{$pversion}-dev";
-               $QA_RELEASES[$pversion]['dev_version'] = "{$pversion}-dev";
+                       // Allow -dev versions of all active types
+                       // Example: 5.3.6-dev
+                       $QA_RELEASES['reported'][] = "{$pversion}-dev";
+                       $QA_RELEASES[$pversion]['dev_version'] = 
"{$pversion}-dev";
                
-               // Allow -dev version of upcoming qa releases (rc/alpha/beta)
-               // @todo confirm this php version format for all dev versions
-               if ((int)$info['release']['number'] > 0) {
-                       $QA_RELEASES['reported'][] = 
"{$pversion}{$info['release']['type']}{$info['release']['number']}";
-                       if (!empty($info['release']['baseurl'])) {
+                       // Allow -dev version of upcoming qa releases 
(rc/alpha/beta)
+                       // @todo confirm this php version format for all dev 
versions
+                       if ((int)$info['release']['number'] > 0) {
+                               $QA_RELEASES['reported'][] = 
"{$pversion}{$info['release']['type']}{$info['release']['number']}";
+                               if (!empty($info['release']['baseurl'])) {
                                
-                               // php.net filename format for qa releases
-                               // example: php-5.3.0RC2
-                               $fn_base = 'php-' . $pversion . 
$info['release']['type'] . $info['release']['number'];
-
-                               $QA_RELEASES[$pversion]['release']['version'] = 
$pversion . $info['release']['type'] . $info['release']['number'];
-                               
$QA_RELEASES[$pversion]['release']['files']['bz2']['path']= 
$info['release']['baseurl'] . $fn_base . '.tar.bz2'; 
-                               
$QA_RELEASES[$pversion]['release']['files']['gz']['path'] = 
$info['release']['baseurl'] . $fn_base . '.tar.gz';
-
-                               foreach($QA_CHECKSUM_TYPES as $algo)
-                               {
-                                       
$QA_RELEASES[$pversion]['release']['files']['bz2'][$algo] = 
$info['release'][$algo . '_bz2'];
-                                       
$QA_RELEASES[$pversion]['release']['files']['gz'][$algo]  = 
$info['release'][$algo . '_gz'];
-
-                                       if (!empty($info['release'][$algo . 
'_xz'])) {
-                                               
if(!isset($QA_RELEASES[$pversion]['release']['files']['xz']))
-                                               {
-                                                       
$QA_RELEASES[$pversion]['release']['files']['xz']['path'] = 
$info['release']['baseurl'] . $fn_base . '.tar.xz';
+                                       // php.net filename format for qa 
releases
+                                       // example: php-5.3.0RC2
+                                       $fn_base = 'php-' . $pversion . 
$info['release']['type'] . $info['release']['number'];
+
+                                       
$QA_RELEASES[$pversion]['release']['version'] = $pversion . 
$info['release']['type'] . $info['release']['number'];
+                                       foreach ([ 'bz2', 'gz', 'xz' ] as 
$file_type) {
+                                               foreach ($QA_CHECKSUM_TYPES as 
$algo) {
+                                                       if 
(isset($info['release'][$algo . '_' . $file_type])) {
+                                                               
$QA_RELEASES[$pversion]['release']['files'][$file_type][$algo] = 
$info['release'][$algo . '_' . $file_type];
+                                                       }
                                                }
+                                               if 
(!empty($QA_RELEASES[$pversion]['release']['files'][$file_type])) {
+                                                       
$QA_RELEASES[$pversion]['release']['files'][$file_type]['path']= 
$info['release']['baseurl'] . $fn_base . '.tar.' . $file_type;
+                                               }
+                                       }
 
-                                               
$QA_RELEASES[$pversion]['release']['files']['xz'][$algo]  = 
$info['release'][$algo . '_xz'];
+                                       if 
(empty($QA_RELEASES[$pversion]['release']['files'])) {
+                                               
$QA_RELEASES[$pversion]['release']['enabled'] = false;
                                        }
                                }
+                       } else {
+                               $QA_RELEASES[$pversion]['release']['enabled'] = 
false;
                        }
-               } else {
-                       $QA_RELEASES[$pversion]['release']['enabled'] = false;
+
                }
        }
-}
 
-// Sorted information for later use
-// @todo need these?
-// $QA_RELEASES['releases']   : All current versions with active qa releases
-foreach ($QA_RELEASES as $pversion => $info) {
-       if (isset($info['active']) && $info['active'] && 
!empty($info['release']['number'])) {
-               $QA_RELEASES['releases'][$pversion] = $info['release'];
+       // Sorted information for later use
+       // @todo need these?
+       // $QA_RELEASES['releases']   : All current versions with active qa 
releases
+       foreach ($QA_RELEASES as $pversion => $info) {
+               if (isset($info['active']) && $info['active'] && 
!empty($info['release']['number'])) {
+                       $QA_RELEASES['releases'][$pversion] = $info['release'];
+               }
        }
-}
+
+})();
 
 /* Content */
 function show_release_qa($QA_RELEASES) {
@@ -199,7 +197,6 @@ function show_release_qa($QA_RELEASES) {
                echo "</span>\n";
                echo "<table>\n";
 
-               // @todo check for vars, like if md5_* are set
                foreach ($QA_RELEASES['releases'] as $pversion => $info) {
 
                        echo "<tr>\n";
@@ -208,20 +205,16 @@ function show_release_qa($QA_RELEASES) {
                        echo "</td>\n";
                        echo "</tr>\n";
 
-                       foreach (Array('bz2', 'gz', 'xz') as $file_type) {
-                               if (!isset($info['files'][$file_type])) {
-                                       continue;
-                               }
-
+                       foreach ($info['files'] as $file_type => $file_info) {
                                echo "<tr>\n";
-                               echo "<td width=\"20%\"><a 
href=\"{$info['files'][$file_type]['path']}\">php-{$info['version']}.tar.{$file_type}</a></td>\n";
+                               echo "<td width=\"20%\"><a 
href=\"{$file_info['path']}\">php-{$info['version']}.tar.{$file_type}</a></td>\n";
 
                                foreach ($QA_CHECKSUM_TYPES as $algo) {
                                        echo '<td>';
                                        echo '<strong>' . strtoupper($algo) . 
':</strong> ';
 
-                                       if 
(isset($info['files'][$file_type][$algo]) && 
!empty($info['files'][$file_type][$algo])) {
-                                               echo 
$info['files'][$file_type][$algo];
+                                       if (isset($file_info[$algo]) && 
strlen($file_info[$algo])) {
+                                               echo $file_info[$algo];
                                        } else {
                                                echo '(<em><small>No checksum 
value available</small></em>)&nbsp;';
                                        }


--
PHP Quality Assurance Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to