Build Logs
softwaremill/quicklens • 3.8.0-RC5:2025-12-31
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-RC5
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-RC5"
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-RC5
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-RC5
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-RC5
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-RC5"
70"++3.8.0-RC5 -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-RC5 """{"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.5s.
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-RC5
90OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.15) in quicklensNative/crossScalaVersions
91OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in quicklensJS3/crossScalaVersions
92OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in quicklensJS3/crossScalaVersions
93OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in root/crossScalaVersions
94OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in root/crossScalaVersions
95OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.11.12) in quicklens2_11/crossScalaVersions
96OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.15) in quicklens/crossScalaVersions
97OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.15) in quicklensJS/crossScalaVersions
98OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in quicklens3/crossScalaVersions
99OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in quicklens3/crossScalaVersions
100OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in quicklensNative3/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in quicklensNative3/crossScalaVersions
102[info] set current project to root (in build file:/build/repo/)
103[info] Setting Scala version to 3.8.0-RC5 on 4 projects.
104[info] Switching Scala version on:
105[info] quicklensJS3 (3.8.0-RC5)
106[info] * root (3.8.0-RC5)
107[info] quicklens3 (3.8.0-RC5)
108[info] quicklensNative3 (3.8.0-RC5)
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 Dec 31, 2025, 8:58:22 PM
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] EnormousModifyAllTest:
208[info] - should expand an enormous function
209[info] ModifyOptionAtOrElseTest:
210[info] - should modify a Some
211[info] - should modify a None with default
212[info] - should modify a Option in a case class hierarchy
213[info] ExtensionCopyTest:
214[info] - should modify a simple class with an extension copy method
215[info] - should modify a simple class with an extension copy method in companion
216[info] - should modify a class with extension methods in companion
217[info] - should modify an opaque type with extension methods
218[info] SetToSimpleTest:
219[info] - should set a new value of a single-nested case class field
220[info] - should set a new value in a case class if the condition is true
221[info] - should leave a case class unchanged if the condition is false
222[info] - should set a new value in a case class if it is defined
223[info] - should leave a case class unchanged if the value is not defined
224[info] ModifyAllOrderTest:
225[info] - should apply modifications in the correct order if child is first
226[info] - should apply modifications in the correct order if parent is first
227[info] - should apply modifications in the correct order: child, parent, child
228[info] - should apply modifications in the correct order: child, child, parent
229[info] - should apply modifications in the correct order on option: child, child, parent
230[info] - should apply modifications in the correct order on option: child, parent, child
231[info] ModifyEitherTest:
232[info] - should modify a single-nested left case class field
233[info] - should modify a single-nested left case class field (pimped)
234[info] - should modify a single-nested right case class field
235[info] - should modify a single-nested right case class field (pimped)
236[info] - should modify multiple deeply-nested either case class fields
237[info] - should not modify left case class field if it is right
238[info] - should not modify right case class field if it is left
239[info] - should allow .eachLeft at then end
240[info] - should allow .eachRight at then end
241[info] LensTest:
242[info] - should create reusable lens of the given type
243[info] - should compose lens
244[info] CustomModifyProxyTest:
245[info] - should correctly modify a class using a custom modify proxy method
246[info] ModifyWhenTest:
247[info] - should modify a field in a subtype
248[info] - should ignore subtypes other than the selected one
249[info] - should modify a Functor field in a subtype
250[info] - should modify a field in a subtype through a Functor
251[info] - should modify a field in a subtypes (parameterized)
252[info] - should ignore subtypes other than the selected one (parameterized)
253[info] ModitySealedAbstractClass:
254[info] - should Modify abstract class hierarchy
255[info] ModifySelfThisTest:
256[info] - should modify an object even in presence of self alias
257[info] - should modify an object even in presence of self type
258[info] ModifyAliasTest:
259[info] - should modify an object declared using type alias
260[info] - should modify a sealed hierarchy declared using type alias
261[info] ModifyAtTest:
262[info] - should modify a non-nested list with case class item
263[info] - should modify a nested list using at
264[info] - should modify a nested list using at and each
265[info] - should modify both lists and options
266[info] - should throw an exception if there's no element at the given index
267[info] CompileTimeTest:
268[info] - should not compile for too long in case of chained modify invocations
269[info] RepeatedModifyTest:
270[info] - should properly handle repeated modify invocations for different fields
271[info] - should properly handle repeated modify invocations for the same field
272[info] ModifyMapIndexTest:
273[info] - should modify a non-nested map with case class item
274[info] - should modify a non-nested sorted map with case class item
275[info] - should modify a non-nested hash map with case class item
276[info] - should modify a non-nested listed map with case class item
277[info] - should modify a nested map using index
278[info] - should not modify if there's no such element
279[info] RepeatedModifyAllTest:
280[info] - should expand a very long repeated function
281[info] - should expand a very long repeated function correct number of times
282[info] TupleModifyTest:
283[info] - should modify case classes using setTo
284[info] - should modify tuples using setTo
285[info] - should modify tuples using using
286[info] - should modify tuples using multiple modify
287[info] ModifyArrayIndexTest:
288[info] - should modify a non-nested array with case class item
289[info] - should modify a nested array using index
290[info] - should modify a nested array using index and each
291[info] - should not modify if given index does not exist
292[info] ModifyAndTypeTest:
293[info] - should modify an & type object
294[info] - should modify an & type object 1
295[info] - should modify an & type object 2
296[info] - should modify an & type object 3
297[info] ModifySeqIndexTest:
298[info] - should modify a non-nested seq with case class item
299[info] - should modify a nested seq using index
300[info] - should modify a nested seq using index and each
301[info] - should not modify if given index does not exist
302[info] ModifyIndexedSeqIndexTest:
303[info] - should modify a non-nested indexed seq with case class item
304[info] - should modify a nested indexed seq using index
305[info] - should modify a nested indexed seq using index and each
306[info] - should not modify if given index does not exist
307[info] ModifyOptionIndexTest:
308[info] - should modify a Option with case class item
309[info] - should modify a Option in a case class hierarchy
310[info] - should not modify on missing key
311[info] ModifyEachTest:
312[info] - should modify a single-nested optional case class field
313[info] - should modify a single-nested optional case class field (pimped)
314[info] - should modify multiple deeply-nested optional case class field
315[info] - should not modify an optional case class field if it is none
316[info] - should modify both lists and options
317[info] - should allow .each at the end
318[info] ModifyLazyTest:
319[info] - should modify a single-nested case class field
320[info] - should modify a deeply-nested case class field
321[info] - should modify several fields
322[info] - should modify a case class field if the condition is true
323[info] - should leave a case class unchanged if the condition is flase
324[info] ModifyAllOptimizedTest:
325[info] - should Have a correct number of copy calls with single focus
326[info] - should optimize number of copy calls 1
327[info] - should optimize number of copy calls 2
328[info] - should optimize number of copy calls 3
329[info] - should optimize number of copy calls 4
330[info] - should optimize number of copy calls 5
331[info] - should optimize number of copy calls 6
332[info] - should optimize number of each function delegates 1
333[info] - should optimize number of each function delegates 2
334[info] - should optimize number of each function delegates 3
335[info] ModifyIndexTest:
336[info] - should modify a non-nested list with case class item
337[info] - should modify a nested list using index
338[info] - should modify a nested list using index and each
339[info] - should modify both lists and options
340[info] - should not modify if given index does not exist
341[info] LiteralTypeTest:
342[info] - should modify a literal type field with an explicit parameter
343[info] - should modify a literal type field as a type parameter with an explicit parameter
344[info] - should not compile for a wrong literal type
345[info] ModifyOptionAtTest:
346[info] - should modify a Option with case class item
347[info] - should modify a Option in a case class hierarchy
348[info] - should crashes on missing key
349[info] LensLazyTest:
350[info] - should create reusable lens of the given type
351[info] - should compose lens
352[info] ModifyPimpTest:
353[info] - should modify a field once
354[info] - should modify a deeply-nested case class field
355[info] - should modify several fields
356[info] - should modify polymorphic case class field
357[info] HugeModifyTest:
358[info] - should expand a huge function
359[info] ModifyMapAtTest:
360[info] - should modify a non-nested map with case class item
361[info] - should modify a non-nested map with atOrElse
362[info] - should modify a non-nested sorted map with case class item
363[info] - should modify a non-nested hash map with case class item
364[info] - should modify a non-nested listed map with case class item
365[info] - should modify a nested map using at
366[info] - should modify a nested map using atOrElse
367[info] - should modify a non-nested map using each
368[info] - should modify a non-nested sorted map using each
369[info] - should modify a non-nested hash map using each
370[info] - should modify a non-nested list map using each
371[info] - should throw an exception if there's no such element
372[info] - should modify a map using at with a derived class
373[info] SealedTest:
374[info] - should modify a field in a sealed trait
375[info] - should modify a field in a sealed trait through a Functor
376[info] - should modify a Functor field in a sealed trait
377[info] - should modify a field in a hierarchy of sealed traits
378[info] - should modify a list of pets from the example
379[info] ModifySimpleTest:
380[info] - should modify a single-nested case class field
381[info] - should modify a single-nested case class field using apply
382[info] - should modify a deeply-nested case class field
383[info] - should modify several fields
384[info] - should modify a case class field if the condition is true
385[info] - should leave a case class unchanged if the condition is false
386[info] - should modify polymorphic case class field
387[info] - should modify polymorphic case class field using apply
388[info] - should modify polymorphic case class field if condition is true
389[info] - should leave a polymorphic case class field if condition is false
390[info] ModifyEnumTest:
391[info] - should modify a field in an enum case
392[info] - should modify a field in an enum case with extension method
393[info] ModifyEachWhereTest:
394[info] - should modify a single-nested optional case class field only if the condition returns true
395[info] - should modify a single-nested optional case class field (pimped) only if the condition returns true
396[info] - should modify be able to eachWhere a lambda
397[info] - should modify be able to eachWhere a lambda 1
398[info] - should allow referencing local variable
399[info] - should allow referencing local variable 1
400[info] - should not modify an optional case class field if it is none regardless of the condition
401[info] - should modify only those list elements where the condition returns true
402[info] - should allow .each at then end only if the condition returns true
403[info] SecondParamListTest:
404[info] - should modify an object with second implicit param list
405[info] - should should give a meaningful error for an object with more than one non-implicit param list
406[info] ExplicitCopyTest:
407[info] - should modify a class with an explicit copy method
408[info] - should modify a class that has a method with the same name as a field
409[info] - should modify a case class with an additional explicit copy
410[info] - should modify a case class with an ambiguous additional explicit copy
411[info] - should modify a class with two explicit copy methods
412[info] - should modify a case class with an ambiguous additional explicit copy and pick the synthetic one first
413[info] - should not compile when modifying a field which is not present as a copy parameter
414
415************************
416Build summary:
417[{
418 "module": "quicklens",
419 "compile": {"status": "ok", "tookMs": 8059, "warnings": 3, "errors": 0, "sourceVersion": "3.8"},
420 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
421 "test-compile": {"status": "ok", "tookMs": 15510, "warnings": 8, "errors": 0, "sourceVersion": "3.8"},
422 "test": {"status": "ok", "tookMs": 895, "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: 26 s, completed Dec 31, 2025, 8:58:48 PM
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.