From 32605578dd57a059b49001b69b44f48e73f85ccd Mon Sep 17 00:00:00 2001 From: Jeremy Price Date: Thu, 11 Jan 2024 18:13:59 -0800 Subject: [PATCH] Add remote requirements checking to upgrade.php quoted from https://github.com/snipe/snipe-it/pull/14127 There is a race condition in the upgrade.php file where it can't currently know the hard requirements for the version it's upgrading to until it does a git pull. By that time, it will have pulled new source code that possibly relies on an incompatible version of php, leaving you with a broken installation. Example: You're running v6.2.x on PHP 7.4, which is fine. v7 requires PHP 8.1 or 8.2, but we couldn't know that when we released v6. or v5 for that matter. We could change the requirements in the most-recent v6 version of upgrade.php, but that doesn't help anyone who doesn't upgrade first to the most recent v6. With this change, we implement fetching and incorporating the requirements data from the remote file. It's just fetching/decoding a couple of json values that replace the hard-coded version requirements. We move the branch checking higher than the php version checking so that we can use the defined/overridden $branch to decide what branch to pull the requirements from. --- upgrade.php | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/upgrade.php b/upgrade.php index a287e3d1debc..1da44c90b9c4 100644 --- a/upgrade.php +++ b/upgrade.php @@ -1,8 +1,24 @@