Build Logs

zio/zio-cli • 3.8.0-RC5:2025-12-31

Errors

0

Warnings

82

Total Lines

1435

1##################################
2Clonning https://github.com/zio/zio-cli.git into /build/repo using revision v0.7.4
3##################################
4Note: switching to '407a3c8503de759a32215cb3488b709bf69c7c80'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21Would override fixed Scala version: 3.3.7
22----
23Preparing build for 3.8.0-RC5
24Scala binary version found: 3.8
25Implicitly using source version 3.8
26Scala binary version found: 3.8
27Implicitly using source version 3.8
28Would try to apply common scalacOption (best-effort, sbt/mill only):
29Append: ,REQUIRE:-source:3.8
30Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
31
32Try apply source patch:
33Path: project/BuildHelper.scala
34Pattern: val Scala3 = "3.3.7"
35Replacement: val Scala3 = "3.8.0-RC5"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (21))
38Compiled project (Scala 3.7.3, JVM (21))
39Successfully applied pattern 'val Scala3 = "3.3.7"' in project/BuildHelper.scala
40----
41Starting build for 3.8.0-RC5
42Execute tests: true
43sbt project found:
44No prepare script found for project zio/zio-cli
45##################################
46Scala version: 3.8.0-RC5
47Targets: dev.zio%examples dev.zio%zio-cli dev.zio%zio-cli-testkit
48Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/BuildHelper.scala","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
49##################################
50Using extra scalacOptions: ,REQUIRE:-source:3.8
51Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
52[sbt_options] declare -a sbt_options=()
53[process_args] java_version = '21'
54[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21/rt.jar'
55# Executing command line:
56java
57-Dcats.effect.stackTracingMode=full
58-Dfile.encoding=UTF8
59-Xms256M
60-Xmx6G
61-XX:+UseG1GC
62-Dcommunitybuild.scala=3.8.0-RC5
63-Dcommunitybuild.project.dependencies.add=
64-Xmx7G
65-Xms4G
66-Xss8M
67-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
68-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21
69-jar
70/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
71"setCrossScalaVersions 3.8.0-RC5"
72"++3.8.0-RC5 -v"
73"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
74"set every credentials := Nil"
75"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
76"removeScalacOptionsStartingWith -P:wartremover"
77
78moduleMappings
79"runBuild 3.8.0-RC5 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/BuildHelper.scala","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}""" dev.zio%examples dev.zio%zio-cli dev.zio%zio-cli-testkit"
80
81[info] [launcher] getting org.scala-sbt sbt 1.11.7 (this may take some time)...
82[info] welcome to sbt 1.11.7 (Eclipse Adoptium Java 21)
83[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
84[info] loading project definition from /build/repo/project
85[info] compiling 3 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
86[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
87[info] Compilation completed in 8.571s.
88[info] done compiling
89[info] loading settings for project root from build.sbt...
90[info] resolving key references (14848 settings) ...
91[info] set current project to root (in build file:/build/repo/)
92[warn] there are 27 keys that are not used by any other settings/tasks:
93[warn]
94[warn] * examplesJS / buildInfoKeys
95[warn] +- /build/repo/project/BuildHelper.scala:19
96[warn] * examplesJS / buildInfoObject
97[warn] +- /build/repo/project/BuildHelper.scala:21
98[warn] * examplesJS / buildInfoPackage
99[warn] +- /build/repo/project/BuildHelper.scala:20
100[warn] * examplesJVM / buildInfoKeys
101[warn] +- /build/repo/project/BuildHelper.scala:19
102[warn] * examplesJVM / buildInfoObject
103[warn] +- /build/repo/project/BuildHelper.scala:21
104[warn] * examplesJVM / buildInfoPackage
105[warn] +- /build/repo/project/BuildHelper.scala:20
106[warn] * examplesNative / buildInfoKeys
107[warn] +- /build/repo/project/BuildHelper.scala:19
108[warn] * examplesNative / buildInfoObject
109[warn] +- /build/repo/project/BuildHelper.scala:21
110[warn] * examplesNative / buildInfoPackage
111[warn] +- /build/repo/project/BuildHelper.scala:20
112[warn] * testkitJS / buildInfoKeys
113[warn] +- /build/repo/project/BuildHelper.scala:19
114[warn] * testkitJS / buildInfoObject
115[warn] +- /build/repo/project/BuildHelper.scala:21
116[warn] * testkitJS / buildInfoPackage
117[warn] +- /build/repo/project/BuildHelper.scala:20
118[warn] * testkitJVM / buildInfoKeys
119[warn] +- /build/repo/project/BuildHelper.scala:19
120[warn] * testkitJVM / buildInfoObject
121[warn] +- /build/repo/project/BuildHelper.scala:21
122[warn] * testkitJVM / buildInfoPackage
123[warn] +- /build/repo/project/BuildHelper.scala:20
124[warn] * testkitNative / buildInfoKeys
125[warn] +- /build/repo/project/BuildHelper.scala:19
126[warn] * testkitNative / buildInfoObject
127[warn] +- /build/repo/project/BuildHelper.scala:21
128[warn] * testkitNative / buildInfoPackage
129[warn] +- /build/repo/project/BuildHelper.scala:20
130[warn] * zioCliJS / buildInfoKeys
131[warn] +- /build/repo/project/BuildHelper.scala:19
132[warn] * zioCliJS / buildInfoObject
133[warn] +- /build/repo/project/BuildHelper.scala:21
134[warn] * zioCliJS / buildInfoPackage
135[warn] +- /build/repo/project/BuildHelper.scala:20
136[warn] * zioCliJVM / buildInfoKeys
137[warn] +- /build/repo/project/BuildHelper.scala:19
138[warn] * zioCliJVM / buildInfoObject
139[warn] +- /build/repo/project/BuildHelper.scala:21
140[warn] * zioCliJVM / buildInfoPackage
141[warn] +- /build/repo/project/BuildHelper.scala:20
142[warn] * zioCliNative / buildInfoKeys
143[warn] +- /build/repo/project/BuildHelper.scala:19
144[warn] * zioCliNative / buildInfoObject
145[warn] +- /build/repo/project/BuildHelper.scala:21
146[warn] * zioCliNative / buildInfoPackage
147[warn] +- /build/repo/project/BuildHelper.scala:20
148[warn]
149[warn] note: a setting might still be used by a command; to exclude a key from this `lintUnused` check
150[warn] either append it to `Global / excludeLintKeys` or call .withRank(KeyRanks.Invisible) on the key
151Execute setCrossScalaVersions: 3.8.0-RC5
152OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in testkitJS/crossScalaVersions
153OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in examplesJVM/crossScalaVersions
154OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in examplesJS/crossScalaVersions
155OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in testkitJVM/crossScalaVersions
156OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in zioCliNative/crossScalaVersions
157OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in zioCliJS/crossScalaVersions
158OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in testkitNative/crossScalaVersions
159OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in zioCliJVM/crossScalaVersions
160OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in examplesNative/crossScalaVersions
161OpenCB::Limitting incorrect crossVersions List() -> List(2.13.17) in root/crossScalaVersions
162[info] set current project to root (in build file:/build/repo/)
163[info] Setting Scala version to 3.8.0-RC5 on 9 projects.
164[info] Switching Scala version on:
165[info] examplesNative (2.12.20, 2.13.17, 3.8.0-RC5)
166[info] zioCliJS (2.12.20, 2.13.17, 3.8.0-RC5)
167[info] testkitNative (2.12.20, 2.13.17, 3.8.0-RC5)
168[info] zioCliNative (2.12.20, 2.13.17, 3.8.0-RC5)
169[info] testkitJS (2.12.20, 2.13.17, 3.8.0-RC5)
170[info] zioCliJVM (2.12.20, 2.13.17, 3.8.0-RC5)
171[info] examplesJS (2.12.20, 2.13.17, 3.8.0-RC5)
172[info] examplesJVM (2.12.20, 2.13.17, 3.8.0-RC5)
173[info] testkitJVM (2.12.20, 2.13.17, 3.8.0-RC5)
174[info] Excluding projects:
175[info] * root (2.13.17)
176[info] docs (2.13.17)
177[info] sbtZioCli (2.12.20)
178[info] Reapplying settings...
179[info] set current project to root (in build file:/build/repo/)
180Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
181[info] Reapplying settings...
182[info] set current project to root (in build file:/build/repo/)
183[info] Defining Global / credentials, credentials and 10 others.
184[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 96 others.
185[info] Run `last` for details.
186[info] Reapplying settings...
187[info] set current project to root (in build file:/build/repo/)
188Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
189[info] Reapplying settings...
190OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
191
192 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
193 Did you mean sbtZioCli / allExcludeDependencies ?
194 , retry without global scopes
195[info] Reapplying settings...
196[info] set current project to root (in build file:/build/repo/)
197Execute removeScalacOptionsStartingWith: -P:wartremover
198[info] Reapplying settings...
199[info] set current project to root (in build file:/build/repo/)
200[success] Total time: 0 s, completed Dec 31, 2025, 9:15:34 PM
201Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/BuildHelper.scala","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
202Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
203Starting build...
204Projects: Set(examplesJVM, zioCliJVM, testkitJVM)
205Starting build for ProjectRef(file:/build/repo/,examplesJVM) (examples)... [0/3]
206OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
207OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
208OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
209Compile scalacOptions: -encoding, UTF-8, -unchecked, -noindent, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
210[info] compiling 48 Scala sources to /build/repo/zio-cli/jvm/target/scala-3.8.0-RC5/classes ...
211[warn] -- Warning: /build/repo/zio-cli/shared/src/main/scala/zio/cli/Command.scala:128:34
212[warn] 128 | .map(CommandDirective.BuiltIn)
213[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^
214[warn] |The method `apply` is inserted. The auto insertion will be deprecated, please write `zio.cli.CommandDirective.BuiltIn.apply` explicitly.
215[warn] -- [E147] Syntax Warning: /build/repo/zio-cli/shared/src/main/scala/zio/cli/oauth2/TokenType.scala:15:2
216[warn] 15 | final case object Bearer extends TokenType
217[warn] | ^^^^^
218[warn] | Modifier final is redundant for this definition
219[warn] -- [E147] Syntax Warning: /build/repo/zio-cli/shared/src/main/scala/zio/cli/oauth2/TokenType.scala:16:2
220[warn] 16 | final case object Mac extends TokenType
221[warn] | ^^^^^
222[warn] | Modifier final is redundant for this definition
223[warn] -- [E121] Pattern Match Warning: /build/repo/zio-cli/shared/src/main/scala/zio/cli/Options.scala:709:15
224[warn] 709 | case _ => acc
225[warn] | ^
226[warn] |Unreachable case except for null (if this is intentional, consider writing case null => instead).
227[warn] four warnings found
228[info] done compiling
229[info] compiling 4 Scala sources to /build/repo/examples/jvm/target/scala-3.8.0-RC5/classes ...
230[warn] -- Warning: /build/repo/examples/jvm/src/main/scala/zio/cli/examples/GitExample.scala:45:90
231[warn] 45 | Command("remove", Args.text("name")).withHelp(remoteRemoveHelp).map(Subcommand.Remote.Remove)
232[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^
233[warn] |The method `apply` is inserted. The auto insertion will be deprecated, please write `zio.cli.examples.GitExample.Subcommand.Remote.Remove.apply` explicitly.
234[warn] there was 1 deprecation warning; re-run with -deprecation for details
235[warn] two warnings found
236[info] done compiling
237Starting build for ProjectRef(file:/build/repo/,zioCliJVM) (zio-cli)... [1/3]
238Compile scalacOptions: -encoding, UTF-8, -unchecked, -noindent, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
239[info] compiling 19 Scala sources to /build/repo/zio-cli/jvm/target/scala-3.8.0-RC5/test-classes ...
240[info] done compiling
241+ AutoCorrect.levensteinDistance Suite
242 + calculates the correct levenstein distance for non ascii characters
243 + calculate the correct levenstein distance between two strings
244 + takes into account the provided parserOptions case sensitivity
245+ FigFontRenderReportSpec
246 - figlet.org Fonts Render Report - ignored: 1
247+ FigFontParserSpec
248 + parse standard.flf
249+ PrimTypeTests
250 + Text Suite
251 + validates everything
252 + LocalDate Suite
253 + validate returns proper LocalDate representation
254 + validate rejects improper LocalDate representation
255 + OffsetDateTime Suite
256 + validate returns proper OffsetDateTime representation
257 + validate rejects improper OffsetDateTime representation
258 + ZoneOffset Suite
259 + validate returns proper ZoneOffset representation
260 + validate rejects improper ZoneOffset representation
261 + Period Suite
262 + validate rejects improper Period representation
263 + validate returns proper Period representation
264 + ZonedDateTime Suite
265 + validate rejects improper ZonedDateTime representation
266 + validate returns proper ZonedDateTime representation
267 + Path Suite
268 + validate returns proper directory path
269 + validate returns proper directory path if both allowed
270 + validate returns error if path targets file but directory was expected
271 + validate returns proper file path
272 + validate returns proper file path if both allowed
273 + validate returns error if path targets directory but file was expected
274 + validate returns error if file doesn't exits but must exists
275 + validate returns error if file does exits but must not exists
276 + BigDecimal Suite
277 + validate rejects improper BigDecimal representation
278 + validate returns proper BigDecimal representation
279 + Boolean Suite
280 + validate rejects improper Boolean representation
281 + validate true combinations returns proper Boolean representation
282 + validate false combinations returns proper Boolean representation
283 + validate uses default value if value is not provided
284 + Duration Suite
285 + validate rejects improper Duration representation
286 + validate returns proper Duration representation
287 + Integer Suite
288 + validate rejects improper Integer representation
289 + validate returns proper Integer representation
290 + Instant Suite
291 + validate rejects improper Instant representation
292 + validate returns proper Instant representation
293 + LocalDateTime Suite
294 + validate rejects improper LocalDateTime representation
295 + validate returns proper LocalDateTime representation
296 + LocalTime Suite
297 + validate rejects improper LocalTime representation
298 + validate returns proper LocalTime representation
299 + MonthDay Suite
300 + validate rejects improper MonthDay representation
301 + validate returns proper MonthDay representation
302 + Year Suite
303 + validate rejects improper Year representation
304 + validate returns proper Year representation
305 + OffsetTime Suite
306 + validate rejects improper OffsetTime representation
307 + validate returns proper OffsetTime representation
308 + YearMonth Suite
309 + validate rejects improper YearMonth representation
310 + validate returns proper YearMonth representation
311 + ZoneId Suite
312 + validate rejects improper ZoneId representation
313 + validate returns proper ZoneId representation
314 + Enumeration Suite
315 + validate return error if NOT one of the cases
316 + validate return proper value if one of the cases
317+ ArgumentCollisionSpec
318 + argument collision
319+ FigFontRendererJvmSpec
320 + ZIO-CLI!!! with standard.flf
321+ Wizard spec
322
323
324
325WIZARD
326
327 Please, specify the following option.
328
329 Option "opt".
330
331 Write help for more information about this parameter, restart to start again Wizard mode and quit
332 to exit.
333
334
335WIZARD
336
337 Please, specify the following option.
338
339 Option "opt".
340
341 Write help for more information about this parameter, restart to start again Wizard mode and quit
342 to exit.
343
344command :>
345
346WIZARD
347
348 Please, enter the command you would like to execute.
349
350 Write help for more information about this parameter, restart to start again Wizard mode and quit
351 to exit.
352
353command :>
354You may bypass the wizard and execute your command directly with the following options and
355arguments:
356
357 --opt sample
358
359Executing command...
360
361
362You may bypass the wizard and execute your command directly with the following options and
363arguments:
364
365 --opt sample
366
367Executing command...
368
369
370OPTIONS
371
372 [1] aa
373
374 [2] bb
375
376 [3] cc
377
378command :> + Input and Pipeline
379 + Wrap
380
381You may bypass the wizard and execute your command directly with the following options and
382arguments:
383
384 bb
385
386Executing command...
387
388 + Alternatives
389
390
391
392WIZARD
393
394 Please, specify the following option.
395
396 Option "opt".
397
398 Write help for more information about this parameter, restart to start again Wizard mode and quit
399 to exit.
400
401command :>
402WIZARD
403
404 Please, specify the following option.
405
406 Option "opt1".
407
408 Write help for more information about this parameter, restart to start again Wizard mode and quit
409 to exit.
410
411command1 :>
412
413WIZARD
414
415 Please, specify the following option.
416
417 Option "opt2".
418
419 Write help for more information about this parameter, restart to start again Wizard mode and quit
420 to exit.
421
422command1 :>
423 + Parameter
424
425WIZARD
426
427 Please, specify the following option.
428
429 Option "opt1".
430
431 Write help for more information about this parameter, restart to start again Wizard mode and quit
432 to exit.
433
434command1 :>
435
436WIZARD
437
438 Please, specify the following option.
439
440 Option "opt2".
441
442 Write help for more information about this parameter, restart to start again Wizard mode and quit
443 to exit.
444
445command1 :>
446 + Quit
447You may bypass the wizard and execute your command directly with the following options and
448arguments:
449
450 --opt1 secondtry --opt2 sample
451
452Executing command...
453
454
455You may bypass the wizard and execute your command directly with the following options and
456arguments:
457
458 --opt1 secondtry --opt2 sample
459
460Executing command...
461
462 + Restart
463+ Options Suite
464 + validate without ambiguity
465 + validate boolean option without value
466 + not uncluster value
467 + validate boolean option with followup option
468 + validate text option
469 + validate text option with alias
470 + validate text option with alternative format
471 + validate integer option
472 + validate boolean option with negation
473 + validate option and get remainder
474 + validate when no valid values are passed
475 + validate when option is passed, but not a following value
476 + validate invalid option using withDefault
477 + validate missing option
478 + validate invalid option value
479 + validate non supplied optional
480 + validate collision of boolean option with negation
481 + validate options for cons
482 + validate case sensitive CLI config
483 + validate non supplied optional with remainder
484 + orElse
485 + validate orElse on 2 options
486 + validate orElse using fold on 4 options
487 + validate orElse using fold on 3 options
488 + validate orElse using fold on 2 options
489 + validate orElse using fold on 5 options
490 + test orElse with no options given
491 + validate orElse using fold on 6 options
492 + test orElse options collision
493 + validate invalid option in OrElse option when using withDefault
494 + returns a HelpDoc if an option is not an exact match, but is close
495 + returns a HelpDoc if an option with a default value is not an exact match, but is close
496 + validate supplied optional
497 + returns a HelpDoc if an option is not an exact match and it's a short option
498 + Help describes default value if it is not None
499 + Help describes default value but does not print None as default value
500 + Can overwrite the placeholder used in the help string
501 + property arguments
502 + validate missing option
503 + validate repeated values
504 + validate different key/values
505 + validate different key/values with alias
506 + validate should keep non-key-value parameters that follow the key-value pairs (each preceded by alias -d)
507 + validate should keep non-key-value parameters that follow the key-value pairs (with a 'mixed' style of proceeding -- name or alias)
508 + validate should keep non-key-value parameters that follow the key-value pairs (only the first key/value pair is preceded by alias)
509+ Completion Spec
510 + Toplevel Command Completion Spec
511 + Command name
512 + A different command name in the args list should not affect completion
513 + Command with Options and Args
514 + WC
515 + Complete the option names
516 + Complete the first file name
517 + Complete the second file name
518 + Tail
519 + Complete the '-n' option name
520 + Complete the file name
521 + Command that accepts no Args or Options
522 + Returns no completions
523 + Command with no Options, multiple Args
524 + PrimType.Enumeration followed by PrimType.ZoneId
525 + Partial word 'baz' should return 'baz' and 'bazinga'
526 + Partial word 'US/' should return the US zone IDs
527 + Completing ['foo', 'baz', 'US/'] at position 1 should complete with 'baz' and 'bazinga'
528 + Completing ['foo', 'x', 'US/'] at position 2 should yield no completions ('x' is invalid)
529 + Command with Options, no args
530 + Int Options
531 + No prefix should show all flags
532 + '-c' without integer value should provide no completions
533 + '-c' with integer value should complete with '-a', '-b', '-d'
534 + '-c' and '-b' with integer value should complete with '-a', '-d'
535 + '-c' with integer value and '-b' with no integer value should provide no completions
536 + Enumeration Options
537 + Partial word 'ba' should complete with 'bar' and 'baz'
538 + Partial option name should complete the name of the option
539 + No partial word should return the complete list of enumeration options
540 + Partial word 'b' should complete with 'bar', 'baz', 'bippy'
541 + Partial word 'baz' should return 'baz'
542 + Partial word 'baz' should return 'baz' and 'bazinga'
543 + Boolean Options
544 + No prefix should show all flags
545 + '-' prefix should show all flags
546 + '-a' prefix should show flags '-b'
547 + '-b' prefix should show flags '-a'
548 + '-a' prefix should show flags '-b', '-c', '-d'
549 + '-d -a' prefix should show flags '-b', '-c'
550 + An invalid flag should yield no completions
551 + '-d -c -b -' prefix should show flags '-a'
552 + Command that accepts no Options, single Args
553 + PrimType.Decimal
554 + Partial word '32.6' should return no completions
555 + Partial word 'x' should return no completions
556 + No partial word should return no completions
557 + PrimType.Enumeration
558 + Partial word 'baz' should return 'baz
559 + Partial word 'ba' should complete with 'bar' and 'baz'
560 + Partial word 'baz' should return 'baz' and 'bazinga'
561 + No partial word should return the complete list of enumeration values
562 + Partial word 'b' should complete with 'bar', 'baz', 'bippy'
563 + PrimType.Bool
564 + Partial word 'true' should return 'true'
565 + No partial word should complete with 'false' and 'true'
566 + Partial word 'f' should complete with 'false'
567 + Partial word 't' should complete with 'true'
568 + Partial word 'x' should return no completions
569 + Partial word 'false' should return 'false'
570 + PrimType.ZoneId
571 + 'US/' prefix provided
572 + PrimType.Path
573 + Args.file, no prefix provided
574 + Args.file, complete file name provided
575 + Args.file, prefix of nonexistent file should yield no completions.
576 + Args.file, prefix provided
577 + Args.directory, no prefix provided
578 + Args.directory, complete name provided
579 + Args.directory, prefix provided
580+ Reducable Spec
581 + Can reduce left side units
582 + Leaves non unit tuples intact
583 + Can reduce tupled units
584 + Can reduce right side units
585+ CliApp
586 + exit code of the CLI
587this is not an integer is not a integer.
588
589 + should exit with 0 when the command is successful
590 + should exit with a code <> 0 when the command fails
591 + should exit with a code <> 0 when the parsing of the command fails
592+ ArgsSpec
593 + Combination of existing files
594 + Non Existing file
595 + Existing file
596 + Not Found file
597+ HelpDocTests
598 + Boolean Suite
599 + HelpDoc#isHeader: Only returns true for HelpDocs that are/start with a Header
600 + A Header returns true
601 + A Sequence beginning with a Header returns true
602 + An empty HelpDoc returns false
603 + A Paragraph returns false
604 + A Sequence beginning with a non-Header returns false
605 + An Enumeration beginning with a non-Header returns false
606 + HelpDoc#isSequence: Only returns true for HelpDocs that are/start with a Sequence
607 + A Sequence returns true
608 + A Sequence beginning with a Sequence returns true
609 + An empty HelpDoc returns false
610 + A Header returns false
611 + An Enumeration beginning with a non-Sequence returns false
612 + An Enumeration beginning with a Sequence returns false
613 + An Enumeration beginning with a non-Paragraph returns false
614 + A Sequence beginning with a non-Paragraph returns false
615 + HelpDoc#isParagraph: Only returns true for HelpDocs that are/start with a Paragraph
616 + A Paragraph returns true
617 + A Sequence beginning with a Paragraph returns true
618 + An Enumeration beginning with a Paragraph returns false
619 + An empty HelpDoc returns false
620 + A Header returns false
621 + HelpDoc#isEnumeration: Only returns true for HelpDocs that are/start with an Enumeration
622 + An Enumeration returns true
623 + An Enumeration beginning with an Enumeration returns true
624 + A Sequence beginning with an Enumeration returns true
625 + An empty HelpDoc returns false
626 + A Header returns false
627 + A Paragraph returns false
628 + HelpDoc#isDescriptionList: Only returns true for HelpDocs that are/start with a DescriptionList
629 + An empty HelpDoc returns false
630 + A Header returns false
631 + A DescriptionList returns true
632 + A DescriptionList beginning with a DescriptionList returns true
633 + A Paragraph returns false
634 + Constructors Suite
635 + HelpDoc#h1 produces a Header from a String with level 1
636 + HelpDoc#+ combines two HelpDocs into one
637 + HelpDoc#h3 produces a Header from a String with level 3
638 + HelpDoc#h2 produces a Header from a String with level 2
639 + HelpDoc#p produces a Paragraph from a String
640 + #is* tests
641 + #isEmpty returns true for an empty HelpDoc
642 + #isEmpty returns `false` for a non-empty Header
643 + Paragraph of text is not a Header
644 + Sequence(Paragraph, _) starts with a Paragraph
645+ string parsing
646 + ws
647 + word
648 + hello world
649 + hello world foreach
650 + word <~ ws
651 + N words
652 + many words
653+ FigFontParserSpec
654 + line parsing
655 + chars
656 + int
657 + token
658 + char
659+ FigFontRendererSpec
660 + FullWidth VLayout
661 + FullWidth HLayout
662 + Fitting HLayout
663 + Equal Char Smushing HLayout
664 + Hardblanks
665 + Fitting VLayout
666 + Equal Char Smushing VLayout
667 + Vertical Line Supersmushing
668 + Hierarchy Smushing
669 + Universal Smushing
670+ CliError
671 + getCause
672 + Execution
673 + non-Throwable
674 + Throwable
675 + IO
676 + Parsing
677 + BuiltIn
678+ Command Spec
679 + Toplevel Command Spec
680 + Command with options followed by args
681 + Shows an error if an option is missing
682 + Should provide auto correct suggestions for misspelled options
683 + Should validate successfully
684 + test commands joined by | operator
685 +
686 + test commands with clustered options
687 + Clustered boolean options are equal to un-clustered options
688 + Not uncluster wrong clusters
689 + "-" unaltered
690 + not trigger help if matches
691 + BuiltInOptions proccessing
692 + trigger built-in options that are alone
693 + trigger help not alone
694 + triggering wizard not alone
695 + trigger child command's help if parent command is correct
696 + cmd opts -- args
697 + SubCommand Suite
698 + test sub sub commands
699 + sub sub command with option and argument
700 + having two sub commands without options or arguments
701 + test unknown sub command error message
702 + match first sub command without any surplus arguments
703 + match first sub command with a surplus options
704 + match second sub command without any surplus arguments
705 + sub command usage with options and arguments
706 + test sub command with required options and arguments
707 + test sub command with required and optional options and arguments
708 + test unknown sub command
709 + test unknown sub command error message
710 + test without sub command
711 + Helpdoc On Command Suite
712 + test adding helpdoc to sub commands
713 + helpdoc is on subcommand
714 + test adding helpdoc to Map command
715 + helpdoc on Map command
716 + test adding helpdoc to commands
717 + add text helpdoc to Single
718 + helpdoc is on command
719 + test adding helpdoc to OrElse command
720 + helpdoc on orElse command
721 + correct display of helpDoc
722 + test helpDoc list subcommands of subcommands
723+ RegularLanguage Spec
724 + Toplevel Command Completion Spec
725 + Empty language
726 + Empty language rejects all strings
727 + Epsilon language
728 + Epsilon language accepts the empty string
729 + Epsilon language rejects all nonempty strings
730 + Rep language
731 + ('foo' 'bar' | 'foo' 'baz')* language
732 + Accepts zero or more repetitions of 'foo' 'bar' or 'foo' 'baz'
733 + Rejects everything except zero or more repetitions of 'foo' 'bar' or 'foo' 'baz'
734 + ('foo' 'bar' | 'foo' 'baz').rep(2, 4) language
735 + Accepts two to four or more repetitions of 'foo' 'bar' or 'foo' 'baz'
736 + Rejects everything except two to four or more repetitions of 'foo' 'bar' or 'foo' 'baz'
737 + Permutation language
738 + Permutation('a', 'b' | 'c', 'd'.*) language
739 + Accepts language members
740 + Rejects language non-members
741 + Permutation('a', 'b', 'c', 'd') language
742 + Rejects everything except for permutations of {'a', 'b', 'c', 'd'}
743 + Accepts permutations of {'a', 'b', 'c', 'd'}
744 + Permutation('a'? 'b'? 'c'? 'd'?) ~ 'z' language
745 + Rejects language non-members
746 + Accepts language members
747 + StringToken language
748 + StringToken language accepts its target string
749 + StringToken language rejects anything other than its target string
750 + Cat language
751 + 'foo' 'bar' 'baz' language
752 + Accepts 'foo' 'bar' 'baz'
753 + Rejects everything that is not 'foo' 'bar' 'baz'
754 + PrimTypeToken language
755 + PrimType.ZoneId language
756 + PrimType.ZoneId language accepts some that are valid time zone IDs.
757 + PrimType.Bool language rejects some values that are not valid time zone IDs
758 + PrimType.Bool language
759 + PrimType.Bool language accepts values that correspond to 'true' and 'false'
760 + PrimType.Bool language rejects values that do not correspond to 'true'/'false'
761 + Alt language
762 + 'foo' 'bar' | 'foo' 'baz' language
763 + Accepts 'foo' 'bar'
764 + Accepts 'foo' 'baz'
765 + Rejects everything that is not 'foo' 'bar' | 'foo' 'baz'
766283 tests passed. 0 tests failed. 1 tests ignored.
767
768Executed in 4 s 229 ms
769
770Starting build for ProjectRef(file:/build/repo/,testkitJVM) (zio-cli-testkit)... [2/3]
771Compile scalacOptions: -encoding, UTF-8, -unchecked, -noindent, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
772[info] compiling 5 Scala sources to /build/repo/zio-cli-testkit/jvm/target/scala-3.8.0-RC5/classes ...
773[info] done compiling
774[info] compiling 2 Scala sources to /build/repo/zio-cli-testkit/jvm/target/scala-3.8.0-RC5/test-classes ...
775[info] done compiling
776+ GenerationAssertionSpec
777 + commandCreation
778 + cliAppCreation
779+ CliAssertionSpec
780 + Assert methods
781a
782b
783c Options1: asd
784a
785b
786c Options1: asd
787a
788b
789c Options1: asd
790a
791b
792c Options1: asd
793a
794b
795c Options1: asd
796a
797b
798c Options1: asd
799a
800b
801c Options1: asd
802a
803b
804c Options1: asd
805a
806b
807c Options1: asd
808a
809b
810c Options1: asd
811a
812b
813c Options1: asd
814 + assertHelpDoc
815a
816b
817c Options1: asd
818a
819b
820c Options1: asd
821a
822b
823c Options1: asd
824 + assertSynopsis
825a
826b
827c Options1: asd
828a
829b
830c Options1: asd
831a
832b
833c Options1: asd
834a
835b
836c Options1: asd
837a
838b
839c Options1: asd
840a
841b
842c Options1: asd
843a
844b
845c Options1: asd
846a
847b
848c Options1: asd
849a
850b
851c Options1: asd
852a
853b
854c Options1: asd
855a
856b
857c Options1: asd
858a
859b
860c Options1: asd
861a
862b
863c Options1: asd
864a
865b
866c Options1: asd
867a
868b
869c Options1: asd
870a
871b
872c Options1: asd
873a
874b
875c Options1: asd
876a
877b
878c Options1: asd
879a
880b
881c Options1: asd
882a
883b
884c Options1: asd
885a
886b
887c Options1: asd
888a
889b
890c Options1: asd
891a
892b
893c Options1: asd
894a
895b
896c Options1: asd
897a
898b
899c Options1: asd
900a
901b
902c Options1: asd
903a
904b
905c Options1: asd
906a
907b
908c Options1: asd
909a
910b
911c Options1: asd
912a
913b
914c Options1: asd
915a
916b
917c Options1: asd
918a
919b
920c Options1: asd
921a
922b
923c Options1: asd
924a
925b
926c Options1: asd
927a
928b
929c Options1: asd
930a
931b
932c Options1: asd
933a
934b
935c Options1: asd
936a
937b
938c Options1: asd
939a
940b
941c Options1: asd
942a
943b
944c Options1: asd
945a
946b
947c Options1: asd
948a
949b
950c Options1: asd
951a
952b
953c Options1: asd
954a
955b
956c Options1: asd
957a
958b
959c Options1: asd
960a
961b
962c Options1: asd
963a
964b
965c Options1: asd
966a
967b
968c Options1: asd
969a
970b
971c Options1: asd
972a
973b
974c Options1: asd
975a
976b
977c Options1: asd
978a
979b
980c Options1: asd
981a
982b
983c Options1: asd
984a
985b
986c Options1: asd
987a
988b
989c Options1: asd
990a
991b
992c Options1: asd
993a
994b
995c Options1: asd
996a
997b
998c Options1: asd
999a
1000b
1001c Options1: asd
1002a
1003b
1004c Options1: asd
1005a
1006b
1007c Options1: asd
1008a
1009b
1010c Options1: asd
1011a
1012b
1013c Options1: asd
1014a
1015b
1016c Options1: asd
1017a
1018b
1019c Options1: asd
1020a
1021b
1022c Options1: asd
1023a
1024b
1025c Options1: asd
1026a
1027b
1028c Options1: asd
1029a
1030b
1031c Options1: asd
1032a
1033b
1034c Options1: asd
1035a
1036b
1037c Options1: asd
1038a
1039b
1040c Options1: asd
1041a
1042b
1043c Options1: asd
1044a
1045b
1046c Options1: asd
1047a
1048b
1049c Options1: asd
1050a
1051b
1052c Options1: asd
1053a
1054b
1055c Options1: asd
1056a
1057b
1058c Options1: asd
1059a
1060b
1061c Options1: asd
1062a
1063b
1064c Options1: asd
1065a
1066b
1067c Options1: asd
1068a
1069b
1070c Options1: asd
1071a
1072b
1073c Options1: asd
1074a
1075b
1076c Options1: asd
1077a
1078b
1079c Options1: asd
1080a
1081b
1082c Options1: asd
1083a
1084b
1085c Options1: asd
1086a
1087b
1088c Options1: asd
1089a
1090b
1091c Options1: asd
1092a
1093 + assertCommand
1094b
1095c Options1: asd
1096 + assertCliApp
1097a
1098b
1099c Options1: asd
1100a
1101b
1102c Options1: asd
1103a
1104b
1105c Options1: asd
1106a
1107b
1108c Options1: asd
1109a
1110b
1111c Options1: asd
1112a
1113b
1114c Options1: asd
1115a
1116b
1117c Options1: asd
1118a
1119b
1120c Options1: asd
1121a
1122b
1123c Options1: asd
1124a
1125b
1126c Options1: asd
1127a
1128b
1129c Options1: asd
1130a
1131b
1132c Options1: asd
1133a
1134b
1135c Options1: asd
1136a
1137b
1138c Options1: asd
1139a
1140b
1141c Options1: asd
1142a
1143b
1144c Options1: asd
1145a
1146b
1147c Options1: asd
1148a
1149b
1150c Options1: asd
1151a
1152b
1153c Options1: asd
1154a
1155b
1156c Options1: asd
1157a
1158b
1159c Options1: asd
1160a
1161b
1162c Options1: asd
1163a
1164b
1165c Options1: asd
1166a
1167b
1168c Options1: asd
1169a
1170b
1171c Options1: asd
1172a
1173b
1174c Options1: asd
1175a
1176b
1177c Options1: asd
1178a
1179b
1180c Options1: asd
1181a
1182b
1183c Options1: asd
1184a
1185b
1186c Options1: asd
1187a
1188b
1189c Options1: asd
1190a
1191b
1192c Options1: asd
1193a
1194b
1195c Options1: asd
1196a
1197b
1198c Options1: asd
1199a
1200b
1201c Options1: asd
1202a
1203b
1204c Options1: asd
1205a
1206b
1207c Options1: asd
1208a
1209b
1210c Options1: asd
1211a
1212b
1213c Options1: asd
1214a
1215b
1216c Options1: asd
1217a
1218b
1219c Options1: asd
1220a
1221b
1222c Options1: asd
1223a
1224b
1225c Options1: asd
1226a
1227b
1228c Options1: asd
1229a
1230b
1231c Options1: asd
1232a
1233b
1234c Options1: asd
1235a
1236b
1237c Options1: asd
1238a
1239b
1240c Options1: asd
1241a
1242b
1243c Options1: asd
1244a
1245b
1246c Options1: asd
1247a
1248b
1249c Options1: asd
1250a
1251b
1252c Options1: asd
1253a
1254b
1255c Options1: asd
1256a
1257b
1258c Options1: asd
1259a
1260b
1261c Options1: asd
1262a
1263b
1264c Options1: asd
1265a
1266b
1267c Options1: asd
1268a
1269b
1270c Options1: asd
1271a
1272b
1273c Options1: asd
1274a
1275b
1276c Options1: asd
1277a
1278b
1279c Options1: asd
1280a
1281b
1282c Options1: asd
1283a
1284b
1285c Options1: asd
1286a
1287b
1288c Options1: asd
1289a
1290b
1291c Options1: asd
1292a
1293b
1294c Options1: asd
1295a
1296b
1297c Options1: asd
1298a
1299b
1300c Options1: asd
1301a
1302b
1303c Options1: asd
1304a
1305b
1306c Options1: asd
1307a
1308b
1309c Options1: asd
1310a
1311b
1312c Options1: asd
1313a
1314b
1315c Options1: asd
1316a
1317b
1318c Options1: asd
1319a
1320b
1321c Options1: asd
1322a
1323b
1324c Options1: asd
1325a
1326b
1327c Options1: asd
1328a
1329b
1330c Options1: asd
1331a
1332b
1333c Options1: asd
1334a
1335b
1336c Options1: asd
1337a
1338b
1339c Options1: asd
1340a
1341b
1342c Options1: asd
1343a
1344b
1345c Options1: asd
1346a
1347b
1348c Options1: asd
1349a
1350b
1351c Options1: asd
1352a
1353b
1354c Options1: asd
1355a
1356b
1357c Options1: asd
1358a
1359b
1360c Options1: asd
1361a
1362b
1363c Options1: asd
1364a
1365b
1366c Options1: asd
1367a
1368b
1369c Options1: asd
1370a
1371b
1372c Options1: asd
1373a
1374b
1375c Options1: asd
1376a
1377b
1378c Options1: asd
1379a
1380b
1381c Options1: asd
1382a
1383b
1384c Options1: asd
1385 + Access methods
1386 + accessCommand
1387 + accessSynopsis
1388 + accessHelpDoc
1389 + outputContains
139010 tests passed. 0 tests failed. 0 tests ignored.
1391
1392Executed in 5 s 610 ms
1393
1394
1395************************
1396Build summary:
1397[{
1398 "module": "examples",
1399 "compile": {"status": "ok", "tookMs": 21564, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
1400 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1401 "test-compile": {"status": "ok", "tookMs": 197, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1402 "test": {"status": "ok", "tookMs": 276, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1403 "publish": {"status": "skipped", "tookMs": 0},
1404 "metadata": {
1405 "crossScalaVersions": ["2.12.20", "2.13.17", "3.3.7"]
1406}
1407},{
1408 "module": "zio-cli",
1409 "compile": {"status": "ok", "tookMs": 82, "warnings": 4, "errors": 0, "sourceVersion": "3.8"},
1410 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1411 "test-compile": {"status": "ok", "tookMs": 6007, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1412 "test": {"status": "ok", "tookMs": 5075, "passed": 283, "failed": 0, "ignored": 1, "skipped": 0, "total": 284, "byFramework": [{"framework": "unknown", "stats": {"passed": 283, "failed": 0, "ignored": 1, "skipped": 0, "total": 284}}]},
1413 "publish": {"status": "skipped", "tookMs": 0},
1414 "metadata": {
1415 "crossScalaVersions": ["2.12.20", "2.13.17", "3.3.7"]
1416}
1417},{
1418 "module": "zio-cli-testkit",
1419 "compile": {"status": "ok", "tookMs": 1299, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1420 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1421 "test-compile": {"status": "ok", "tookMs": 861, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1422 "test": {"status": "ok", "tookMs": 6144, "passed": 10, "failed": 0, "ignored": 0, "skipped": 0, "total": 10, "byFramework": [{"framework": "unknown", "stats": {"passed": 10, "failed": 0, "ignored": 0, "skipped": 0, "total": 10}}]},
1423 "publish": {"status": "skipped", "tookMs": 0},
1424 "metadata": {
1425 "crossScalaVersions": ["2.12.20", "2.13.17", "3.3.7"]
1426}
1427}]
1428************************
1429[success] Total time: 44 s, completed Dec 31, 2025, 9:16:19 PM
1430[0JChecking patch project/plugins.sbt...
1431Checking patch project/BuildHelper.scala...
1432Checking patch build.sbt...
1433Applied patch project/plugins.sbt cleanly.
1434Applied patch project/BuildHelper.scala cleanly.
1435Applied patch build.sbt cleanly.