diff --git a/cli/updates_xml_build.php b/cli/updates_xml_build.php index 93b8f11..3d8b94c 100644 --- a/cli/updates_xml_build.php +++ b/cli/updates_xml_build.php @@ -458,6 +458,15 @@ $output = << XML; $allEntries = array_merge($preservedEntries, $entries); + +// Sort entries: dev first, stable last +$stabilityOrder = ['dev' => 0, 'development' => 0, 'alpha' => 1, 'beta' => 2, 'rc' => 3, 'stable' => 4]; +usort($allEntries, function ($a, $b) use ($stabilityOrder) { + preg_match('/([^<]+)<\/tag>/', $a, $ma); + preg_match('/([^<]+)<\/tag>/', $b, $mb); + return ($stabilityOrder[$ma[1] ?? ''] ?? 99) - ($stabilityOrder[$mb[1] ?? ''] ?? 99); +}); + $output .= "\n" . implode("\n", $allEntries) . "\n\n"; $dest = $outputFile ?? "{$root}/updates.xml";