Build Logs

softwaremill/quicklens • 3.8.0-RC6:2026-01-08

Errors

2

Warnings

54

Total Lines

435

1##################################
2Clonning https://github.com/softwaremill/quicklens.git into /build/repo using revision v1.9.12
3##################################
4Note: switching to '964ff968bdb424f27ff7de2fbcd0b3b4cf582a7b'.
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.4
22----
23Preparing build for 3.8.0-RC6
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 scala3 = "3.3.4"
35Replacement: val scala3 = "3.8.0-RC6"
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.4"' in build.sbt
40----
41Starting build for 3.8.0-RC6
42Execute tests: true
43sbt project found:
44Sbt version 1.10.6 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 softwaremill/quicklens
47##################################
48Scala version: 3.8.0-RC6
49Targets: com.softwaremill.quicklens%quicklens
50Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.4\"","replaceWith":"val scala3 = \"<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.0-RC6
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.0-RC6"
70"++3.8.0-RC6 -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.0-RC6 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.4\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" com.softwaremill.quicklens%quicklens"
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.638s.
85[info] done compiling
86[info] loading settings for project root from build.sbt...
87[info] resolving key references (10838 settings) ...
88[info] set current project to root (in build file:/build/repo/)
89Execute setCrossScalaVersions: 3.8.0-RC6
90OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in quicklensNative3/crossScalaVersions
91OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in quicklensJS3/crossScalaVersions
92OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in quicklensNative3/crossScalaVersions
93OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in quicklens3/crossScalaVersions
94OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in quicklens3/crossScalaVersions
95OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.15) in quicklensJS/crossScalaVersions
96OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in root/crossScalaVersions
97OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in root/crossScalaVersions
98OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.15) in quicklens/crossScalaVersions
99OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.15) in quicklensNative/crossScalaVersions
100OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in quicklensJS3/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.11.12) in quicklens2_11/crossScalaVersions
102[info] set current project to root (in build file:/build/repo/)
103[info] Setting Scala version to 3.8.0-RC6 on 4 projects.
104[info] Switching Scala version on:
105[info] quicklensJS3 (3.8.0-RC6)
106[info] * root (3.8.0-RC6)
107[info] quicklens3 (3.8.0-RC6)
108[info] quicklensNative3 (3.8.0-RC6)
109[info] Excluding projects:
110[info] quicklensNative2_12 (2.12.20)
111[info] quicklensJS (2.13.15)
112[info] quicklensJS2_12 (2.12.20)
113[info] quicklens2_12 (2.12.20)
114[info] quicklensNative (2.13.15)
115[info] quicklens2_11 (2.11.12)
116[info] quicklens (2.13.15)
117[info] Reapplying settings...
118[info] set current project to root (in build file:/build/repo/)
119Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
120[info] Reapplying settings...
121[info] set current project to root (in build file:/build/repo/)
122[info] Defining Global / credentials, credentials and 9 others.
123[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 87 others.
124[info] Run `last` for details.
125[info] Reapplying settings...
126[info] set current project to root (in build file:/build/repo/)
127Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
128[info] Reapplying settings...
129OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
130
131 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
132 Did you mean quicklensJS2_12 / allExcludeDependencies ?
133 , retry without global scopes
134[info] Reapplying settings...
135[info] set current project to root (in build file:/build/repo/)
136Execute removeScalacOptionsStartingWith: -P:wartremover
137[info] Reapplying settings...
138[info] set current project to root (in build file:/build/repo/)
139[success] Total time: 0 s, completed Jan 8, 2026, 1:27:44 AM
140Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.4\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
141Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
142Starting build...
143Projects: Set(quicklens3)
144Starting build for ProjectRef(file:/build/repo/,quicklens3) (quicklens)... [0/1]
145OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
146OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
147OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
148Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Ykind-projector, -Wvalue-discard, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -unchecked, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
149[info] compiling 2 Scala sources to /build/repo/quicklens/target/jvm-3/classes ...
150[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
151[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/quicklens/src/main/scala-3/com/softwaremill/quicklens/QuicklensMacros.scala:121:28
152[warn] 121 | case (Field(name1), Field(name2)) => name1 == name2
153[warn] | ^
154[warn] |the type test for PathSymbol.Field cannot be checked at runtime because it's a local class
155[warn] |
156[warn] | longer explanation available when compiling with `-explain`
157[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/quicklens/src/main/scala-3/com/softwaremill/quicklens/QuicklensMacros.scala:122:39
158[warn] 122 | case (Extension(term1, name1), Extension(term2, name2)) => term1 == term2 && name1 == name2
159[warn] | ^
160[warn] |the type test for PathSymbol.Extension cannot be checked at runtime because it's a local class
161[warn] |
162[warn] | longer explanation available when compiling with `-explain`
163[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/quicklens/src/main/scala-3/com/softwaremill/quicklens/QuicklensMacros.scala:123:60
164[warn] 123 | case (FunctionDelegate(name1, _, typeTree1, args1), FunctionDelegate(name2, _, typeTree2, args2)) =>
165[warn] | ^
166[warn] |the type test for PathSymbol.FunctionDelegate cannot be checked at runtime because it's a local class
167[warn] |
168[warn] | longer explanation available when compiling with `-explain`
169[warn] four warnings found
170[info] done compiling
171[info] compiling 40 Scala sources to /build/repo/quicklens/target/jvm-3/test-classes ...
172[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
173[warn] -- [E198] Unused Symbol Warning: /build/repo/quicklens/src/test/scala-3/com/softwaremill/quicklens/test/LiteralTypeTest.scala:3:43
174[warn] 3 |import com.softwaremill.quicklens.TestData.duplicate
175[warn] | ^^^^^^^^^
176[warn] | unused import
177[warn] -- [E198] Unused Symbol Warning: /build/repo/quicklens/src/test/scala-3/com/softwaremill/quicklens/test/ModifyAllOptimizedTest.scala:6:21
178[warn] 6 |import scala.reflect.ClassTag
179[warn] | ^^^^^^^^
180[warn] | unused import
181[warn] -- [E198] Unused Symbol Warning: /build/repo/quicklens/src/test/scala/com/softwaremill/quicklens/SecondParamListTest.scala:3:43
182[warn] 3 |import com.softwaremill.quicklens.TestData._
183[warn] | ^
184[warn] | unused import
185[warn] -- [E198] Unused Symbol Warning: /build/repo/quicklens/src/test/scala/com/softwaremill/quicklens/SecondParamListTest.scala:11:47
186[warn] 11 | case class State(inside: Boolean)(implicit d: Double)
187[warn] | ^
188[warn] | unused implicit parameter
189[warn] -- [E198] Unused Symbol Warning: /build/repo/quicklens/src/test/scala/com/softwaremill/quicklens/SecondParamListTest.scala:24:38
190[warn] 24 | import com.softwaremill.quicklens._
191[warn] | ^
192[warn] | unused import
193[warn] -- [E198] Unused Symbol Warning: /build/repo/quicklens/src/test/scala/com/softwaremill/quicklens/SecondParamListTest.scala:26:38
194[warn] 26 | case class State(inside: Boolean)(d: Double)
195[warn] | ^
196[warn] | unused explicit parameter
197[warn] -- [E198] Unused Symbol Warning: /build/repo/quicklens/src/test/scala/com/softwaremill/quicklens/SecondParamListTest.scala:30:8
198[warn] 30 | val state1 = State(true)(d)
199[warn] | ^^^^^^
200[warn] | unused local definition
201[warn] -- [E198] Unused Symbol Warning: /build/repo/quicklens/src/test/scala/com/softwaremill/quicklens/SecondParamListTest.scala:32:17
202[warn] 32 | implicit val dd: Double = d
203[warn] | ^^
204[warn] | unused local definition
205[warn] 9 warnings found
206[info] done compiling
207[info] LiteralTypeTest:
208[info] - should modify a literal type field with an explicit parameter
209[info] - should modify a literal type field as a type parameter with an explicit parameter
210[info] - should not compile for a wrong literal type
211[info] SetToSimpleTest:
212[info] - should set a new value of a single-nested case class field
213[info] - should set a new value in a case class if the condition is true
214[info] - should leave a case class unchanged if the condition is false
215[info] - should set a new value in a case class if it is defined
216[info] - should leave a case class unchanged if the value is not defined
217[info] SecondParamListTest:
218[info] - should modify an object with second implicit param list
219[info] - should should give a meaningful error for an object with more than one non-implicit param list
220[info] LensLazyTest:
221[info] - should create reusable lens of the given type
222[info] - should compose lens
223[info] ModifyOptionIndexTest:
224[info] - should modify a Option with case class item
225[info] - should modify a Option in a case class hierarchy
226[info] - should not modify on missing key
227[info] ModifyIndexedSeqIndexTest:
228[info] - should modify a non-nested indexed seq with case class item
229[info] - should modify a nested indexed seq using index
230[info] - should modify a nested indexed seq using index and each
231[info] - should not modify if given index does not exist
232[info] ExtensionCopyTest:
233[info] - should modify a simple class with an extension copy method
234[info] - should modify a simple class with an extension copy method in companion
235[info] - should modify a class with extension methods in companion
236[info] - should modify an opaque type with extension methods
237[info] RepeatedModifyAllTest:
238[info] - should expand a very long repeated function
239[info] - should expand a very long repeated function correct number of times
240[info] HugeModifyTest:
241[info] - should expand a huge function
242[info] RepeatedModifyTest:
243[info] - should properly handle repeated modify invocations for different fields
244[info] - should properly handle repeated modify invocations for the same field
245[info] ModifyEitherTest:
246[info] - should modify a single-nested left case class field
247[info] - should modify a single-nested left case class field (pimped)
248[info] - should modify a single-nested right case class field
249[info] - should modify a single-nested right case class field (pimped)
250[info] - should modify multiple deeply-nested either case class fields
251[info] - should not modify left case class field if it is right
252[info] - should not modify right case class field if it is left
253[info] - should allow .eachLeft at then end
254[info] - should allow .eachRight at then end
255[info] ModitySealedAbstractClass:
256[info] - should Modify abstract class hierarchy
257[info] ModifyLazyTest:
258[info] - should modify a single-nested case class field
259[info] - should modify a deeply-nested case class field
260[info] - should modify several fields
261[info] - should modify a case class field if the condition is true
262[info] - should leave a case class unchanged if the condition is flase
263[info] ModifyOptionAtOrElseTest:
264[info] - should modify a Some
265[info] - should modify a None with default
266[info] - should modify a Option in a case class hierarchy
267[info] ExplicitCopyTest:
268[info] - should modify a class with an explicit copy method
269[info] - should modify a class that has a method with the same name as a field
270[info] - should modify a case class with an additional explicit copy
271[info] - should modify a case class with an ambiguous additional explicit copy
272[info] - should modify a class with two explicit copy methods
273[info] - should modify a case class with an ambiguous additional explicit copy and pick the synthetic one first
274[info] - should not compile when modifying a field which is not present as a copy parameter
275[info] SealedTest:
276[info] - should modify a field in a sealed trait
277[info] - should modify a field in a sealed trait through a Functor
278[info] - should modify a Functor field in a sealed trait
279[info] - should modify a field in a hierarchy of sealed traits
280[info] - should modify a list of pets from the example
281[info] EnormousModifyAllTest:
282[info] - should expand an enormous function
283[info] ModifyAllOptimizedTest:
284[info] - should Have a correct number of copy calls with single focus
285[info] - should optimize number of copy calls 1
286[info] - should optimize number of copy calls 2
287[info] - should optimize number of copy calls 3
288[info] - should optimize number of copy calls 4
289[info] - should optimize number of copy calls 5
290[info] - should optimize number of copy calls 6
291[info] - should optimize number of each function delegates 1
292[info] - should optimize number of each function delegates 2
293[info] - should optimize number of each function delegates 3
294[info] ModifyAndTypeTest:
295[info] - should modify an & type object
296[info] - should modify an & type object 1
297[info] - should modify an & type object 2
298[info] - should modify an & type object 3
299[info] CustomModifyProxyTest:
300[info] - should correctly modify a class using a custom modify proxy method
301[info] ModifySelfThisTest:
302[info] - should modify an object even in presence of self alias
303[info] - should modify an object even in presence of self type
304[info] TupleModifyTest:
305[info] - should modify case classes using setTo
306[info] - should modify tuples using setTo
307[info] - should modify tuples using using
308[info] - should modify tuples using multiple modify
309[info] ModifyEachTest:
310[info] - should modify a single-nested optional case class field
311[info] - should modify a single-nested optional case class field (pimped)
312[info] - should modify multiple deeply-nested optional case class field
313[info] - should not modify an optional case class field if it is none
314[info] - should modify both lists and options
315[info] - should allow .each at the end
316[info] ModifySeqIndexTest:
317[info] - should modify a non-nested seq with case class item
318[info] - should modify a nested seq using index
319[info] - should modify a nested seq using index and each
320[info] - should not modify if given index does not exist
321[info] ModifyMapIndexTest:
322[info] - should modify a non-nested map with case class item
323[info] - should modify a non-nested sorted map with case class item
324[info] - should modify a non-nested hash map with case class item
325[info] - should modify a non-nested listed map with case class item
326[info] - should modify a nested map using index
327[info] - should not modify if there's no such element
328[info] ModifyWhenTest:
329[info] - should modify a field in a subtype
330[info] - should ignore subtypes other than the selected one
331[info] - should modify a Functor field in a subtype
332[info] - should modify a field in a subtype through a Functor
333[info] - should modify a field in a subtypes (parameterized)
334[info] - should ignore subtypes other than the selected one (parameterized)
335[info] ModifyAliasTest:
336[info] - should modify an object declared using type alias
337[info] - should modify a sealed hierarchy declared using type alias
338[info] ModifyMapAtTest:
339[info] - should modify a non-nested map with case class item
340[info] - should modify a non-nested map with atOrElse
341[info] - should modify a non-nested sorted map with case class item
342[info] - should modify a non-nested hash map with case class item
343[info] - should modify a non-nested listed map with case class item
344[info] - should modify a nested map using at
345[info] - should modify a nested map using atOrElse
346[info] - should modify a non-nested map using each
347[info] - should modify a non-nested sorted map using each
348[info] - should modify a non-nested hash map using each
349[info] - should modify a non-nested list map using each
350[info] - should throw an exception if there's no such element
351[info] - should modify a map using at with a derived class
352[info] LensTest:
353[info] - should create reusable lens of the given type
354[info] - should compose lens
355[info] CompileTimeTest:
356[info] - should not compile for too long in case of chained modify invocations
357[info] ModifyEnumTest:
358[info] - should modify a field in an enum case
359[info] - should modify a field in an enum case with extension method
360[info] ModifyEachWhereTest:
361[info] - should modify a single-nested optional case class field only if the condition returns true
362[info] - should modify a single-nested optional case class field (pimped) only if the condition returns true
363[info] - should modify be able to eachWhere a lambda
364[info] - should modify be able to eachWhere a lambda 1
365[info] - should allow referencing local variable
366[info] - should allow referencing local variable 1
367[info] - should not modify an optional case class field if it is none regardless of the condition
368[info] - should modify only those list elements where the condition returns true
369[info] - should allow .each at then end only if the condition returns true
370[info] ModifySimpleTest:
371[info] - should modify a single-nested case class field
372[info] - should modify a single-nested case class field using apply
373[info] - should modify a deeply-nested case class field
374[info] - should modify several fields
375[info] - should modify a case class field if the condition is true
376[info] - should leave a case class unchanged if the condition is false
377[info] - should modify polymorphic case class field
378[info] - should modify polymorphic case class field using apply
379[info] - should modify polymorphic case class field if condition is true
380[info] - should leave a polymorphic case class field if condition is false
381[info] ModifyPimpTest:
382[info] - should modify a field once
383[info] - should modify a deeply-nested case class field
384[info] - should modify several fields
385[info] - should modify polymorphic case class field
386[info] ModifyArrayIndexTest:
387[info] - should modify a non-nested array with case class item
388[info] - should modify a nested array using index
389[info] - should modify a nested array using index and each
390[info] - should not modify if given index does not exist
391[info] ModifyAtTest:
392[info] - should modify a non-nested list with case class item
393[info] - should modify a nested list using at
394[info] - should modify a nested list using at and each
395[info] - should modify both lists and options
396[info] - should throw an exception if there's no element at the given index
397[info] ModifyIndexTest:
398[info] - should modify a non-nested list with case class item
399[info] - should modify a nested list using index
400[info] - should modify a nested list using index and each
401[info] - should modify both lists and options
402[info] - should not modify if given index does not exist
403[info] ModifyOptionAtTest:
404[info] - should modify a Option with case class item
405[info] - should modify a Option in a case class hierarchy
406[info] - should crashes on missing key
407[info] ModifyAllOrderTest:
408[info] - should apply modifications in the correct order if child is first
409[info] - should apply modifications in the correct order if parent is first
410[info] - should apply modifications in the correct order: child, parent, child
411[info] - should apply modifications in the correct order: child, child, parent
412[info] - should apply modifications in the correct order on option: child, child, parent
413[info] - should apply modifications in the correct order on option: child, parent, child
414
415************************
416Build summary:
417[{
418 "module": "quicklens",
419 "compile": {"status": "ok", "tookMs": 8202, "warnings": 3, "errors": 0, "sourceVersion": "3.8"},
420 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
421 "test-compile": {"status": "ok", "tookMs": 15921, "warnings": 8, "errors": 0, "sourceVersion": "3.8"},
422 "test": {"status": "ok", "tookMs": 1002, "passed": 168, "failed": 0, "ignored": 0, "skipped": 0, "total": 168, "byFramework": [{"framework": "unknown", "stats": {"passed": 168, "failed": 0, "ignored": 0, "skipped": 0, "total": 168}}]},
423 "publish": {"status": "skipped", "tookMs": 0},
424 "metadata": {
425 "crossScalaVersions": ["2.12.20", "3.3.4"]
426}
427}]
428************************
429[success] Total time: 27 s, completed Jan 8, 2026, 1:28:11 AM
430[0JChecking patch project/plugins.sbt...
431Checking patch project/build.properties...
432Checking patch build.sbt...
433Applied patch project/plugins.sbt cleanly.
434Applied patch project/build.properties cleanly.
435Applied patch build.sbt cleanly.