Build Logs
arainko/ducktape • 3.8.0-RC6:2026-01-08
Errors
0
Warnings
162
Total Lines
742
1##################################
2Clonning https://github.com/arainko/ducktape.git into /build/repo using revision v0.2.12
3##################################
4Note: switching to '977f6adddecc638c9cf1419615e238c8caf8ded4'.
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
21----
22Preparing build for 3.8.0-RC6
23Scala binary version found: 3.8
24Using configured source version: 3.3
25Scala binary version found: 3.8
26Using configured source version: 3.3
27Would try to apply common scalacOption (best-effort, sbt/mill only):
28Append: ,REQUIRE:-source:3.3
29Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
30----
31Starting build for 3.8.0-RC6
32Execute tests: true
33sbt project found:
34No prepare script found for project arainko/ducktape
35##################################
36Scala version: 3.8.0-RC6
37Targets: io.github.arainko%ducktape
38Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.3","migrationVersions":[],"sourcePatches":[]}
39##################################
40Using extra scalacOptions: ,REQUIRE:-source:3.3
41Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
42[sbt_options] declare -a sbt_options=()
43[process_args] java_version = '17'
44[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
45# Executing command line:
46java
47-Dfile.encoding=UTF-8
48-Xmx5G
49-Xms1G
50-Xss2M
51-Dsun.net.client.defaultReadTimeout=60000
52-Dcommunitybuild.scala=3.8.0-RC6
53-Dcommunitybuild.project.dependencies.add=
54-Xmx7G
55-Xms4G
56-Xss8M
57-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
58-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
59-jar
60/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
61"setCrossScalaVersions 3.8.0-RC6"
62"++3.8.0-RC6 -v"
63"mapScalacOptions ",REQUIRE:-source:3.3,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
64"set every credentials := Nil"
65"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
66"removeScalacOptionsStartingWith -P:wartremover"
67
68moduleMappings
69"runBuild 3.8.0-RC6 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.3","migrationVersions":[],"sourcePatches":[]}""" io.github.arainko%ducktape"
70
71[info] [launcher] getting org.scala-sbt sbt 1.11.7 (this may take some time)...
72[info] welcome to sbt 1.11.7 (Eclipse Adoptium Java 17.0.8)
73[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
74[info] loading project definition from /build/repo/project
75[info] compiling 3 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
76[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
77[info] Compilation completed in 10.009s.
78[info] done compiling
79[info] loading settings for project root from build.sbt...
80[info] resolving key references (10651 settings) ...
81[info] set scmInfo to https://github.com/arainko/ducktape
82[info] set current project to root (in build file:/build/repo/)
83Execute setCrossScalaVersions: 3.8.0-RC6
84[info] set scmInfo to https://github.com/arainko/ducktape
85OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in root/crossScalaVersions
86OpenCB::Limitting incorrect crossVersions List() -> List(3.8.0-RC6) in root/crossScalaVersions
87OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in rootJS/crossScalaVersions
88OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in rootJVM/crossScalaVersions
89OpenCB::Changing crossVersion 3.7.4 -> 3.8.0-RC6 in scalaNextTests/crossScalaVersions
90OpenCB::Limitting incorrect crossVersions List(3.3.7) -> List(3.8.0-RC6) in scalaNextTests/crossScalaVersions
91OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in docs/crossScalaVersions
92OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in ducktapeJS/crossScalaVersions
93OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in rootNative/crossScalaVersions
94OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in ducktapeNative/crossScalaVersions
95OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in ducktapeJVM/crossScalaVersions
96[info] set current project to root (in build file:/build/repo/)
97[info] Setting Scala version to 3.8.0-RC6 on 9 projects.
98[info] Switching Scala version on:
99[info] * root (3.8.0-RC6)
100[info] rootJS (3.8.0-RC6)
101[info] docs (3.8.0-RC6)
102[info] ducktapeJVM (3.8.0-RC6)
103[info] ducktapeNative (3.8.0-RC6)
104[info] rootJVM (3.8.0-RC6)
105[info] rootNative (3.8.0-RC6)
106[info] scalaNextTests (3.8.0-RC6)
107[info] ducktapeJS (3.8.0-RC6)
108[info] Excluding projects:
109[info] Reapplying settings...
110[info] set scmInfo to https://github.com/arainko/ducktape
111[info] set current project to root (in build file:/build/repo/)
112Execute mapScalacOptions: ,REQUIRE:-source:3.3,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
113[info] Reapplying settings...
114[info] set scmInfo to https://github.com/arainko/ducktape
115[info] set current project to root (in build file:/build/repo/)
116[info] Defining Global / credentials, credentials and 7 others.
117[info] The new values will be used by Compile / scalafmtOnly, IntegrationTest / scalafmtOnly and 79 others.
118[info] Run `last` for details.
119[info] Reapplying settings...
120[info] set scmInfo to https://github.com/arainko/ducktape
121[info] set current project to root (in build file:/build/repo/)
122Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
123[info] Reapplying settings...
124OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
125
126 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
127 Did you mean allExcludeDependencies ?
128 , retry without global scopes
129[info] Reapplying settings...
130[info] set scmInfo to https://github.com/arainko/ducktape
131[info] set current project to root (in build file:/build/repo/)
132Execute removeScalacOptionsStartingWith: -P:wartremover
133[info] Reapplying settings...
134[info] set scmInfo to https://github.com/arainko/ducktape
135[info] set current project to root (in build file:/build/repo/)
136[success] Total time: 0 s, completed Jan 8, 2026, 3:02:12 AM
137Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.3","migrationVersions":[],"sourcePatches":[]}
138Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
139Starting build...
140Projects: Set(ducktapeJVM)
141Starting build for ProjectRef(file:/build/repo/,ducktapeJVM) (ducktape)... [0/1]
142OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.3` in Scala 2.12.20 module Global
143OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
144Compile scalacOptions: -Wunused:all, -Ykind-projector:underscores, -Xcheck-macros, -Xsemanticdb, -semanticdb-target, /build/repo/ducktape/.jvm/target/scala-3.8.0-RC6/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.3
145[info] compiling 60 Scala sources to /build/repo/ducktape/.jvm/target/scala-3.8.0-RC6/classes ...
146[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
147[warn] -- [E198] Unused Symbol Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/Planner.scala:4:71
148[warn] 4 |import io.github.arainko.ducktape.internal.Context.{ PossiblyFallible, Total }
149[warn] | ^^^^^
150[warn] | unused import
151[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/FalliblePlanInterpreter.scala:80:12
152[warn] 80 | (source.underlying.tpe, dest.tpe) match {
153[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
154[warn] | match may not be exhaustive.
155[warn] |
156[warn] | It would fail on pattern case: (_, _)
157[warn] |
158[warn] | longer explanation available when compiling with `-explain`
159[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/FalliblePlanInterpreter.scala:92:16
160[warn] 92 | (source.underlying.tpe, dest.tpe) match {
161[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
162[warn] | match may not be exhaustive.
163[warn] |
164[warn] | It would fail on pattern case: (_, _)
165[warn] |
166[warn] | longer explanation available when compiling with `-explain`
167[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/FalliblePlanInterpreter.scala:130:12
168[warn] 130 | (source.paramStruct.tpe, dest.paramStruct.tpe) match {
169[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
170[warn] | match may not be exhaustive.
171[warn] |
172[warn] | It would fail on pattern case: (_, _)
173[warn] |
174[warn] | longer explanation available when compiling with `-explain`
175[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/FalliblePlanInterpreter.scala:143:13
176[warn] 143 | (source.tpe -> dest.paramStruct.tpe) match {
177[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
178[warn] | match may not be exhaustive.
179[warn] |
180[warn] | It would fail on pattern case: (_, _)
181[warn] |
182[warn] | longer explanation available when compiling with `-explain`
183[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/FalliblePlanInterpreter.scala:150:12
184[warn] 150 | (dest.tpe, source.paramStruct.tpe, dest.paramStruct.tpe) match {
185[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
186[warn] | match may not be exhaustive.
187[warn] |
188[warn] | It would fail on pattern case: (_, _, _)
189[warn] |
190[warn] | longer explanation available when compiling with `-explain`
191[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/FalliblePlanInterpreter.scala:182:13
192[warn] 182 | (source.tpe -> dest.tpe) match {
193[warn] | ^^^^^^^^^^^^^^^^^^^^^^
194[warn] | match may not be exhaustive.
195[warn] |
196[warn] | It would fail on pattern case: (_, _)
197[warn] |
198[warn] | longer explanation available when compiling with `-explain`
199[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/FalliblePlanInterpreter.scala:195:13
200[warn] 195 | (source.tpe -> dest.tpe) match {
201[warn] | ^^^^^^^^^^^^^^^^^^^^^^
202[warn] | match may not be exhaustive.
203[warn] |
204[warn] | It would fail on pattern case: (_, _)
205[warn] |
206[warn] | longer explanation available when compiling with `-explain`
207[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/Function.scala:26:4
208[warn] 26 | returnTpe -> refinedArgs.asType match {
209[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
210[warn] | match may not be exhaustive.
211[warn] |
212[warn] | It would fail on pattern case: (_, _)
213[warn] |
214[warn] | longer explanation available when compiling with `-explain`
215[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/PlanInterpreter.scala:98:9
216[warn] 98 | (sourceTpe.paramStruct.tpe -> destTpe.paramStruct.tpe) match {
217[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
218[warn] | match may not be exhaustive.
219[warn] |
220[warn] | It would fail on pattern case: (_, _)
221[warn] |
222[warn] | longer explanation available when compiling with `-explain`
223[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/PlanInterpreter.scala:106:9
224[warn] 106 | (sourceTpe.tpe -> destTpe.paramStruct.tpe) match {
225[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
226[warn] | match may not be exhaustive.
227[warn] |
228[warn] | It would fail on pattern case: (_, _)
229[warn] |
230[warn] | longer explanation available when compiling with `-explain`
231[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/PlanInterpreter.scala:114:8
232[warn] 114 | (dest.tpe, source.paramStruct.tpe, dest.paramStruct.tpe) match {
233[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
234[warn] | match may not be exhaustive.
235[warn] |
236[warn] | It would fail on pattern case: (_, _, _)
237[warn] |
238[warn] | longer explanation available when compiling with `-explain`
239[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/Planner.scala:394:9
240[warn] 394 | (src.tpe -> dest.tpe) match {
241[warn] | ^^^^^^^^^^^^^^^^^^^
242[warn] | match may not be exhaustive.
243[warn] |
244[warn] | It would fail on pattern case: (_, _)
245[warn] |
246[warn] | longer explanation available when compiling with `-explain`
247[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/Planner.scala:411:7
248[warn] 411 | (src.tpe -> dest.tpe) match {
249[warn] | ^^^^^^^^^^^^^^^^^^^
250[warn] | match may not be exhaustive.
251[warn] |
252[warn] | It would fail on pattern case: (_, _)
253[warn] |
254[warn] | longer explanation available when compiling with `-explain`
255[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/ProductZipper.scala:41:7
256[warn] 41 | (accumulated -> current) match {
257[warn] | ^^^^^^^^^^^^^^^^^^^^^^
258[warn] | match may not be exhaustive.
259[warn] |
260[warn] | It would fail on pattern case: (_, _)
261[warn] |
262[warn] | longer explanation available when compiling with `-explain`
263[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/extensions.scala:39:14
264[warn] 39 | (expr, fieldTpe) match {
265[warn] | ^^^^^^^^^^^^^^^^
266[warn] | match may not be exhaustive.
267[warn] |
268[warn] | It would fail on pattern case: (_, _)
269[warn] |
270[warn] | longer explanation available when compiling with `-explain`
271[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/extensions.scala:56:6
272[warn] 56 | (expr, tpeAtIndex) match {
273[warn] | ^^^^^^^^^^^^^^^^^^
274[warn] | match may not be exhaustive.
275[warn] |
276[warn] | It would fail on pattern case: (_, _)
277[warn] |
278[warn] | longer explanation available when compiling with `-explain`
279Warning: mocking up superclass for module class internal
280[warn] -- Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/ConfigParser.scala:17:1
281[warn] 17 |@nowarn("msg=unused local definition")
282[warn] |^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
283[warn] |@nowarn annotation does not suppress any warnings
284[warn] -- Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/FalliblePlanInterpreter.scala:170:16
285[warn] 170 | }: @nowarn("msg=unused local definition")
286[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
287[warn] | @nowarn annotation does not suppress any warnings
288[warn] -- Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/PlanInterpreter.scala:137:16
289[warn] 137 | }: @nowarn("msg=unused local definition")
290[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
291[warn] | @nowarn annotation does not suppress any warnings
292[warn] -- Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/PlanInterpreter.scala:147:16
293[warn] 147 | }: @nowarn("msg=unused local definition")
294[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
295[warn] | @nowarn annotation does not suppress any warnings
296[warn] -- Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/ProductZipper.scala:33:8
297[warn] 33 | }: @nowarn("msg=unused local definition")
298[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
299[warn] | @nowarn annotation does not suppress any warnings
300[warn] -- Warning: /build/repo/ducktape/src/main/scala/io/github/arainko/ducktape/internal/ProductZipper.scala:44:10
301[warn] 44 | }: @nowarn("msg=unused local definition")
302[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
303[warn] | @nowarn annotation does not suppress any warnings
304[warn] 24 warnings found
305[info] done compiling
306OpenCB::Filter out '-Werror', matches setting pattern '^-?-Werror'
307[info] compiling 51 Scala sources to /build/repo/ducktape/.jvm/target/scala-3.8.0-RC6/test-classes ...
308[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
309Warning: mocking up superclass for module class internal
310[warn] one warning found
311[info] done compiling
312io.github.arainko.ducktape.total.ErrorReportingSuite:
313 + errors for all missing fields are reported at once 0.021s
314 + errors for all missing coproduct cases are reported at once 0.001s
315 + product configurations should fail when using a path component that doesn't belong to the actual transformation path 0.005s
316 + coproduct configurations fail when using a case component that isn't a subtype 0.002s
317 + erroneous config doesn't overshadow errors that lie in its subpaths 0.001s
318 + erroneous configs on plan nodes that produce an error show the suppressed error 0.003s
319 + recursive transformations are detected 0.001s
320io.github.arainko.ducktape.fallible.FUnwrappingSuite:
321 + F-unwrapping works with match type syntax 0.01s
322 + F-unwrapping with a non-fallible transformation underneath works 0.009s
323 + F-unwrapping with a fallible transformation underneath works 0.025s
324 + F-unwrapping with a fallible transformation underneath works for Mode.Accumulating when a Mode.FailFast is also in scope 0.007s
325 + F-unwrapped transformations with a non-fallible transformation underneath can be configured 0.011s
326 + F-unwrapped transformations with a non-fallible transformation underneath cannot be configured with fallible configs 0.006s
327 + F-unwrapped transformations with a fallible transformation underneath can be configured 0.008s
328io.github.arainko.ducktape.total.RegionalFlagSuite:
329 + dest field regional flag covers the selected case class and everything below it 0.021s
330 + source field regional flag covers the selected case class and everything below it 0.007s
331 + source field regional flag covers the selected subtype of an enum and everything below it 0.014s
332 + source field regional flag covers all subtypes of an enum and everything below it 0.013s
333 + dest regional flag covers all subtypes of an enum and everything below it 0.012s
334 + source field regional flag covers all subtypes of an enum and everything below (even when the enum is nested) 0.012s
335 + dest field regional flag covers all subtypes of an enum and everything below (even when the enum is nested) 0.012s
336 + dest field regional flag covers all subtypes of an enum and everything below (even when the enum is nested, and we pick one of the sub-enums) 0.124s
337 + source field regional flag covers all subtypes of an enum and everything below (even when the enum is nested, and we pick one of the sub-enums) 0.017s
338 + source case regional flag covers the selected subtype and everything below (picked as a field in case class) 0.018s
339 + source case regional flag DOESN'T cover the selected subtype (picked as a subtype with .at) 0.023s
340 + dest case regional flag DOESN'T cover the selected subtype (picked as a subtype with .at) 0.018s
341io.github.arainko.ducktape.total.TypeSpecificFlagSuite:
342 + dest field type specific flag covers the selected case class and nothing else 0.023s
343 + source field type specific flag covers the selected case class and nothing else 0.007s
344 + source field type specific flag covers the selected subtype of an enum and nothing else 0.017s
345 + source field type specific flag covers all subtypes of an enum and nothing else 0.012s
346 + dest field type specific flag covers all subtypes of an enum and nothing else 0.011s
347 + source field type specific flag covers all subtypes of an enum and nothing else (even when the enum is nested) 0.013s
348 + dest field type specific flag covers all subtypes of an enum and nothing else (even when the enum is nested) 0.012s
349 + dest field local flag covers all subtypes of an enum and nothing else (even when the enum is nested, and we pick one of the sub-enums) 0.115s
350 + source field local flag covers all subtypes of an enum and nothing else (even when the enum is nested, and we pick one of the sub-enums) 0.02s
351 + source case type specific flag covers the selected subtype (picked as a field in case class) 0.022s
352 + source case type specific flag DOESN'T cover the selected subtype (it's only meant to cover its childer) 0.021s
353 + dest case type specific DOESN'T cover the selected subtype (it's only meant to cover its childer) 0.021s
354io.github.arainko.ducktape.issues.Issue190Suite:
355 + transforming from concatenated together tuples works (bound to an intermediate val) 0.021s
356io.github.arainko.ducktape.fallible.accumulating.AccumulatingTupleTransformationSuite:
357 + tuple-to-tuple works 0.004s
358 + tuple-to-product works 0.012s
359 + product-to-tuple works 0.008s
360 + tuple-to-function works 0.014s
361 + tuple-to-tuple can be configured (dest side) 0.01s
362 + tuple-to-tuple can be configured (source side) 0.012s
363 + product-to-tuple can be configured (dest side) 0.01s
364 + product-to-tuple can be configured (source side) 0.025s
365 + tuple-to-product can be configured (dest side) 0.008s
366 + tuple-to-product can be configured (source side) 0.017s
367 + tuple-to-function can be configured (dest side) 0.01s
368 + tuple-to-function can be configured (source side) 0.008s
369 + big tuples work 0.012s
370 + big tuples can be configured 0.005s
371io.github.arainko.ducktape.issues.Issue179Suite:
372 + configuring a field on an identity transformation works 0.003s
373 + configuring a field on an identity transformation works (fallible) 0.002s
374 + configuring a field on a nested identity transformation works 0.004s
375 + configuring a field on a nested identity transformation works (fallible) 0.012s
376 + configuring a field on an identity transformation going through a coproduct transformation works 0.004s
377 + configuring a field on an identity transformation going through a coproduct transformation works (fallible) 0.009s
378 + configuring a field on an identity transformation going through an '.element' transformation (eg. OptionToOption) works 0.01s
379 + configuring a field on an identity transformation going through an '.element' transformation (eg. OptionToOption) works (fallible) 0.013s
380 + configuring a tuple element on an identity transformation works 0.001s
381 + configuring a tuple element on an identity transformation works (fallible) 0.002s
382 + configuring a case on an identity transformation works 0.003s
383 + configuring a case on an identity transformation works (fallible) 0.006s
384io.github.arainko.ducktape.total.DefinitionViaBuilderSuite:
385 + Arg.const properly applies a constant to an argument 0.002s
386 + Arg.computed properly applies a function to an argument 0.003s
387 + Arg.renamed properly uses a different field for that argument 0.002s
388 + sums of products can be configured 0.011s
389 + Builder reports a missing argument 0.002s
390io.github.arainko.ducktape.fallible.failfast.FailFastTupleTransformationSuite:
391 + tuple-to-tuple works 0.016s
392 + tuple-to-product works 0.025s
393 + product-to-tuple works 0.021s
394 + tuple-to-function works 0.011s
395 + tuple-to-tuple can be configured (dest side) 0.017s
396 + tuple-to-tuple can be configured (source side) 0.021s
397 + product-to-tuple can be configured (dest side) 0.017s
398 + product-to-tuple can be configured (source side) 0.025s
399 + tuple-to-product can be configured (dest side) 0.009s
400 + tuple-to-product can be configured (source side) 0.018s
401 + tuple-to-function can be configured (dest side) 0.015s
402 + tuple-to-function can be configured (source side) 0.021s
403 + big tuples work 0.081s
404 + big tuples can be configured 0.035s
405io.github.arainko.ducktape.issues.Issue165Suite:
406 + rejects _.to in given Transformer definitions 0.001s
407 + rejects _.into.transform() in given Transformer definitions 0.001s
408 + rejects _.falibleTo in given Trasformer.Fallible definitions 0.0s
409 + rejects _.into.falible in given Trasformer.Fallible definitions 0.001s
410io.github.arainko.ducktape.fallible.failfast.DerivedInstanceSuite:
411 + CreateTalk transform into Talk using - fallibleTo 0.016s
412 + CreateTalk transform into Talk using - fallibleVia 0.002s
413 + CreateTalk transform into Talk using - into.fallible 0.002s
414 + CreateTalk transform into Talk using - Transformer.define.fallible 0.002s
415 + CreateTalk transform into Talk using - Transformer.defineVia.fallible 0.001s
416 + CreateTalk fails to transform into Talk and returns the first failure - fallibleTo 0.005s
417 + CreateTalk fails to transform into Talk and returns the first failure - fallibleVia 0.001s
418 + CreateTalk fails to transform into Talk and returns the first failure - into.fallible 0.0s
419 + CreateTalk fails to transform into Talk and returns the first failure - Transformer.define.fallible 0.001s
420io.github.arainko.ducktape.total.NestedConfigurationSuite:
421 + nested product fields can be configured 0.008s
422 + nested product fields inside nested coproduct cases can be configured 0.011s
423 + nested product fields can be overriden 0.025s
424 + nested product fields can be configured by overriding the transformation that is a level above 0.011s
425 + nested product configuration fails if the types do not line up 0.007s
426 + Field.computed works for nested fields 0.018s
427 + nested product fields with collection and option elements can be configured 0.029s
428 + nested product fields with collection and option elements can be overridden 0.01s
429 + nested coproduct cases can be configured 0.009s
430 + nested coproduct cases inside nested fields can be configured 0.02s
431 + nested coproduct cases can be overridden 0.016s
432 + nested coproduct cases can be configured by configuring the case that is a level above 0.016s
433 + nested coproduct configuration fails if the types do not line up 0.01s
434 + nested coproduct cases with collection and option elements can be configured 0.031s
435 + nested coproduct cases with the NonOptionOption transformation variant can be configured 0.013s
436 + Case.computed works for nested cases 0.017s
437 + Fails when a Case config doesn't end with an 'at' segment 0.002s
438 + Field.fallbackToNone works 0.005s
439 + Field.fallbackToNone.regional works 0.011s
440 + Field.fallbackToDefault works 0.008s
441 + Field.fallbackToDefault.regional works 0.006s
442 + Field.computedDeep works in deeply nested case classes 0.007s
443 + Field.computedDeep works with deeply nested tuples 0.003s
444 + Field.computedDeep works with Options 0.01s
445 + Field.computedDeep works with collections 0.02s
446 + Field.computedDeep works with coproducts 0.006s
447 + Field.computedDeep reports the right source type if the one given to it is wrong 0.019s
448 + Field.computedDeep works correctly when a field on the same level is missing in the Source 0.008s
449io.github.arainko.ducktape.fallible.accumulating.ModeSuite:
450 + eitherIterableAccumulatingSupport#product succeeds with two Rights 0.0s
451 + eitherIterableAccumulatingSupport#product fails with a Left on the left 0.0s
452 + eitherIterableAccumulatingSupport#product fails with a Left on the right 0.0s
453 + eitherIterableAccumulatingSupport#product accumulates errors 0.005s
454io.github.arainko.ducktape.total.RenamerSuite:
455 + Renamer#toLowerCase works 0.005s
456 + Renamer#toUpperCase works 0.007s
457 + Renamer#rename works 0.002s
458 + Renamer#replace works 0.005s
459 + Renamer#regexReplace works 0.005s
460 + Renamer#stripPrefix works 0.001s
461 + Renamer#stripSuffix works 0.005s
462 + Renamer#capitalize works 0.002s
463 + Renamer functions are sequenced in the right order 0.003s
464io.github.arainko.ducktape.total.AppliedBuilderSuite:
465 + Field.const properly applies a constant to a field 0.002s
466 + Field.const fails when the field and constant types do not match 0.001s
467 + Field.computed properly applies a function to a field 0.0s
468 + Field.computed fails when the result type of the computed function doesn't match the field 0.005s
469 + Field.renamed properly uses a different field for that argument 0.001s
470 + Field.renamed fails when the types of fields do not match 0.001s
471 + Field.allMatching fills in missing fields 0.005s
472 + Field.allMatching gets all the matching fields from a field source and overwrites existing ones 0.001s
473 + Field.allMatching only fills in fields that match by name and by type 0.004s
474 + Field.allMatching works with fields that match by name and are a subtype of the expected type 0.002s
475 + Field.allMatching reports a compiletime failure when none of the fields match 0.001s
476 + The last applied field config is the picked one 0.001s
477 + overriding multiple fields multiple times is reported appropriately 0.001s
478 + When configs are applied to the same field repeateadly a warning is emitted 0.005s
479 + Case.const properly applies the constant for that subtype 0.006s
480 + Case.computed applies a function to that given subtype 0.003s
481 + sums of products can be configured 0.013s
482 + sums with type parameters can be confgured 0.005s
483 + When a Case is configured multiple times a warning is emitted 0.001s
484 + derive a transformer for case classes with default values if configured 0.005s
485 + Field.default fails when a field doesn't have a default value 0.001s
486 + Field.default fails when the default doesn't match the expected type 0.001s
487io.github.arainko.ducktape.fallible.failfast.FastFailCoproductTransformationsSuite:
488 + Derive sum of products 0.012s
489 + Derive sum of singletons 0.008s
490 + Derive sum of singleton and product 0.008s
491 + Fail with the first problems 0.012s
492 + Derivation fails if the case names don't align 0.001s
493 + Derivation fails if a case can't be transformed 0.003s
494 + Fallible config options can fill in missing cases 0.007s
495 + Total config options can fill in missing cases 0.007s
496io.github.arainko.ducktape.total.DerivedTransformerSuite:
497 + derived product transformer roundtrip 0.025s
498 + derived product transformers take locally scoped Transformers into consideration 0.004s
499 + derived enum transformer should map to cases with same name 0.011s
500 + derivation succeeds when going from a class with more fields to a class with less fields 0.008s
501 + derivation succeeds with more complex subderivations inside 0.011s
502 + derived FromAnyVal & ToAnyVal transformers with type parameters roundrip 0.001s
503 + products with AnyVal fields with type params roundrip to their primitives 0.012s
504 + transformers are derived for products with supertypes of the original product type 0.008s
505 + derivation fails when going from a product with less fields to a product with more fields 0.001s
506 + derivation succeeds when going from a sum with less cases to a sum with more cases 0.006s
507 + derivation succeeds when going from a sum of cases with the same name as the target sum (enum) 0.015s
508 + derivation succeeds when going from a sum of cases with the same name as the target sum (sealed trait) 0.013s
509 + derivation succeeds betweens sums with type parameters 0.002s
510 + derivation fails when a Transformer doesn't exist for a child with the same name 0.004s
511 + transformations between maps of different kind work 0.007s
512 + derivation fails when going from a sum with more cases to a sum with less cases 0.0s
513 + a toplevel transformer is taken into consideration when using .to 0.003s
514 + Transformer.define* can be used to create recursive transformers 0.01s
515io.github.arainko.ducktape.fallible.accumulating.DerivedInstanceSuite:
516 + CreateTalk transform into Talk using - fallibleTo 0.002s
517 + CreateTalk transform into Talk using - fallibleVia 0.007s
518 + CreateTalk transform into Talk using - into.fallible 0.001s
519 + CreateTalk transform into Talk using - Transformer.define.fallible 0.001s
520 + CreateTalk transform into Talk using - Transformer.define.fallible-1 0.004s
521 + CreateTalk fails to transform into Talk and accumulates all errors using - fallibleTo 0.001s
522 + CreateTalk fails to transform into Talk and accumulates all errors using - fallibleVia 0.001s
523 + CreateTalk fails to transform into Talk and accumulates all errors using - into.fallible 0.001s
524 + CreateTalk fails to transform into Talk and accumulates all errors using - Transformer.defineVia.fallible 0.0s
525io.github.arainko.ducktape.total.AppliedViaBuilderSuite:
526 + Arg.const properly applies a constant to an argument 0.001s
527 + Arg.computed properly applies a function to an argument 0.004s
528 + Arg.renamed properly uses a different field for that argument 0.001s
529 + When an Arg is configured multiple times a warning is emitted 0.001s
530 + Builder reports a missing argument 0.0s
531io.github.arainko.ducktape.fallible.accumulating.AccumulatingCoproductTransformationsSuite:
532 + Derive sum of products 0.026s
533 + Derive sum of singletons 0.008s
534 + Derive sum of singleton and product 0.016s
535 + Use total transformers when possible 0.006s
536 + Accumulate problems 0.014s
537 + Derivation fails if the case names don't align 0.001s
538 + Derivation fails if a case can't be transformed 0.001s
539 + Fallible config options can fill in missing cases 0.002s
540 + Total config options can fill in missing cases 0.003s
541io.github.arainko.ducktape.LoggerSuite:
542 + log level should be Off 0.009s
543io.github.arainko.ducktape.issues.Issue195Suite:
544 + missing Factory instances are reported in a nice way 0.001s
545io.github.arainko.ducktape.issues.Issue211Suite:
546 + directly configuring a Dest case doesn't fail at runtime 0.003s
547io.github.arainko.ducktape.total.ViaSuite:
548 + via 0.003s
549 + via with type param 0.001s
550 + via with substransformations 0.009s
551 + via fails when the source doesn't have all the method arguments 0.0s
552io.github.arainko.ducktape.total.TupleTransformationSuite:
553 + tuple-to-tuple works 0.009s
554 + tuple-to-product works 0.005s
555 + product-to-tuple works 0.004s
556 + tuple-to-function works 0.001s
557 + tuple-to-tuple can be configured (dest side) 0.001s
558 + tuple-to-tuple can be configured (source side) 0.006s
559 + product-to-tuple can be configured (dest side) 0.005s
560 + product-to-tuple can be configured (source side) 0.006s
561 + tuple-to-product can be configured (dest side) 0.006s
562 + tuple-to-product can be configured (source side) 0.006s
563 + tuple-to-function can be configured (dest side) 0.005s
564 + tuple-to-function can be configured (source side) 0.011s
565 + plain tuples can be configured with _-accessors 0.0s
566 + big tuples work 0.005s
567 + big tuples can be configured 0.001s
568 + Field.fallbackToDefault works for tuple-to-product 0.083s
569 + Field.fallbackToNone works 0.002s
570 + Field.default works for tuple-to-product 0.002s
571 + Field.allMatching works for tuple-to-product 0.002s
572io.github.arainko.ducktape.issues.Issue187Suite:
573 + BetweenNonOptionOption works when Mode[Option] is in scope 0.004s
574 + BetweenOptions works when Mode[Option] is in scope 0.005s
575 + Fallible transformation for an Option works when Mode[Option] is in scope 0.003s
576 + Option-unwrapping works 0.023s
577io.github.arainko.ducktape.fallible.accumulating.AccumulatingNestedConfigurationSuite:
578 + nested product fields can be configured 0.018s
579 + nested product fields inside nested coproduct cases can be configured 0.109s
580 + nested product fields can be overriden 0.012s
581 + nested product fields can be configured by overriding the transformation that is a level above 0.008s
582 + nested product configuration fails if the types do not line up 0.01s
583 + Field.fallibleComputed works for nested fields 0.012s
584 + nested product fields with collection and option elements can be configured 0.016s
585 + nested product fields with collection and option elements can be overridden 0.013s
586 + nested coproduct cases can be configured 0.013s
587 + nested coproduct cases inside nested fields can be configured 0.097s
588 + nested coproduct cases can be overridden 0.009s
589 + nested coproduct cases can be configured by configuring the case that is a level above 0.006s
590 + nested coproduct configuration fails if the types do not line up 0.004s
591 + nested coproduct cases with collection and option elements can be configured 0.011s
592 + nested coproduct cases with the NonOptionOption transformation variant can be configured 0.005s
593 + Case.fallibleComputed works for nested cases 0.008s
594 + Fails when a Case config doesn't end with an 'at' segment 0.001s
595 + Field.fallbackToNone works 0.008s
596 + Field.fallbackToNone.regional works 0.006s
597 + Field.fallbackToDefault works 0.005s
598 + Field.fallbackToDefault.regional works 0.004s
599 + Field.fallibleComputedDeep works in deeply nested case classes 0.006s
600 + Field.fallibleComputedDeep works with deeply nested tuples 0.003s
601 + Field.fallibleComputedDeep works with Options 0.011s
602 + Field.fallibleComputedDeep works with collections 0.01s
603 + Field.fallibleComputedDeep works with coproducts 0.008s
604 + Field.fallibleComputedDeep works with F-unwrapping 0.011s
605io.github.arainko.ducktape.fallible.failfast.OptionFailFastInstanceSuite:
606 + Transformer.Fallible.betweenCollections succeeds when all of the transformations succeed 0.021s
607 + Transformer.Fallible.betweenCollections fails when even a single transformation fails 0.002s
608 + Transformer.Fallible.betweenCollections doesn't blow up the stack when the transformation succeeds 0.394s
609 + Transformer.Fallible.betweenCollections doesn't blow up the stack when failed 0.231s
610 + Transformer.Fallible.betweenMaps transforms keys first 0.054s
611 + Transformer.Fallible.betweenMaps doesn't blow up the stack 0.81s
612 + Transformer.Fallible.betweenOptions returns None when input is None 0.001s
613 + Transformer.Fallible.betweenOptions returns Some when input is a Some and the transformation is successful 0.004s
614 + Transformer.Fallible.betweenOptions fails when input is Some and the transformation fails 0.001s
615 + Transformer.Fallible.betweenNonOptionOption returns Some when the transformation is successful 0.001s
616 + Transformer.Fallible.betweenNonOptionOption fails when the transformation fails 0.001s
617io.github.arainko.ducktape.fallible.failfast.EitherFailFastInstanceSuite:
618 + Transformer.Fallible.betweenCollections succeeds when all of the transformations succeed 0.001s
619 + Transformer.Fallible.betweenCollections fails when even a single transformation fails 0.0s
620 + Transformer.Fallible.betweenCollections doesn't blow up the stack when the transformation succeeds 0.132s
621 + Transformer.Fallible.betweenCollections doesn't blow up the stack when failed 0.134s
622 + Transformer.Fallible.betweenMaps transforms keys first 0.0s
623 + Transformer.Fallible.betweenMaps doesn't blow up the stack 0.616s
624 + Transformer.Fallible.betweenOptions returns None when input is None 0.0s
625 + Transformer.Fallible.betweenOptions returns Some when input is a Some and the transformation is successful 0.001s
626 + Transformer.Fallible.betweenOptions fails when input is Some and the transformation fails 0.0s
627 + Transformer.Fallible.betweenNonOptionOption returns Some when the transformation is successful 0.0s
628 + Transformer.Fallible.betweenNonOptionOption fails when the transformation fails 0.001s
629io.github.arainko.ducktape.total.LocalFlagSuite:
630 + dest field local flag covers the selected case class and nothing else 0.012s
631 + source field local flag covers the selected case class and nothing else 0.009s
632 + source field local flag covers the selected subtype of an enum and nothing else 0.009s
633 + source field local flag covers all subtypes of an enum and nothing else 0.01s
634 + dest field local flag covers all subtypes of an enum and nothing else 0.008s
635 + source field local flag covers all subtypes of an enum and nothing else (even when the enum is nested) 0.009s
636 + dest field local flag covers all subtypes of an enum and nothing else (even when the enum is nested) 0.008s
637 + dest field local flag covers all subtypes of an enum and nothing else (even when the enum is nested, and we pick one of the sub-enums) 0.017s
638 + source field local flag covers all subtypes of an enum and nothing else (even when the enum is nested, and we pick one of the sub-enums) 0.013s
639 + source case local flag covers the selected subtype (picked as a field in case class) 0.018s
640 + source case local flag DOESN'T cover the selected subtype (picked as a subtype with .at) 0.01s
641 + dest case local flag DOESN'T cover the selected subtype (picked as a subtype with .at) 0.01s
642io.github.arainko.ducktape.fallible.failfast.FailFastNestedConfigurationSuite:
643 + nested product fields can be configured 0.007s
644 + nested product fields inside nested coproduct cases can be configured 0.008s
645 + nested product fields can be overriden 0.006s
646 + nested product fields can be configured by overriding the transformation that is a level above 0.008s
647 + nested product configuration fails if the types do not line up 0.002s
648 + Field.fallibleComputed works for nested fields 0.011s
649 + nested product fields with collection and option elements can be configured 0.015s
650 + nested product fields with collection and option elements can be overridden 0.029s
651 + nested coproduct cases can be configured 0.013s
652 + nested coproduct cases inside nested fields can be configured 0.013s
653 + nested coproduct cases can be overridden 0.012s
654 + nested coproduct cases can be configured by configuring the case that is a level above 0.018s
655 + nested coproduct configuration fails if the types do not line up 0.008s
656 + nested coproduct cases with collection and option elements can be configured 0.021s
657 + nested coproduct cases with the NonOptionOption transformation variant can be configured 0.006s
658 + Case.fallibleComputed works for nested cases 0.009s
659 + Fails when a Case config doesn't end with an 'at' segment 0.0s
660 + Field.fallbackToNone works 0.006s
661 + Field.fallbackToNone.regional works 0.01s
662 + Field.fallbackToDefault works 0.004s
663 + Field.fallbackToDefault.regional works 0.004s
664 + Field.fallibleComputedDeep works in deeply nested case classes 0.006s
665 + Field.fallibleComputedDeep works with deeply nested tuples 0.002s
666 + Field.fallibleComputedDeep works with Options 0.022s
667 + Field.fallibleComputedDeep works with collections 0.016s
668 + Field.fallibleComputedDeep works with coproducts 0.017s
669 + Field.fallibleComputedDeep works with F-unwrapping 0.016s
670io.github.arainko.ducktape.total.FlagSuite:
671 + dest field renames work 0.004s
672 + source field renames work 0.004s
673 + source case renames work 0.012s
674 + dest case renames work 0.007s
675 + source function arg renames work 0.006s
676 + dest function arg renames work 0.003s
677 + source case object renames work 0.001s
678 + dest case object renames work 0.001s
679 + dest flag carries through BetweenOptions 0.004s
680 + source flag carries through BetweenOptions 0.008s
681 + dest flag carries through NonOptionOption 0.005s
682 + source flag carries through NonOptionOption 0.004s
683 + dest flag carries through BetweenCollections 0.004s
684 + source flag carries through BetweenCollections 0.005s
685 + dest flag carries through ProductTuple 0.009s
686 + source flag carries through ProductTuple 0.006s
687 + source flag carries through TupleProduct 0.01s
688 + dest flag carries through TupleProduct 0.011s
689 + source flag carries through BetweenTuples 0.018s
690 + dest flag carries through BetweenTuples 0.006s
691 + source flag carries through BetweenFallibles 0.011s
692 + dest flag carries through BetweenFallibles 0.006s
693 + source flag carries through BetweenFallibleNonFallible 0.006s
694 + dest flag carries through BetweenFallibleNonFallible 0.005s
695 + dest flag carries through TupleFunction 0.002s
696 + source flag carries through TupleFunction 0.002s
697 + local flags with higher priority overwrite flags with lower priority 0.001s
698 + regional flags with higher priority overwrite flags with lower priority 0.002s
699 + type-specific flags with higher priority overwrite flags with lower priority 0.001s
700 + dest name amiguities are reported for products 0.0s
701 + source name ambiguities are reported for products 0.001s
702 + dest name ambiguities are reported for coproducts 0.0s
703 + source name ambiguities are reported for coproducts 0.001s
704 + dest name amiguities are reported for functions 0.0s
705 + source name ambiguities are reported for functions 0.0s
706 + dest rename flags don't mess up configs 0.002s
707 + source rename flags don't mess up configs 0.001s
708 + Regional, local and type specific flags can work together in a single transformation according to their rules and the priority 0.004s
709 + multiple flag overrides are reported correctly 0.001s
710io.github.arainko.ducktape.fallible.accumulating.NonDerivedInstanceSuite:
711 + Transformer.Fallible.betweenCollections succeeds when all of the transformations succeed 0.006s
712 + Transformer.Fallible.betweenCollections fails when only some of the transformations succeed 0.005s
713 + Transformer.Fallible.betweenMaps works 0.003s
714 + Transformer.Fallible.betweenCollections accumulates errors in the order they occur 0.001s
715 + Transformer.Fallible.betweenCollections doesn't blow up the stack 0.186s
716 + Transformer.Fallible.betweenMaps accumulates errors from both keys and values 0.001s
717 + Transformer.Fallible.betweenMaps doesn't blow up the stack 0.621s
718 + Transformer.Fallible.betweenOptions returns None when input is None 0.0s
719 + Transformer.Fallible.betweenOptions returns Some when input is a Some and the transformation is successful 0.001s
720 + Transformer.Fallible.betweenOptions fails when input is Some and the transformation fails 0.001s
721 + Transformer.Fallible.betweenNonOptionOption returns Some when the transformation is successful 0.0s
722 + Transformer.Fallible.betweenNonOptionOption fails when the transformation fails 0.001s
723
724************************
725Build summary:
726[{
727 "module": "ducktape",
728 "compile": {"status": "ok", "tookMs": 27422, "warnings": 23, "errors": 0, "sourceVersion": "3.3"},
729 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
730 "test-compile": {"status": "ok", "tookMs": 50633, "warnings": 0, "errors": 0, "sourceVersion": "3.3"},
731 "test": {"status": "ok", "tookMs": 3018, "passed": 378, "failed": 0, "ignored": 0, "skipped": 0, "total": 378, "byFramework": [{"framework": "munit", "stats": {"passed": 378, "failed": 0, "ignored": 0, "skipped": 0, "total": 378}}]},
732 "publish": {"status": "skipped", "tookMs": 0},
733 "metadata": {
734 "crossScalaVersions": ["3.3.7"]
735}
736}]
737************************
738[success] Total time: 84 s (0:01:24.0), completed Jan 8, 2026, 3:03:36 AM
739[0JChecking patch project/plugins.sbt...
740Checking patch build.sbt...
741Applied patch project/plugins.sbt cleanly.
742Applied patch build.sbt cleanly.