Merge pull request #11904 from firefly-iii/release-1772875617

🤖 Automatically merge the PR into the develop branch.
This commit is contained in:
github-actions[bot]
2026-03-07 10:27:06 +01:00
committed by GitHub
7 changed files with 34 additions and 35 deletions

View File

@@ -48,7 +48,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
final class UpdateController extends Controller
{
private TransactionGroupRepositoryInterface $groupRepository;
protected array $acceptedRoles = [];
protected array $acceptedRoles = [];
/**
* TransactionController constructor.

View File

@@ -50,15 +50,14 @@ class DeletedAccountObserver
}
$journalIds = Transaction::where('account_id', $account->id)
->get(['transactions.transaction_journal_id'])
->pluck('transaction_journal_id')
->toArray();
->get(['transactions.transaction_journal_id'])
->pluck('transaction_journal_id')
->toArray()
;
$groupIds = array_map(function (array $item) {
return $item['transaction_group_id'];
}, TransactionJournal::whereIn('id', $journalIds)
->get(['transaction_journals.transaction_group_id'])
->toArray());
}, TransactionJournal::whereIn('id', $journalIds)->get(['transaction_journals.transaction_group_id'])->toArray());
if (count($journalIds) > 0) {
Transaction::whereIn('transaction_journal_id', $journalIds)->delete();

View File

@@ -31,7 +31,6 @@ use FireflyIII\Events\Security\System\SystemRequestedVersionCheck;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Http\Middleware\Installer;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Support\Facades\Preferences;

View File

@@ -33,8 +33,8 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
* @property Carbon $date
* @property PiggyBank|null $piggyBank
* @property Carbon $date
* @property null|PiggyBank $piggyBank
*/
#[ObservedBy([PiggyBankEventObserver::class])]
class PiggyBankEvent extends Model

View File

@@ -37,7 +37,7 @@ use Illuminate\Support\Collection;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* @property User $user
* @property User $user
* @property Collection<RuleTrigger> $ruleTriggers
*/
#[ObservedBy([DeletedRuleObserver::class])]

View File

@@ -30,6 +30,7 @@ use GuzzleHttp\Client;
use GuzzleHttp\Exception\ClientException;
use Illuminate\Support\Facades\Log;
use Override;
use function Safe\file_get_contents;
use function Safe\json_decode;
@@ -48,9 +49,9 @@ class GitHubUpdateRequest implements UpdateRequestInterface
$this->currentBuild = $currentBuild;
Log::debug(sprintf('Now in getUpdateInformation(%s, %s)', $currentVersion, $channel));
$response = new UpdateResponse();
$releases = $this->getReleases();
$filtered = $this->filterReleases($releases);
$response = new UpdateResponse();
$releases = $this->getReleases();
$filtered = $this->filterReleases($releases);
Log::debug(sprintf('Left with %d release(s) to compare', count($filtered)));
@@ -60,7 +61,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
return $response;
}
$newest = $this->getNewest($filtered);
$newest = $this->getNewest($filtered);
Log::debug(sprintf('Newest release is "%s" released on %s', $newest['version'], $newest['published_at']->format('Y-m-d H:i')));
@@ -73,20 +74,20 @@ class GitHubUpdateRequest implements UpdateRequestInterface
Log::debug(sprintf('Compare with current version "%s", built on %s', $currentVersion, $currentBuild->format('Y-m-d H:i')));
if ($currentBuild->lt($newest['published_at']) && $currentBuild->diffInMinutes($newest['published_at']) > 10) {
Log::debug(sprintf(
'Current build %s is older than newest build %s, so a new release is available.',
$currentBuild->format('Y-m-d H:i:s e'),
$newest['published_at']->format('Y-m-d H:i:s e')
));
'Current build %s is older than newest build %s, so a new release is available.',
$currentBuild->format('Y-m-d H:i:s e'),
$newest['published_at']->format('Y-m-d H:i:s e')
));
$response->setNewVersionAvailable(true);
return $response;
}
if ($currentBuild->gt($newest['published_at'])) {
Log::debug(sprintf(
'Current build %s is newer than newest build %s, so NO new release is available.',
$currentBuild->format('Y-m-d H:i'),
$newest['published_at']->format('Y-m-d H:i')
));
'Current build %s is newer than newest build %s, so NO new release is available.',
$currentBuild->format('Y-m-d H:i'),
$newest['published_at']->format('Y-m-d H:i')
));
$response->setNewVersionAvailable(false);
return $response;
@@ -96,7 +97,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
}
// if not, compare version.
$res = version_compare($newest['version'], $currentVersion);
$res = version_compare($newest['version'], $currentVersion);
if ($res < 1) {
$response->setNewVersionAvailable(false);
@@ -146,7 +147,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
private function getNewest(array $releases): array
{
$latest = ['version' => '1.0.0', 'published_at' => now(config('app.timezone'))->startOfYear()];
$latest = ['version' => '1.0.0', 'published_at' => now(config('app.timezone'))->startOfYear()];
foreach ($releases as $release) {
Log::debug(sprintf('Comparing current version "%s" with latest version "%s"', $release['version'], $latest['version']));
if (str_contains($release['version'], 'develop') || str_contains($latest['version'], 'develop')) {
@@ -154,10 +155,10 @@ class GitHubUpdateRequest implements UpdateRequestInterface
// compare build times.
if ($latest['published_at']->lt($release['published_at'])) {
Log::debug(sprintf(
'Current date "%s" is newer than latest date "%s"',
$release['published_at']->format('Y-m-d H:i'),
$latest['published_at']->format('Y-m-d H:i')
));
'Current date "%s" is newer than latest date "%s"',
$release['published_at']->format('Y-m-d H:i'),
$latest['published_at']->format('Y-m-d H:i')
));
$latest = $release;
}
}
@@ -179,7 +180,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
private function getReleases(): array
{
$client = new Client();
$opts = ['timeout' => 5.0, 'headers' => ['User-Agent' => 'FireflyIII/' . config('firefly.version')]];
$opts = ['timeout' => 5.0, 'headers' => ['User-Agent' => 'FireflyIII/'.config('firefly.version')]];
$return = [];
$body = '';
if ($this->localDebug && file_exists('json.json')) {
@@ -188,13 +189,13 @@ class GitHubUpdateRequest implements UpdateRequestInterface
if (!$this->localDebug) {
try {
$res = $client->get('https://api.github.com/repos/firefly-iii/firefly-iii/releases', $opts);
} catch (ClientException | Exception $e) {
} catch (ClientException|Exception $e) {
Log::error($e->getMessage());
return [];
}
Log::debug('Successfully contacted GitHub');
$body = (string)$res->getBody();
$body = (string) $res->getBody();
}
if (!json_validate($body)) {
@@ -202,7 +203,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
return [];
}
$json = json_decode($body, true);
$json = json_decode($body, true);
/** @var array $release */
foreach ($json as $release) {
@@ -217,7 +218,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
continue;
}
$return[] = ['version' => $version, 'published_at' => $published];
$return[] = ['version' => $version, 'published_at' => $published];
}
return $return;

View File

@@ -79,7 +79,7 @@ return [
// see cer.php for exchange rates feature flag.
],
'version' => 'develop/2026-03-07',
'build_time' => 1772861293,
'build_time' => 1772875424,
'api_version' => '2.1.0', // field is no longer used.
'db_version' => 28, // field is no longer used.