Build Logs
geirolz/erules • 3.8.0-RC2:2025-11-28
Errors
5
Warnings
33
Total Lines
387
1##################################
2Clonning https://github.com/geirolz/erules.git into /build/repo using revision v0.1.5
3##################################
4Note: switching to '4a8f97836f520c86121f9163a23c941bf1d773a3'.
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-RC2
23Scala binary version found: 3.8
24Implicitly using source version 3.8
25Scala binary version found: 3.8
26Implicitly using source version 3.8
27Would try to apply common scalacOption (best-effort, sbt/mill only):
28Append: ,REQUIRE:-source:3.8
29Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
30----
31Starting build for 3.8.0-RC2
32Execute tests: true
33sbt project found:
34Sbt version 1.10.5 is not supported, minimal supported version is 1.11.5
35Enforcing usage of sbt in version 1.11.5
36No prepare script found for project geirolz/erules
37##################################
38Scala version: 3.8.0-RC2
39Targets: com.github.geirolz%erules-cats-xml com.github.geirolz%erules-circe com.github.geirolz%erules-core com.github.geirolz%erules-generic com.github.geirolz%erules-scalatest
40Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[]}
41##################################
42Using extra scalacOptions: ,REQUIRE:-source:3.8
43Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
44[sbt_options] declare -a sbt_options=()
45[process_args] java_version = '17'
46[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
47# Executing command line:
48java
49-Dfile.encoding=UTF-8
50-Dcommunitybuild.scala=3.8.0-RC2
51-Dcommunitybuild.project.dependencies.add=
52-Xmx7G
53-Xms4G
54-Xss8M
55-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
56-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
57-jar
58/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
59"setCrossScalaVersions 3.8.0-RC2"
60"++3.8.0-RC2 -v"
61"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
62"set every credentials := Nil"
63"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
64"removeScalacOptionsStartingWith -P:wartremover"
65
66moduleMappings
67"runBuild 3.8.0-RC2 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[]}""" com.github.geirolz%erules-cats-xml com.github.geirolz%erules-circe com.github.geirolz%erules-core com.github.geirolz%erules-generic com.github.geirolz%erules-scalatest"
68
69[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
70[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
71[info] loading project definition from /build/repo/project
72[info] compiling 5 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
73[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
74[info] Compilation completed in 8.761s.
75[warn] /build/repo/project/ProjectResolvers.scala:8:16: method sonatypeOssRepos in class ResolverFunctions is deprecated (since 1.11.2): Sonatype OSS Repository Hosting (OSSRH) was sunset on 2025-06-30; remove this resolver. If snapshots are required, use:
76[warn] resolvers += Resolver.sonatypeCentralSnapshots
77[warn] Resolver.sonatypeOssRepos("public"),
78[warn] ^
79[warn] /build/repo/project/ProjectResolvers.scala:9:16: method sonatypeOssRepos in class ResolverFunctions is deprecated (since 1.11.2): Sonatype OSS Repository Hosting (OSSRH) was sunset on 2025-06-30; remove this resolver. If snapshots are required, use:
80[warn] resolvers += Resolver.sonatypeCentralSnapshots
81[warn] Resolver.sonatypeOssRepos("snapshots"),
82[warn] ^
83[warn] /build/repo/project/ProjectResolvers.scala:10:16: method sonatypeOssRepos in class ResolverFunctions is deprecated (since 1.11.2): Sonatype OSS Repository Hosting (OSSRH) was sunset on 2025-06-30; remove this resolver. If snapshots are required, use:
84[warn] resolvers += Resolver.sonatypeCentralSnapshots
85[warn] Resolver.sonatypeOssRepos("releases"),
86[warn] ^
87[warn] three warnings found
88[info] done compiling
89[info] loading settings for project erules from build.sbt...
90[info] resolving key references (10261 settings) ...
91[info] set current project to erules (in build file:/build/repo/)
92Execute setCrossScalaVersions: 3.8.0-RC2
93OpenCB::Changing crossVersion 3.3.4 -> 3.8.0-RC2 in core/crossScalaVersions
94OpenCB::Changing crossVersion 3.3.4 -> 3.8.0-RC2 in generic/crossScalaVersions
95OpenCB::Limitting incorrect crossVersions List() -> List(2.13.14) in erules/crossScalaVersions
96OpenCB::Changing crossVersion 3.3.4 -> 3.8.0-RC2 in cats-xml/crossScalaVersions
97OpenCB::Changing crossVersion 3.3.4 -> 3.8.0-RC2 in scalatest/crossScalaVersions
98OpenCB::Changing crossVersion 3.3.4 -> 3.8.0-RC2 in circe/crossScalaVersions
99OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.14) in scalatest-docs/crossScalaVersions
100OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.14) in generic-docs/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.14) in circe-docs/crossScalaVersions
102OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.14) in core-docs/crossScalaVersions
103OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.14) in cats-xml-docs/crossScalaVersions
104[info] set current project to erules (in build file:/build/repo/)
105[info] Setting Scala version to 3.8.0-RC2 on 5 projects.
106[info] Switching Scala version on:
107[info] scalatest (2.13.14, 3.8.0-RC2)
108[info] generic (2.13.14, 3.8.0-RC2)
109[info] circe (2.13.14, 3.8.0-RC2)
110[info] cats-xml (2.13.14, 3.8.0-RC2)
111[info] core (2.13.14, 3.8.0-RC2)
112[info] Excluding projects:
113[info] generic-docs (2.13.14)
114[info] * erules (2.13.14)
115[info] circe-docs (2.13.14)
116[info] scalatest-docs (2.13.14)
117[info] cats-xml-docs (2.13.14)
118[info] core-docs (2.13.14)
119[info] Reapplying settings...
120[info] set current project to erules (in build file:/build/repo/)
121Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
122[info] Reapplying settings...
123[info] set current project to erules (in build file:/build/repo/)
124[info] Defining Global / credentials, cats-xml / credentials and 9 others.
125[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 87 others.
126[info] Run `last` for details.
127[info] Reapplying settings...
128[info] set current project to erules (in build file:/build/repo/)
129Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
130[info] Reapplying settings...
131OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
132
133 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
134 Did you mean scalatest / allExcludeDependencies ?
135 , retry without global scopes
136[info] Reapplying settings...
137[info] set current project to erules (in build file:/build/repo/)
138Execute removeScalacOptionsStartingWith: -P:wartremover
139[info] Reapplying settings...
140[info] set current project to erules (in build file:/build/repo/)
141[success] Total time: 0 s, completed Nov 28, 2025, 2:59:04 PM
142Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[]}
143Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
144Starting build...
145Projects: Set(scalatest, generic, circe, cats-xml, core)
146Starting build for ProjectRef(file:/build/repo/,circe) (erules-circe)... [0/5]
147OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
148OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
149OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
150OpenCB::Filter out '-Xfatal-warnings', matches setting pattern '^-?-Xfatal-warnings'
151Compile scalacOptions: -encoding, utf-8, -language:existentials, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -explain-types, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
152[info] scalafmt: Formatting 11 Scala sources (/build/repo/core)...
153[info] scalafmt: Formatting 1 Scala sources (/build/repo/modules/circe)...
154[info] scalafmt: Formatting 4 Scala sources (/build/repo/modules/circe)...
155[info] scalafmt: Formatting 17 Scala sources (/build/repo/core)...
156[info] compiling 17 Scala sources to /build/repo/core/target/scala-3.8.0-RC2/classes ...
157[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
158[warn] one warning found
159[info] done compiling
160[info] compiling 4 Scala sources to /build/repo/modules/circe/target/scala-3.8.0-RC2/classes ...
161[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
162[warn] one warning found
163[info] done compiling
164[info] compiling 1 Scala source to /build/repo/modules/circe/target/scala-3.8.0-RC2/test-classes ...
165[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
166[warn] one warning found
167[info] done compiling
168erules.circe.report.JsonReportEncoderSpec:
169 + EngineResult.asJsonReport return a well-formatted JSON report 0.383s
170Starting build for ProjectRef(file:/build/repo/,scalatest) (erules-scalatest)... [1/5]
171Compile scalacOptions: -encoding, utf-8, -language:existentials, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -explain-types, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
172[info] scalafmt: Formatting 2 Scala sources (/build/repo/modules/scalatest)...
173[info] scalafmt: Formatting 4 Scala sources (/build/repo/modules/scalatest)...
174[info] compiling 4 Scala sources to /build/repo/modules/scalatest/target/scala-3.8.0-RC2/classes ...
175[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
176[warn] one warning found
177[info] done compiling
178[info] compiling 2 Scala sources to /build/repo/modules/scalatest/target/scala-3.8.0-RC2/test-classes ...
179[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
180[warn] one warning found
181[info] done compiling
182[info] TestErulesMatchers:
183[info] - RuleResultsInterpreterVerdict should be allowed and should not be denied
184[info] - RuleResultsInterpreterVerdict should be denied and should not be allowed
185[info] - RuleVerdict should be allow and should not be deny or ignore
186[info] - RuleVerdict should be deny and should not be allow or ignore
187[info] - RuleVerdict should be ignore and should not be allow or deny
188[info] TestErulesAsyncAssertingSyntax:
189[info] - RuleResult - ErulesAsyncAssertingSyntax.assertingIgnoringTimes should drain execution times
190[info] - EngineResult - ErulesAsyncAssertingSyntax.assertingIgnoringTimes should drain execution times
191Starting build for ProjectRef(file:/build/repo/,core) (erules-core)... [2/5]
192Compile scalacOptions: -encoding, utf-8, -language:existentials, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -explain-types, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
193[info] compiling 11 Scala sources to /build/repo/core/target/scala-3.8.0-RC2/test-classes ...
194[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
195[warn] one warning found
196[info] done compiling
197[info] RuleVerdictSpec:
198[info] Monoid for RuleVerdict
199[info] - should Return ignore when combining an empty list of results
200[info] - should combine multiple RuleVerdict - Allow
201[info] - should combine multiple RuleVerdict - Deny
202[info] - should combine multiple RuleVerdict - Ignore
203[info] IsIdSpec:
204[info] IsId.liftId
205[info] - should lift A to Id[A]
206[info] IsId.unliftId
207[info] - should unlift Id[A] to A
208[info] IsId implicit syntax
209[info] - should implicitly unliftId F[A] to A when F is Id
210[info] - should unliftId F[A] to A when F is Id
211[info] - should liftId A to F[A] when F is Id
212[info] IsId
213[info] - should not compile when F is not Id
214[info] - should compile when F is Id
215###################### ENGINE VERDICT ######################
216
217Data: Order(123,ShipTo(Via Roma 1,Country(IT)),BillTo(Via Roma 1,Country(IT)),List(Item(123,1,10)))
218Rules: 1
219Interpreter verdict: Denied
220
221-------------------- BillTo UK order only -------------------
222- Rule: BillTo UK order only
223- Description:
224- Target:
225- Execution time: *not measured*
226
227- Verdict: Right(Deny)
228- Because: Bill to not from UK
229------------------------------------------------------------
230
231
232############################################################
233[info] StringReportEncoderSpec:
234[info] EngineResult.asReport
235[info] - should Return a well-formatted string report
236[info] UsabilityTestSpec:
237[info] This library
238[info] - should be functional and with a nice syntax
239[info] RuleResultsInterpreterSpec:
240[info] EvalResultsInterpreter.Defaults.allowAllNotDenied
241[info] - should return Allowed for all not all explicitly denied values
242[info] - should return Allowed for allowed value
243[info] - should return Denied for if there is at least one Deny
244[info] - should return Denied for if there is at least one evaluated rule in error
245[info] EvalResultsInterpreter.Defaults.denyAllNotAllowed
246[info] - should return Denied for all not all explicitly denied values
247[info] - should return Allowed for allowed value
248[info] - should return Denied for if there is at least one Deny
249[info] - should return Denied for if there is at least one evaluated rule in error
250[info] EngineResultSpec:
251[info] EngineResult.combine
252[info] - should Allow-Allow | combine two EngineResult creating a new EngineResult with the specified data
253[info] - should Allow-Deny | combine two EngineResult creating a new EngineResult with the specified data
254[info] - should Deny-Allow | combine two EngineResult creating a new EngineResult with the specified data
255[info] - should Deny-Deny | combine two EngineResult creating a new EngineResult with the specified data
256[info] EngineResult.combineAll
257[info] - should combine all EngineResult creating a new EngineResult with the specified data
258[info] RulesEngineSpec:
259[info] RulesEngine
260[info] - should Return a DuplicatedRulesException with duplicated rules
261[info] RulesEngine.denyAllNotAllowed.eval
262[info] - should Respond with DENIED when there are no rules for the target
263[info] - should Respond with DENIED when a rule Deny the target
264[info] - should Respond with ALLOWED when a ALL rules allow the target
265[info] RulesEngine.allowAllNotDenied.eval
266[info] - should Respond with DENIED for safety in case of rule evaluation error
267[info] - should Respond with ALLOWED when there are no rules for the target
268[info] - should Respond with DENIED when a rule Deny the target
269[info] - should Respond with ALLOWED when a ALL rules allow the target
270[info] RuleSpec:
271[info] Rule.contramap
272[info] - should Apply the contravariant map widening the type
273[info] Rule.apply.eval
274[info] - should return the right result once evaluated
275[info] - should return an exception when a case fail
276[info] - should return the right result once evaluated when exhaustive
277[info] Rule.partially.eval
278[info] - should return the right result once evaluated
279[info] - should return an exception when a case fail
280[info] - should return the right result once evaluated in defined domain
281[info] - should return the Ignore once evaluated out of the defined domain
282[info] Rule.assert*
283[info] - should assert
284[info] - should assertNot
285[info] Rule.apply.evalRaw
286[info] - should return the right result once evaluated
287[info] - should return an exception when a case fail
288[info] - should return the right result once evaluated when exhaustive
289[info] Rule.partially.evalRaw
290[info] - should return the right result once evaluated
291[info] - should return an exception when a case fail
292[info] - should return the right result once evaluated in defined domain
293[info] - should return the Ignore once evaluated out of the defined domain
294[info] Rule.findDuplicated
295[info] - should return the list of duplicated rules
296[info] - should return a Nil when there are no duplicated descriptions
297Starting build for ProjectRef(file:/build/repo/,cats-xml) (erules-cats-xml)... [3/5]
298Compile scalacOptions: -encoding, utf-8, -language:existentials, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -explain-types, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
299[info] scalafmt: Formatting 1 Scala sources (/build/repo/modules/cats-xml)...
300[info] scalafmt: Formatting 4 Scala sources (/build/repo/modules/cats-xml)...
301[info] compiling 4 Scala sources to /build/repo/modules/cats-xml/target/scala-3.8.0-RC2/classes ...
302[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
303[warn] one warning found
304[info] done compiling
305[info] compiling 1 Scala source to /build/repo/modules/cats-xml/target/scala-3.8.0-RC2/test-classes ...
306[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
307[warn] one warning found
308[info] done compiling
309erules.cats.xml.report.XmlReportEncoderSpec:
310 + EngineResult.asXmlReport return a well-formatted Xml report 0.226s
311Starting build for ProjectRef(file:/build/repo/,generic) (erules-generic)... [4/5]
312Compile scalacOptions: -encoding, utf-8, -language:existentials, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -explain-types, -Xcheck-macros, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
313[info] scalafmt: Formatting 1 Scala sources (/build/repo/modules/generic)...
314[info] scalafmt: Formatting 2 Scala sources (/build/repo/modules/generic)...
315[info] compiling 2 Scala sources to /build/repo/modules/generic/target/scala-3.8.0-RC2/classes ...
316[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
317[warn] one warning found
318[info] done compiling
319[info] compiling 1 Scala source to /build/repo/modules/generic/target/scala-3.8.0-RC2/test-classes ...
320[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
321[warn] one warning found
322[info] done compiling
323[info] RuleMacrosTest:
324[info] - contramapTarget should contramap and add target info
325[info] - contramapTarget should not compile with monadic values
326
327************************
328Build summary:
329[{
330 "module": "erules-circe",
331 "compile": {"status": "ok", "tookMs": 23993, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
332 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
333 "test-compile": {"status": "ok", "tookMs": 1457, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
334 "test": {"status": "ok", "tookMs": 1134, "passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1, "byFramework": [{"framework": "munit", "stats": {"passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1}}]},
335 "publish": {"status": "skipped", "tookMs": 0},
336 "metadata": {
337 "crossScalaVersions": ["2.13.14", "3.3.4"]
338}
339},{
340 "module": "erules-scalatest",
341 "compile": {"status": "ok", "tookMs": 1470, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
342 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
343 "test-compile": {"status": "ok", "tookMs": 3628, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
344 "test": {"status": "ok", "tookMs": 668, "passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7, "byFramework": [{"framework": "unknown", "stats": {"passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7}}]},
345 "publish": {"status": "skipped", "tookMs": 0},
346 "metadata": {
347 "crossScalaVersions": ["2.13.14", "3.3.4"]
348}
349},{
350 "module": "erules-core",
351 "compile": {"status": "ok", "tookMs": 62, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
352 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
353 "test-compile": {"status": "ok", "tookMs": 6620, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
354 "test": {"status": "ok", "tookMs": 760, "passed": 53, "failed": 0, "ignored": 0, "skipped": 0, "total": 53, "byFramework": [{"framework": "unknown", "stats": {"passed": 53, "failed": 0, "ignored": 0, "skipped": 0, "total": 53}}]},
355 "publish": {"status": "skipped", "tookMs": 0},
356 "metadata": {
357 "crossScalaVersions": ["2.13.14", "3.3.4"]
358}
359},{
360 "module": "erules-cats-xml",
361 "compile": {"status": "ok", "tookMs": 996, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
362 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
363 "test-compile": {"status": "ok", "tookMs": 697, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
364 "test": {"status": "ok", "tookMs": 559, "passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1, "byFramework": [{"framework": "munit", "stats": {"passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1}}]},
365 "publish": {"status": "skipped", "tookMs": 0},
366 "metadata": {
367 "crossScalaVersions": ["2.13.14", "3.3.4"]
368}
369},{
370 "module": "erules-generic",
371 "compile": {"status": "ok", "tookMs": 983, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
372 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
373 "test-compile": {"status": "ok", "tookMs": 933, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
374 "test": {"status": "ok", "tookMs": 437, "passed": 2, "failed": 0, "ignored": 0, "skipped": 0, "total": 2, "byFramework": [{"framework": "unknown", "stats": {"passed": 2, "failed": 0, "ignored": 0, "skipped": 0, "total": 2}}]},
375 "publish": {"status": "skipped", "tookMs": 0},
376 "metadata": {
377 "crossScalaVersions": ["2.13.14", "3.3.4"]
378}
379}]
380************************
381[success] Total time: 82 s (0:01:22.0), completed Nov 28, 2025, 3:00:26 PM
382[0JChecking patch project/plugins.sbt...
383Checking patch project/build.properties...
384Checking patch build.sbt...
385Applied patch project/plugins.sbt cleanly.
386Applied patch project/build.properties cleanly.
387Applied patch build.sbt cleanly.