@@ -82,6 +82,7 @@ type distro =
8282 | `V15_4
8383 | `V15_5
8484 | `V15_6
85+ | `V16_0
8586 | `Tumbleweed ]
8687 | `Ubuntu of
8788 [ `V12_04
@@ -110,7 +111,7 @@ type distro =
110111 | `V25_10 ]
111112 | `Cygwin of [ `Ltsc2016 | `Ltsc2019 | `Ltsc2022 ]
112113 | `Windows of [ `Mingw | `Msvc ] * [ `Ltsc2019 ]
113- | `WindowsServer of [ `Mingw | `Msvc ] * [ `Ltsc2022 ] ]
114+ | `WindowsServer of [ `Mingw | `Msvc ] * [ `Ltsc2022 | `Ltsc2025 ] ]
114115[@@ deriving sexp ]
115116
116117type t =
@@ -186,6 +187,7 @@ type t =
186187 | `V15_4
187188 | `V15_5
188189 | `V15_6
190+ | `V16_0
189191 | `Tumbleweed
190192 | `Latest ]
191193 | `Ubuntu of
@@ -217,7 +219,8 @@ type t =
217219 | `LTS ]
218220 | `Cygwin of [ `Ltsc2016 | `Ltsc2019 | `Ltsc2022 | `Latest ]
219221 | `Windows of [ `Mingw | `Msvc ] * [ `Ltsc2019 | `Latest ]
220- | `WindowsServer of [ `Mingw | `Msvc ] * [ `Ltsc2022 | `Latest ] ]
222+ | `WindowsServer of [ `Mingw | `Msvc ] * [ `Ltsc2022 | `Ltsc2025 | `Latest ]
223+ ]
221224[@@ deriving sexp ]
222225
223226type os_family = [ `Cygwin | `Linux | `Windows ] [@@ deriving sexp ]
@@ -331,6 +334,7 @@ let distros : t list =
331334 `OpenSUSE `V15_4 ;
332335 `OpenSUSE `V15_5 ;
333336 `OpenSUSE `V15_6 ;
337+ `OpenSUSE `V16_0 ;
334338 `OpenSUSE `Tumbleweed ;
335339 `OpenSUSE `Latest ;
336340 `Ubuntu `V12_04 ;
@@ -368,8 +372,10 @@ let distros : t list =
368372 `Windows (`Msvc , `Ltsc2019 );
369373 `Windows (`Msvc , `Latest );
370374 `WindowsServer (`Mingw , `Ltsc2022 );
375+ `WindowsServer (`Mingw , `Ltsc2025 );
371376 `WindowsServer (`Mingw , `Latest );
372377 `WindowsServer (`Msvc , `Ltsc2022 );
378+ `WindowsServer (`Msvc , `Ltsc2025 );
373379 `WindowsServer (`Msvc , `Latest );
374380 ]
375381
@@ -380,12 +386,12 @@ let resolve_alias (d : t) : distro =
380386 | `Debian `Stable -> `Debian `V13
381387 | `Fedora `Latest -> `Fedora `V43
382388 | `OracleLinux `Latest -> `OracleLinux `V10
383- | `OpenSUSE `Latest -> `OpenSUSE `V15_6
389+ | `OpenSUSE `Latest -> `OpenSUSE `V16_0
384390 | `Ubuntu `Latest -> `Ubuntu `V25_10
385391 | `Ubuntu `LTS -> `Ubuntu `V24_04
386392 | `Cygwin `Latest -> `Cygwin `Ltsc2022
387393 | `Windows (cc , `Latest) -> `Windows (cc, `Ltsc2019 )
388- | `WindowsServer (cc , `Latest) -> `WindowsServer (cc, `Ltsc2022 )
394+ | `WindowsServer (cc , `Latest) -> `WindowsServer (cc, `Ltsc2025 )
389395 | ( `Alpine
390396 ( `V3_3 | `V3_4 | `V3_5 | `V3_6 | `V3_7 | `V3_8 | `V3_9 | `V3_10
391397 | `V3_11 | `V3_12 | `V3_13 | `V3_14 | `V3_15 | `V3_16 | `V3_17 | `V3_18
@@ -401,15 +407,15 @@ let resolve_alias (d : t) : distro =
401407 | `OracleLinux (`V7 | `V8 | `V9 | `V10 )
402408 | `OpenSUSE
403409 ( `V42_1 | `V42_2 | `V42_3 | `V15_0 | `V15_1 | `V15_2 | `V15_3 | `V15_4
404- | `V15_5 | `V15_6 | `Tumbleweed )
410+ | `V15_5 | `V15_6 | `V16_0 | ` Tumbleweed )
405411 | `Ubuntu
406412 ( `V12_04 | `V14_04 | `V15_04 | `V15_10 | `V16_04 | `V16_10 | `V17_04
407413 | `V17_10 | `V18_04 | `V18_10 | `V19_04 | `V19_10 | `V20_04 | `V20_10
408414 | `V21_04 | `V21_10 | `V22_04 | `V22_10 | `V23_04 | `V23_10 | `V24_04
409415 | `V24_10 | `V25_04 | `V25_10 )
410416 | `Cygwin (`Ltsc2016 | `Ltsc2019 | `Ltsc2022 )
411417 | `Windows (_, `Ltsc2019 )
412- | `WindowsServer (_ , `Ltsc2022) ) as d ->
418+ | `WindowsServer (_ , ( `Ltsc2022 | `Ltsc2025 ) ) ) as d ->
413419 d
414420
415421let distro_status (d : t ) : status =
@@ -426,25 +432,24 @@ let distro_status (d : t) : status =
426432 | `Archlinux `Latest -> `Active `Tier3
427433 | `CentOS (`V9 | `V10 ) -> `Active `Tier3
428434 | `CentOS (`V6 | `V7 | `V8 ) -> `Deprecated
429- | `Debian (`V7 | `V8 | `V9 | `V10 ) -> `Deprecated
430- | `Debian `V11 -> `Active `Tier2
435+ | `Debian (`V7 | `V8 | `V9 | `V10 | `V11 ) -> `Deprecated
431436 | `Debian `V12 -> `Active `Tier2
432437 | `Debian `V13 -> `Active `Tier1
433438 | `Debian `Testing -> `Active `Tier3
434439 | `Debian `Unstable -> `Active `Tier3
435440 | `Fedora
436441 ( `V21 | `V22 | `V23 | `V24 | `V25 | `V26 | `V27 | `V28 | `V29 | `V30
437- | `V31 | `V32 | `V33 | `V34 | `V35 | `V36 | `V37 | `V38 | `V39 | `V40 )
438- ->
442+ | `V31 | `V32 | `V33 | `V34 | `V35 | `V36 | `V37 | `V38 | `V39 | `V40
443+ | `V41 ) ->
439444 `Deprecated
440- | `Fedora (`V41 | ` V42 | `V43 ) -> `Active `Tier2
441- | `OracleLinux `V7 -> `Deprecated
442- | `OracleLinux ( `V8 | `V9 | ` V10) -> `Active `Tier3
445+ | `Fedora (`V42 | `V43 ) -> `Active `Tier2
446+ | `OracleLinux ( `V7 | `V8 | `V9 ) -> `Deprecated
447+ | `OracleLinux ` V10 -> `Active `Tier3
443448 | `OpenSUSE
444449 ( `V42_1 | `V42_2 | `V42_3 | `V15_0 | `V15_1 | `V15_2 | `V15_3 | `V15_4
445450 | `V15_5 ) ->
446451 `Deprecated
447- | `OpenSUSE `V15_6 -> `Active `Tier2
452+ | `OpenSUSE ( `V15_6 | `V16_0 ) -> `Active `Tier2
448453 | `OpenSUSE `Tumbleweed -> `Active `Tier2
449454 | `Ubuntu (`V22_04 | `V24_04 | `V25_04 | `V25_10 ) -> `Active `Tier2
450455 | `Ubuntu
@@ -455,7 +460,7 @@ let distro_status (d : t) : status =
455460 | `Cygwin (`Ltsc2016 | `Ltsc2019 ) -> `Deprecated
456461 | `Cygwin `Ltsc2022 -> `Active `Tier3
457462 | `Windows (_ , `Ltsc2019) -> `Active `Tier3
458- | `WindowsServer (_ , `Ltsc2022) -> `Active `Tier3
463+ | `WindowsServer (_ , ( `Ltsc2022 | `Ltsc2025 ) ) -> `Active `Tier3
459464
460465let latest_distros =
461466 [
@@ -512,18 +517,21 @@ let distro_arches ov (d : t) =
512517 [ `X86_64 ; `Aarch64 ; `Ppc64le ; `S390x ]
513518 | ( `Ubuntu
514519 ( `V20_04 | `V20_10 | `V21_04 | `V21_10 | `V22_04 | `V22_10 | `V23_04
515- | `V23_10 | `V24_04 | `V24_10 | `V25_04 | `V25_10 ),
520+ | `V23_10 | `V24_04 | `V24_10 | `V25_04 ),
516521 ov )
517522 when OV. (compare Releases. v4_05_0 ov) = - 1 ->
518523 let base = [ `X86_64 ; `Aarch64 ; `Ppc64le ; `S390x ] in
519524 if OV. (compare Releases. v4_11_0 ov) < = 0 then `Riscv64 :: base else base
525+ | `Ubuntu `V25_10 , ov when OV. (compare Releases. v4_05_0 ov) = - 1 ->
526+ (* Ubuntu 25.10's Only Supported RISC-V Platform is QEMU Virtualization *)
527+ [ `X86_64 ; `Aarch64 ; `Ppc64le ; `S390x ]
520528 | ( `Fedora
521529 ( `V33 | `V34 | `V35 | `V36 | `V37 | `V38 | `V39 | `V40 | `V41 | `V42
522530 | `V43 ),
523531 ov )
524532 when OV. (compare Releases. v4_08_0 ov) = - 1 ->
525533 [ `X86_64 ; `Aarch64 ]
526- | `OpenSUSE (`V15_4 | `V15_5 | `V15_6 ), ov
534+ | `OpenSUSE (`V15_4 | `V15_5 | `V15_6 | `V16_0 ), ov
527535 when OV. (compare Releases. v4_02_0 ov) = - 1 ->
528536 [ `X86_64 ; `Aarch64 ]
529537 (* OCaml for Windows doesn't package OCaml 5.0.
@@ -665,6 +673,7 @@ let builtin_ocaml_of_distro (d : t) : string option =
665673 | `OpenSUSE `V15_4 -> Some " 4.05.0"
666674 | `OpenSUSE `V15_5 -> Some " 4.05.0"
667675 | `OpenSUSE `V15_6 -> Some " 4.14.2"
676+ | `OpenSUSE `V16_0 -> Some " 4.14.2"
668677 | `OpenSUSE `Tumbleweed -> Some " 4.14.1"
669678 | `OracleLinux `V7 -> Some " 4.01.0"
670679 | `OracleLinux `V8 -> Some " 4.07.0"
@@ -781,6 +790,7 @@ let tag_of_distro (d : t) =
781790 | `OpenSUSE `V15_4 -> " opensuse-15.4"
782791 | `OpenSUSE `V15_5 -> " opensuse-15.5"
783792 | `OpenSUSE `V15_6 -> " opensuse-15.6"
793+ | `OpenSUSE `V16_0 -> " opensuse-16.0"
784794 | `OpenSUSE `Tumbleweed -> " opensuse-tumbleweed"
785795 | `OpenSUSE `Latest -> " opensuse"
786796 | `Cygwin `Ltsc2016 -> " cygwin-2016"
@@ -792,8 +802,10 @@ let tag_of_distro (d : t) =
792802 | `Windows (`Msvc, `Ltsc2019) -> " windows-msvc-ltsc2019"
793803 | `Windows (`Msvc, `Latest) -> " windows-msvc"
794804 | `WindowsServer (`Mingw, `Ltsc2022) -> " windows-server-mingw-ltsc2022"
805+ | `WindowsServer (`Mingw, `Ltsc2025) -> " windows-server-mingw-ltsc2025"
795806 | `WindowsServer (`Mingw, `Latest) -> " windows-server-mingw"
796807 | `WindowsServer (`Msvc, `Ltsc2022) -> " windows-server-msvc-ltsc2022"
808+ | `WindowsServer (`Msvc, `Ltsc2025) -> " windows-server-msvc-ltsc2025"
797809 | `WindowsServer (`Msvc, `Latest) -> " windows-server-msvc"
798810
799811let distro_of_tag x : t option =
@@ -900,6 +912,7 @@ let distro_of_tag x : t option =
900912 | "opensuse-15.4" -> Some (`OpenSUSE `V15_4 )
901913 | "opensuse-15.5" -> Some (`OpenSUSE `V15_5 )
902914 | "opensuse-15.6" -> Some (`OpenSUSE `V15_6 )
915+ | "opensuse-16.0" -> Some (`OpenSUSE `V16_0 )
903916 | "opensuse-tumbleweed" -> Some (`OpenSUSE `Tumbleweed )
904917 | "opensuse" -> Some (`OpenSUSE `Latest )
905918 | "cygwin-ltsc2016" -> Some (`Cygwin `Ltsc2016 )
@@ -911,8 +924,10 @@ let distro_of_tag x : t option =
911924 | "windows-msvc-ltsc2019" -> Some (`Windows (`Msvc , `Ltsc2019 ))
912925 | "windows-msvc" -> Some (`Windows (`Msvc , `Latest ))
913926 | "windows-server-mingw-ltsc2022" -> Some (`WindowsServer (`Mingw , `Ltsc2022 ))
927+ | "windows-server-mingw-ltsc2025" -> Some (`WindowsServer (`Mingw , `Ltsc2025 ))
914928 | "windows-server-mingw" -> Some (`WindowsServer (`Mingw , `Latest ))
915929 | "windows-server-msvc-ltsc2022" -> Some (`WindowsServer (`Msvc , `Ltsc2022 ))
930+ | "windows-server-msvc-ltsc2025" -> Some (`WindowsServer (`Msvc , `Ltsc2025 ))
916931 | "windows-server-msvc" -> Some (`WindowsServer (`Msvc , `Latest ))
917932 | _ -> None
918933
@@ -1016,14 +1031,17 @@ let human_readable_string_of_distro (d : t) =
10161031 | `OpenSUSE `V15_4 -> " OpenSUSE 15.4 (Leap)"
10171032 | `OpenSUSE `V15_5 -> " OpenSUSE 15.5 (Leap)"
10181033 | `OpenSUSE `V15_6 -> " OpenSUSE 15.6 (Leap)"
1034+ | `OpenSUSE `V16_0 -> " OpenSUSE 16.0 (Leap)"
10191035 | `OpenSUSE `Tumbleweed -> " OpenSUSE Tumbleweed"
10201036 | `Cygwin `Ltsc2016 -> " Cygwin Ltsc2016"
10211037 | `Cygwin `Ltsc2019 -> " Cygwin Ltsc2019"
10221038 | `Cygwin `Ltsc2022 -> " Cygwin Ltsc2022"
10231039 | `Windows (`Mingw, `Ltsc2019) -> " Windows Ltsc2019 mingw"
10241040 | `Windows (`Msvc, `Ltsc2019) -> " Windows Ltsc2019 msvc"
10251041 | `WindowsServer (`Mingw, `Ltsc2022) -> " Windows Server Ltsc2022 mingw"
1042+ | `WindowsServer (`Mingw, `Ltsc2025) -> " Windows Server Ltsc2025 mingw"
10261043 | `WindowsServer (`Msvc, `Ltsc2022) -> " Windows Server Ltsc2022 msvc"
1044+ | `WindowsServer (`Msvc, `Ltsc2025) -> " Windows Server Ltsc2025 msvc"
10271045
10281046let human_readable_short_string_of_distro (t : t ) =
10291047 match t with
@@ -1178,6 +1196,7 @@ let bubblewrap_version (t : t) =
11781196 | `OpenSUSE `V15_4 -> Some (0 , 4 , 1 )
11791197 | `OpenSUSE `V15_5 -> Some (0 , 7 , 0 )
11801198 | `OpenSUSE `V15_6 -> Some (0 , 8 , 0 )
1199+ | `OpenSUSE `V16_0 -> Some (0 , 11 , 0 )
11811200 | `OpenSUSE `Tumbleweed -> Some (0 , 8 , 0 )
11821201 | `Cygwin _ -> None
11831202 | `Windows _ -> None
@@ -1317,6 +1336,7 @@ let base_distro_tag ?(arch = `X86_64) d =
13171336 | `V15_4 -> " 15.4"
13181337 | `V15_5 -> " 15.5"
13191338 | `V15_6 -> " 15.6"
1339+ | `V16_0 -> " 16.0"
13201340 | `Tumbleweed -> assert false
13211341 in
13221342 (" opensuse/leap" , tag)
@@ -1332,7 +1352,9 @@ let base_distro_tag ?(arch = `X86_64) d =
13321352 let tag = match v with _ , `Ltsc2019 -> " ltsc2019" in
13331353 (" mcr.microsoft.com/windows" , tag)
13341354 | `WindowsServer v ->
1335- let tag = match v with _ , `Ltsc2022 -> " ltsc2022" in
1355+ let tag =
1356+ match v with _ , `Ltsc2022 -> " ltsc2022" | _ , `Ltsc2025 -> " ltsc2025"
1357+ in
13361358 (" mcr.microsoft.com/windows/server" , tag)
13371359
13381360let compare a b =
0 commit comments