@@ -33,8 +33,8 @@ open Datamodel_types
3333module DT = Datamodel_types
3434
3535let rec list_distinct list =
36- match list with
37- | [] -> []
36+ match list with
37+ | [] -> []
3838 | [x] -> [x]
3939 | hd1 ::(hd2 ::_ as tl ) -> if hd1 = hd2 then list_distinct tl
4040 else hd1::(list_distinct tl)
@@ -54,9 +54,9 @@ and list_index_of x list =
5454 with Not_found -> - 1
5555
5656and list_is_empty list =
57- match list with
58- | [] -> true
59- | _ -> false
57+ match list with
58+ | [] -> true
59+ | _ -> false
6060
6161let rec gen_param_groups_for_releases releaseOrder params =
6262 match releaseOrder with
@@ -74,6 +74,7 @@ and get_method_params_list message =
7474 else List. tl message.msg_params
7575
7676and gen_param_groups message params =
77+ let expRelease = get_prototyped_release message.msg_lifecycle in
7778 let msgRelease = get_first_release message.msg_release.internal in
7879 let msgReleaseIndex = list_index_of msgRelease DT. release_order in
7980 let paramGroups = gen_param_groups_for_releases DT. release_order params in
@@ -85,27 +86,30 @@ and gen_param_groups message params =
8586 valid::(getValid tl)
8687 in
8788 let filteredGroups = List. filter (fun x -> match x with | [] -> false | _ -> true ) (getValid paramGroups) in
88- list_distinct filteredGroups
89+ if (not (expRelease = " " )) then
90+ [params]
91+ else
92+ list_distinct filteredGroups
8993
9094and get_release_name release =
91- if release = rel_rio then " XenServer 4.0"
92- else if release = rel_miami then " XenServer 4.1"
93- else if release = rel_symc then " XenServer 4.1.1"
94- else if release = rel_orlando then " XenServer 5.0"
95- else if release = rel_orlando_update_1 then " XenServer 5.0 Update 1"
96- else if release = rel_george then " XenServer 5.5"
97- else if release = rel_midnight_ride then " XenServer 5.6"
98- else if release = rel_cowley then " XenServer 5.6 FP1"
99- else if release = rel_boston then " XenServer 6.0"
100- else if release = rel_tampa then " XenServer 6.1"
101- else if release = rel_clearwater then " XenServer 6.2"
102- else if release = rel_vgpu_tech_preview then " XenServer 6.2 SP1 Tech-Preview"
103- else if release = rel_vgpu_productisation then " XenServer 6.2 SP1"
104- else if release = rel_augusta then " Unreleased "
105- else " "
95+ if release = rel_rio then " XenServer 4.0"
96+ else if release = rel_miami then " XenServer 4.1"
97+ else if release = rel_symc then " XenServer 4.1.1"
98+ else if release = rel_orlando then " XenServer 5.0"
99+ else if release = rel_orlando_update_1 then " XenServer 5.0 Update 1"
100+ else if release = rel_george then " XenServer 5.5"
101+ else if release = rel_midnight_ride then " XenServer 5.6"
102+ else if release = rel_cowley then " XenServer 5.6 FP1"
103+ else if release = rel_boston then " XenServer 6.0"
104+ else if release = rel_tampa then " XenServer 6.1"
105+ else if release = rel_clearwater then " XenServer 6.2"
106+ else if release = rel_vgpu_tech_preview then " XenServer 6.2 SP1 Tech-Preview"
107+ else if release = rel_vgpu_productisation then " XenServer 6.2 SP1"
108+ else if release = rel_clearwater_felton then " XenServer 6.2 SP1 Hotfix XS62ESP1004 "
109+ else " "
106110
107111and get_first_release releases =
108- let filtered = List. filter (fun x -> List. mem x releases) DT. release_order in
112+ let filtered = List. filter (fun x -> List. mem x releases) DT. release_order in
109113 match filtered with
110114 | [] -> " "
111115 | hd ::tl -> hd
@@ -114,34 +118,50 @@ and get_first_release_string release =
114118 if release = " " then " "
115119 else sprintf " First published in %s." (get_release_name release)
116120
121+ and get_prototyped_release lifecycle =
122+ match lifecycle with
123+ | [Prototyped , release, doc] -> release
124+ | _ -> " "
125+
126+ and get_prototyped_release_string lifecycle =
127+ match lifecycle with
128+ | [Prototyped , release, doc] -> " Experimental. " ^ (get_first_release_string release)
129+ | _ -> " "
130+
117131and get_published_info_message message cls =
132+ let expRelease = get_prototyped_release_string message.msg_lifecycle in
118133 let clsRelease = get_first_release cls.obj_release.internal in
119134 let msgRelease = get_first_release message.msg_release.internal in
120135 let clsReleaseIndex = list_index_of clsRelease DT. release_order in
121- let msgReleaseIndex = list_index_of msgRelease DT. release_order in
122- if (not (clsReleaseIndex = - 1 )) && (not (msgReleaseIndex = - 1 )) && (clsReleaseIndex < msgReleaseIndex) then
136+ let msgReleaseIndex = list_index_of msgRelease DT. release_order in
137+ if (not (expRelease = " " )) then
138+ expRelease
139+ else if (not (clsReleaseIndex = - 1 )) && (not (msgReleaseIndex = - 1 )) && (clsReleaseIndex < msgReleaseIndex) then
123140 get_first_release_string msgRelease
124141 else
125142 get_first_release_string clsRelease
126143
127144and get_published_info_param message param =
128- let msgRelease = get_first_release message.msg_release.internal in
129- let paramRelease = get_first_release param.param_release.internal in
145+ let msgRelease = get_first_release message.msg_release.internal in
146+ let paramRelease = get_first_release param.param_release.internal in
130147 let msgReleaseIndex = list_index_of msgRelease DT. release_order in
131148 let paramReleaseIndex = list_index_of paramRelease DT. release_order in
132149 if (not (msgReleaseIndex = - 1 )) && (not (paramReleaseIndex = - 1 )) && (msgReleaseIndex < paramReleaseIndex) then
133150 get_first_release_string paramRelease
134- else " "
151+ else " "
135152
136153and get_published_info_class cls =
137154 get_first_release_string (get_first_release cls.obj_release.internal)
138155
139156and get_published_info_field field cls =
157+ let expRelease = get_prototyped_release_string field.lifecycle in
140158 let clsRelease = get_first_release cls.obj_release.internal in
141159 let fieldRelease = get_first_release field.release.internal in
142160 let clsReleaseIndex = list_index_of clsRelease DT. release_order in
143- let fieldReleaseIndex = list_index_of fieldRelease DT. release_order in
144- if (not (clsReleaseIndex = - 1 )) && (not (fieldReleaseIndex = - 1 )) && (clsReleaseIndex < fieldReleaseIndex) then
161+ let fieldReleaseIndex = list_index_of fieldRelease DT. release_order in
162+ if (not (expRelease = " " )) then
163+ expRelease
164+ else if (not (clsReleaseIndex = - 1 )) && (not (fieldReleaseIndex = - 1 )) && (clsReleaseIndex < fieldReleaseIndex) then
145165 get_first_release_string fieldRelease
146166 else
147167 " "
0 commit comments