Build Logs

katrix/perspective • 3.8.0-RC2:2025-11-28

Errors

0

Warnings

50

Total Lines

350

1##################################
2Clonning https://github.com/katrix/perspective.git into /build/repo using revision v0.3.0
3##################################
4Note: switching to '5a8020dfb8f22de90578324e5b7bd0c1a511e360'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21----
22Preparing build for 3.8.0-RC2
23Scala binary version found: 3.8
24Implicitly using source version 3.8
25Scala binary version found: 3.8
26Implicitly using source version 3.8
27Would try to apply common scalacOption (best-effort, sbt/mill only):
28Append: ,REQUIRE:-source:3.8
29Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
30
31Try apply source patch:
32Path: dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala
33Pattern: test("InlineHKDSumGeneric.nameToIndex is correct") {
34Replacement: test("InlineHKDSumGeneric.nameToIndex is correct") {
35 import instance.{indexK, mapConst}
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (21))
38Compiled project (Scala 3.7.3, JVM (21))
39Successfully applied pattern 'test("InlineHKDSumGeneric.nameToIndex is correct") {' in dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala
40----
41Starting build for 3.8.0-RC2
42Execute tests: true
43sbt project found:
44Sbt version 1.9.7
45 is not supported, minimal supported version is 1.11.5
46Enforcing usage of sbt in version 1.11.5
47No prepare script found for project katrix/perspective
48##################################
49Scala version: 3.8.0-RC2
50Targets: net.katsstuff%perspective net.katsstuff%perspective-derivation
51Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala","pattern":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {","replaceWith":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {\n import instance.{indexK, mapConst}\n"}]}
52##################################
53Using extra scalacOptions: ,REQUIRE:-source:3.8
54Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
55[sbt_options] declare -a sbt_options=()
56[process_args] java_version = '21'
57[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21/rt.jar'
58# Executing command line:
59java
60-Dfile.encoding=UTF-8
61-Dcommunitybuild.scala=3.8.0-RC2
62-Dcommunitybuild.project.dependencies.add=
63-Xmx7G
64-Xms4G
65-Xss8M
66-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
67-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21
68-jar
69/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
70"setCrossScalaVersions 3.8.0-RC2"
71"++3.8.0-RC2 -v"
72"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
73"set every credentials := Nil"
74"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
75"removeScalacOptionsStartingWith -P:wartremover"
76
77moduleMappings
78"runBuild 3.8.0-RC2 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala","pattern":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {","replaceWith":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {\n import instance.{indexK, mapConst}\n"}]}""" net.katsstuff%perspective net.katsstuff%perspective-derivation"
79
80[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 21)
81[info] loading settings for project repo-build from akka.sbt, plugins.sbt, unidoc.sbt...
82[info] loading project definition from /build/repo/project
83[info] loading settings for project perspectiveRoot from build.sbt...
84[info] resolving key references (14913 settings) ...
85[info] set current project to perspectiveRoot (in build file:/build/repo/)
86Execute setCrossScalaVersions: 3.8.0-RC2
87OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveExamples/crossScalaVersions
88OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveJVM/crossScalaVersions
89OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveDerivationJVM/crossScalaVersions
90OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC2 in dottyPerspectiveJVM/crossScalaVersions
91OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC2) in dottyPerspectiveJVM/crossScalaVersions
92OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC2 in dottyPerspectiveJS/crossScalaVersions
93OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC2) in dottyPerspectiveJS/crossScalaVersions
94OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC2 in docs/crossScalaVersions
95OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC2) in docs/crossScalaVersions
96OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveJS/crossScalaVersions
97OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveMacrosJVM/crossScalaVersions
98OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC2 in dottyPerspectiveDerivationJS/crossScalaVersions
99OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC2) in dottyPerspectiveDerivationJS/crossScalaVersions
100OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC2 in dottyPerspectiveExamples/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC2) in dottyPerspectiveExamples/crossScalaVersions
102OpenCB::Changing crossVersion 3.3.3 -> 3.8.0-RC2 in dottyPerspectiveDerivationJVM/crossScalaVersions
103OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC2) in dottyPerspectiveDerivationJVM/crossScalaVersions
104OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveMacrosJS/crossScalaVersions
105OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.12) in scala2PerspectiveDerivationJS/crossScalaVersions
106[info] set current project to perspectiveRoot (in build file:/build/repo/)
107[info] Setting Scala version to 3.8.0-RC2 on 6 projects.
108[info] Switching Scala version on:
109[info] dottyPerspectiveExamples (3.8.0-RC2)
110[info] dottyPerspectiveJS (3.8.0-RC2)
111[info] docs (3.8.0-RC2)
112[info] dottyPerspectiveDerivationJS (3.8.0-RC2)
113[info] dottyPerspectiveJVM (3.8.0-RC2)
114[info] dottyPerspectiveDerivationJVM (3.8.0-RC2)
115[info] Excluding projects:
116[info] scala2PerspectiveDerivationJS (2.13.12)
117[info] scala2PerspectiveDerivationJVM (2.13.12)
118[info] perspectiveDotty (2.12.20)
119[info] scala2PerspectiveJVM (2.13.12)
120[info] * perspectiveRoot (2.12.20)
121[info] perspectiveScala2 (2.12.20)
122[info] scala2PerspectiveMacrosJVM (2.13.12)
123[info] scala2PerspectiveMacrosJS (2.13.12)
124[info] scala2PerspectiveExamples (2.13.12)
125[info] scala2PerspectiveJS (2.13.12)
126[info] Reapplying settings...
127[info] set current project to perspectiveRoot (in build file:/build/repo/)
128Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
129[info] Reapplying settings...
130[info] set current project to perspectiveRoot (in build file:/build/repo/)
131[info] Defining Global / credentials, credentials and 14 others.
132[info] The new values will be used by Global / pgpSelectPassphrase, Global / pgpSigningKey and 79 others.
133[info] Run `last` for details.
134[info] Reapplying settings...
135[info] set current project to perspectiveRoot (in build file:/build/repo/)
136Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
137[info] Reapplying settings...
138OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
139
140 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
141 Did you mean perspectiveScala2 / allExcludeDependencies ?
142 , retry without global scopes
143[info] Reapplying settings...
144[info] set current project to perspectiveRoot (in build file:/build/repo/)
145Execute removeScalacOptionsStartingWith: -P:wartremover
146[info] Reapplying settings...
147[info] set current project to perspectiveRoot (in build file:/build/repo/)
148[success] Total time: 0 s, completed Nov 28, 2025, 2:57:23 PM
149Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala","pattern":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {","replaceWith":"test(\"InlineHKDSumGeneric.nameToIndex is correct\") {\n import instance.{indexK, mapConst}\n"}]}
150Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
151Starting build...
152Projects: Set(dottyPerspectiveJVM, dottyPerspectiveDerivationJVM)
153Starting build for ProjectRef(file:/build/repo/,dottyPerspectiveJVM) (perspective)... [0/2]
154OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
155OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
156Compile scalacOptions: -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
157[info] compiling 19 Scala sources to /build/repo/dotty/perspective/.jvm/target/scala-3.8.0-RC2/classes ...
158[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
159[warn] one warning found
160[info] done compiling
161Starting build for ProjectRef(file:/build/repo/,dottyPerspectiveDerivationJVM) (perspective-derivation)... [1/2]
162Compile scalacOptions: -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
163[info] compiling 9 Scala sources to /build/repo/dotty/derivation/.jvm/target/scala-3.8.0-RC2/classes ...
164[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
165[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/main/scala/perspective/derivation/exprHkdGeneric.scala:160:10
166[warn] 160 | new TypeLength[elemTypes] {
167[warn] | ^
168[warn] | New anonymous class definition will be duplicated at each inline site
169[warn] |
170[warn] | longer explanation available when compiling with `-explain`
171[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/main/scala/perspective/derivation/exprHkdGeneric.scala:586:10
172[warn] 586 | new TypeLength[elemTypes] {
173[warn] | ^
174[warn] | New anonymous class definition will be duplicated at each inline site
175[warn] |
176[warn] | longer explanation available when compiling with `-explain`
177[warn] three warnings found
178[info] done compiling
179[info] compiling 13 Scala sources to /build/repo/dotty/derivation/.jvm/target/scala-3.8.0-RC2/test-classes ...
180[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
181[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/test/scala/perspective/derivation/InlineCodecTests.scala:21:10
182[warn] 21 | new PerspectiveInlineDecoder[A]:
183[warn] | ^
184[warn] | New anonymous class definition will be duplicated at each inline site
185[warn] |
186[warn] | longer explanation available when compiling with `-explain`
187[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/test/scala/perspective/derivation/InlineCodecTests.scala:46:10
188[warn] 46 | new PerspectiveInlineDecoder[A]:
189[warn] | ^
190[warn] | New anonymous class definition will be duplicated at each inline site
191[warn] |
192[warn] | longer explanation available when compiling with `-explain`
193[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/test/scala/perspective/derivation/InlineCodecTests.scala:78:10
194[warn] 78 | new PerspectiveInlineEncoder[A]:
195[warn] | ^
196[warn] | New anonymous class definition will be duplicated at each inline site
197[warn] |
198[warn] | longer explanation available when compiling with `-explain`
199[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/test/scala/perspective/derivation/InlineCodecTests.scala:104:10
200[warn] 104 | new PerspectiveInlineEncoder[A]:
201[warn] | ^
202[warn] | New anonymous class definition will be duplicated at each inline site
203[warn] |
204[warn] | longer explanation available when compiling with `-explain`
205[warn] -- [E197] Potential Issue Warning: /build/repo/dotty/derivation/src/test/scala/perspective/derivation/InlineUnrollingCodecTests.scala:21:10
206[warn] 21 | new PerspectiveInlineEncoder[A]:
207[warn] | ^
208[warn] | New anonymous class definition will be duplicated at each inline site
209[warn] |
210[warn] | longer explanation available when compiling with `-explain`
211[warn] 6 warnings found
212[warn] 6 warnings found
213[info] done compiling
214[info] InlineUnrollingCodecTests:
215[info] InlineCodecTests:
216[info] - Foo as json
217[info] - Foo from json
218[info] - Bar as json
219[info] - Bar from json
220[info] ExprCodecTests:
221[info] - Foo as json
222[info] - Foo from json
223[info] HKDSumGenericTests:
224[info] - HKDSumGeneric.from(to(_)) roundtrip is unchanged
225[info] - HKDSumGeneric.names is correct
226[info] - HKDSumGeneric.typeName is correct
227[info] - HKDSumGeneric.nameToIndex is correct
228[info] - HKDSumGeneric.genFromTuple(tupleFromGen(_)) roundtrip is unchanged
229[info] - HKDSumGeneric.Gen[TC] is correct
230[info] - HKDSumGeneric.tabulateFoldLeft corresponds to HKDSumGeneric.traverse.foldLeftK(instance.representable.indicesK)
231[info] - HKDSumGeneric.tabulateTraverseK corresponds to HKDSumGeneric.traverse.traverseK(instance.representable.indicesK)
232[info] - HKDSumGeneric.tabulateTraverseKOption corresponds to HKDSumGeneric.traverse.traverseK(instance.representable.indicesK)
233[info] - HKDSumGeneric.tabulateTraverseKEither corresponds to HKDSumGeneric.traverse.traverseK(instance.representable.indicesK)
234[info] HelpersTests:
235[info] - constValueTupleOptimized correct
236[info] - summonAllOptimized correct
237[info] HKDProductGenericTests:
238[info] - HKDProductGeneric.from(to(_)) roundtrip is unchanged
239[info] - HKDProductGeneric.names is correct
240[info] - HKDProductGeneric.typeName is correct
241[info] - HKDProductGeneric.nameToIndex is correct
242[info] - HKDProductGeneric.genFromTuple(tupleFromGen(_)) roundtrip is unchanged
243[info] - HKDProductGeneric.Gen[TC] is correct
244[info] - HKDProductGeneric.productElementId(a)(idx) corresponds to HKDProductGeneric.indexK(HKDProductGeneric.to(a))(idx)
245[info] - HKDProductGeneric.tabulateFoldLeft corresponds to HKDProductGeneric.traverse.foldLeftK(instance.representable.indicesK)
246[info] - HKDProductGeneric.tabulateTraverseK corresponds to HKDProductGeneric.traverse.traverseK(instance.representable.indicesK)
247[info] - HKDProductGeneric.tabulateTraverseKOption corresponds to HKDProductGeneric.traverse.traverseK(instance.representable.indicesK)
248[info] - HKDProductGeneric.tabulateTraverseKEither corresponds to HKDProductGeneric.traverse.traverseK(instance.representable.indicesK)
249[info] CodecTests:
250[info] - Foo as json
251[info] - Foo from json
252[info] - Bar as json
253[info] - Bar from json
254[info] InlineHKDProductGenericTests:
255[info] - InlineHKDProductGeneric.from(to(_)) roundtrip is unchanged
256[info] - InlineHKDProductGeneric.names is correct
257[info] - InlineHKDProductGeneric.typeName is correct
258[info] - InlineHKDProductGeneric.nameToIndex is correct
259[info] - InlineHKDProductGeneric.genFromTuple(tupleFromGen(_)) roundtrip is unchanged
260[info] - InlineHKDProductGeneric.Gen[TC] is correct
261[info] - InlineHKDProductGeneric.mapK corresponds to HKDProductGeneric.mapK
262[info] - InlineHKDProductGeneric.map2K corresponds to HKDProductGeneric.map2K
263[info] - InlineHKDProductGeneric.unitK corresponds to HKDProductGeneric.unitK
264[info] - InlineHKDProductGeneric.names corresponds to HKDProductGeneric.names
265[info] - InlineHKDProductGeneric.foldLeftK corresponds to HKDProductGeneric.foldLeftK
266[info] - InlineHKDProductGeneric.traverseK[Id] corresponds to HKDProductGeneric.traverseK[Id]
267[info] - InlineHKDProductGeneric.traverseK[Either(Right)] corresponds to HKDProductGeneric.traverseK[Either(Right)]
268[info] - InlineHKDProductGeneric.traverseK[Either(Left)] corresponds to HKDProductGeneric.traverseK[Either(Left)]
269[info] - InlineHKDProductGeneric.traverseK[Option(Some)] corresponds to HKDProductGeneric.traverseK[Option(Some)]
270[info] - InlineHKDProductGeneric.traverseK[Option(None)] corresponds to HKDProductGeneric.traverseK[Option(None)]
271[info] - InlineHKDProductGeneric.cosequenceK corresponds to HKDProductGeneric.cosequenceK
272[info] - InlineHKDProductGeneric.flatMapK corresponds to HKDProductGeneric.flatMapK
273[info] - InlineHKDProductGeneric.tabulateK corresponds to HKDProductGeneric.tabulateK
274[info] - InlineHKDProductGeneric.tabulateFoldLeft corresponds to HKDProductGeneric.indicesK.tabulateK
275[info] - InlineHKDProductGeneric.tabulateTraverseK[Id] corresponds to HKDProductGeneric.indicesK.traverseK[Id]
276[info] - InlineHKDProductGeneric.tabulateTraverseK[Either(Right)] corresponds to HKDProductGeneric.indicesK.traverseK[Either(Right)]
277[info] - InlineHKDProductGeneric.tabulateTraverseK[Either(Left)] corresponds to HKDProductGeneric.indicesK.traverseK[Either(Left)]
278[info] - InlineHKDProductGeneric.tabulateTraverseK[Option(Some)] corresponds to HKDProductGeneric.indicesK.traverseK[Option(Some)]
279[info] - InlineHKDProductGeneric.tabulateTraverseK[Option(None)] corresponds to HKDProductGeneric.indicesK.traverseK[Option(None)]
280[info] - InlineHKDProductGeneric.productElementId(a)(idx) corresponds to InlineHKDProductGeneric.indexK(InlineHKDProductGeneric.to(a))(idx)
281[info] InlineHKDSumGenericTests:
282[info] - InlineHKDSumGeneric.from(to(_)) roundtrip is unchanged
283[info] - InlineHKDSumGeneric.names is correct
284[info] - InlineHKDSumGeneric.typeName is correct
285[info] - InlineHKDSumGeneric.nameToIndex is correct
286[info] - InlineHKDSumGeneric.genFromTuple(tupleFromGen(_)) roundtrip is unchanged
287[info] - InlineHKDSumGeneric.Gen[TC] is correct
288[info] - InlineHKDSumGeneric.mapK corresponds to HKDSumGeneric.mapK
289[info] - InlineHKDSumGeneric.map2K corresponds to HKDSumGeneric.map2K
290[info] - InlineHKDSumGeneric.unitK corresponds to HKDSumGeneric.unitK
291[info] - InlineHKDSumGeneric.names corresponds to HKDSumGeneric.names
292[info] - InlineHKDSumGeneric.foldLeftK corresponds to HKDSumGeneric.foldLeftK
293[info] - InlineHKDSumGeneric.traverseK[Id] corresponds to HKDSumGeneric.traverseK[Id]
294[info] - InlineHKDSumGeneric.traverseK[Either(Right)] corresponds to HKDSumGeneric.traverseK[Either(Right)]
295[info] - InlineHKDSumGeneric.traverseK[Either(Left)] corresponds to HKDSumGeneric.traverseK[Either(Left)]
296[info] - InlineHKDSumGeneric.traverseK[Option(Some)] corresponds to HKDSumGeneric.traverseK[Option(Some)]
297[info] - InlineHKDSumGeneric.traverseK[Option(None)] corresponds to HKDSumGeneric.traverseK[Option(None)]
298[info] - InlineHKDSumGeneric.cosequenceK corresponds to HKDSumGeneric.cosequenceK
299[info] - InlineHKDSumGeneric.flatMapK corresponds to HKDSumGeneric.flatMapK
300[info] - InlineHKDSumGeneric.tabulateK corresponds to HKDSumGeneric.tabulateK
301[info] - InlineHKDSumGeneric.tabulateFoldLeft corresponds to HKDSumGeneric.indicesK.tabulateK
302[info] - InlineHKDSumGeneric.tabulateTraverseK[Id] corresponds to HKDSumGeneric.indicesK.traverseK[Id]
303[info] - InlineHKDSumGeneric.tabulateTraverseK[Either(Right)] corresponds to HKDSumGeneric.indicesK.traverseK[Either(Right)]
304[info] - InlineHKDSumGeneric.tabulateTraverseK[Either(Left)] corresponds to HKDSumGeneric.indicesK.traverseK[Either(Left)]
305[info] - InlineHKDSumGeneric.tabulateTraverseK[Option(Some)] corresponds to HKDSumGeneric.indicesK.traverseK[Option(Some)]
306[info] - InlineHKDSumGeneric.tabulateTraverseK[Option(None)] corresponds to HKDSumGeneric.indicesK.traverseK[Option(None)]
307[info] ProductKTests:
308[info] - ProductK.tabulateK indices correct
309[info] - ProductK.tabulateK corresponds to List.tabulate
310[info] - ProductK instances are correct
311[info] - ProductK.foldLeft corresponds to List.foldLeft
312[info] - ProductK.traverseK corresponds to List.traverse
313[info] - ProductK.traverseK order corresponds to List.traverse order
314
315************************
316Build summary:
317[{
318 "module": "perspective",
319 "compile": {"status": "ok", "tookMs": 11997, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
320 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
321 "test-compile": {"status": "ok", "tookMs": 199, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
322 "test": {"status": "ok", "tookMs": 120, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
323 "publish": {"status": "skipped", "tookMs": 0},
324 "metadata": {
325 "crossScalaVersions": ["2.12.20"]
326}
327},{
328 "module": "perspective-derivation",
329 "compile": {"status": "ok", "tookMs": 9121, "warnings": 2, "errors": 0, "sourceVersion": "3.8"},
330 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
331 "test-compile": {"status": "ok", "tookMs": 9924, "warnings": 5, "errors": 0, "sourceVersion": "3.8"},
332 "test": {"status": "ok", "tookMs": 914, "passed": 90, "failed": 0, "ignored": 0, "skipped": 0, "total": 90, "byFramework": [{"framework": "unknown", "stats": {"passed": 90, "failed": 0, "ignored": 0, "skipped": 0, "total": 90}}]},
333 "publish": {"status": "skipped", "tookMs": 0},
334 "metadata": {
335 "crossScalaVersions": ["2.12.20"]
336}
337}]
338************************
339[success] Total time: 52 s, completed Nov 28, 2025, 2:58:14 PM
340[0J/build/build.patch:32: trailing whitespace.
341sbt.version=1.9.7
342Checking patch project/plugins.sbt...
343Checking patch project/build.properties...
344Checking patch dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala...
345Checking patch build.sbt...
346Applied patch project/plugins.sbt cleanly.
347Applied patch project/build.properties cleanly.
348Applied patch dotty/derivation/src/test/scala/perspective/derivation/InlineHKDSumGenericTests.scala cleanly.
349Applied patch build.sbt cleanly.
350warning: 1 line adds whitespace errors.