Build Logs
fd4s/vulcan • 3.8.0-RC3:2025-12-04
Errors
3
Warnings
12
Total Lines
893
1##################################
2Clonning https://github.com/fd4s/vulcan.git into /build/repo using revision 1.12.0
3##################################
4Note: switching to '99ad6c55a2c14e46e1e517e3e15677962e450553'.
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.5
22----
23Preparing build for 3.8.0-RC3
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.5"
35Replacement: val scala3 = "3.8.0-RC3"
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.5"' in build.sbt
40----
41Starting build for 3.8.0-RC3
42Execute tests: true
43sbt project found:
44Sbt version 1.10.11 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 fd4s/vulcan
47##################################
48Scala version: 3.8.0-RC3
49Targets: com.github.fd4s%vulcan com.github.fd4s%vulcan-generic com.github.fd4s%vulcan-refined
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.5\"","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-RC3
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-RC3"
70"++3.8.0-RC3 -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-RC3 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.5\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" com.github.fd4s%vulcan com.github.fd4s%vulcan-generic com.github.fd4s%vulcan-refined"
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 9.528s.
85[info] done compiling
86[info] loading settings for project vulcan from build.sbt...
87[info] set current project to vulcan (in build file:/build/repo/)
88Execute setCrossScalaVersions: 3.8.0-RC3
89OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in core/crossScalaVersions
90OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in generic/crossScalaVersions
91OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in refined/crossScalaVersions
92[info] set current project to vulcan (in build file:/build/repo/)
93[info] Setting Scala version to 3.8.0-RC3 on 3 projects.
94[info] Switching Scala version on:
95[info] refined (2.12.20, 2.13.16, 3.8.0-RC3)
96[info] generic (2.12.20, 2.13.16, 3.8.0-RC3)
97[info] core (2.12.20, 2.13.16, 3.8.0-RC3)
98[info] Excluding projects:
99[info] docs (2.13.16)
100[info] enumeratum (2.12.20, 2.13.16)
101[info] * vulcan (2.12.20, 2.13.16)
102[info] Reapplying settings...
103[info] set current project to vulcan (in build file:/build/repo/)
104Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
105[info] Reapplying settings...
106[info] set current project to vulcan (in build file:/build/repo/)
107[info] Defining Global / credentials, core / credentials and 4 others.
108[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 47 others.
109[info] Run `last` for details.
110[info] Reapplying settings...
111[info] set current project to vulcan (in build file:/build/repo/)
112Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
113[info] Reapplying settings...
114OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
115
116 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
117 Did you mean enumeratum / allExcludeDependencies ?
118 , retry without global scopes
119[info] Reapplying settings...
120[info] set current project to vulcan (in build file:/build/repo/)
121Execute removeScalacOptionsStartingWith: -P:wartremover
122[info] Reapplying settings...
123[info] set current project to vulcan (in build file:/build/repo/)
124[success] Total time: 0 s, completed Dec 4, 2025, 2:28:46 PM
125Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.5\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
126Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
127Starting build...
128Projects: Set(core, generic, refined)
129Starting build for ProjectRef(file:/build/repo/,core) (vulcan)... [0/3]
130OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
131OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
132OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
133OpenCB::Filter out '-Xfatal-warnings', matches setting pattern '^-?-Xfatal-warnings'
134Compile scalacOptions: -encoding, UTF-8, -unchecked, -language:implicitConversions, -Ykind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
135[info] compiling 12 Scala sources to /build/repo/modules/core/target/scala-3.8.0-RC3/classes ...
136[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
137[warn] one warning found
138[info] done compiling
139[info] compiling 23 Scala sources to /build/repo/modules/core/target/scala-3.8.0-RC3/test-classes ...
140[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
141[warn] one warning found
142[info] done compiling
143[info] RoundtripSpec:
144[info] BigDecimal
145[info] - roundtrip (707 milliseconds)
146[info] Boolean
147[info] - roundtrip (12 milliseconds)
148[info] Byte
149[info] - roundtrip (16 milliseconds)
150[info] Array[Byte]
151[info] - roundtrip (29 milliseconds)
152[info] Chain
153[info] - roundtrip (64 milliseconds)
154[info] Char
155[info] - roundtrip (9 milliseconds)
156[info] Double
157[info] - roundtrip (13 milliseconds)
158[info] Enum
159[info] - roundtrip (72 milliseconds)
160[info] Fixed
161[info] - roundtrip (17 milliseconds)
162[info] Float
163[info] - roundtrip (21 milliseconds)
164[info] Instant
165[info] - roundtrip (9 milliseconds)
166[info] Int
167[info] - roundtrip (5 milliseconds)
168[info] List
169[info] - roundtrip (24 milliseconds)
170[info] LocalDate
171[info] - roundtrip (8 milliseconds)
172[info] Long
173[info] - roundtrip (4 milliseconds)
174[info] Map
175[info] - roundtrip (92 milliseconds)
176[info] NonEmptyChain
177[info] - roundtrip (12 milliseconds)
178[info] NonEmptyList
179[info] - roundtrip (25 milliseconds)
180[info] NonEmptySet
181[info] - roundtrip (34 milliseconds)
182[info] NonEmptyVector
183[info] - roundtrip (87 milliseconds)
184[info] Option
185[info] - roundtrip (19 milliseconds)
186[info] Record
187[info] - roundtrip (81 milliseconds)
188[info] Seq
189[info] - roundtrip (10 milliseconds)
190[info] Set
191[info] - roundtrip (21 milliseconds)
192[info] Short
193[info] - roundtrip (5 milliseconds)
194[info] String
195[info] - roundtrip (4 milliseconds)
196[info] UUID
197[info] - roundtrip (10 milliseconds)
198[info] Union
199[info] - roundtrip (33 milliseconds)
200[info] Unit
201[info] - roundtrip (4 milliseconds)
202[info] Vector
203[info] - roundtrip (6 milliseconds)
204[info] BaseSpec:
205[info] CodecSpec:
206[info] Codec
207[info] boolean
208[info] schema
209[info] - should be encoded as boolean (0 milliseconds)
210[info] encode
211[info] - should encode as boolean (9 milliseconds)
212[info] decode
213[info] - should error if schema is not boolean (1 millisecond)
214[info] - should error if value is not boolean (1 millisecond)
215[info] - should error if value is null (0 milliseconds)
216[info] - should decode as Boolean (1 millisecond)
217[info] byte
218[info] schema
219[info] - should be encoded as int (0 milliseconds)
220[info] encode
221[info] - should encode as int (1 millisecond)
222[info] decode
223[info] - should error if schema is not int (1 millisecond)
224[info] - should error if value is not int (0 milliseconds)
225[info] - should error if int value is not byte (5 milliseconds)
226[info] - should decode as byte (1 millisecond)
227[info] bytes
228[info] schema
229[info] - should be encoded as bytes (0 milliseconds)
230[info] encode
231[info] - should encode as bytes (1 millisecond)
232[info] decode
233[info] - should error on schema other than bytes or string (0 milliseconds)
234[info] - should error if value is not ByteBuffer (0 milliseconds)
235[info] - should decode string as bytes (4 milliseconds)
236[info] - should decode bytes as bytes (1 millisecond)
237[info] chain
238[info] schema
239[info] - should be encoded as array (1 millisecond)
240[info] encode
241[info] - should encode as java list using encoder for underlying type (0 milliseconds)
242[info] decode
243[info] - should error if schema is not array (0 milliseconds)
244[info] - should error if value is not collection (0 milliseconds)
245[info] - should decode as Chain (0 milliseconds)
246[info] char
247[info] schema
248[info] - should be encoded as string (0 milliseconds)
249[info] encode
250[info] - should encode as utf8 (0 milliseconds)
251[info] decode
252[info] - should error if utf8 value is empty (1 millisecond)
253[info] - should error if utf8 value has more than 1 char (1 millisecond)
254[info] decimal
255[info] schema
256[info] - should be encoded as bytes with logical type decimal (9 milliseconds)
257[info] - should capture errors on invalid precision and scale (2 milliseconds)
258[info] encode
259[info] - should error if scale is different in schema (3 milliseconds)
260[info] - should error if precision exceeds schema precision (0 milliseconds)
261[info] - should encode as bytes (1 millisecond)
262[info] decode
263[info] - should error if schema is not bytes (0 milliseconds)
264[info] - should error if value is not byte buffer (1 millisecond)
265[info] - should error if logical type is missing (1 millisecond)
266[info] - should error if logical type is not decimal (1 millisecond)
267[info] - should error if precision exceeds schema precision (1 millisecond)
268[info] - should decode bytes (0 milliseconds)
269[info] decode
270[info] - should decode using codec for type (2 milliseconds)
271[info] double
272[info] schema
273[info] - should be encoded as double (0 milliseconds)
274[info] encode
275[info] - should encode as double (0 milliseconds)
276[info] decode
277[info] - should error if schema is not double or promotable to double (0 milliseconds)
278[info] - should error if value is not double or promotable to double (0 milliseconds)
279[info] - should decode Float as Double (0 milliseconds)
280[info] - should decode Int as Double (1 millisecond)
281[info] - should decode Long as Double (0 milliseconds)
282[info] - should decode Double as Double (1 millisecond)
283[info] either
284[info] schema
285[info] - should be encoded as union (1 millisecond)
286[info] encode
287[info] - should encode left using left schema (1 millisecond)
288[info] - should encode right using right schema (0 milliseconds)
289[info] decode
290[info] - should error if schema type not in union (1 millisecond)
291[info] - should decode left value as left (1 millisecond)
292[info] - should decode right value as right (1 millisecond)
293[info] encode
294[info] - should encode using codec for type (1 millisecond)
295[info] enum
296[info] schema
297[info] - should have expected schema (1 millisecond)
298[info] - should capture errors on invalid schema (1 millisecond)
299[info] encode
300[info] - should error if returned string is not a schema symbol (2 milliseconds)
301[info] - should encode a valid symbol (1 millisecond)
302[info] decode
303[info] - should error if schema type is not enum (0 milliseconds)
304[info] - should error if value is not GenericEnumSymbol (0 milliseconds)
305[info] - should return default value if encoded value is not a schema symbol (1 millisecond)
306[info] - should error if encoded value is not a schema symbol and there is no default value (3 milliseconds)
307[info] - should decode a valid symbol (1 millisecond)
308[info] - should decode a valid symbol with a different namespace (0 milliseconds)
309[info] fixed
310[info] schema
311[info] - should have the expected schema (1 millisecond)
312[info] - should fail for negative size (1 millisecond)
313[info] encode
314[info] - should error if length exceeds schema size (1 millisecond)
315[info] - should encode as fixed (0 milliseconds)
316[info] decode
317[info] - should error if schema is not fixed (0 milliseconds)
318[info] - should error if value is not GenericFixed (0 milliseconds)
319[info] - should error if length does not match schema size (1 millisecond)
320[info] - should decode as fixed (0 milliseconds)
321[info] float
322[info] schema
323[info] - should be encoded as float (0 milliseconds)
324[info] encode
325[info] - should encode as float (0 milliseconds)
326[info] decode
327[info] - should error if schema is not float or promotable to float (0 milliseconds)
328[info] - should error if value is not float or promotable to float (1 millisecond)
329[info] - should decode Int as Float (0 milliseconds)
330[info] - should decode Long as Float (0 milliseconds)
331[info] - should decode Float as Float (0 milliseconds)
332[info] fromJson
333[info] - should decode from avro json format (1 millisecond)
334[info] - should error if the json does not match the type (7 milliseconds)
335[info] - should error if the schema does not match the type (2 milliseconds)
336[info] instant
337[info] schema
338[info] - should be encoded as long with logical type timestamp-millis (0 milliseconds)
339[info] encode
340[info] - should encode as long (0 milliseconds)
341[info] decode
342[info] - should error if logical type is missing (1 millisecond)
343[info] - should error if logical type is not timestamp-millis (0 milliseconds)
344[info] - should decode as Instant (0 milliseconds)
345[info] imapError
346[info] schema
347[info] - should use the schema of the underlying codec (1 millisecond)
348[info] encode
349[info] - should encode using the underlying codec (1 millisecond)
350[info] decode
351[info] - should succeed for valid values (0 milliseconds)
352[info] - should error for invalid values (0 milliseconds)
353[info] imapTry
354[info] schema
355[info] - should use the schema of the underlying codec (2 milliseconds)
356[info] encode
357[info] - should encode using the underlying codec (1 millisecond)
358[info] decode
359[info] - should succeed for valid values (0 milliseconds)
360[info] - should error for invalid values (0 milliseconds)
361[info] int
362[info] schema
363[info] - should be encoded as int (0 milliseconds)
364[info] encode
365[info] - should encode as int (0 milliseconds)
366[info] decode
367[info] - should error if schema is not int (0 milliseconds)
368[info] - should error if value is not int (1 millisecond)
369[info] - should decode as Int (0 milliseconds)
370[info] list
371[info] schema
372[info] - should be encoded as array (0 milliseconds)
373[info] encode
374[info] - should encode as java list using encoder for underlying type (0 milliseconds)
375[info] decode
376[info] - should error if schema is not array (1 millisecond)
377[info] - should error if value is not collection (0 milliseconds)
378[info] - should decode as List (0 milliseconds)
379[info] localDate
380[info] schema
381[info] - should be encoded as int with logical type date (0 milliseconds)
382[info] encode
383[info] - should encode as int (1 millisecond)
384[info] decode
385[info] - should error if logical type is not date (0 milliseconds)
386[info] - should decode int as local date (1 millisecond)
387[info] - should error if local date epoch days exceeds maximum integer size (2 milliseconds)
388[info] localTimeMillis
389[info] schema
390[info] - should be encoded as int with logical type time-millis (0 milliseconds)
391[info] encode
392[info] - should encode as int (0 milliseconds)
393[info] decode
394[info] - should error if logical type is not time-millis (0 milliseconds)
395[info] - should decode int as local time-millis (1 millisecond)
396[info] localTimeMicros
397[info] schema
398[info] - should be encoded as int with logical type time-micros (0 milliseconds)
399[info] encode
400[info] - should encode as long (0 milliseconds)
401[info] decode
402[info] - should error if logical type is not time-micros (0 milliseconds)
403[info] - should decode long as local time-micros (1 millisecond)
404[info] long
405[info] schema
406[info] - should be encoded as long (0 milliseconds)
407[info] encode
408[info] - should encode as long (0 milliseconds)
409[info] decode
410[info] - should error if schema is not int or long (0 milliseconds)
411[info] - should error if value is not int or long (0 milliseconds)
412[info] - should decode int as long (0 milliseconds)
413[info] - should decode long as long (0 milliseconds)
414[info] map
415[info] schema
416[info] - should be encoded as map (0 milliseconds)
417[info] encode
418[info] - should encode as java map using encoder for value (0 milliseconds)
419[info] decode
420[info] - should error if schema is not map (1 millisecond)
421[info] - should error if value is not java.util.Map (0 milliseconds)
422[info] - should error if keys are not strings (1 millisecond)
423[info] - should error if any keys are null (1 millisecond)
424[info] - should decode to map using decoder for value (1 millisecond)
425[info] none
426[info] schema
427[info] - should be encoded as null (0 milliseconds)
428[info] encode
429[info] - should encode as null (1 millisecond)
430[info] decode
431[info] - should error if schema is not null (0 milliseconds)
432[info] - should error if value is not null (0 milliseconds)
433[info] - should decode null as None (1 millisecond)
434[info] nonEmptyChain
435[info] schema
436[info] - should be encoded as array (1 millisecond)
437[info] encode
438[info] - should encode as java list using encoder for underlying type (0 milliseconds)
439[info] decode
440[info] - should error if schema is not array (0 milliseconds)
441[info] - should error if value is not collection (0 milliseconds)
442[info] - should error on empty collection (0 milliseconds)
443[info] - should decode as NonEmptyChain (0 milliseconds)
444[info] nonEmptyList
445[info] schema
446[info] - should be encoded as array (1 millisecond)
447[info] encode
448[info] - should encode as java list using encoder for underlying type (1 millisecond)
449[info] decode
450[info] - should error if schema is not array (1 millisecond)
451[info] - should error if value is not collection (1 millisecond)
452[info] - should error on empty collection (0 milliseconds)
453[info] - should decode as NonEmptyList (0 milliseconds)
454[info] nonEmptySet
455[info] schema
456[info] - should be encoded as array (1 millisecond)
457[info] encode
458[info] - should encode as java list using encoder for underlying type (0 milliseconds)
459[info] decode
460[info] - should error if schema is not array (0 milliseconds)
461[info] - should error if value is not collection (0 milliseconds)
462[info] - should error on empty collection (1 millisecond)
463[info] - should decode as NonEmptySet (1 millisecond)
464[info] nonEmptyVector
465[info] schema
466[info] - should be encoded as array (0 milliseconds)
467[info] encode
468[info] - should encode as java vector using encoder for underlying type (0 milliseconds)
469[info] decode
470[info] - should error if schema is not array (1 millisecond)
471[info] - should error if value is not collection (0 milliseconds)
472[info] - should error on empty collection (0 milliseconds)
473[info] - should decode as NonEmptyVector (0 milliseconds)
474[info] nonEmptyMap
475[info] schema
476[info] - should be encoded as map (1 millisecond)
477[info] encode
478[info] - should encode as java map using encoder for value (8 milliseconds)
479[info] decode
480[info] - should error if schema is not map (0 milliseconds)
481[info] - should error if value is not java.util.Map (1 millisecond)
482[info] - should error if keys are not strings (1 millisecond)
483[info] - should error if any keys are null (1 millisecond)
484[info] - should error on empty collection (1 millisecond)
485[info] - should decode to map using decoder for value (1 millisecond)
486[info] option
487[info] schema
488[info] - should be encoded as union (0 milliseconds)
489[info] - should capture errors on nested unions (0 milliseconds)
490[info] encode
491[info] - should encode Some (1 millisecond)
492[info] - should encode None as null (1 millisecond)
493[info] decode
494[info] - should error if schema is not in union (1 millisecond)
495[info] - should decode if schema is part of union (0 milliseconds)
496[info] - should decode even if there is one schema in union (1 millisecond)
497[info] - should decode even if there is not null in union (0 milliseconds)
498[info] - should decode if there are more than two schemas in union (0 milliseconds)
499[info] - should support null as first schema type in union (1 millisecond)
500[info] - should support null as second schema type in union (1 millisecond)
501[info] - should decode null as None (0 milliseconds)
502[info] option.union
503[info] schema
504[info] - should be encoded as union (0 milliseconds)
505[info] encode
506[info] - should encode none as null (0 milliseconds)
507[info] - should encode first as int (2 milliseconds)
508[info] - should encode second as double (3 milliseconds)
509[info] decode
510[info] - should decode null as none (0 milliseconds)
511[info] - should decode int as first (1 millisecond)
512[info] - should decode double as second (2 milliseconds)
513[info] record
514[info] schema
515[info] - should have the expected schema (22 milliseconds)
516[info] - should error if default value can't be encoded (2 milliseconds)
517[info] - should support None as default value (1 millisecond)
518[info] - should support Some as default value (2 milliseconds)
519[info] default
520[info] - should support null default value (1 millisecond)
521[info] - should support boolean default value (2 milliseconds)
522[info] - should support int default value (2 milliseconds)
523[info] - should support long default value (2 milliseconds)
524[info] - should support float default value (2 milliseconds)
525[info] - should support double default value (1 millisecond)
526[info] - should support bytes default value (2 milliseconds)
527[info] - should support string default value (2 milliseconds)
528[info] - should support record default value (5 milliseconds)
529[info] - should support enum default value (2 milliseconds)
530[info] - should support array default value (1 millisecond)
531[info] - should support record array default value (3 milliseconds)
532[info] - should support map default value (2 milliseconds)
533[info] - should support record map default value (2 milliseconds)
534[info] - should support fixed default value (2 milliseconds)
535[info] props
536[info] - should support boolean custom property (1 millisecond)
537[info] - should support int custom property (2 milliseconds)
538[info] - should support long custom property (2 milliseconds)
539[info] - should support float custom property (2 milliseconds)
540[info] - should support double custom property (1 millisecond)
541[info] - should support bytes custom property (2 milliseconds)
542[info] - should support string custom property (2 milliseconds)
543[info] - should support record custom property (4 milliseconds)
544[info] - should support enum custom property (3 milliseconds)
545[info] - should support array custom property (2 milliseconds)
546[info] - should support map custom property (1 millisecond)
547[info] - should support fixed custom property (3 milliseconds)
548[info] encode
549[info] - should encode as record (1 millisecond)
550[info] - should support None as default value (2 milliseconds)
551[info] - should support Some as default value (2 milliseconds)
552[info] decode
553[info] - should error if schema is not record (0 milliseconds)
554[info] - should error if value is not indexed record (0 milliseconds)
555[info] - should error if any field without default value is missing (1 millisecond)
556[info] - should decode if field with default value is missing (1 millisecond)
557[info] - should decode as case class (1 millisecond)
558[info] - should support None as default value (2 milliseconds)
559[info] - should support Some as default value (3 milliseconds)
560[info] - should decode field with aliased name (2 milliseconds)
561[info] seq
562[info] schema
563[info] - should be encoded as array (0 milliseconds)
564[info] encode
565[info] - should encode as java list using encoder for underlying type (0 milliseconds)
566[info] decode
567[info] - should error if schema is not array (0 milliseconds)
568[info] - should error if value is not collection (1 millisecond)
569[info] - should decode as Seq (0 milliseconds)
570[info] show
571[info] - should include the schema if available (1 millisecond)
572[info] - should show the error if schema is unavailable (0 milliseconds)
573[info] - should have a Show instance consistent with toString (1 millisecond)
574[info] set
575[info] schema
576[info] - should be encoded as array (0 milliseconds)
577[info] encode
578[info] - should encode as java list using encoder for underlying type (1 millisecond)
579[info] decode
580[info] - should error if schema is not array (0 milliseconds)
581[info] - should error if value is not collection (1 millisecond)
582[info] - should decode as Set (0 milliseconds)
583[info] short
584[info] schema
585[info] - should be encoded as int (0 milliseconds)
586[info] encode
587[info] - should encode as int (0 milliseconds)
588[info] decode
589[info] - should error if schema is not int (1 millisecond)
590[info] - should error if value is not int (1 millisecond)
591[info] - should error if int value is not short (2 milliseconds)
592[info] - should decode as short (1 millisecond)
593[info] string
594[info] schema
595[info] - should be encoded as string (1 millisecond)
596[info] encode
597[info] - should encode as utf8 (0 milliseconds)
598[info] decode
599[info] - should error if schema is not string or bytes (0 milliseconds)
600[info] - should error if value is not utf8, string, or bytes (0 milliseconds)
601[info] - should decode utf8 as string (1 millisecond)
602[info] - should decode string as string (0 milliseconds)
603[info] - should decode bytes as string (1 millisecond)
604[info] toJson
605[info] - should encode to Json format (1 millisecond)
606[info] union
607[info] schema
608[info] - should encode as union (0 milliseconds)
609[info] - should capture errors on nested unions (3 milliseconds)
610[info] encode
611[info] - should error if subtype is not an alternative (4 milliseconds)
612[info] - should error if subtype is not an alternative and value null (1 millisecond)
613[info] - should encode with encoder for alternative (0 milliseconds)
614[info] decode
615[info] - should error if schema is not in union (0 milliseconds)
616[info] - should decode if schema is part of union (0 milliseconds)
617[info] - should decode if schema is union with records of the same name (5 milliseconds)
618[info] - should error if value is not an alternative (0 milliseconds)
619[info] - should error if value is null and not an alternative (0 milliseconds)
620[info] - should error if no schema in union with container name (3 milliseconds)
621[info] - should error if no alternative with container name (1 millisecond)
622[info] - should decode using schema and decoder for alternative (0 milliseconds)
623[info] - should decode using schema with aliased name (1 millisecond)
624[info] unit
625[info] schema
626[info] - should be encoded as null (0 milliseconds)
627[info] encode
628[info] - should encode as null (1 millisecond)
629[info] decode
630[info] - should error if schema is not null (0 milliseconds)
631[info] - should error if value is not null (1 millisecond)
632[info] - should decode null as unit (0 milliseconds)
633[info] uuid
634[info] schema
635[info] - should be encoded as string with logical type uuid (1 millisecond)
636[info] encode
637[info] - should encode as utf8 (1 millisecond)
638[info] decode
639[info] - should error if logical type is not uuid (1 millisecond)
640[info] - should error if value is not uuid (1 millisecond)
641[info] - should decode uuid (0 milliseconds)
642[info] vector
643[info] schema
644[info] - should be encoded as an array (0 milliseconds)
645[info] encode
646[info] - should encode as java vector using encoder for underlying type (1 millisecond)
647[info] decode
648[info] - should error if schema is not array (1 millisecond)
649[info] - should error if value is not collection (0 milliseconds)
650[info] - should decode as Vector (0 milliseconds)
651[info] AvroExceptionSpec:
652[info] AvroException
653[info] - should use specified message for the exception (3 milliseconds)
654[info] - should include the message in toString (2 milliseconds)
655[info] PrismSpec:
656[info] Prism
657[info] derive
658[info] - partialRoundtrip (2 milliseconds)
659[info] - roundtrip (4 milliseconds)
660[info] identity
661[info] - roundtrip (2 milliseconds)
662[info] instance
663[info] - toString (0 milliseconds)
664[info] none
665[info] - none (0 milliseconds)
666[info] - some (1 millisecond)
667[info] partial
668[info] - getOption defined when get is defined (4 milliseconds)
669[info] some
670[info] - none (0 milliseconds)
671[info] - some (1 millisecond)
672[info] - some.coproduct (4 milliseconds)
673[info] PropsSpec:
674[info] Props
675[info] one
676[info] add
677[info] error
678[info] - toChain (1 millisecond)
679[info] - toString (1 millisecond)
680[info] - toChain (1 millisecond)
681[info] - toString (1 millisecond)
682[info] error
683[info] add
684[info] error
685[info] - toChain (0 milliseconds)
686[info] - toString (0 milliseconds)
687[info] - toChain (0 milliseconds)
688[info] - toString (0 milliseconds)
689[info] - toChain (1 millisecond)
690[info] - toString (0 milliseconds)
691[info] - toChain (1 millisecond)
692[info] - toString (0 milliseconds)
693[info] empty
694[info] add
695[info] - toChain (0 milliseconds)
696[info] - toString (0 milliseconds)
697[info] - toChain (0 milliseconds)
698[info] - toString (1 millisecond)
699[info] show
700[info] - empty (1 millisecond)
701[info] - empty.add (0 milliseconds)
702[info] - empty.add.error (0 milliseconds)
703[info] - one (0 milliseconds)
704[info] - one.error (0 milliseconds)
705[info] - one.add (0 milliseconds)
706[info] - one.add.error (1 millisecond)
707[info] - one.error.add (0 milliseconds)
708[info] - one.error.add.error (0 milliseconds)
709[info] CodecInvariantSpec:
710[info] - Codec.invariant.invariant composition (180 milliseconds)
711[info] - Codec.invariant.invariant identity (54 milliseconds)
712[info] AvroErrorSpec:
713[info] AvroError
714[info] throwable
715[info] - should include the message in getMessage (2 milliseconds)
716[info] - should include the message in toString (1 millisecond)
717[info] AvroErrorEqSpec:
718[info] - AvroError.eq.antisymmetry eq (12 milliseconds)
719[info] - AvroError.eq.reflexivity eq (1 millisecond)
720[info] - AvroError.eq.symmetry eq (1 millisecond)
721[info] - AvroError.eq.transitivity eq (3 milliseconds)
722Starting build for ProjectRef(file:/build/repo/,generic) (vulcan-generic)... [1/3]
723Compile scalacOptions: -encoding, UTF-8, -unchecked, -language:implicitConversions, -Ykind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
724[info] compiling 7 Scala sources to /build/repo/modules/generic/target/scala-3.8.0-RC3/classes ...
725[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
726[warn] one warning found
727[info] done compiling
728[info] compiling 40 Scala sources to /build/repo/modules/generic/target/scala-3.8.0-RC3/test-classes ...
729[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
730[warn] one warning found
731[info] done compiling
732[info] AvroDocSpec:
733[info] AvroDoc
734[info] - should provide documentation via doc (72 milliseconds)
735[info] - should include documentation in toString (2 milliseconds)
736[info] - should provide an extractor for documentation (3 milliseconds)
737[info] AvroNullDefaultSpec:
738[info] AvroNullDefault
739[info] - should provide null default flag via enabled (2 milliseconds)
740[info] - should include enabled flag value in toString (2 milliseconds)
741[info] - should provide an extractor for enabled flag (1 millisecond)
742[info] - should decode null default when field is missing from writer schema (408 milliseconds)
743[info] AvroNameSpec:
744[info] AvroName
745[info] - should provide name via name (2 milliseconds)
746[info] - should include name in toString (2 milliseconds)
747[info] - should provide an extractor for documentation (2 milliseconds)
748[info] AvroPropsSpec:
749[info] AvroProps
750[info] - should provide props via props (30 milliseconds)
751[info] - should include name and value in props toString (4 milliseconds)
752[info] - should provide an extractor for props (3 milliseconds)
753[info] GenericDerivationRoundtripSpec:
754[info] derive
755[info] - CaseClassAvroNamespace (15 milliseconds)
756[info] - CaseClassField (8 milliseconds)
757[info] - SealedTraitCaseClassAvroNamespace (25 milliseconds)
758[info] - SealedTraitCaseClassCustom (20 milliseconds)
759[info] - CaseClassAvroNullDefault (91 milliseconds)
760[info] - CaseClassFieldAvroNullDefault (31 milliseconds)
761[info] - CaseClassAndFieldAvroNullDefault (27 milliseconds)
762[info] AvroFieldDefaultSpec:
763[info] AvroFieldDefault
764[info] - should create a schema with a default for a field (7 milliseconds)
765[info] - should fail when annotating an Option (13 milliseconds)
766[info] - should succeed when annotating an enum first element (4 milliseconds)
767[info] - should succeed when annotating an enum second element (2 milliseconds)
768[info] - should succeed with the first member of a union (11 milliseconds)
769[info] - should fail with the second member of a union (3 milliseconds)
770[info] DerivationSpec:
771[info] Codec
772[info] deriveEnum
773[info] schema
774[info] - should derive name, namespace, doc (2 milliseconds)
775[info] - should use namespace annotation (0 milliseconds)
776[info] - should roundtrip (16 milliseconds)
777[info] deriveFixed
778[info] schema
779[info] - should derive name, namespace, doc (4 milliseconds)
780[info] - should derive overridden name (1 millisecond)
781[info] - should use alias annotation (1 millisecond)
782[info] - should use namespace annotation (2 milliseconds)
783[info] - should roundtrip (5 milliseconds)
784[info] AvroNamespaceSpec:
785[info] AvroNamespace
786[info] - should provide the namespace via namespace (1 millisecond)
787[info] - should include namespace in toString (2 milliseconds)
788[info] - should provide an extractor for namespace (1 millisecond)
789[info] RoundtripBase:
790[info] AvroAliasSpec:
791[info] AvroAlias
792[info] - should provide alias via alias (1 millisecond)
793[info] - should include alias in toString (1 millisecond)
794[info] - should provide an extractor for alias (1 millisecond)
795[info] GenericDerivationCodecSpec:
796[info] Codec
797[info] derive
798[info] caseClass
799[info] schema
800[info] - should encode value classes as underlying type (0 milliseconds)
801[info] - should use parameter schema for record field (0 milliseconds)
802[info] - should support annotation for record field documentation (1 millisecond)
803[info] - should support annotation for record documentation (1 millisecond)
804[info] - should support annotation for record name (1 millisecond)
805[info] - should support annotation for record alias (2 milliseconds)
806[info] - should support annotation for props (2 milliseconds)
807[info] - should capture errors on invalid names (2 milliseconds)
808[info] - should support annotation for setting explicit default null values for all nullable fields (1 millisecond)
809[info] - should support annotation for setting explicit default null value for specific field (1 millisecond)
810[info] - should support parameter annotation overriding case class annotation when setting explicit default null value for specific field (0 milliseconds)
811[info] - should support optional field of a sum type (1 millisecond)
812[info] encode
813[info] - should encode value class using encoder for underlying type (3 milliseconds)
814[info] - should encode as record (1 millisecond)
815[info] - should encode as record with multiple fields (2 milliseconds)
816[info] decode
817[info] - should decode value class using decoder for underlying type (0 milliseconds)
818[info] - should error if schema is not record (0 milliseconds)
819[info] - should error if value is not indexed record (0 milliseconds)
820[info] - should error if any field is missing in writer schema (1 millisecond)
821[info] - should decode as case class (1 millisecond)
822[info] sealedTrait
823[info] schema
824[info] - should encode case classes as records (4 milliseconds)
825[info] - should encode case objects as empty records (3 milliseconds)
826[info] - should order alternatives alphabetically by class name (0 milliseconds)
827[info] - should capture errors on nested unions (3 milliseconds)
828[info] encode
829[info] - should error if value is not an alternative (3 milliseconds)
830[info] - should encode with encoder for subtype (0 milliseconds)
831[info] decode
832[info] - should error if schema is not in union (1 millisecond)
833[info] - should decode if schema is part of union (0 milliseconds)
834[info] - should error if value is not an alternative (0 milliseconds)
835[info] - should error if no schema in union with container name (1 millisecond)
836[info] - should error if no subtype with container name (1 millisecond)
837[info] - should decode using schema and decoder for subtype (1 millisecond)
838[info] CodecBase:
839Starting build for ProjectRef(file:/build/repo/,refined) (vulcan-refined)... [2/3]
840Compile scalacOptions: -encoding, UTF-8, -unchecked, -language:implicitConversions, -Ykind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
841[info] compiling 1 Scala source to /build/repo/modules/refined/target/scala-3.8.0-RC3/classes ...
842[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
843[warn] one warning found
844[info] done compiling
845[info] compiling 2 Scala sources to /build/repo/modules/refined/target/scala-3.8.0-RC3/test-classes ...
846[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
847[warn] one warning found
848[info] done compiling
849vulcan.refined.RefinedSpec:
850 + Refined should succeed for values conforming to predicate 0.556s
851 + Refined should fail for values not conforming to predicate 0.012s
852
853************************
854Build summary:
855[{
856 "module": "vulcan",
857 "compile": {"status": "ok", "tookMs": 15425, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
858 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
859 "test-compile": {"status": "ok", "tookMs": 19728, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
860 "test": {"status": "ok", "tookMs": 3416, "passed": 360, "failed": 0, "ignored": 0, "skipped": 0, "total": 360, "byFramework": [{"framework": "unknown", "stats": {"passed": 360, "failed": 0, "ignored": 0, "skipped": 0, "total": 360}}]},
861 "publish": {"status": "skipped", "tookMs": 0},
862 "metadata": {
863 "crossScalaVersions": ["2.12.20", "2.13.16", "3.3.5"]
864}
865},{
866 "module": "vulcan-generic",
867 "compile": {"status": "ok", "tookMs": 1872, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
868 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
869 "test-compile": {"status": "ok", "tookMs": 7487, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
870 "test": {"status": "ok", "tookMs": 1350, "passed": 72, "failed": 0, "ignored": 0, "skipped": 0, "total": 72, "byFramework": [{"framework": "unknown", "stats": {"passed": 72, "failed": 0, "ignored": 0, "skipped": 0, "total": 72}}]},
871 "publish": {"status": "skipped", "tookMs": 0},
872 "metadata": {
873 "crossScalaVersions": ["2.12.20", "2.13.16", "3.3.5"]
874}
875},{
876 "module": "vulcan-refined",
877 "compile": {"status": "ok", "tookMs": 460, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
878 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
879 "test-compile": {"status": "ok", "tookMs": 630, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
880 "test": {"status": "ok", "tookMs": 813, "passed": 2, "failed": 0, "ignored": 0, "skipped": 0, "total": 2, "byFramework": [{"framework": "munit", "stats": {"passed": 2, "failed": 0, "ignored": 0, "skipped": 0, "total": 2}}]},
881 "publish": {"status": "skipped", "tookMs": 0},
882 "metadata": {
883 "crossScalaVersions": ["2.12.20", "2.13.16", "3.3.5"]
884}
885}]
886************************
887[success] Total time: 79 s (0:01:19.0), completed Dec 4, 2025, 2:30:05 PM
888[0JChecking patch project/plugins.sbt...
889Checking patch project/build.properties...
890Checking patch build.sbt...
891Applied patch project/plugins.sbt cleanly.
892Applied patch project/build.properties cleanly.
893Applied patch build.sbt cleanly.