app/models/rss.php (24 lines of code) (raw):

<?php declare(strict_types=1); use ReleaseInsights\Data; $data = new Data(); // We reformat the data to the same format as getDotReleases() before merging them $major_releases = []; foreach ($data->getMajorPastReleases() as $version => $date) { $major_releases[$version] = [ 'date' => $date, 'platform' => 'both', ]; } // We merge and reorder the releases to have the latest first $releases = array_merge($major_releases, $data->getDotReleases()); krsort($releases, SORT_NATURAL); // Limit our RSS feed to 30 items, roughly a year of releases $releases = array_slice($releases, 0, 30); $set_time = fn(string $date) => new DateTime($date)->setTime(13, 0)->format(DateTime::RSS); $rss = []; foreach ($releases as $key => $values) { $rss[] = [ 'version' => $key, 'date' => $set_time($values['date']), 'platform' => $values['platform'], ]; } // We take the last update to the feed as the first item (latest release) in the sorted array return [$set_time(reset($releases)['date']), $rss];