com web/php: Derive version and release date without global vars: bin/bumpRelease
| From: | Sara Golemon | Date: | Tue, 09 Jul 2019 13:49:36 +0000 |
| Subject: | com web/php: Derive version and release date without global vars: bin/bumpRelease | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-28213@lists.php.net to get a copy of this message | ||
Commit: aa1a61c557e93aefdce149f2fba0767e9fe76986
Author: Sara Golemon <pollita@php.net> Tue, 9 Jul 2019 09:41:54 -0400
Parents: 563ed6e547db6b76768e6eb6abcad6c7cec69670
Branches: master
Link: http://git.php.net/?p=web/php.git;a=commitdiff;h=aa1a61c557e93aefdce149f2fba0767e9fe76986
Log:
Derive version and release date without global vars
Changed paths:
M bin/bumpRelease
Diff:
diff --git a/bin/bumpRelease b/bin/bumpRelease
index f5b1bbb..f11812a 100755
--- a/bin/bumpRelease
+++ b/bin/bumpRelease
@@ -15,17 +15,42 @@ isset($RELEASES[$major]) or die("Unkown major version $major");
if (isset($_SERVER['argv'][2])) {
$minor = intval($_SERVER['argv'][2]);
- $version_varname = "PHP_{$major}_{$minor}_VERSION";
- isset($$version_varname) or die("Unknown minor version $major.$minor");
- $version = $$version_varname;
- $info = $RELEASES[$major][$version];
+ $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]);
}
-$info["date"] = ${"PHP_{$major}_DATE"};
+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);
+ }
+}
+
$info["museum"] = false;
if (is_bool($info["announcement"]) && $info["announcement"]) {
$info["announcement"] = array("English" => "/releases/" .
str_replace(".", "_", $version) . ".php");