com web/php: Move recent release finding logic to branches.icn, clean up bumpRelease: bin/bumpRelease include/branches.inc include/version.inc
| From: | Sara Golemon | Date: | Wed, 10 Jul 2019 02:56:50 +0000 |
| Subject: | com web/php: Move recent release finding logic to branches.icn, clean up bumpRelease: bin/bumpRelease include/branches.inc include/version.inc | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-28217@lists.php.net to get a copy of this message | ||
Commit: 576f18a1263d1b0c69557b49dd8925514c1992a7
Author: Sara Golemon <pollita@php.net> Tue, 9 Jul 2019 22:56:50 -0400
Parents: aa1a61c557e93aefdce149f2fba0767e9fe76986
Branches: master
Link: http://git.php.net/?p=web/php.git;a=commitdiff;h=576f18a1263d1b0c69557b49dd8925514c1992a7
Log:
Move recent release finding logic to branches.icn, clean up bumpRelease
Changed paths:
M bin/bumpRelease
M include/branches.inc
M include/version.inc
Diff:
diff --git a/bin/bumpRelease b/bin/bumpRelease
index f11812a..68fcd74 100755
--- a/bin/bumpRelease
+++ b/bin/bumpRelease
@@ -2,8 +2,9 @@
<?php
(PHP_SAPI === 'cli') or die("Please run this script using the cli sapi");
-require __DIR__ . "/../include/version.inc";
-require __DIR__ . "/../include/releases.inc";
+require_once __DIR__ . "/../include/branches.inc";
+require_once __DIR__ . "/../include/version.inc";
+require_once __DIR__ . "/../include/releases.inc";
if ($_SERVER['argc'] < 1) {
fwrite(STDERR, "Usage: {$_SERVER['argv'][0]} major_version [ minor_version
]\n");
@@ -12,43 +13,14 @@ if ($_SERVER['argc'] < 1) {
$major = intval($_SERVER['argv'][1]);
isset($RELEASES[$major]) or die("Unkown major version $major");
+$minor = isset($_SERVER['argv'][2]) ? intval($_SERVER['argv'][2]) : null;
-if (isset($_SERVER['argv'][2])) {
- $minor = intval($_SERVER['argv'][2]);
- $version_prefix = "{$major}.{$minor}.";
- foreach ($RELEASES[$major] as $version => $info) {
- if (strncmp($version, $version_prefix, strlen($version_prefix)) == 0) {
- // Bleed $version and $info into outer scope.
- break;
- }
- }
- if (strncmp($version, $version_prefix, strlen($version_prefix))) {
- fwrite(STDERR, "Unknown minor version $major.$minor\n");
- exit(1);
- }
-} else {
- // Calling without a minor will just grab the most recent minor.
- $version = key($RELEASES[$major]);
- $info = current($RELEASES[$major]);
-}
+$version = get_current_release_for_branch($major, $minor);
+$info = $RELEASES[$major][$version] ?? null;
-if (!isset($info['date'])) {
- // Derive date from source dates.
- $info['date'] = null;
- foreach ($info['source'] as $source) {
- if ($info['date'] === null) {
- $info['date'] = $source['date'];
- continue;
- }
- if ($info['date'] !== $source['date']) {
- fwrite(STDERR, "Release has multiple differing dates in sources list. Unable to pick
one.\n");
- exit(1);
- }
- }
- if ($info['date'] === null) {
- fwrite(STDERR, "Unable to determine release date.\n");
- exit(1);
- }
+if ($info === null) {
+ fwrite(STDERR, "Unable to find a current PHP release for {$major}.{$minor}\n");
+ exit(1);
}
$info["museum"] = false;
diff --git a/include/branches.inc b/include/branches.inc
index 361cb00..589404f 100644
--- a/include/branches.inc
+++ b/include/branches.inc
@@ -379,3 +379,26 @@ function version_array($version, $length = null)
return $versionArray;
}
+
+function get_current_release_for_branch(int $major, ?int $minor): ?string {
+ global $RELEASES, $OLDRELEASES;
+
+ $prefix = "{$major}.";
+ if ($minor !== null) {
+ $prefix .= "{$minor}.";
+ }
+
+ foreach (($RELEASES[$major] ?? []) as $version => $_) {
+ if (!strncmp($prefix, $version, strlen($prefix))) {
+ return $version;
+ }
+ }
+
+ foreach (($OLDRELEASES[$major] ?? []) as $version => $_) {
+ if (!strncmp($prefix, $version, strlen($prefix))) {
+ return $version;
+ }
+ }
+
+ return NULL;
+}
diff --git a/include/version.inc b/include/version.inc
index 0835b1b..eb2e106 100644
--- a/include/version.inc
+++ b/include/version.inc
@@ -29,7 +29,7 @@ $RELEASES = (function() {
/* PHP 7.2 Release */
$PHP_7_2_VERSION = "7.2.20";
$PHP_7_2_DATE = "04 Jul 2019";
- $PHP_7_2_TAGS = ['']; // Set to ['security'] for security
releases.
+ $PHP_7_2_TAGS = []; // Set to ['security'] for security releases.
$PHP_7_2_SHA256 = array(
"tar.bz2" =>
"9fb829e54e54c483ae8892d1db0f7d79115cc698f2f3591a8a5e58d9410dca84",
"tar.gz" =>
"d1dbf6f299514c9aa55b2995928b798b27c21811a0447f0688993cdf36be0749",
@@ -51,6 +51,7 @@ $RELEASES = (function() {
$PHP_7_3_VERSION => array(
"announcement" => true,
"tags" => $PHP_7_3_TAGS,
+ "date" => $PHP_7_3_DATE,
"source" => array(
array(
"filename" => "php-$PHP_7_3_VERSION.tar.bz2",
@@ -75,6 +76,7 @@ $RELEASES = (function() {
$PHP_7_2_VERSION => array(
"announcement" => true,
"tags" => $PHP_7_2_TAGS,
+ "date" => $PHP_7_2_DATE,
"source" => array(
array(
"filename" => "php-$PHP_7_2_VERSION.tar.bz2",
@@ -99,6 +101,7 @@ $RELEASES = (function() {
$PHP_7_1_VERSION => array(
"announcement" => true,
"tags" => $PHP_7_1_TAGS,
+ "date" => $PHP_7_1_DATE,
"source" => array(
array(
"filename" => "php-$PHP_7_1_VERSION.tar.bz2",