in app/classes/ReleaseInsights/ESR.php [48:87]
public static function getOlderSupportedVersion(int $version): ?string
{
$current_ESR = self::getVersion($version);
// We can't find a matching ESR, return now to avoid PHP warnings
if (is_null($current_ESR)) {
return null;
}
$current_ESR = Version::getMajor($current_ESR);
// We don't have an older ESR than the first ESR
if (self::$esr_releases[0] == $current_ESR) {
return null;
}
$previous_ESR = self::$esr_releases[
array_search(
$current_ESR,
self::$esr_releases
)-1
];
/*
1. We support 2 ESR branches for 3 releases only since Version 68.
2. Before that, we had 2 cycles only with 2 ESR branches as cycles lasted longer
3. We extended the 115 ESR cycle because of a still large Windows 7/8.1 population
*/
$esr_minor_releases = match(true) {
$version < 78 => 1,
$current_ESR === 128 => 11,
default => 2,
};
if (($version - $current_ESR) > $esr_minor_releases) {
return null;
}
return (string) $previous_ESR . '.' . ($version - $previous_ESR) . '.0';
}