Build Logs

geirolz/erules • 3.8.1-RC1:2026-01-13

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.1-RC1
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.1-RC1
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.1-RC1
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.1-RC1
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.1-RC1"
60"++3.8.1-RC1 -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.1-RC1 """{"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.056s.
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.1-RC1
93OpenCB::Changing crossVersion 3.3.4 -> 3.8.1-RC1 in core/crossScalaVersions
94OpenCB::Changing crossVersion 3.3.4 -> 3.8.1-RC1 in generic/crossScalaVersions
95OpenCB::Limitting incorrect crossVersions List() -> List(2.13.14) in erules/crossScalaVersions
96OpenCB::Changing crossVersion 3.3.4 -> 3.8.1-RC1 in cats-xml/crossScalaVersions
97OpenCB::Changing crossVersion 3.3.4 -> 3.8.1-RC1 in scalatest/crossScalaVersions
98OpenCB::Changing crossVersion 3.3.4 -> 3.8.1-RC1 in circe/crossScalaVersions
99OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.14) in cats-xml-docs/crossScalaVersions
100OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.14) in circe-docs/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.14) in core-docs/crossScalaVersions
102OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.14) in generic-docs/crossScalaVersions
103OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.14) in scalatest-docs/crossScalaVersions
104[info] set current project to erules (in build file:/build/repo/)
105[info] Setting Scala version to 3.8.1-RC1 on 5 projects.
106[info] Switching Scala version on:
107[info] scalatest (2.13.14, 3.8.1-RC1)
108[info] generic (2.13.14, 3.8.1-RC1)
109[info] circe (2.13.14, 3.8.1-RC1)
110[info] cats-xml (2.13.14, 3.8.1-RC1)
111[info] core (2.13.14, 3.8.1-RC1)
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 Jan 13, 2026, 7:36:08 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.1-RC1/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.1-RC1/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.1-RC1/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.323s
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.1-RC1/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.1-RC1/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.1-RC1/test-classes ...
194[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
195[warn] one warning found
196[info] done compiling
197[info] EngineResultSpec:
198[info] EngineResult.combine
199[info] - should Allow-Allow | combine two EngineResult creating a new EngineResult with the specified data
200[info] - should Allow-Deny | combine two EngineResult creating a new EngineResult with the specified data
201[info] - should Deny-Allow | combine two EngineResult creating a new EngineResult with the specified data
202[info] - should Deny-Deny | combine two EngineResult creating a new EngineResult with the specified data
203[info] EngineResult.combineAll
204[info] - should combine all EngineResult creating a new EngineResult with the specified data
205###################### ENGINE VERDICT ######################
206
207Data: Order(123,ShipTo(Via Roma 1,Country(IT)),BillTo(Via Roma 1,Country(IT)),List(Item(123,1,10)))
208Rules: 1
209Interpreter verdict: Denied
210
211-------------------- BillTo UK order only -------------------
212- Rule: BillTo UK order only
213- Description:
214- Target:
215- Execution time: *not measured*
216
217- Verdict: Right(Deny)
218- Because: Bill to not from UK
219------------------------------------------------------------
220
221
222############################################################
223[info] RuleResultsInterpreterSpec:
224[info] EvalResultsInterpreter.Defaults.allowAllNotDenied
225[info] - should return Allowed for all not all explicitly denied values
226[info] - should return Allowed for allowed value
227[info] - should return Denied for if there is at least one Deny
228[info] - should return Denied for if there is at least one evaluated rule in error
229[info] EvalResultsInterpreter.Defaults.denyAllNotAllowed
230[info] - should return Denied for all not all explicitly denied values
231[info] - should return Allowed for allowed value
232[info] - should return Denied for if there is at least one Deny
233[info] - should return Denied for if there is at least one evaluated rule in error
234[info] UsabilityTestSpec:
235[info] This library
236[info] - should be functional and with a nice syntax
237[info] StringReportEncoderSpec:
238[info] EngineResult.asReport
239[info] - should Return a well-formatted string report
240[info] RuleVerdictSpec:
241[info] Monoid for RuleVerdict
242[info] - should Return ignore when combining an empty list of results
243[info] - should combine multiple RuleVerdict - Allow
244[info] - should combine multiple RuleVerdict - Deny
245[info] - should combine multiple RuleVerdict - Ignore
246[info] RulesEngineSpec:
247[info] RulesEngine
248[info] - should Return a DuplicatedRulesException with duplicated rules
249[info] RulesEngine.denyAllNotAllowed.eval
250[info] - should Respond with DENIED when there are no rules for the target
251[info] - should Respond with DENIED when a rule Deny the target
252[info] - should Respond with ALLOWED when a ALL rules allow the target
253[info] RulesEngine.allowAllNotDenied.eval
254[info] - should Respond with DENIED for safety in case of rule evaluation error
255[info] - should Respond with ALLOWED when there are no rules for the target
256[info] - should Respond with DENIED when a rule Deny the target
257[info] - should Respond with ALLOWED when a ALL rules allow the target
258[info] IsIdSpec:
259[info] IsId.liftId
260[info] - should lift A to Id[A]
261[info] IsId.unliftId
262[info] - should unlift Id[A] to A
263[info] IsId implicit syntax
264[info] - should implicitly unliftId F[A] to A when F is Id
265[info] - should unliftId F[A] to A when F is Id
266[info] - should liftId A to F[A] when F is Id
267[info] IsId
268[info] - should not compile when F is not Id
269[info] - should compile when F is Id
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.1-RC1/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.1-RC1/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.252s
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.1-RC1/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.1-RC1/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": 15000, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
332 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
333 "test-compile": {"status": "ok", "tookMs": 1313, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
334 "test": {"status": "ok", "tookMs": 956, "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": 1635, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
342 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
343 "test-compile": {"status": "ok", "tookMs": 3597, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
344 "test": {"status": "ok", "tookMs": 595, "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": 58, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
352 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
353 "test-compile": {"status": "ok", "tookMs": 6197, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
354 "test": {"status": "ok", "tookMs": 687, "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": 817, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
362 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
363 "test-compile": {"status": "ok", "tookMs": 731, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
364 "test": {"status": "ok", "tookMs": 558, "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": 1037, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
372 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
373 "test-compile": {"status": "ok", "tookMs": 1195, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
374 "test": {"status": "ok", "tookMs": 318, "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: 40 s, completed Jan 13, 2026, 7:36:48 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.