Build Logs

zio/zio-cli • 3.8.0-RC4:2025-12-22

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-RC4
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-RC4"
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-RC4
42Execute tests: true
43sbt project found:
44No prepare script found for project zio/zio-cli
45##################################
46Scala version: 3.8.0-RC4
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-RC4
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-RC4"
72"++3.8.0-RC4 -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-RC4 """{"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.542s.
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-RC4
152OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in testkitJS/crossScalaVersions
153OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in examplesJVM/crossScalaVersions
154OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in examplesJS/crossScalaVersions
155OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in zioCliNative/crossScalaVersions
156OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in zioCliJS/crossScalaVersions
157OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in testkitNative/crossScalaVersions
158OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in testkitJVM/crossScalaVersions
159OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in zioCliJVM/crossScalaVersions
160OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 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-RC4 on 9 projects.
164[info] Switching Scala version on:
165[info] examplesNative (2.12.20, 2.13.17, 3.8.0-RC4)
166[info] zioCliJS (2.12.20, 2.13.17, 3.8.0-RC4)
167[info] testkitNative (2.12.20, 2.13.17, 3.8.0-RC4)
168[info] zioCliNative (2.12.20, 2.13.17, 3.8.0-RC4)
169[info] testkitJS (2.12.20, 2.13.17, 3.8.0-RC4)
170[info] zioCliJVM (2.12.20, 2.13.17, 3.8.0-RC4)
171[info] examplesJS (2.12.20, 2.13.17, 3.8.0-RC4)
172[info] examplesJVM (2.12.20, 2.13.17, 3.8.0-RC4)
173[info] testkitJVM (2.12.20, 2.13.17, 3.8.0-RC4)
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 22, 2025, 6:14:04 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-RC4/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-RC4/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-RC4/test-classes ...
240[info] done compiling
241+ AutoCorrect.levensteinDistance Suite
242 + calculate the correct levenstein distance between two strings
243 + takes into account the provided parserOptions case sensitivity
244 + calculates the correct levenstein distance for non ascii characters
245+ FigFontRenderReportSpec
246 - figlet.org Fonts Render Report - ignored: 1
247+ FigFontParserSpec
248 + parse standard.flf
249+ PrimTypeTests
250 + Enumeration Suite
251 + validate return proper value if one of the cases
252 + validate return error if NOT one of the cases
253 + Period Suite
254 + validate rejects improper Period representation
255 + validate returns proper Period representation
256 + Path Suite
257 + validate returns proper directory path
258 + validate returns proper directory path if both allowed
259 + validate returns error if path targets file but directory was expected
260 + validate returns proper file path
261 + validate returns proper file path if both allowed
262 + validate returns error if path targets directory but file was expected
263 + validate returns error if file doesn't exits but must exists
264 + validate returns error if file does exits but must not exists
265 + BigDecimal Suite
266 + validate rejects improper BigDecimal representation
267 + validate returns proper BigDecimal representation
268 + Boolean Suite
269 + validate rejects improper Boolean representation
270 + validate true combinations returns proper Boolean representation
271 + validate false combinations returns proper Boolean representation
272 + validate uses default value if value is not provided
273 + Duration Suite
274 + validate rejects improper Duration representation
275 + validate returns proper Duration representation
276 + Integer Suite
277 + validate rejects improper Integer representation
278 + validate returns proper Integer representation
279 + Instant Suite
280 + validate rejects improper Instant representation
281 + validate returns proper Instant representation
282 + LocalDateTime Suite
283 + validate rejects improper LocalDateTime representation
284 + validate returns proper LocalDateTime representation
285 + Text Suite
286 + validates everything
287 + LocalDate Suite
288 + validate rejects improper LocalDate representation
289 + validate returns proper LocalDate representation
290 + MonthDay Suite
291 + validate rejects improper MonthDay representation
292 + validate returns proper MonthDay representation
293 + LocalTime Suite
294 + validate rejects improper LocalTime representation
295 + validate returns proper LocalTime representation
296 + Year Suite
297 + validate rejects improper Year representation
298 + validate returns proper Year representation
299 + OffsetTime Suite
300 + validate rejects improper OffsetTime representation
301 + validate returns proper OffsetTime representation
302 + OffsetDateTime Suite
303 + validate rejects improper OffsetDateTime representation
304 + validate returns proper OffsetDateTime representation
305 + YearMonth Suite
306 + validate rejects improper YearMonth representation
307 + validate returns proper YearMonth representation
308 + ZoneOffset Suite
309 + validate rejects improper ZoneOffset representation
310 + validate returns proper ZoneOffset representation
311 + ZoneId Suite
312 + validate rejects improper ZoneId representation
313 + validate returns proper ZoneId representation
314 + ZonedDateTime Suite
315 + validate rejects improper ZonedDateTime representation
316 + validate returns proper ZonedDateTime representation
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, enter the command you would like to execute.
338
339 Write help for more information about this parameter, restart to start again Wizard mode and quit
340 to exit.
341
342command :>
343OPTIONS
344
345 [1] aa
346
347 [2] bb
348
349 [3] cc
350
351
352command :>
353You may bypass the wizard and execute your command directly with the following options and
354arguments:
355
356 --opt sample
357
358Executing command...
359
360
361You may bypass the wizard and execute your command directly with the following options and
362arguments:
363
364 bb
365
366Executing command...
367
368
369WIZARD
370
371 Please, specify the following option.
372
373 Option "opt".
374
375 Write help for more information about this parameter, restart to start again Wizard mode and quit
376 to exit.
377
378command :>
379You may bypass the wizard and execute your command directly with the following options and
380arguments:
381
382 --opt sample
383
384Executing command...
385
386 + Wrap
387 + Alternatives
388 + Input and Pipeline
389
390
391WIZARD
392
393 Please, specify the following option.
394
395 Option "opt1".
396
397 Write help for more information about this parameter, restart to start again Wizard mode and quit
398 to exit.
399
400command1 :>
401
402WIZARD
403
404 Please, specify the following option.
405
406 Option "opt2".
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 "opt1".
418
419 Write help for more information about this parameter, restart to start again Wizard mode and quit
420 to exit.
421
422command1 :>
423
424
425WIZARD
426
427 Please, specify the following option.
428
429 Option "opt".
430
431 Write help for more information about this parameter, restart to start again Wizard mode and quit
432 to exit.
433
434command :>
435WIZARD
436
437 Please, specify the following option.
438
439 Option "opt2".
440
441 Write help for more information about this parameter, restart to start again Wizard mode and quit
442 to exit.
443
444command1 :>
445You may bypass the wizard and execute your command directly with the following options and
446arguments:
447
448 --opt1 secondtry --opt2 sample
449
450Executing command...
451
452
453You may bypass the wizard and execute your command directly with the following options and
454arguments:
455
456 --opt1 secondtry --opt2 sample
457
458Executing command...
459
460 + Restart
461 + Parameter
462 + Quit
463+ Options Suite
464 + not uncluster value
465 + validate boolean option without value
466 + validate boolean option with followup option
467 + validate without ambiguity
468 + validate text option
469 + validate text option with alias
470 + validate text option with alternative format
471 + validate boolean option with negation
472 + validate integer option
473 + validate option and get remainder
474 + validate invalid option value
475 + validate when option is passed, but not a following value
476 + validate when no valid values are passed
477 + validate missing option
478 + validate collision of boolean option with negation
479 + validate invalid option using withDefault
480 + validate options for cons
481 + validate non supplied optional with remainder
482 + validate case sensitive CLI config
483 + validate non supplied optional
484 + orElse
485 + validate orElse using fold on 2 options
486 + validate orElse using fold on 4 options
487 + validate orElse on 2 options
488 + test orElse options collision
489 + validate orElse using fold on 3 options
490 + validate orElse using fold on 5 options
491 + test orElse with no options given
492 + validate invalid option in OrElse option when using withDefault
493 + validate orElse using fold on 6 options
494 + returns a HelpDoc if an option is not an exact match, but is close
495 + validate supplied optional
496 + returns a HelpDoc if an option is not an exact match and it's a short option
497 + returns a HelpDoc if an option with a default value is not an exact match, but is close
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 different key/values with alias
503 + validate different key/values
504 + validate missing option
505 + validate repeated values
506 + validate should keep non-key-value parameters that follow the key-value pairs (with a 'mixed' style of proceeding -- name or alias)
507 + validate should keep non-key-value parameters that follow the key-value pairs (each preceded by alias -d)
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 that accepts no Args or Options
512 + Returns no completions
513 + Command with Options, no args
514 + Int Options
515 + No prefix should show all flags
516 + '-c' without integer value should provide no completions
517 + '-c' with integer value should complete with '-a', '-b', '-d'
518 + '-c' with integer value and '-b' with no integer value should provide no completions
519 + '-c' and '-b' with integer value should complete with '-a', '-d'
520 + Boolean Options
521 + '-d -a' prefix should show flags '-b', '-c'
522 + No prefix should show all flags
523 + '-' prefix should show all flags
524 + '-b' prefix should show flags '-a'
525 + '-a' prefix should show flags '-b'
526 + '-a' prefix should show flags '-b', '-c', '-d'
527 + '-d -c -b -' prefix should show flags '-a'
528 + An invalid flag should yield no completions
529 + Enumeration Options
530 + Partial option name should complete the name of the option
531 + No partial word should return the complete list of enumeration options
532 + Partial word 'b' should complete with 'bar', 'baz', 'bippy'
533 + Partial word 'ba' should complete with 'bar' and 'baz'
534 + Partial word 'baz' should return 'baz' and 'bazinga'
535 + Partial word 'baz' should return 'baz'
536 + Command that accepts no Options, single Args
537 + PrimType.Decimal
538 + No partial word should return no completions
539 + Partial word '32.6' should return no completions
540 + Partial word 'x' should return no completions
541 + PrimType.Bool
542 + Partial word 'f' should complete with 'false'
543 + Partial word 't' should complete with 'true'
544 + No partial word should complete with 'false' and 'true'
545 + Partial word 'true' should return 'true'
546 + Partial word 'false' should return 'false'
547 + Partial word 'x' should return no completions
548 + PrimType.ZoneId
549 + 'US/' prefix provided
550 + PrimType.Enumeration
551 + No partial word should return the complete list of enumeration values
552 + Partial word 'b' should complete with 'bar', 'baz', 'bippy'
553 + Partial word 'ba' should complete with 'bar' and 'baz'
554 + Partial word 'baz' should return 'baz
555 + Partial word 'baz' should return 'baz' and 'bazinga'
556 + PrimType.Path
557 + Args.file, no prefix provided
558 + Args.file, prefix of nonexistent file should yield no completions.
559 + Args.file, complete file name provided
560 + Args.file, prefix provided
561 + Args.directory, no prefix provided
562 + Args.directory, complete name provided
563 + Args.directory, prefix provided
564 + Command with Options and Args
565 + Tail
566 + Complete the file name
567 + Complete the '-n' option name
568 + WC
569 + Complete the option names
570 + Complete the second file name
571 + Complete the first file name
572 + Command name
573 + A different command name in the args list should not affect completion
574 + Command with no Options, multiple Args
575 + PrimType.Enumeration followed by PrimType.ZoneId
576 + Partial word 'baz' should return 'baz' and 'bazinga'
577 + Partial word 'US/' should return the US zone IDs
578 + Completing ['foo', 'baz', 'US/'] at position 1 should complete with 'baz' and 'bazinga'
579 + Completing ['foo', 'x', 'US/'] at position 2 should yield no completions ('x' is invalid)
580+ Reducable Spec
581 + Can reduce tupled units
582 + Can reduce right side units
583 + Can reduce left side units
584 + Leaves non unit tuples intact
585+ CliApp
586 + exit code of the CLI
587this is not an integer is not a integer.
588
589 + should exit with a code <> 0 when the command fails
590 + should exit with 0 when the command is successful
591 + should exit with a code <> 0 when the parsing of the command fails
592+ ArgsSpec
593 + Combination of existing files
594 + Not Found file
595 + Non Existing file
596 + Existing 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 + An empty HelpDoc returns false
602 + A Paragraph returns false
603 + An Enumeration beginning with a non-Header returns false
604 + A Sequence beginning with a Header returns true
605 + A Sequence beginning with a non-Header returns false
606 + HelpDoc#isSequence: Only returns true for HelpDocs that are/start with a Sequence
607 + An empty HelpDoc returns false
608 + A Sequence beginning with a Sequence returns true
609 + A Header returns false
610 + An Enumeration beginning with a Sequence returns false
611 + A Sequence returns true
612 + An Enumeration beginning with a non-Sequence returns false
613 + HelpDoc#isParagraph: Only returns true for HelpDocs that are/start with a Paragraph
614 + A Paragraph returns true
615 + A Sequence beginning with a Paragraph returns true
616 + An Enumeration beginning with a Paragraph returns false
617 + An empty HelpDoc returns false
618 + A Header returns false
619 + A Sequence beginning with a non-Paragraph returns false
620 + An Enumeration beginning with a non-Paragraph returns false
621 + HelpDoc#isDescriptionList: Only returns true for HelpDocs that are/start with a DescriptionList
622 + A Header returns false
623 + A Paragraph returns false
624 + An empty HelpDoc returns false
625 + A DescriptionList returns true
626 + A DescriptionList beginning with a DescriptionList returns true
627 + HelpDoc#isEnumeration: Only returns true for HelpDocs that are/start with an Enumeration
628 + An Enumeration returns true
629 + An Enumeration beginning with an Enumeration returns true
630 + A Sequence beginning with an Enumeration returns true
631 + An empty HelpDoc returns false
632 + A Header returns false
633 + A Paragraph returns false
634 + Constructors Suite
635 + HelpDoc#h1 produces a Header from a String with level 1
636 + HelpDoc#h2 produces a Header from a String with level 2
637 + HelpDoc#+ combines two HelpDocs into one
638 + HelpDoc#p produces a Paragraph from a String
639 + HelpDoc#h3 produces a Header from a String with level 3
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 + word
647 + hello world
648 + ws
649 + word <~ ws
650 + N words
651 + many words
652 + hello world foreach
653+ FigFontParserSpec
654 + line parsing
655 + token
656 + chars
657 + char
658 + int
659+ FigFontRendererSpec
660 + FullWidth VLayout
661 + Equal Char Smushing HLayout
662 + Fitting HLayout
663 + FullWidth HLayout
664 + Fitting VLayout
665 + Hardblanks
666 + Vertical Line Supersmushing
667 + Equal Char Smushing VLayout
668 + Universal Smushing
669 + Hierarchy Smushing
670+ CliError
671 + getCause
672 + Execution
673 + non-Throwable
674 + Throwable
675 + Parsing
676 + IO
677 + BuiltIn
678+ Command Spec
679 + Toplevel Command Spec
680 + Command with options followed by args
681 + Should provide auto correct suggestions for misspelled options
682 + Shows an error if an option is missing
683 + Should validate successfully
684 + SubCommand Suite
685 + test sub sub commands
686 + sub sub command with option and argument
687 + having two sub commands without options or arguments
688 + match first sub command without any surplus arguments
689 + match first sub command with a surplus options
690 + test unknown sub command error message
691 + match second sub command without any surplus arguments
692 + sub command usage with options and arguments
693 + test sub command with required and optional options and arguments
694 + test unknown sub command
695 + test unknown sub command error message
696 + test sub command with required options and arguments
697 + test without sub command
698 + test commands joined by | operator
699 +
700 + test commands with clustered options
701 + Clustered boolean options are equal to un-clustered options
702 + Not uncluster wrong clusters
703 + "-" unaltered
704 + Helpdoc On Command Suite
705 + test adding helpdoc to sub commands
706 + helpdoc is on subcommand
707 + test adding helpdoc to OrElse command
708 + helpdoc on orElse command
709 + test adding helpdoc to Map command
710 + helpdoc on Map command
711 + test adding helpdoc to commands
712 + add text helpdoc to Single
713 + helpdoc is on command
714 + correct display of helpDoc
715 + test helpDoc list subcommands of subcommands
716 + BuiltInOptions proccessing
717 + not trigger help if matches
718 + trigger help not alone
719 + trigger built-in options that are alone
720 + triggering wizard not alone
721 + trigger child command's help if parent command is correct
722 + cmd opts -- args
723+ RegularLanguage Spec
724 + Toplevel Command Completion Spec
725 + Epsilon language
726 + Epsilon language accepts the empty string
727 + Epsilon language rejects all nonempty strings
728 + Rep language
729 + ('foo' 'bar' | 'foo' 'baz')* language
730 + Accepts zero or more repetitions of 'foo' 'bar' or 'foo' 'baz'
731 + Rejects everything except zero or more repetitions of 'foo' 'bar' or 'foo' 'baz'
732 + ('foo' 'bar' | 'foo' 'baz').rep(2, 4) language
733 + Accepts two to four or more repetitions of 'foo' 'bar' or 'foo' 'baz'
734 + Rejects everything except two to four or more repetitions of 'foo' 'bar' or 'foo' 'baz'
735 + Permutation language
736 + Permutation('a', 'b', 'c', 'd') language
737 + Rejects everything except for permutations of {'a', 'b', 'c', 'd'}
738 + Accepts permutations of {'a', 'b', 'c', 'd'}
739 + Permutation('a', 'b' | 'c', 'd'.*) language
740 + Rejects language non-members
741 + Accepts language members
742 + Permutation('a'? 'b'? 'c'? 'd'?) ~ 'z' language
743 + Rejects language non-members
744 + Accepts language members
745 + StringToken language
746 + StringToken language rejects anything other than its target string
747 + StringToken language accepts its target string
748 + PrimTypeToken language
749 + PrimType.ZoneId language
750 + PrimType.ZoneId language accepts some that are valid time zone IDs.
751 + PrimType.Bool language rejects some values that are not valid time zone IDs
752 + PrimType.Bool language
753 + PrimType.Bool language accepts values that correspond to 'true' and 'false'
754 + PrimType.Bool language rejects values that do not correspond to 'true'/'false'
755 + Cat language
756 + 'foo' 'bar' 'baz' language
757 + Accepts 'foo' 'bar' 'baz'
758 + Rejects everything that is not 'foo' 'bar' 'baz'
759 + Alt language
760 + 'foo' 'bar' | 'foo' 'baz' language
761 + Accepts 'foo' 'bar'
762 + Accepts 'foo' 'baz'
763 + Rejects everything that is not 'foo' 'bar' | 'foo' 'baz'
764 + Empty language
765 + Empty language rejects all strings
766283 tests passed. 0 tests failed. 1 tests ignored.
767
768Executed in 4 s 263 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-RC4/classes ...
773[info] done compiling
774[info] compiling 2 Scala sources to /build/repo/zio-cli-testkit/jvm/target/scala-3.8.0-RC4/test-classes ...
775[info] done compiling
776+ GenerationAssertionSpec
777 + commandCreation
778 + cliAppCreation
779+ CliAssertionSpec
780 + Access 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
814a
815b
816c Options1: asd
817a
818b
819c Options1: asd
820a
821b
822c Options1: asd
823a
824b
825c Options1: asd
826a
827b
828c Options1: asd
829a
830b
831c Options1: asd
832a
833b
834c Options1: asd
835a
836b
837c Options1: asd
838a
839b
840c Options1: asd
841a
842b
843c Options1: asd
844 + accessHelpDoc
845a
846b
847 + accessSynopsis
848 + accessCommand
849c Options1: asd
850a
851b
852c Options1: asd
853a
854b
855c Options1: asd
856 + Assert methods
857a
858 + assertSynopsis
859b
860c Options1: asd
861 + assertHelpDoc
862a
863b
864c Options1: asd
865a
866b
867c Options1: asd
868a
869b
870c Options1: asd
871a
872b
873c Options1: asd
874a
875b
876c Options1: asd
877a
878b
879c Options1: asd
880a
881b
882c Options1: asd
883a
884b
885c Options1: asd
886a
887b
888c Options1: asd
889a
890b
891c Options1: asd
892a
893b
894c Options1: asd
895a
896b
897c Options1: asd
898a
899b
900c Options1: asd
901a
902b
903c Options1: asd
904a
905b
906c Options1: asd
907a
908b
909c Options1: asd
910a
911b
912c Options1: asd
913a
914b
915c Options1: asd
916a
917b
918c Options1: asd
919a
920b
921c Options1: asd
922a
923b
924c Options1: asd
925a
926b
927c Options1: asd
928a
929b
930c Options1: asd
931a
932b
933c Options1: asd
934a
935b
936c Options1: asd
937a
938b
939c Options1: asd
940a
941b
942c Options1: asd
943a
944b
945c Options1: asd
946a
947b
948c Options1: asd
949a
950b
951c Options1: asd
952a
953b
954c Options1: asd
955a
956b
957c Options1: asd
958a
959b
960c Options1: asd
961a
962b
963c Options1: asd
964a
965b
966c Options1: asd
967a
968b
969c Options1: asd
970a
971b
972c Options1: asd
973a
974b
975c Options1: asd
976a
977b
978c Options1: asd
979a
980b
981c Options1: asd
982a
983b
984c Options1: asd
985a
986b
987c Options1: asd
988a
989b
990c Options1: asd
991a
992b
993c Options1: asd
994a
995b
996c Options1: asd
997a
998b
999c Options1: asd
1000a
1001b
1002c Options1: asd
1003a
1004b
1005c Options1: asd
1006a
1007b
1008c Options1: asd
1009a
1010b
1011c Options1: asd
1012a
1013b
1014c Options1: asd
1015a
1016b
1017c Options1: asd
1018a
1019b
1020c Options1: asd
1021a
1022b
1023c Options1: asd
1024a
1025b
1026c Options1: asd
1027a
1028b
1029c Options1: asd
1030a
1031b
1032c Options1: asd
1033a
1034b
1035c Options1: asd
1036a
1037b
1038c Options1: asd
1039a
1040b
1041c Options1: asd
1042a
1043b
1044c Options1: asd
1045 + assertCliApp
1046a
1047b
1048c Options1: asd
1049a
1050b
1051c Options1: asd
1052 + assertCommand
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
1093b
1094c Options1: asd
1095a
1096b
1097c Options1: asd
1098a
1099b
1100c Options1: asd
1101a
1102b
1103c Options1: asd
1104a
1105b
1106c Options1: asd
1107a
1108b
1109c Options1: asd
1110a
1111b
1112c Options1: asd
1113a
1114b
1115c Options1: asd
1116a
1117b
1118c Options1: asd
1119a
1120b
1121c Options1: asd
1122a
1123b
1124c Options1: asd
1125a
1126b
1127c Options1: asd
1128a
1129b
1130c Options1: asd
1131a
1132b
1133c Options1: asd
1134a
1135b
1136c Options1: asd
1137a
1138b
1139c Options1: asd
1140a
1141b
1142c Options1: asd
1143a
1144b
1145c Options1: asd
1146a
1147b
1148c Options1: asd
1149a
1150b
1151c Options1: asd
1152a
1153b
1154c Options1: asd
1155a
1156b
1157c Options1: asd
1158a
1159b
1160c Options1: asd
1161a
1162b
1163c Options1: asd
1164a
1165b
1166c Options1: asd
1167a
1168b
1169c Options1: asd
1170a
1171b
1172c Options1: asd
1173a
1174b
1175c Options1: asd
1176a
1177b
1178c Options1: asd
1179a
1180b
1181c Options1: asd
1182a
1183b
1184c Options1: asd
1185a
1186b
1187c Options1: asd
1188a
1189b
1190c Options1: asd
1191a
1192b
1193c Options1: asd
1194a
1195b
1196c Options1: asd
1197a
1198b
1199c Options1: asd
1200a
1201b
1202c Options1: asd
1203a
1204b
1205c Options1: asd
1206a
1207b
1208c Options1: asd
1209a
1210b
1211c Options1: asd
1212a
1213b
1214c Options1: asd
1215a
1216b
1217c Options1: asd
1218a
1219b
1220c Options1: asd
1221a
1222b
1223c Options1: asd
1224a
1225b
1226c Options1: asd
1227a
1228b
1229c Options1: asd
1230a
1231b
1232c Options1: asd
1233a
1234b
1235c Options1: asd
1236a
1237b
1238c Options1: asd
1239a
1240b
1241c Options1: asd
1242a
1243b
1244c Options1: asd
1245a
1246b
1247c Options1: asd
1248a
1249b
1250c Options1: asd
1251a
1252b
1253c Options1: asd
1254a
1255b
1256c Options1: asd
1257a
1258b
1259c Options1: asd
1260a
1261b
1262c Options1: asd
1263a
1264b
1265c Options1: asd
1266a
1267b
1268c Options1: asd
1269a
1270b
1271c Options1: asd
1272a
1273b
1274c Options1: asd
1275a
1276b
1277c Options1: asd
1278a
1279b
1280c Options1: asd
1281a
1282b
1283c Options1: asd
1284a
1285b
1286c Options1: asd
1287a
1288b
1289c Options1: asd
1290a
1291b
1292c Options1: asd
1293a
1294b
1295c Options1: asd
1296a
1297b
1298c Options1: asd
1299a
1300b
1301c Options1: asd
1302a
1303b
1304c Options1: asd
1305a
1306b
1307c Options1: asd
1308a
1309b
1310c Options1: asd
1311a
1312b
1313c Options1: asd
1314a
1315b
1316c Options1: asd
1317a
1318b
1319c Options1: asd
1320a
1321b
1322c Options1: asd
1323a
1324b
1325c Options1: asd
1326a
1327b
1328c Options1: asd
1329a
1330b
1331c Options1: asd
1332a
1333b
1334c Options1: asd
1335a
1336b
1337c Options1: asd
1338a
1339b
1340c Options1: asd
1341a
1342b
1343c Options1: asd
1344a
1345b
1346c Options1: asd
1347a
1348b
1349c Options1: asd
1350a
1351b
1352c Options1: asd
1353a
1354b
1355c Options1: asd
1356a
1357b
1358c Options1: asd
1359a
1360b
1361c Options1: asd
1362a
1363b
1364c Options1: asd
1365a
1366b
1367c Options1: asd
1368a
1369b
1370c Options1: asd
1371a
1372b
1373c Options1: asd
1374a
1375b
1376c Options1: asd
1377a
1378b
1379c Options1: asd
1380a
1381b
1382c Options1: asd
1383a
1384b
1385c Options1: asd
1386a
1387b
1388c Options1: asd
1389 + outputContains
139010 tests passed. 0 tests failed. 0 tests ignored.
1391
1392Executed in 6 s 130 ms
1393
1394
1395************************
1396Build summary:
1397[{
1398 "module": "examples",
1399 "compile": {"status": "ok", "tookMs": 25286, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
1400 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1401 "test-compile": {"status": "ok", "tookMs": 364, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1402 "test": {"status": "ok", "tookMs": 239, "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": 67, "warnings": 4, "errors": 0, "sourceVersion": "3.8"},
1410 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1411 "test-compile": {"status": "ok", "tookMs": 5896, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1412 "test": {"status": "ok", "tookMs": 5152, "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": 1388, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1420 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1421 "test-compile": {"status": "ok", "tookMs": 927, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1422 "test": {"status": "ok", "tookMs": 6682, "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: 64 s (0:01:04.0), completed Dec 22, 2025, 6:15:07 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.