Build Logs
arainko/ducktape • 3.8.0:2026-01-13
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
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
32Execute tests: true
33sbt project found:
34No prepare script found for project arainko/ducktape
35##################################
36Scala version: 3.8.0
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
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"
62"++3.8.0 -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 """{"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 8.604s.
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
84[info] set scmInfo to https://github.com/arainko/ducktape
85OpenCB::Changing crossVersion 3.3.7 -> 3.8.0 in root/crossScalaVersions
86OpenCB::Limitting incorrect crossVersions List() -> List(3.8.0) in root/crossScalaVersions
87OpenCB::Changing crossVersion 3.7.4 -> 3.8.0 in scalaNextTests/crossScalaVersions
88OpenCB::Limitting incorrect crossVersions List(3.3.7) -> List(3.8.0) in scalaNextTests/crossScalaVersions
89OpenCB::Changing crossVersion 3.3.7 -> 3.8.0 in rootJVM/crossScalaVersions
90OpenCB::Changing crossVersion 3.3.7 -> 3.8.0 in rootNative/crossScalaVersions
91OpenCB::Changing crossVersion 3.3.7 -> 3.8.0 in rootJS/crossScalaVersions
92OpenCB::Changing crossVersion 3.3.7 -> 3.8.0 in docs/crossScalaVersions
93OpenCB::Changing crossVersion 3.3.7 -> 3.8.0 in ducktapeJVM/crossScalaVersions
94OpenCB::Changing crossVersion 3.3.7 -> 3.8.0 in ducktapeJS/crossScalaVersions
95OpenCB::Changing crossVersion 3.3.7 -> 3.8.0 in ducktapeNative/crossScalaVersions
96[info] set current project to root (in build file:/build/repo/)
97[info] Setting Scala version to 3.8.0 on 9 projects.
98[info] Switching Scala version on:
99[info] * root (3.8.0)
100[info] rootJS (3.8.0)
101[info] docs (3.8.0)
102[info] ducktapeJVM (3.8.0)
103[info] ducktapeNative (3.8.0)
104[info] rootJVM (3.8.0)
105[info] rootNative (3.8.0)
106[info] scalaNextTests (3.8.0)
107[info] ducktapeJS (3.8.0)
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 13, 2026, 4:02:42 PM
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/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/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/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.fallible.accumulating.ModeSuite:
313 + eitherIterableAccumulatingSupport#product succeeds with two Rights 0.014s
314 + eitherIterableAccumulatingSupport#product fails with a Left on the left 0.001s
315 + eitherIterableAccumulatingSupport#product fails with a Left on the right 0.001s
316 + eitherIterableAccumulatingSupport#product accumulates errors 0.001s
317io.github.arainko.ducktape.issues.Issue165Suite:
318 + rejects _.to in given Transformer definitions 0.016s
319 + rejects _.into.transform() in given Transformer definitions 0.001s
320 + rejects _.falibleTo in given Trasformer.Fallible definitions 0.001s
321 + rejects _.into.falible in given Trasformer.Fallible definitions 0.004s
322io.github.arainko.ducktape.total.AppliedViaBuilderSuite:
323 + Arg.const properly applies a constant to an argument 0.003s
324 + Arg.computed properly applies a function to an argument 0.0s
325 + Arg.renamed properly uses a different field for that argument 0.003s
326 + When an Arg is configured multiple times a warning is emitted 0.001s
327 + Builder reports a missing argument 0.003s
328io.github.arainko.ducktape.total.TypeSpecificFlagSuite:
329 + dest field type specific flag covers the selected case class and nothing else 0.014s
330 + source field type specific flag covers the selected case class and nothing else 0.004s
331 + source field type specific flag covers the selected subtype of an enum and nothing else 0.008s
332 + source field type specific flag covers all subtypes of an enum and nothing else 0.016s
333 + dest field type specific flag covers all subtypes of an enum and nothing else 0.006s
334 + source field type specific flag covers all subtypes of an enum and nothing else (even when the enum is nested) 0.013s
335 + dest field type specific flag covers all subtypes of an enum and nothing else (even when the enum is nested) 0.016s
336 + 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.016s
337 + 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.009s
338 + source case type specific flag covers the selected subtype (picked as a field in case class) 0.017s
339 + source case type specific flag DOESN'T cover the selected subtype (it's only meant to cover its childer) 0.02s
340 + dest case type specific DOESN'T cover the selected subtype (it's only meant to cover its childer) 0.021s
341io.github.arainko.ducktape.total.RegionalFlagSuite:
342 + dest field regional flag covers the selected case class and everything below it 0.014s
343 + source field regional flag covers the selected case class and everything below it 0.016s
344 + source field regional flag covers the selected subtype of an enum and everything below it 0.011s
345 + source field regional flag covers all subtypes of an enum and everything below it 0.007s
346 + dest regional flag covers all subtypes of an enum and everything below it 0.014s
347 + source field regional flag covers all subtypes of an enum and everything below (even when the enum is nested) 0.017s
348 + dest field regional flag covers all subtypes of an enum and everything below (even when the enum is nested) 0.015s
349 + 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.015s
350 + 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.013s
351 + source case regional flag covers the selected subtype and everything below (picked as a field in case class) 0.017s
352 + source case regional flag DOESN'T cover the selected subtype (picked as a subtype with .at) 0.019s
353 + dest case regional flag DOESN'T cover the selected subtype (picked as a subtype with .at) 0.019s
354io.github.arainko.ducktape.fallible.failfast.FastFailCoproductTransformationsSuite:
355 + Derive sum of products 0.015s
356 + Derive sum of singletons 0.007s
357 + Derive sum of singleton and product 0.013s
358 + Fail with the first problems 0.015s
359 + Derivation fails if the case names don't align 0.001s
360 + Derivation fails if a case can't be transformed 0.001s
361 + Fallible config options can fill in missing cases 0.002s
362 + Total config options can fill in missing cases 0.006s
363io.github.arainko.ducktape.total.LocalFlagSuite:
364 + dest field local flag covers the selected case class and nothing else 0.01s
365 + source field local flag covers the selected case class and nothing else 0.009s
366 + source field local flag covers the selected subtype of an enum and nothing else 0.01s
367 + source field local flag covers all subtypes of an enum and nothing else 0.011s
368 + dest field local flag covers all subtypes of an enum and nothing else 0.02s
369 + source field local flag covers all subtypes of an enum and nothing else (even when the enum is nested) 0.019s
370 + dest field local flag covers all subtypes of an enum and nothing else (even when the enum is nested) 0.007s
371 + 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.011s
372 + 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.009s
373 + source case local flag covers the selected subtype (picked as a field in case class) 0.012s
374 + source case local flag DOESN'T cover the selected subtype (picked as a subtype with .at) 0.017s
375 + dest case local flag DOESN'T cover the selected subtype (picked as a subtype with .at) 0.015s
376io.github.arainko.ducktape.fallible.FUnwrappingSuite:
377 + F-unwrapping works with match type syntax 0.004s
378 + F-unwrapping with a non-fallible transformation underneath works 0.002s
379 + F-unwrapping with a fallible transformation underneath works 0.009s
380 + F-unwrapping with a fallible transformation underneath works for Mode.Accumulating when a Mode.FailFast is also in scope 0.005s
381 + F-unwrapped transformations with a non-fallible transformation underneath can be configured 0.009s
382 + F-unwrapped transformations with a non-fallible transformation underneath cannot be configured with fallible configs 0.007s
383 + F-unwrapped transformations with a fallible transformation underneath can be configured 0.01s
384io.github.arainko.ducktape.total.DerivedTransformerSuite:
385 + derived product transformer roundtrip 0.03s
386 + derived product transformers take locally scoped Transformers into consideration 0.004s
387 + derived enum transformer should map to cases with same name 0.01s
388 + derivation succeeds when going from a class with more fields to a class with less fields 0.01s
389 + derivation succeeds with more complex subderivations inside 0.01s
390 + derived FromAnyVal & ToAnyVal transformers with type parameters roundrip 0.005s
391 + products with AnyVal fields with type params roundrip to their primitives 0.011s
392 + transformers are derived for products with supertypes of the original product type 0.014s
393 + derivation fails when going from a product with less fields to a product with more fields 0.001s
394 + derivation succeeds when going from a sum with less cases to a sum with more cases 0.005s
395 + derivation succeeds when going from a sum of cases with the same name as the target sum (enum) 0.018s
396 + derivation succeeds when going from a sum of cases with the same name as the target sum (sealed trait) 0.009s
397 + derivation succeeds betweens sums with type parameters 0.008s
398 + derivation fails when a Transformer doesn't exist for a child with the same name 0.0s
399 + transformations between maps of different kind work 0.05s
400 + derivation fails when going from a sum with more cases to a sum with less cases 0.001s
401 + a toplevel transformer is taken into consideration when using .to 0.004s
402 + Transformer.define* can be used to create recursive transformers 0.006s
403io.github.arainko.ducktape.total.TupleTransformationSuite:
404 + tuple-to-tuple works 0.001s
405 + tuple-to-product works 0.006s
406 + product-to-tuple works 0.004s
407 + tuple-to-function works 0.001s
408 + tuple-to-tuple can be configured (dest side) 0.002s
409 + tuple-to-tuple can be configured (source side) 0.007s
410 + product-to-tuple can be configured (dest side) 0.002s
411 + product-to-tuple can be configured (source side) 0.008s
412 + tuple-to-product can be configured (dest side) 0.002s
413 + tuple-to-product can be configured (source side) 0.005s
414 + tuple-to-function can be configured (dest side) 0.003s
415 + tuple-to-function can be configured (source side) 0.004s
416 + plain tuples can be configured with _-accessors 0.001s
417 + big tuples work 0.008s
418 + big tuples can be configured 0.002s
419 + Field.fallbackToDefault works for tuple-to-product 0.002s
420 + Field.fallbackToNone works 0.002s
421 + Field.default works for tuple-to-product 0.002s
422 + Field.allMatching works for tuple-to-product 0.002s
423io.github.arainko.ducktape.total.ViaSuite:
424 + via 0.002s
425 + via with type param 0.005s
426 + via with substransformations 0.007s
427 + via fails when the source doesn't have all the method arguments 0.001s
428io.github.arainko.ducktape.fallible.failfast.FailFastNestedConfigurationSuite:
429 + nested product fields can be configured 0.023s
430 + nested product fields inside nested coproduct cases can be configured 0.01s
431 + nested product fields can be overriden 0.012s
432 + nested product fields can be configured by overriding the transformation that is a level above 0.015s
433 + nested product configuration fails if the types do not line up 0.004s
434 + Field.fallibleComputed works for nested fields 0.022s
435 + nested product fields with collection and option elements can be configured 0.035s
436 + nested product fields with collection and option elements can be overridden 0.028s
437 + nested coproduct cases can be configured 0.008s
438 + nested coproduct cases inside nested fields can be configured 0.019s
439 + nested coproduct cases can be overridden 0.008s
440 + nested coproduct cases can be configured by configuring the case that is a level above 0.008s
441 + nested coproduct configuration fails if the types do not line up 0.009s
442 + nested coproduct cases with collection and option elements can be configured 0.015s
443 + nested coproduct cases with the NonOptionOption transformation variant can be configured 0.012s
444 + Case.fallibleComputed works for nested cases 0.013s
445 + Fails when a Case config doesn't end with an 'at' segment 0.001s
446 + Field.fallbackToNone works 0.013s
447 + Field.fallbackToNone.regional works 0.01s
448 + Field.fallbackToDefault works 0.008s
449 + Field.fallbackToDefault.regional works 0.01s
450 + Field.fallibleComputedDeep works in deeply nested case classes 0.007s
451 + Field.fallibleComputedDeep works with deeply nested tuples 0.002s
452 + Field.fallibleComputedDeep works with Options 0.012s
453 + Field.fallibleComputedDeep works with collections 0.011s
454 + Field.fallibleComputedDeep works with coproducts 0.018s
455 + Field.fallibleComputedDeep works with F-unwrapping 0.026s
456io.github.arainko.ducktape.fallible.failfast.FailFastTupleTransformationSuite:
457 + tuple-to-tuple works 0.03s
458 + tuple-to-product works 0.008s
459 + product-to-tuple works 0.011s
460 + tuple-to-function works 0.008s
461 + tuple-to-tuple can be configured (dest side) 0.005s
462 + tuple-to-tuple can be configured (source side) 0.013s
463 + product-to-tuple can be configured (dest side) 0.013s
464 + product-to-tuple can be configured (source side) 0.016s
465 + tuple-to-product can be configured (dest side) 0.009s
466 + tuple-to-product can be configured (source side) 0.008s
467 + tuple-to-function can be configured (dest side) 0.008s
468 + tuple-to-function can be configured (source side) 0.009s
469 + big tuples work 0.063s
470 + big tuples can be configured 0.027s
471io.github.arainko.ducktape.issues.Issue187Suite:
472 + BetweenNonOptionOption works when Mode[Option] is in scope 0.006s
473 + BetweenOptions works when Mode[Option] is in scope 0.004s
474 + Fallible transformation for an Option works when Mode[Option] is in scope 0.004s
475 + Option-unwrapping works 0.016s
476io.github.arainko.ducktape.fallible.accumulating.AccumulatingTupleTransformationSuite:
477 + tuple-to-tuple works 0.006s
478 + tuple-to-product works 0.009s
479 + product-to-tuple works 0.007s
480 + tuple-to-function works 0.007s
481 + tuple-to-tuple can be configured (dest side) 0.002s
482 + tuple-to-tuple can be configured (source side) 0.009s
483 + product-to-tuple can be configured (dest side) 0.012s
484 + product-to-tuple can be configured (source side) 0.006s
485 + tuple-to-product can be configured (dest side) 0.007s
486 + tuple-to-product can be configured (source side) 0.01s
487 + tuple-to-function can be configured (dest side) 0.008s
488 + tuple-to-function can be configured (source side) 0.012s
489 + big tuples work 0.004s
490 + big tuples can be configured 0.002s
491io.github.arainko.ducktape.total.FlagSuite:
492 + dest field renames work 0.004s
493 + source field renames work 0.003s
494 + source case renames work 0.004s
495 + dest case renames work 0.005s
496 + source function arg renames work 0.006s
497 + dest function arg renames work 0.002s
498 + source case object renames work 0.005s
499 + dest case object renames work 0.001s
500 + dest flag carries through BetweenOptions 0.004s
501 + source flag carries through BetweenOptions 0.011s
502 + dest flag carries through NonOptionOption 0.007s
503 + source flag carries through NonOptionOption 0.009s
504 + dest flag carries through BetweenCollections 0.008s
505 + source flag carries through BetweenCollections 0.005s
506 + dest flag carries through ProductTuple 0.005s
507 + source flag carries through ProductTuple 0.005s
508 + source flag carries through TupleProduct 0.004s
509 + dest flag carries through TupleProduct 0.003s
510 + source flag carries through BetweenTuples 0.004s
511 + dest flag carries through BetweenTuples 0.004s
512 + source flag carries through BetweenFallibles 0.009s
513 + dest flag carries through BetweenFallibles 0.008s
514 + source flag carries through BetweenFallibleNonFallible 0.011s
515 + dest flag carries through BetweenFallibleNonFallible 0.012s
516 + dest flag carries through TupleFunction 0.007s
517 + source flag carries through TupleFunction 0.008s
518 + local flags with higher priority overwrite flags with lower priority 0.005s
519 + regional flags with higher priority overwrite flags with lower priority 0.005s
520 + type-specific flags with higher priority overwrite flags with lower priority 0.001s
521 + dest name amiguities are reported for products 0.001s
522 + source name ambiguities are reported for products 0.0s
523 + dest name ambiguities are reported for coproducts 0.001s
524 + source name ambiguities are reported for coproducts 0.0s
525 + dest name amiguities are reported for functions 0.001s
526 + source name ambiguities are reported for functions 0.0s
527 + dest rename flags don't mess up configs 0.001s
528 + source rename flags don't mess up configs 0.001s
529 + Regional, local and type specific flags can work together in a single transformation according to their rules and the priority 0.017s
530 + multiple flag overrides are reported correctly 0.004s
531io.github.arainko.ducktape.fallible.accumulating.AccumulatingNestedConfigurationSuite:
532 + nested product fields can be configured 0.007s
533 + nested product fields inside nested coproduct cases can be configured 0.012s
534 + nested product fields can be overriden 0.009s
535 + nested product fields can be configured by overriding the transformation that is a level above 0.013s
536 + nested product configuration fails if the types do not line up 0.003s
537 + Field.fallibleComputed works for nested fields 0.015s
538 + nested product fields with collection and option elements can be configured 0.023s
539 + nested product fields with collection and option elements can be overridden 0.027s
540 + nested coproduct cases can be configured 0.019s
541 + nested coproduct cases inside nested fields can be configured 0.015s
542 + nested coproduct cases can be overridden 0.008s
543 + nested coproduct cases can be configured by configuring the case that is a level above 0.006s
544 + nested coproduct configuration fails if the types do not line up 0.004s
545 + nested coproduct cases with collection and option elements can be configured 0.013s
546 + nested coproduct cases with the NonOptionOption transformation variant can be configured 0.006s
547 + Case.fallibleComputed works for nested cases 0.019s
548 + Fails when a Case config doesn't end with an 'at' segment 0.0s
549 + Field.fallbackToNone works 0.011s
550 + Field.fallbackToNone.regional works 0.009s
551 + Field.fallbackToDefault works 0.01s
552 + Field.fallbackToDefault.regional works 0.003s
553 + Field.fallibleComputedDeep works in deeply nested case classes 0.015s
554 + Field.fallibleComputedDeep works with deeply nested tuples 0.006s
555 + Field.fallibleComputedDeep works with Options 0.018s
556 + Field.fallibleComputedDeep works with collections 0.013s
557 + Field.fallibleComputedDeep works with coproducts 0.012s
558 + Field.fallibleComputedDeep works with F-unwrapping 0.024s
559io.github.arainko.ducktape.total.ErrorReportingSuite:
560 + errors for all missing fields are reported at once 0.001s
561 + errors for all missing coproduct cases are reported at once 0.007s
562 + product configurations should fail when using a path component that doesn't belong to the actual transformation path 0.001s
563 + coproduct configurations fail when using a case component that isn't a subtype 0.0s
564 + erroneous config doesn't overshadow errors that lie in its subpaths 0.001s
565 + erroneous configs on plan nodes that produce an error show the suppressed error 0.001s
566 + recursive transformations are detected 0.002s
567io.github.arainko.ducktape.fallible.accumulating.DerivedInstanceSuite:
568 + CreateTalk transform into Talk using - fallibleTo 0.011s
569 + CreateTalk transform into Talk using - fallibleVia 0.0s
570 + CreateTalk transform into Talk using - into.fallible 0.001s
571 + CreateTalk transform into Talk using - Transformer.define.fallible 0.001s
572 + CreateTalk transform into Talk using - Transformer.define.fallible-1 0.001s
573 + CreateTalk fails to transform into Talk and accumulates all errors using - fallibleTo 0.001s
574 + CreateTalk fails to transform into Talk and accumulates all errors using - fallibleVia 0.003s
575 + CreateTalk fails to transform into Talk and accumulates all errors using - into.fallible 0.001s
576 + CreateTalk fails to transform into Talk and accumulates all errors using - Transformer.defineVia.fallible 0.0s
577io.github.arainko.ducktape.total.AppliedBuilderSuite:
578 + Field.const properly applies a constant to a field 0.001s
579 + Field.const fails when the field and constant types do not match 0.001s
580 + Field.computed properly applies a function to a field 0.0s
581 + Field.computed fails when the result type of the computed function doesn't match the field 0.001s
582 + Field.renamed properly uses a different field for that argument 0.001s
583 + Field.renamed fails when the types of fields do not match 0.0s
584 + Field.allMatching fills in missing fields 0.005s
585 + Field.allMatching gets all the matching fields from a field source and overwrites existing ones 0.001s
586 + Field.allMatching only fills in fields that match by name and by type 0.005s
587 + Field.allMatching works with fields that match by name and are a subtype of the expected type 0.006s
588 + Field.allMatching reports a compiletime failure when none of the fields match 0.0s
589 + The last applied field config is the picked one 0.002s
590 + overriding multiple fields multiple times is reported appropriately 0.004s
591 + When configs are applied to the same field repeateadly a warning is emitted 0.001s
592 + Case.const properly applies the constant for that subtype 0.002s
593 + Case.computed applies a function to that given subtype 0.001s
594 + sums of products can be configured 0.019s
595 + sums with type parameters can be confgured 0.003s
596 + When a Case is configured multiple times a warning is emitted 0.001s
597 + derive a transformer for case classes with default values if configured 0.005s
598 + Field.default fails when a field doesn't have a default value 0.001s
599 + Field.default fails when the default doesn't match the expected type 0.006s
600io.github.arainko.ducktape.issues.Issue211Suite:
601 + directly configuring a Dest case doesn't fail at runtime 0.003s
602io.github.arainko.ducktape.issues.Issue190Suite:
603 + transforming from concatenated together tuples works (bound to an intermediate val) 0.007s
604io.github.arainko.ducktape.fallible.accumulating.AccumulatingCoproductTransformationsSuite:
605 + Derive sum of products 0.013s
606 + Derive sum of singletons 0.007s
607 + Derive sum of singleton and product 0.012s
608 + Use total transformers when possible 0.006s
609 + Accumulate problems 0.008s
610 + Derivation fails if the case names don't align 0.001s
611 + Derivation fails if a case can't be transformed 0.0s
612 + Fallible config options can fill in missing cases 0.008s
613 + Total config options can fill in missing cases 0.005s
614io.github.arainko.ducktape.total.RenamerSuite:
615 + Renamer#toLowerCase works 0.001s
616 + Renamer#toUpperCase works 0.005s
617 + Renamer#rename works 0.002s
618 + Renamer#replace works 0.004s
619 + Renamer#regexReplace works 0.002s
620 + Renamer#stripPrefix works 0.005s
621 + Renamer#stripSuffix works 0.001s
622 + Renamer#capitalize works 0.004s
623 + Renamer functions are sequenced in the right order 0.002s
624io.github.arainko.ducktape.LoggerSuite:
625 + log level should be Off 0.005s
626io.github.arainko.ducktape.fallible.failfast.DerivedInstanceSuite:
627 + CreateTalk transform into Talk using - fallibleTo 0.001s
628 + CreateTalk transform into Talk using - fallibleVia 0.006s
629 + CreateTalk transform into Talk using - into.fallible 0.002s
630 + CreateTalk transform into Talk using - Transformer.define.fallible 0.003s
631 + CreateTalk transform into Talk using - Transformer.defineVia.fallible 0.003s
632 + CreateTalk fails to transform into Talk and returns the first failure - fallibleTo 0.001s
633 + CreateTalk fails to transform into Talk and returns the first failure - fallibleVia 0.0s
634 + CreateTalk fails to transform into Talk and returns the first failure - into.fallible 0.0s
635 + CreateTalk fails to transform into Talk and returns the first failure - Transformer.define.fallible 0.003s
636io.github.arainko.ducktape.total.NestedConfigurationSuite:
637 + nested product fields can be configured 0.008s
638 + nested product fields inside nested coproduct cases can be configured 0.014s
639 + nested product fields can be overriden 0.008s
640 + nested product fields can be configured by overriding the transformation that is a level above 0.007s
641 + nested product configuration fails if the types do not line up 0.009s
642 + Field.computed works for nested fields 0.007s
643 + nested product fields with collection and option elements can be configured 0.014s
644 + nested product fields with collection and option elements can be overridden 0.017s
645 + nested coproduct cases can be configured 0.011s
646 + nested coproduct cases inside nested fields can be configured 0.012s
647 + nested coproduct cases can be overridden 0.011s
648 + nested coproduct cases can be configured by configuring the case that is a level above 0.011s
649 + nested coproduct configuration fails if the types do not line up 0.006s
650 + nested coproduct cases with collection and option elements can be configured 0.009s
651 + nested coproduct cases with the NonOptionOption transformation variant can be configured 0.004s
652 + Case.computed works for nested cases 0.006s
653 + Fails when a Case config doesn't end with an 'at' segment 0.001s
654 + Field.fallbackToNone works 0.003s
655 + Field.fallbackToNone.regional works 0.004s
656 + Field.fallbackToDefault works 0.003s
657 + Field.fallbackToDefault.regional works 0.002s
658 + Field.computedDeep works in deeply nested case classes 0.005s
659 + Field.computedDeep works with deeply nested tuples 0.001s
660 + Field.computedDeep works with Options 0.007s
661 + Field.computedDeep works with collections 0.007s
662 + Field.computedDeep works with coproducts 0.114s
663 + Field.computedDeep reports the right source type if the one given to it is wrong 0.006s
664 + Field.computedDeep works correctly when a field on the same level is missing in the Source 0.007s
665io.github.arainko.ducktape.issues.Issue195Suite:
666 + missing Factory instances are reported in a nice way 0.002s
667io.github.arainko.ducktape.total.DefinitionViaBuilderSuite:
668 + Arg.const properly applies a constant to an argument 0.002s
669 + Arg.computed properly applies a function to an argument 0.001s
670 + Arg.renamed properly uses a different field for that argument 0.001s
671 + sums of products can be configured 0.006s
672 + Builder reports a missing argument 0.0s
673io.github.arainko.ducktape.issues.Issue179Suite:
674 + configuring a field on an identity transformation works 0.001s
675 + configuring a field on an identity transformation works (fallible) 0.002s
676 + configuring a field on a nested identity transformation works 0.002s
677 + configuring a field on a nested identity transformation works (fallible) 0.004s
678 + configuring a field on an identity transformation going through a coproduct transformation works 0.001s
679 + configuring a field on an identity transformation going through a coproduct transformation works (fallible) 0.003s
680 + configuring a field on an identity transformation going through an '.element' transformation (eg. OptionToOption) works 0.004s
681 + configuring a field on an identity transformation going through an '.element' transformation (eg. OptionToOption) works (fallible) 0.008s
682 + configuring a tuple element on an identity transformation works 0.0s
683 + configuring a tuple element on an identity transformation works (fallible) 0.001s
684 + configuring a case on an identity transformation works 0.005s
685 + configuring a case on an identity transformation works (fallible) 0.112s
686io.github.arainko.ducktape.fallible.failfast.OptionFailFastInstanceSuite:
687 + Transformer.Fallible.betweenCollections succeeds when all of the transformations succeed 0.001s
688 + Transformer.Fallible.betweenCollections fails when even a single transformation fails 0.001s
689 + Transformer.Fallible.betweenCollections doesn't blow up the stack when the transformation succeeds 0.182s
690 + Transformer.Fallible.betweenCollections doesn't blow up the stack when failed 0.196s
691 + Transformer.Fallible.betweenMaps transforms keys first 0.002s
692 + Transformer.Fallible.betweenMaps doesn't blow up the stack 1.078s
693 + Transformer.Fallible.betweenOptions returns None when input is None 0.001s
694 + Transformer.Fallible.betweenOptions returns Some when input is a Some and the transformation is successful 0.0s
695 + Transformer.Fallible.betweenOptions fails when input is Some and the transformation fails 0.001s
696 + Transformer.Fallible.betweenNonOptionOption returns Some when the transformation is successful 0.001s
697 + Transformer.Fallible.betweenNonOptionOption fails when the transformation fails 0.001s
698io.github.arainko.ducktape.fallible.failfast.EitherFailFastInstanceSuite:
699 + Transformer.Fallible.betweenCollections succeeds when all of the transformations succeed 0.001s
700 + Transformer.Fallible.betweenCollections fails when even a single transformation fails 0.005s
701 + Transformer.Fallible.betweenCollections doesn't blow up the stack when the transformation succeeds 0.15s
702 + Transformer.Fallible.betweenCollections doesn't blow up the stack when failed 0.238s
703 + Transformer.Fallible.betweenMaps transforms keys first 0.001s
704 + Transformer.Fallible.betweenMaps doesn't blow up the stack 0.686s
705 + Transformer.Fallible.betweenOptions returns None when input is None 0.0s
706 + Transformer.Fallible.betweenOptions returns Some when input is a Some and the transformation is successful 0.0s
707 + Transformer.Fallible.betweenOptions fails when input is Some and the transformation fails 0.001s
708 + Transformer.Fallible.betweenNonOptionOption returns Some when the transformation is successful 0.0s
709 + Transformer.Fallible.betweenNonOptionOption fails when the transformation fails 0.0s
710io.github.arainko.ducktape.fallible.accumulating.NonDerivedInstanceSuite:
711 + Transformer.Fallible.betweenCollections succeeds when all of the transformations succeed 0.001s
712 + Transformer.Fallible.betweenCollections fails when only some of the transformations succeed 0.002s
713 + Transformer.Fallible.betweenMaps works 0.008s
714 + Transformer.Fallible.betweenCollections accumulates errors in the order they occur 0.001s
715 + Transformer.Fallible.betweenCollections doesn't blow up the stack 0.252s
716 + Transformer.Fallible.betweenMaps accumulates errors from both keys and values 0.001s
717 + Transformer.Fallible.betweenMaps doesn't blow up the stack 1.143s
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.0s
721 + Transformer.Fallible.betweenNonOptionOption returns Some when the transformation is successful 0.001s
722 + Transformer.Fallible.betweenNonOptionOption fails when the transformation fails 0.0s
723
724************************
725Build summary:
726[{
727 "module": "ducktape",
728 "compile": {"status": "ok", "tookMs": 25468, "warnings": 23, "errors": 0, "sourceVersion": "3.3"},
729 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
730 "test-compile": {"status": "ok", "tookMs": 46245, "warnings": 0, "errors": 0, "sourceVersion": "3.3"},
731 "test": {"status": "ok", "tookMs": 2745, "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: 76 s (0:01:16.0), completed Jan 13, 2026, 4:03:57 PM
739[0JChecking patch project/plugins.sbt...
740Checking patch build.sbt...
741Applied patch project/plugins.sbt cleanly.
742Applied patch build.sbt cleanly.