The update checker can handle the development releases

This commit is contained in:
James Cole 2024-02-14 06:34:38 +01:00
parent 5b68b25c85
commit a2c0d9f7d0
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
3 changed files with 37 additions and 19 deletions

View File

@ -34,8 +34,7 @@ class RequestedVersionCheckStatus extends Event
{
use SerializesModels;
/** @var User The user */
public $user;
public User $user;
/**
* Create a new event instance. This event is triggered when Firefly III wants to know

View File

@ -28,6 +28,7 @@ use Carbon\Carbon;
use FireflyIII\Events\NewVersionAvailable;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Support\Facades\Log;
/**
* Class UpdateRequest
@ -42,7 +43,7 @@ class UpdateRequest implements UpdateRequestInterface
'message' => (string)trans('firefly.unknown_error'),
];
// try get array from update server:
// try to get array from update server:
$updateInfo = $this->contactServer($channel);
if ('error' === $updateInfo['level']) {
app('log')->error('Update information contains an error.');
@ -142,6 +143,22 @@ class UpdateRequest implements UpdateRequestInterface
if (str_starts_with($latest, 'v')) {
$latest = substr($latest, 1);
}
if (str_starts_with($current, 'develop')) {
Log::debug(sprintf('User is running develop version "%s"', $current));
$parts = explode('/', $current);
$devDate = Carbon::createFromFormat('Y-m-d', $parts[1]);
if ($devDate->lte($information['date'])) {
Log::debug(sprintf('This development release is older, release = %s, latest version %s = %s', $devDate->format('Y-m-d'), $latest, $information['date']->format('Y-m-d')));
$return['level'] = 'info';
$return['message'] = (string)trans('firefly.update_current_dev_older', ['version' => $current, 'new_version' => $latest]);
return $return;
}
Log::debug(sprintf('This development release is newer, release = %s, latest version %s = %s', $devDate->format('Y-m-d'), $latest, $information['date']->format('Y-m-d')));
$return['level'] = 'info';
$return['message'] = (string)trans('firefly.update_current_dev_newer', ['version' => $current, 'new_version' => $latest]);
return $return;
}
$compare = version_compare($latest, $current);

View File

@ -308,6 +308,8 @@ return [
'update_new_version_alert' => 'A new version of Firefly III is available. You are running :your_version, the latest version is :new_version which was released on :date.',
'update_version_beta' => 'This version is a BETA version. You may run into issues.',
'update_version_alpha' => 'This version is a ALPHA version. You may run into issues.',
'update_current_dev_older' => 'You are running development release ":version", which is older than the latest release :new_version. Please update!',
'update_current_dev_newer' => 'You are running development release ":version", which is newer than the latest release :new_version.',
'update_current_version_alert' => 'You are running :version, which is the latest available release.',
'update_newer_version_alert' => 'You are running :your_version, which is newer than the latest release, :new_version.',
'update_check_error' => 'An error occurred while checking for updates: :error',