public function getDesktopPastReleases()

in app/classes/ReleaseInsights/Data.php [81:113]


    public function getDesktopPastReleases(bool $dot_releases = true): array
    {
        // Historical data from Product Details, cache a week
        $major_releases = Json::load($this->pd_url . 'firefox_history_major_releases.json', $this->cache_duration);
        $minor_releases =  $dot_releases == true ? Json::load($this->pd_url . 'firefox_history_stability_releases.json', $this->cache_duration) : [];
        $all_releases = [...$major_releases, ...$minor_releases];

        // Sort releases by release date
        asort($all_releases);

        // Remove all minor ESR releases
        $exclude_esr = function (string $version_number) {
            // Those releases were not ESR releases despite the middle number
            if (in_array($version_number, ['33.1', '33.1.1', '50.1.0'])) {
                return true;
            }

            $data = explode('.', $version_number);

            // We started ESR releases with version 10
            if (intval($data[0]) < 10) {
                return true;
            }

            if (intval($data[1]) > 0) {
                return false;
            }

            return true;
        };

        return array_filter($all_releases, $exclude_esr, ARRAY_FILTER_USE_KEY);
    }