Build Logs

jatcwang/difflicious • 3.8.0:2026-01-13

Errors

0

Warnings

0

Total Lines

387

1##################################
2Clonning https://github.com/jatcwang/difflicious.git into /build/repo using revision v0.4.4
3##################################
4Note: switching to '22de5a6e7a621dd7f4ba95b6a9546b91d6d7b1da'.
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.3.7
22----
23Preparing build for 3.8.0
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: project/Build.scala
34Pattern: val Scala3 = "3.3.7"
35Replacement: val Scala3 = "3.8.0"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (17))
38Compiled project (Scala 3.7.3, JVM (17))
39Successfully applied pattern 'val Scala3 = "3.3.7"' in project/Build.scala
40----
41Starting build for 3.8.0
42Execute tests: true
43sbt project found:
44No prepare script found for project jatcwang/difflicious
45##################################
46Scala version: 3.8.0
47Targets: com.github.jatcwang%difflicious-cats com.github.jatcwang%difflicious-core com.github.jatcwang%difflicious-munit com.github.jatcwang%difflicious-scalatest com.github.jatcwang%difflicious-weaver
48Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Build.scala","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
49##################################
50Using extra scalacOptions: ,REQUIRE:-source:3.8
51Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
52[sbt_options] declare -a sbt_options=()
53[process_args] java_version = '17'
54[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
55# Executing command line:
56java
57-Xmx3G
58-Dcommunitybuild.scala=3.8.0
59-Dcommunitybuild.project.dependencies.add=
60-Xmx7G
61-Xms4G
62-Xss8M
63-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
64-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
65-jar
66/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
67"setCrossScalaVersions 3.8.0"
68"++3.8.0 -v"
69"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
70"set every credentials := Nil"
71"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
72"removeScalacOptionsStartingWith -P:wartremover"
73
74moduleMappings
75"runBuild 3.8.0 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Build.scala","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}""" com.github.jatcwang%difflicious-cats com.github.jatcwang%difflicious-core com.github.jatcwang%difflicious-munit com.github.jatcwang%difflicious-scalatest com.github.jatcwang%difflicious-weaver"
76
77[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
78[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
79[info] loading project definition from /build/repo/project
80[info] compiling 4 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
81[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
82[info] Compilation completed in 9.091s.
83[info] done compiling
84[info] loading settings for project difflicious from build.sbt...
85[info] resolving key references (15145 settings) ...
86[info] set current project to difflicious (in build file:/build/repo/)
87Execute setCrossScalaVersions: 3.8.0
88OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in core3/crossScalaVersions
89OpenCB::Limitting incorrect crossVersions List(2.13.18) -> List(3.8.0) in core3/crossScalaVersions
90OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in munit3/crossScalaVersions
91OpenCB::Limitting incorrect crossVersions List(2.13.18) -> List(3.8.0) in munit3/crossScalaVersions
92OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in cats3/crossScalaVersions
93OpenCB::Limitting incorrect crossVersions List(2.13.18) -> List(3.8.0) in cats3/crossScalaVersions
94OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in coretest3/crossScalaVersions
95OpenCB::Limitting incorrect crossVersions List(2.13.18) -> List(3.8.0) in coretest3/crossScalaVersions
96OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in benchmarks3/crossScalaVersions
97OpenCB::Limitting incorrect crossVersions List(2.13.18) -> List(3.8.0) in benchmarks3/crossScalaVersions
98OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in weaver3/crossScalaVersions
99OpenCB::Limitting incorrect crossVersions List(2.13.18) -> List(3.8.0) in weaver3/crossScalaVersions
100OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in scalatest3/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List(2.13.18) -> List(3.8.0) in scalatest3/crossScalaVersions
102[info] set current project to difflicious (in build file:/build/repo/)
103[info] Setting Scala version to 3.8.0 on 7 projects.
104[info] Switching Scala version on:
105[info] core3 (3.8.0)
106[info] munit3 (3.8.0)
107[info] scalatest3 (3.8.0)
108[info] weaver3 (3.8.0)
109[info] benchmarks3 (3.8.0)
110[info] cats3 (3.8.0)
111[info] coretest3 (3.8.0)
112[info] Excluding projects:
113[info] weaver (2.13.18)
114[info] scalatest (2.13.18)
115[info] benchmarks (2.13.18)
116[info] * difflicious (2.13.18)
117[info] docs (2.13.18)
118[info] munit (2.13.18)
119[info] cats (2.13.18)
120[info] core (2.13.18)
121[info] coretest (2.13.18)
122[info] Reapplying settings...
123[info] set current project to difflicious (in build file:/build/repo/)
124Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
125[info] Reapplying settings...
126[info] set current project to difflicious (in build file:/build/repo/)
127[info] Defining Global / credentials, benchmarks / credentials and 14 others.
128[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 127 others.
129[info] Run `last` for details.
130[info] Reapplying settings...
131[info] set current project to difflicious (in build file:/build/repo/)
132Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
133[info] Reapplying settings...
134OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
135
136 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
137 Did you mean coretest3 / allExcludeDependencies ?
138 , retry without global scopes
139[info] Reapplying settings...
140[info] set current project to difflicious (in build file:/build/repo/)
141Execute removeScalacOptionsStartingWith: -P:wartremover
142[info] Reapplying settings...
143[info] set current project to difflicious (in build file:/build/repo/)
144[success] Total time: 0 s, completed Jan 13, 2026, 4:43:26 PM
145Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Build.scala","pattern":"val Scala3 = \"3.3.7\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
146Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
147Starting build...
148Projects: Set(core3, munit3, scalatest3, weaver3, cats3, coretest3)
149Starting build for ProjectRef(file:/build/repo/,cats3) (difflicious-cats)... [0/6]
150OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
151OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
152OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
153OpenCB::Filter out '-Xfatal-warnings', matches setting pattern '^-?-Xfatal-warnings'
154Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wvalue-discard, -Wnonunit-statement, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
155[info] compiling 33 Scala sources to /build/repo/modules/core/target/jvm-3/classes ...
156[info] done compiling
157[info] compiling 2 Scala sources to /build/repo/modules/cats/target/jvm-3/classes ...
158[info] done compiling
159[info] compiling 9 Scala sources to /build/repo/modules/coretest/target/jvm-3/test-classes ...
160[info] done compiling
161[info] compiling 1 Scala source to /build/repo/modules/cats/target/jvm-3/test-classes ...
162[info] done compiling
163difflicious.cats.CatsDataDiffSpec:
164 + NonEmptyMap: Has map-like diff result 0.364s
165 + NonEmptyMap: Prop: isOk if equals 0.093s
166 + NonEmptyMap: Prop: isOk == false if not equal 0.001s
167 + NonEmptyList: Has list-like diff result 0.029s
168 + NonEmptyList: pairBy 0.023s
169 + NonEmptyVector: Has list-like diff result 0.013s
170 + NonEmptyVector: pairBy 0.003s
171 + Chain: Has list-like diff result 0.002s
172 + Chain: pairBy 0.003s
173 + NonEmptyChain: Has list-like diff result 0.01s
174 + NonEmptyChain: pairBy 0.002s
175 + NonEmptySet: Has set-like diff result 0.01s
176 + NonEmptySet: with pairBy 0.002s
177Starting build for ProjectRef(file:/build/repo/,scalatest3) (difflicious-scalatest)... [1/6]
178Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wvalue-discard, -Wnonunit-statement, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
179[info] compiling 1 Scala source to /build/repo/modules/scalatest/target/jvm-3/classes ...
180[info] done compiling
181Starting build for ProjectRef(file:/build/repo/,core3) (difflicious-core)... [2/6]
182Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wvalue-discard, -Wnonunit-statement, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
183Starting build for ProjectRef(file:/build/repo/,coretest3) (coretest)... [3/6]
184Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wvalue-discard, -Wnonunit-statement, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
185difflicioustest.DifferAutoDerivationSpec:
186 + should not compile without instance in scope 0.031s
187 + should find auto derived instance for product 0.003s
188 + should put auto derived instance back into scope 0.0s
189 + should use manually defined instance for an element 0.023s
190difflicious.DifferConfigureSpec:
191 + Differ#ignore works 0.126s
192 + Differ#unignore works 0.003s
193 + configure path allows 'each' to resolve underlying differ in a Map 0.069s
194 + configure path allows 'each' to resolve underlying differ in a Seq 0.012s
195 + configure path allows 'each' to resolve underlying differ in a Set 0.027s
196 + configure path can handle escaped sub-type and field names 0.031s
197 + pairBy works with Seq 0.017s
198 + pairBy works with Set 0.007s
199 + 'replace' for MapDiffer replaces value differ when step is 'each' 0.002s
200 + 'replace' for MapDiffer fails if step isn't 'each' 0.004s
201 + 'replace' for SeqDiffer replaces ite differ when step is 'each' 0.002s
202 + 'replace' for SeqDiffer fails if step isn't 'each' 0.003s
203 + 'replace' for SetDiffer replaces ite differ when step is 'each' 0.002s
204 + 'replace' for SeqDiffer fails if step isn't 'each'-1 0.0s
205difflicious.DifferTimeInstancesSpec:
206 + DayOfWeek 0.186s
207 + Duration 0.033s
208 + Instant 0.023s
209 + LocalDate 0.024s
210 + LocalDateTime 0.036s
211 + LocalTime 0.014s
212 + Month 0.013s
213 + MonthDay 0.011s
214 + OffsetDateTime 0.027s
215 + OffsetTime 0.015s
216 + Period 0.017s
217 + Year 0.007s
218 + YearMonth 0.01s
219 + ZonedDateTime 0.017s
220 + ZoneId 0.005s
221 + ZoneOffset 0.004s
222difflicious.DifferSpec:
223 + configure path's subType call errors when super type isn't sealed 0.017s
224 + Derived Enum: isOk == true if two values are equal 0.118s
225 + Derived Enum: isOk == false if two values are NOT equal 0.041s
226 + Derived Enum: isOk always true if differ is marked ignored 0.028s
227 + .subType[MyEnum.XY] in path expression works 0.011s
228 + .subType[XY] in path expression works 0.01s
229 + .subType[TypeAlias] in path expression works 0.002s
230 + NumericDiffer: configure fails if path is not terminal 0.005s
231 + NumericDiffer: configure fails if differ op is SetIgnore 0.001s
232 + EqualsDiffer: return Both/ObtainedOnly/ExpectedOnly depending on whether both sides are present in diff 0.009s
233 + EqualsDiffer: ObtainedOnly#isOk should always be false 0.0s
234 + EqualsDiffer: ObtainedOnly#isOk should always be false-1 0.001s
235 + EqualsDiffer: configure fails if path is not terminal 0.005s
236 + EqualsDiffer: configure fails if op is not setting ignore 0.001s
237 + EqualsDiffer: isOk == true if two values are equal 0.011s
238 + EqualsDiffer: isOk == false if two values are NOT equal 0.022s
239 + EqualsDiffer: isOk always true if differ is marked ignored 0.007s
240 + Tuple2: isOk == true if two values are equal 0.053s
241 + Tuple2: isOk == false if two values are NOT equal 0.03s
242 + Tuple2: isOk always true if differ is marked ignored 0.021s
243 + Tuple3: isOk == true if two values are equal 0.016s
244 + Tuple3: isOk == false if two values are NOT equal 0.021s
245 + Tuple3: isOk always true if differ is marked ignored 0.019s
246 + Tuple3: compared like a record 0.012s
247 + Option: fail if one is Some and one is None 0.009s
248 + Option: isOk == true if two values are equal 0.006s
249 + Option: isOk == false if two values are NOT equal 0.013s
250 + Option: isOk always true if differ is marked ignored 0.013s
251 + Either: fail if one is Some and one is None 0.009s
252 + Either: isOk == true if two values are equal 0.005s
253 + Either: isOk == false if two values are NOT equal 0.006s
254 + Either: isOk always true if differ is marked ignored 0.009s
255 + Map: isOk == true if two values are equal 0.117s
256 + Map: isOk == false if two values are NOT equal 0.11s
257 + Map: isOk always true if differ is marked ignored 0.098s
258 + Map diff shows both matched entries (based on key equals) and also one-side-only entries 0.009s
259 + Map: When only 'obtained' is provided when diffing 0.001s
260 + Map: When only 'expected' is provided when diffing 0.002s
261 + Map: Allow updating value differs using the path 'each' 0.001s
262 + Map: configureRaw fails if field name isn't 'each' 0.001s
263 + Map: configureRaw fails if operation isn't ignore 0.001s
264 + Seq: isOk == true if two values are equal 0.027s
265 + Seq: isOk == false if two values are not equal 0.033s
266 + Seq: isOk always true if differ is marked ignored 0.053s
267 + Seq: match entries base on item index by default 0.009s
268 + Seq: with alternative pairBy should match by the resolved value instead of index 0.002s
269 + Seq: Can set pairBy to match by index again 0.002s
270 + Seq: Only 'obtained' is provided when diffing 0.001s
271 + Seq: Only 'expected' is provided when diffing 0.001s
272 + Seq: Allow modifying element differs using the path 'each' 0.001s
273 + Seq: configureRaw fails if field name isn't 'each' 0.0s
274 + Set: isOk == true if two values are equal 0.063s
275 + Set: isOk == false if two values are not equal 0.059s
276 + Set: isOk always true if differ is marked ignored 0.063s
277 + Set: match entries base on item identity by default 0.006s
278 + Set: When only 'obtained' is provided when diffing 0.001s
279 + Set: When only 'expected' is provided when diffing 0.001s
280 + Set: Allow modifying element differs using the path 'each' 0.003s
281 + Set: Update fails if field name isn't 'each' 0.0s
282 + Set: errors when trying to update the set to match by index (since Set has no inherent order) 0.001s
283 + Set: with alternative pairBy should match by the resolved value instead of index 0.001s
284 + Record: isOk == true if two values are equal 0.002s
285 + Record: isOk == false if two values are not equal 0.002s
286 + Record: isOk always true if differ is marked ignored 0.003s
287 + Record: Attempting to update nonexistent field fails 0.0s
288 + Record: Trying to update the differ with PairBy op should fail 0.001s
289 + Record: ignoreFieldByNameOrFail succeeds if field exists 0.0s
290 + Sealed trait: should display obtained and expected types when mismatch 0.003s
291 + Sealed trait: should display obtained and expected types when mismatch-1 0.0s
292 + Sealed trait: isOk == true if two values are equal 0.01s
293 + Sealed trait: isOk == false if two values are NOT equal 0.017s
294 + Sealed trait: isOk always true if differ is marked ignored 0.021s
295 + Sealed trait: When only 'obtained' is provided when diffing 0.001s
296 + Sealed trait: When only 'expected' is provided when diffing 0.001s
297 + Sealed trait: Use subtype's custom Differ if present in scope when deriving 0.004s
298 + Sealed trait: configure subtype differs by specifying the subtype name in the path 0.001s
299 + Sealed trait: error if trying to configure with an invalid subtype name as path 0.001s
300 + Sealed trait: error if trying to update with an unsupported differ update op 0.0s
301 + TransformedDiffer: isOk == true if two underlying values are equal 0.002s
302 + TransformedDiffer: isOk == false if two underlying values are NOT equal 0.001s
303 + TransformedDiffer: isOk always true if differ is marked ignored 0.001s
304 + Differ.alwaysIgnore: Always returns ignored result 0.002s
305 + Differ.alwaysIgnore: still return ignored result after unignore 0.0s
306 + Differ.alwaysIgnore: configurePath returns PathTooLong error 0.001s
307 + Differ.alwaysIgnore: configurePairBy returns InvalidConfigureOp error 0.0s
308Starting build for ProjectRef(file:/build/repo/,munit3) (difflicious-munit)... [4/6]
309Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wvalue-discard, -Wnonunit-statement, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
310[info] compiling 1 Scala source to /build/repo/modules/munit/target/jvm-3/classes ...
311[info] done compiling
312Starting build for ProjectRef(file:/build/repo/,weaver3) (difflicious-weaver)... [5/6]
313Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wvalue-discard, -Wnonunit-statement, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
314[info] compiling 1 Scala source to /build/repo/modules/weaver/target/jvm-3/classes ...
315[info] done compiling
316
317************************
318Build summary:
319[{
320 "module": "difflicious-cats",
321 "compile": {"status": "ok", "tookMs": 15106, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
322 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
323 "test-compile": {"status": "ok", "tookMs": 9081, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
324 "test": {"status": "ok", "tookMs": 1176, "passed": 13, "failed": 0, "ignored": 0, "skipped": 0, "total": 13, "byFramework": [{"framework": "munit", "stats": {"passed": 13, "failed": 0, "ignored": 0, "skipped": 0, "total": 13}}]},
325 "publish": {"status": "skipped", "tookMs": 0},
326 "metadata": {
327 "crossScalaVersions": ["2.13.18", "3.3.7"]
328}
329},{
330 "module": "difflicious-scalatest",
331 "compile": {"status": "ok", "tookMs": 368, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
332 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
333 "test-compile": {"status": "ok", "tookMs": 167, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
334 "test": {"status": "ok", "tookMs": 148, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
335 "publish": {"status": "skipped", "tookMs": 0},
336 "metadata": {
337 "crossScalaVersions": ["2.13.18", "3.3.7"]
338}
339},{
340 "module": "difflicious-core",
341 "compile": {"status": "ok", "tookMs": 57, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
342 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
343 "test-compile": {"status": "ok", "tookMs": 96, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
344 "test": {"status": "ok", "tookMs": 71, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
345 "publish": {"status": "skipped", "tookMs": 0},
346 "metadata": {
347 "crossScalaVersions": ["2.13.18", "3.3.7"]
348}
349},{
350 "module": "coretest",
351 "compile": {"status": "ok", "tookMs": 93, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
352 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
353 "test-compile": {"status": "ok", "tookMs": 128, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
354 "test": {"status": "ok", "tookMs": 1491, "passed": 119, "failed": 0, "ignored": 0, "skipped": 0, "total": 119, "byFramework": [{"framework": "munit", "stats": {"passed": 119, "failed": 0, "ignored": 0, "skipped": 0, "total": 119}}]},
355 "publish": {"status": "ok", "tookMs": 4},
356 "metadata": {
357 "crossScalaVersions": ["2.13.18", "3.3.7"]
358}
359},{
360 "module": "difflicious-munit",
361 "compile": {"status": "ok", "tookMs": 419, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
362 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
363 "test-compile": {"status": "ok", "tookMs": 141, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
364 "test": {"status": "ok", "tookMs": 120, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
365 "publish": {"status": "skipped", "tookMs": 0},
366 "metadata": {
367 "crossScalaVersions": ["2.13.18", "3.3.7"]
368}
369},{
370 "module": "difflicious-weaver",
371 "compile": {"status": "ok", "tookMs": 294, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
372 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
373 "test-compile": {"status": "ok", "tookMs": 160, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
374 "test": {"status": "ok", "tookMs": 141, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
375 "publish": {"status": "skipped", "tookMs": 0},
376 "metadata": {
377 "crossScalaVersions": ["2.13.18", "3.3.7"]
378}
379}]
380************************
381[success] Total time: 34 s, completed Jan 13, 2026, 4:44:01 PM
382[0JChecking patch project/plugins.sbt...
383Checking patch project/Build.scala...
384Checking patch build.sbt...
385Applied patch project/plugins.sbt cleanly.
386Applied patch project/Build.scala cleanly.
387Applied patch build.sbt cleanly.