@@ -5,14 +5,15 @@ type metadata = {
55 version : string ;
66 date : string ;
77 is_latest : bool option ;
8+ is_prerelease : bool option ;
89 is_lts : bool option ;
910 intro : string ;
1011 highlights : string ;
1112}
1213[@@ deriving
1314 of_yaml ,
1415 stable_record ~version: t ~remove: [ intro ; highlights ]
15- ~modify: [ is_latest ; is_lts ]
16+ ~modify: [ is_latest ; is_prerelease ; is_lts ]
1617 ~add:
1718 [
1819 intro_md ;
@@ -32,6 +33,7 @@ let of_metadata m =
3233 (m.highlights |> Markdown.Content. of_string
3334 |> Markdown.Content. render ~syntax_highlighting: true )
3435 ~modify_is_latest: (Option. value ~default: false )
36+ ~modify_is_prerelease: (Option. value ~default: false )
3537 ~modify_is_lts: (Option. value ~default: false )
3638
3739let sort_by_decreasing_version (x : t ) (y : t ) =
@@ -54,17 +56,19 @@ let all () =
5456
5557let is_coq_or_rocq (r : t ) = r.kind == `Coq || r.kind == `Rocq
5658let is_coq_or_rocq_platform (r : t ) = r.kind == `CoqPlatform || r.kind == `RocqPlatform
59+ let is_rocq (r : t ) = r.kind == `Rocq
5760
5861let template () =
5962 let all = all () in
6063 let latest =
61- try List. find (fun (r : t ) -> is_coq_or_rocq r && r.is_latest) all
64+ try List. find (fun (r : t ) -> is_coq_or_rocq r && r.is_latest && not r.is_prerelease ) all
6265 with Not_found ->
6366 raise
6467 (Invalid_argument
6568 " none of the Coq/Rocq releases in data/releases is marked with is_latest: \
6669 true" )
6770 in
71+ let latest_prerelease = List. find_opt (fun (r : t ) -> is_rocq r && r.is_prerelease && r.is_latest) all in
6872 let latest_platform =
6973 try List. find (fun (r : t ) -> is_coq_or_rocq_platform r && r.is_latest) all
7074 with Not_found ->
@@ -85,8 +89,9 @@ let template () =
8589include Data_intf. Release
8690let all = % a
8791let latest = % a
92+ let latest_prerelease = % a
8893let latest_platform = % a
8994let lts = % a
9095| }
9196 (Fmt. brackets (Fmt. list pp ~sep: Fmt. semi))
92- all pp latest pp latest_platform pp lts
97+ all pp latest ( Fmt. option ~none: ( Fmt. const Fmt. string " None " ) ( Fmt. append ( Fmt. const Fmt. string " Some " ) ( Fmt. parens pp))) latest_prerelease pp latest_platform pp lts
0 commit comments