@@ -127,12 +127,14 @@ enum Subcommand {
127127 #[ clap( value_enum, long, default_value_t = Default :: default ( ) ) ]
128128 on_zero_item : OnZeroItem ,
129129 } ,
130- /// Identify and promote tests that are ready to come out of the `backlog` implementation
131- /// status .
130+ /// Set `implementation-status` properties to `backlog` or `implementing` based on a
131+ /// given `criteria`, allowing changes only in the permitted `direction` .
132132 UpdateBacklog {
133- /// The mode to use for updating tests.
133+ /// Direction(s) permitted for `implementation-status` changes.
134+ direction : UpdateBacklogDirection ,
135+ /// The criteria to use to determine whether something is ready to come out of `backlog`.
134136 #[ clap( subcommand) ]
135- preset : UpdateBacklogSubcommand ,
137+ criteria : UpdateBacklogCriteria ,
136138 } ,
137139 /// Dump all metadata as JSON. Do so at your own risk; no guarantees are made about the
138140 /// schema of this JSON, for now.
@@ -289,8 +291,9 @@ enum OnZeroItem {
289291 Hide ,
290292}
291293
292- #[ derive( Clone , Copy , Debug ) ]
294+ #[ derive( Clone , Copy , Debug , ValueEnum ) ]
293295enum UpdateBacklogDirection {
296+ /// Allows promotions from `backlog` to `implementing`.
294297 Promote ,
295298}
296299
@@ -302,15 +305,10 @@ impl UpdateBacklogDirection {
302305 }
303306}
304307
305- #[ derive( Clone , Copy , Debug ) ]
306- enum UpdateBacklogCriteria {
307- PermaPassing { only_across_all_platforms : bool } ,
308- }
309-
310308#[ derive( Clone , Copy , Debug , Parser ) ]
311- enum UpdateBacklogSubcommand {
312- /// Remove tests that expect only `PASS` outcomes on all platforms from `backlog`.
313- PromotePermaPassing {
309+ enum UpdateBacklogCriteria {
310+ /// Determine status based on `PASS` outcomes on all platforms from `backlog`.
311+ PermaPassing {
314312 #[ clap( long) ]
315313 only_across_all_platforms : bool ,
316314 } ,
@@ -1003,17 +1001,10 @@ fn run(cli: Cli) -> ExitCode {
10031001 println ! ( "Full analysis: {analysis:#?}" ) ;
10041002 ExitCode :: SUCCESS
10051003 }
1006- Subcommand :: UpdateBacklog { preset } => {
1007- let ( direction, criteria) = match preset {
1008- UpdateBacklogSubcommand :: PromotePermaPassing {
1009- only_across_all_platforms,
1010- } => (
1011- UpdateBacklogDirection :: Promote ,
1012- UpdateBacklogCriteria :: PermaPassing {
1013- only_across_all_platforms,
1014- } ,
1015- ) ,
1016- } ;
1004+ Subcommand :: UpdateBacklog {
1005+ direction,
1006+ criteria,
1007+ } => {
10171008 let mut files = {
10181009 let mut found_parse_err = false ;
10191010 let extracted = read_and_parse_all_metadata ( browser, & checkout)
0 commit comments