Build Logs

rcardin/raise4s • 3.8.1-RC1:2026-01-13

Errors

16

Warnings

4

Total Lines

443

1##################################
2Clonning https://github.com/rcardin/raise4s.git into /build/repo using revision v0.5.0
3##################################
4Note: switching to '9d3c180cadcb91fa3df9f6fcb220c24a84e43f3c'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21Would override fixed Scala version: 3.6.2
22----
23Preparing build for 3.8.1-RC1
24Scala binary version found: 3.8
25Implicitly using source version 3.8
26Scala binary version found: 3.8
27Implicitly using source version 3.8
28Would try to apply common scalacOption (best-effort, sbt/mill only):
29Append: ,REQUIRE:-source:3.8
30Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
31
32Try apply source patch:
33Path: build.sbt
34Pattern: val scala3Version = "3.6.2"
35Replacement: val scala3Version = "3.8.1-RC1"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (17))
38Compiled project (Scala 3.7.3, JVM (17))
39Successfully applied pattern 'val scala3Version = "3.6.2"' in build.sbt
40----
41Starting build for 3.8.1-RC1
42Execute tests: true
43sbt project found:
44Sbt version 1.10.7 is not supported, minimal supported version is 1.11.5
45Enforcing usage of sbt in version 1.11.5
46No prepare script found for project rcardin/raise4s
47##################################
48Scala version: 3.8.1-RC1
49Targets: in.rcard.raise4s%cats-raise4s in.rcard.raise4s%core in.rcard.raise4s%raise4s
50Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3Version = \"3.6.2\"","replaceWith":"val scala3Version = \"<SCALA_VERSION>\""}]}
51##################################
52Using extra scalacOptions: ,REQUIRE:-source:3.8
53Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
54[sbt_options] declare -a sbt_options=()
55[process_args] java_version = '17'
56[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
57# Executing command line:
58java
59-Dfile.encoding=UTF-8
60-Dcommunitybuild.scala=3.8.1-RC1
61-Dcommunitybuild.project.dependencies.add=
62-Xmx7G
63-Xms4G
64-Xss8M
65-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
66-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
67-jar
68/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
69"setCrossScalaVersions 3.8.1-RC1"
70"++3.8.1-RC1 -v"
71"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
72"set every credentials := Nil"
73"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
74"removeScalacOptionsStartingWith -P:wartremover"
75
76moduleMappings
77"runBuild 3.8.1-RC1 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3Version = \"3.6.2\"","replaceWith":"val scala3Version = \"<SCALA_VERSION>\""}]}""" in.rcard.raise4s%cats-raise4s in.rcard.raise4s%core in.rcard.raise4s%raise4s"
78
79[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
80[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
81[info] loading project definition from /build/repo/project
82[info] compiling 2 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
83[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
84[info] Compilation completed in 8.523s.
85[info] done compiling
86[info] loading settings for project raise4s from build.sbt...
87[info] set current project to raise4s (in build file:/build/repo/)
88Execute setCrossScalaVersions: 3.8.1-RC1
89OpenCB::Changing crossVersion 3.8.1-RC1 -> 3.8.1-RC1 in raise4s/crossScalaVersions
90OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.1-RC1) in raise4s/crossScalaVersions
91OpenCB::Changing crossVersion 3.8.1-RC1 -> 3.8.1-RC1 in munit-raise4s/crossScalaVersions
92OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.1-RC1) in munit-raise4s/crossScalaVersions
93OpenCB::Changing crossVersion 3.8.1-RC1 -> 3.8.1-RC1 in core/crossScalaVersions
94OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.1-RC1) in core/crossScalaVersions
95OpenCB::Changing crossVersion 3.8.1-RC1 -> 3.8.1-RC1 in cats-raise4s/crossScalaVersions
96OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.1-RC1) in cats-raise4s/crossScalaVersions
97[info] set current project to raise4s (in build file:/build/repo/)
98[info] Setting Scala version to 3.8.1-RC1 on 4 projects.
99[info] Switching Scala version on:
100[info] * raise4s (3.8.1-RC1)
101[info] core (3.8.1-RC1)
102[info] cats-raise4s (3.8.1-RC1)
103[info] munit-raise4s (3.8.1-RC1)
104[info] Excluding projects:
105[info] Reapplying settings...
106[info] set current project to raise4s (in build file:/build/repo/)
107Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
108[info] Reapplying settings...
109[info] set current project to raise4s (in build file:/build/repo/)
110[info] Defining Global / credentials, cats-raise4s / credentials and 2 others.
111[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 31 others.
112[info] Run `last` for details.
113[info] Reapplying settings...
114[info] set current project to raise4s (in build file:/build/repo/)
115Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
116[info] Reapplying settings...
117OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
118
119 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
120 Did you mean allExcludeDependencies ?
121 , retry without global scopes
122[info] Reapplying settings...
123[info] set current project to raise4s (in build file:/build/repo/)
124Execute removeScalacOptionsStartingWith: -P:wartremover
125[info] Reapplying settings...
126[info] set current project to raise4s (in build file:/build/repo/)
127[success] Total time: 0 s, completed Jan 13, 2026, 7:57:44 PM
128Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3Version = \"3.6.2\"","replaceWith":"val scala3Version = \"<SCALA_VERSION>\""}]}
129Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
130Starting build...
131Projects: Set(cats-raise4s, core, raise4s)
132Starting build for ProjectRef(file:/build/repo/,cats-raise4s) (cats-raise4s)... [0/3]
133OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
134Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
135[info] compiling 7 Scala sources to /build/repo/core/target/scala-3.8.1-RC1/classes ...
136[info] done compiling
137[info] compiling 4 Scala sources to /build/repo/cats-raise4s/target/scala-3.8.1-RC1/classes ...
138[info] done compiling
139[info] compiling 4 Scala sources to /build/repo/cats-raise4s/target/scala-3.8.1-RC1/test-classes ...
140[info] done compiling
141[info] RaiseMonadErrorSpec:
142[info] raiseError
143[info] - should raise an error
144[info] pure
145[info] - should lift a value into the Raise context
146[info] flatMap
147[info] - should chain successful Raise computations
148[info] - should short-circuit the computation when the first lambda raises an error
149[info] - should short-circuit the computation when the second lambda raises an error
150[info] ap
151[info] - should apply a function in the Raise context to a value in the Raise context
152[info] - should short-circuit the computation when the function raises an error
153[info] - should short-circuit the computation when the value raises an error
154[info] tailRecM
155[info] - should chain Raise computations
156[info] - should short-circuit the computation when the lambda raises an error
157[info] handleErrorWith
158[info] - should recover from an error
159[info] - should do nothing when the computation is successful
160[info] RaiseInstancesSpec:
161[info] implicit resolution
162[info] - should work for RaiseMonadError
163[info] CatsBindSpec:
164[info] Validated.value
165[info] - should return the value if it's valid
166[info] - should raise an error if it's invalid
167[info] - should work with invalid ValidatedNel
168[info] - should work with invalid ValidatedNec
169[info] values extension function
170[info] - should map all the element of the iterable
171[info] - should accumulate all the errors
172[info] values extension function on non-empty list
173[info] - should map all the element of the non-empty list
174[info] - should accumulate all the errors
175[info] combineErrorS on Semigroup[Error]
176[info] - should map all the element of the iterable
177[info] - should accumulate all the errors using the combine function
178[info] combineErrorS on NonEmptyList
179[info] - should map all the element of the iterable
180[info] - should accumulate all the errors using the combine function
181[info] CatsRaiseSpec:
182[info] mapOrAccumulate on Semigroup[Error]
183[info] - should map all the element of the iterable
184[info] - should accumulate all the errors using the combine function
185[info] mapOrAccumulateS on NonEmptyList
186[info] - should map all the element of the iterable
187[info] - should accumulate all the errors using the combine function
188[info] mapOrAccumulate to NonEmptyList
189[info] - should map all the element of the iterable
190[info] - should accumulate all the errors
191[info] mapOrAccumulate on a NonEmptyList to NonEmptyList
192[info] - should map all the element of the iterable
193[info] - should accumulate all the errors
194[info] zipOrAccumulateS with combine
195[info] - should zip 9 elements
196[info] - should accumulate errors combining them
197[info] zipOrAccumulate on NonEmptyList
198[info] - should zip 9 elements
199[info] - should accumulate errors
200[info] The 'validated' builder
201[info] - should create a Valid instance
202[info] - should create an Invalid instance
203[info] The 'validatedNec' builder
204[info] - should create a Valid instance
205[info] - should create an Invalid instance
206[info] The 'validatedNel' builder
207[info] - should create a Valid instance
208[info] - should create an Invalid instance
209Starting build for ProjectRef(file:/build/repo/,core) (core)... [1/3]
210Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
211[info] compiling 7 Scala sources to /build/repo/core/target/scala-3.8.1-RC1/test-classes ...
212[warn] /build/repo/core/src/main/scala/in/rcard/raise4s/Raise.scala:1807:12: the type test for in.rcard.raise4s.Strategies.Traced[String] cannot be checked at runtime because its type arguments can't be determined from Throwable
213[warn] case traced: Traced[Error] =>
214[warn] ^
215[warn] there were 8 feature warnings; re-run with -feature for details
216[warn] two warnings found
217[info] done compiling
218[info] BindSpec:
219[info] Either.value
220[info] - should return the value if it is not an error and raise an Error otherwise
221[info] Option.value
222[info] - should return the value for a Some and raise an error for a None
223[info] Try.value
224[info] - should return the value if it is not an error and raise an Error otherwise
225[info] List[Either[Error, A]].value
226[info] - should return a value if the list doesn't contain errors and raise an error otherwise
227[info] BuildersSpec:
228[info] The either builder
229[info] - should create a Left instance
230[info] - should create a Right instance
231[info] The option builder
232[info] - should create a None instance
233[info] - should create a Some instance
234[info] The try builder
235[info] - should create a Failure instance
236[info] - should create a Success instance
237[info] The succeed extension method
238[info] - should lift a value in the raise context
239[info] - should be composable with any other raising lambda
240[info] The raise builder
241[info] - should raise an error using the extension receiver value
242[info] AccumulationSpec:
243[info] accumulate function
244[info] - should combine different values
245[info] - should accumulate errors
246[info] accumulate
247[info] - should map all the element of the list
248[info] - should accumulate all the errors
249in.rcard.raise4s.Strategies$Traced
250 at in.rcard.raise4s.Strategies$Traced$.apply(Strategies.scala:89)
251 at in.rcard.raise4s.Strategies$TracedRaise.raise(Strategies.scala:80)
252 at in.rcard.raise4s.StrategiesSpec.$anonfun$12(StrategiesSpec.scala:51)
253 at in.rcard.raise4s.Raise$.fold(Raise.scala:283)
254 at in.rcard.raise4s.StrategiesSpec.testFun$proxy5$1(StrategiesSpec.scala:54)
255 at in.rcard.raise4s.StrategiesSpec.$init$$$anonfun$5(StrategiesSpec.scala:43)
256 at org.scalatest.Transformer.apply$$anonfun$1(Transformer.scala:22)
257 at org.scalatest.OutcomeOf.outcomeOf(OutcomeOf.scala:85)
258 at org.scalatest.OutcomeOf.outcomeOf$(OutcomeOf.scala:31)
259 at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
260 at org.scalatest.Transformer.apply(Transformer.scala:22)
261 at org.scalatest.Transformer.apply(Transformer.scala:21)
262 at org.scalatest.flatspec.AnyFlatSpecLike$$anon$5.apply(AnyFlatSpecLike.scala:1717)
263 at org.scalatest.TestSuite.withFixture(TestSuite.scala:196)
264 at org.scalatest.TestSuite.withFixture$(TestSuite.scala:138)
265 at org.scalatest.flatspec.AnyFlatSpec.withFixture(AnyFlatSpec.scala:1685)
266 at org.scalatest.flatspec.AnyFlatSpecLike.invokeWithFixture$1(AnyFlatSpecLike.scala:1723)
267 at org.scalatest.flatspec.AnyFlatSpecLike.runTest$$anonfun$1(AnyFlatSpecLike.scala:1727)
268 at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306)
269 at org.scalatest.flatspec.AnyFlatSpecLike.runTest(AnyFlatSpecLike.scala:1727)
270 at org.scalatest.flatspec.AnyFlatSpecLike.runTest$(AnyFlatSpecLike.scala:51)
271 at org.scalatest.flatspec.AnyFlatSpec.runTest(AnyFlatSpec.scala:1685)
272 at org.scalatest.flatspec.AnyFlatSpecLike.runTests$$anonfun$1(AnyFlatSpecLike.scala:1785)
273 at org.scalatest.SuperEngine.traverseSubNodes$1$$anonfun$1(Engine.scala:413)
274 at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
275 at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
276 at scala.collection.immutable.List.foreach(List.scala:327)
277 at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:429)
278 at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:390)
279 at org.scalatest.SuperEngine.traverseSubNodes$1$$anonfun$1(Engine.scala:427)
280 at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
281 at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
282 at scala.collection.immutable.List.foreach(List.scala:327)
283 at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:429)
284 at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:396)
285 at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:475)
286 at org.scalatest.flatspec.AnyFlatSpecLike.runTests(AnyFlatSpecLike.scala:1785)
287 at org.scalatest.flatspec.AnyFlatSpecLike.runTests$(AnyFlatSpecLike.scala:51)
288 at org.scalatest.flatspec.AnyFlatSpec.runTests(AnyFlatSpec.scala:1685)
289 at org.scalatest.Suite.run(Suite.scala:1114)
290 at org.scalatest.Suite.run$(Suite.scala:564)
291 at org.scalatest.flatspec.AnyFlatSpec.org$scalatest$flatspec$AnyFlatSpecLike$$super$run(AnyFlatSpec.scala:1685)
292 at org.scalatest.flatspec.AnyFlatSpecLike.run$$anonfun$1(AnyFlatSpecLike.scala:1830)
293 at org.scalatest.SuperEngine.runImpl(Engine.scala:535)
294 at org.scalatest.flatspec.AnyFlatSpecLike.run(AnyFlatSpecLike.scala:1830)
295 at org.scalatest.flatspec.AnyFlatSpecLike.run$(AnyFlatSpecLike.scala:51)
296 at org.scalatest.flatspec.AnyFlatSpec.run(AnyFlatSpec.scala:1685)
297 at org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:321)
298 at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:517)
299 at sbt.TestRunner.runTest$1(TestFramework.scala:153)
300 at sbt.TestRunner.run(TestFramework.scala:168)
301 at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.$anonfun$apply$1(TestFramework.scala:336)
302 at sbt.TestFramework$.sbt$TestFramework$$withContextLoader(TestFramework.scala:296)
303 at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply(TestFramework.scala:336)
304 at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply(TestFramework.scala:336)
305 at sbt.TestFunction.apply(TestFramework.scala:348)
306 at sbt.Tests$.$anonfun$toTask$1(Tests.scala:436)
307 at sbt.std.Transform$$anon$3.$anonfun$apply$2(Transform.scala:47)
308 at sbt.std.Transform$$anon$4.work(Transform.scala:69)
309 at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
310 at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
311 at sbt.Execute.work(Execute.scala:292)
312 at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
313 at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
314 at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
315 at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
316 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
317 at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
318 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
319 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
320 at java.base/java.lang.Thread.run(Thread.java:833)
321[info] RaiseSpec:
322[info] ensure
323[info] - should return Unit if the given condition is met
324[info] - should return the error if the condition is not met
325[info] ensureNotNull
326[info] - should return the value if it is not null
327[info] - should return the error if the value is null
328[info] recover
329[info] - should return the value if it is not an error
330[info] - should return the recovery value if the value is an error
331[info] - should rethrow the exception
332[info] recover with catchBlock
333[info] - should return the value if it is not an error
334[info] - should return the recovery value if the value is an error
335[info] - should return the recovery value if the value is an exception
336[info] catching
337[info] - should return the value if no exception is thrown
338[info] - should return the recovery value if an exception is thrown
339[info] - should rethrow any fatal exception
340[info] withError
341[info] - should return the value if it is not an error
342[info] - should return the transformed error if the value is an error
343[info] catching as an extension method
344[info] - should return the value if no exception is thrown
345[info] - should return the recovery value if an exception is thrown
346[info] - should rethrow any fatal exception
347[info] recoverable block
348[info] - should return the value if it is not an error
349[info] - should return the recovery value if the value is an error
350[info] - should rethrow the exception
351[info] withDefault
352[info] - should return the value if it is not an error
353[info] - should return the default value if the value is an error
354[info] RuntimeSpec:
355[info] Raise.run
356[info] - should return the happy path value is no error was risen
357[info] - should return the error value if an error was risen
358[info] - should be transparent to any thrown exception
359[info] StrategiesSpec:
360[info] anyRaised
361[info] - should allow defining a strategy that throw any given error
362[info] - should return the happy path value if no error is raised
363[info] MapError
364[info] - should allow defining a strategy that map an error to another one
365[info] - should return the happy path value if no error is raised
366[info] TraceWith
367[info] - should allow defining a strategy that trace the error and return it
368[info] - should return the happy path value if no error is raised
369[info] FoldSpec:
370[info] The fold function with four parameters
371[info] - should transform the result of the given Raise function
372[info] - should transform the result of the given Raise function when it throws an exception
373[info] - should transform the result of the given Raise function when it returns an error
374[info] - should rethrows any fatal exception
375[info] The fold function without the 'catch' block
376[info] - should transform the result of the given Raise function
377[info] - should transform the result of the given Raise function when it returns an error
378[info] - should rethrows any exception
379[info] mapOrAccumulate
380[info] - should map all the element of the iterable
381[info] - should accumulate all the errors
382[info] Values extension method
383[info] - should extract the values from the iterable
384[info] - should accumulate all the errors
385[info] mapOrAccumulate with combine function
386[info] - should map all the element of the iterable
387[info] - should accumulate all the errors using the combine function
388[info] The extension function mapOrAccumulate
389[info] - should map all the element of the receiver
390[info] - should accumulate all the errors on the receiver
391[info] combineErrors extension function
392[info] - should map all the element of the iterable
393[info] - should accumulate all the errors using the combine function
394[info] zipOrAccumulate
395[info] - should zip 9 elements
396[info] - should accumulate errors
397[info] zipOrAccumulate with combine
398[info] - should zip 9 elements
399[info] - should accumulate errors combining them
400Starting build for ProjectRef(file:/build/repo/,raise4s) (raise4s)... [2/3]
401Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
402
403************************
404Build summary:
405[{
406 "module": "cats-raise4s",
407 "compile": {"status": "ok", "tookMs": 8245, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
408 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
409 "test-compile": {"status": "ok", "tookMs": 6378, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
410 "test": {"status": "ok", "tookMs": 793, "passed": 43, "failed": 0, "ignored": 0, "skipped": 0, "total": 43, "byFramework": [{"framework": "unknown", "stats": {"passed": 43, "failed": 0, "ignored": 0, "skipped": 0, "total": 43}}]},
411 "publish": {"status": "skipped", "tookMs": 0},
412 "metadata": {
413 "crossScalaVersions": ["2.12.20", "3.6.2"]
414}
415},{
416 "module": "core",
417 "compile": {"status": "ok", "tookMs": 60, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
418 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
419 "test-compile": {"status": "ok", "tookMs": 4918, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
420 "test": {"status": "ok", "tookMs": 431, "passed": 70, "failed": 0, "ignored": 0, "skipped": 0, "total": 70, "byFramework": [{"framework": "unknown", "stats": {"passed": 70, "failed": 0, "ignored": 0, "skipped": 0, "total": 70}}]},
421 "publish": {"status": "skipped", "tookMs": 0},
422 "metadata": {
423 "crossScalaVersions": ["2.12.20", "3.6.2"]
424}
425},{
426 "module": "raise4s",
427 "compile": {"status": "ok", "tookMs": 67, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
428 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
429 "test-compile": {"status": "ok", "tookMs": 98, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
430 "test": {"status": "ok", "tookMs": 91, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
431 "publish": {"status": "skipped", "tookMs": 0},
432 "metadata": {
433 "crossScalaVersions": ["2.12.20", "3.6.2"]
434}
435}]
436************************
437[success] Total time: 24 s, completed Jan 13, 2026, 7:58:08 PM
438[0JChecking patch project/plugins.sbt...
439Checking patch project/build.properties...
440Checking patch build.sbt...
441Applied patch project/plugins.sbt cleanly.
442Applied patch project/build.properties cleanly.
443Applied patch build.sbt cleanly.