Build Logs

mbannour/mongoscala3codec • scala/scala3:release-3.8.2_backport-25135:2026-02-05

Errors

10

Warnings

0

Total Lines

592

1##################################
2Clonning https://github.com/mbannour/mongoscala3codec.git into /build/repo using revision v.0.0.8
3##################################
4Note: switching to 'b652a9ca68c5d8b5227f476fca85cb39a33f6173'.
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.7.4
22----
23Preparing build for 3.8.2-RC1-bin-20260204-c0aba9f
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 scala3Version = "3.7.4"
35Replacement: val scala3Version = "3.8.2-RC1-bin-20260204-c0aba9f"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (17))
38Compiled project (Scala 3.7.3, JVM (17))
39Successfully applied pattern 'val scala3Version = "3.7.4"' in build.sbt
40----
41Starting build for 3.8.2-RC1-bin-20260204-c0aba9f
42Execute tests: true
43sbt project found:
44No prepare script found for project mbannour/mongoscala3codec
45##################################
46Scala version: 3.8.2-RC1-bin-20260204-c0aba9f
47Targets: io.github.mbannour%mongoscala3codec
48Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3Version = \"3.7.4\"","replaceWith":"val scala3Version = \"<SCALA_VERSION>\""}]}
49##################################
50Using extra scalacOptions: ,REQUIRE:-source:3.8
51Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
52[sbt_options] declare -a sbt_options=()
53[process_args] java_version = '17'
54[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
55# Executing command line:
56java
57-Dfile.encoding=UTF-8
58-Dcommunitybuild.scala=3.8.2-RC1-bin-20260204-c0aba9f
59-Dcommunitybuild.project.dependencies.add=
60-Xmx7G
61-Xms4G
62-Xss8M
63-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
64-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
65-jar
66/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
67"setCrossScalaVersions 3.8.2-RC1-bin-20260204-c0aba9f"
68"++3.8.2-RC1-bin-20260204-c0aba9f -v"
69"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
70"set every credentials := Nil"
71"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
72"removeScalacOptionsStartingWith -P:wartremover"
73
74moduleMappings
75"runBuild 3.8.2-RC1-bin-20260204-c0aba9f """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3Version = \"3.7.4\"","replaceWith":"val scala3Version = \"<SCALA_VERSION>\""}]}""" io.github.mbannour%mongoscala3codec"
76
77[info] [launcher] getting org.scala-sbt sbt 1.11.7 (this may take some time)...
78[info] welcome to sbt 1.11.7 (Eclipse Adoptium Java 17.0.8)
79[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
80[info] loading project definition from /build/repo/project
81[info] compiling 2 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
82[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
83[info] Compilation completed in 8.749s.
84[info] done compiling
85[info] loading settings for project root from build.sbt...
86[info] set current project to MongoScala3Codec (in build file:/build/repo/)
87Execute setCrossScalaVersions: 3.8.2-RC1-bin-20260204-c0aba9f
88OpenCB::Changing crossVersion 3.8.2-RC1-bin-20260204-c0aba9f -> 3.8.2-RC1-bin-20260204-c0aba9f in benchmarks/crossScalaVersions
89OpenCB::Changing crossVersion 3.8.2-RC1-bin-20260204-c0aba9f -> 3.8.2-RC1-bin-20260204-c0aba9f in integrationTests/crossScalaVersions
90OpenCB::Changing crossVersion 3.8.2-RC1-bin-20260204-c0aba9f -> 3.8.2-RC1-bin-20260204-c0aba9f in examples/crossScalaVersions
91OpenCB::Changing crossVersion 3.8.2-RC1-bin-20260204-c0aba9f -> 3.8.2-RC1-bin-20260204-c0aba9f in root/crossScalaVersions
92OpenCB::Limitting incorrect crossVersions List(3.3.1, 3.4.2, 3.6.3, 3.6.4, 3.7.1) -> List(3.8.2-RC1-bin-20260204-c0aba9f) in root/crossScalaVersions
93[info] set current project to MongoScala3Codec (in build file:/build/repo/)
94[info] Setting Scala version to 3.8.2-RC1-bin-20260204-c0aba9f on 4 projects.
95[info] Switching Scala version on:
96[info] * root (3.8.2-RC1-bin-20260204-c0aba9f)
97[info] integrationTests (3.8.2-RC1-bin-20260204-c0aba9f)
98[info] benchmarks (3.8.2-RC1-bin-20260204-c0aba9f)
99[info] examples (3.8.2-RC1-bin-20260204-c0aba9f)
100[info] Excluding projects:
101[info] Reapplying settings...
102[info] set current project to MongoScala3Codec (in build file:/build/repo/)
103Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
104[info] Reapplying settings...
105[info] set current project to MongoScala3Codec (in build file:/build/repo/)
106[info] Defining Global / credentials, benchmarks / credentials and 2 others.
107[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 31 others.
108[info] Run `last` for details.
109[info] Reapplying settings...
110[info] set current project to MongoScala3Codec (in build file:/build/repo/)
111Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
112[info] Reapplying settings...
113OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
114
115 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
116 Did you mean allExcludeDependencies ?
117 , retry without global scopes
118[info] Reapplying settings...
119[info] set current project to MongoScala3Codec (in build file:/build/repo/)
120Execute removeScalacOptionsStartingWith: -P:wartremover
121[info] Reapplying settings...
122[info] set current project to MongoScala3Codec (in build file:/build/repo/)
123[success] Total time: 0 s, completed Feb 5, 2026, 12:43:06 PM
124Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3Version = \"3.7.4\"","replaceWith":"val scala3Version = \"<SCALA_VERSION>\""}]}
125Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
126Starting build...
127Projects: Set(root)
128Starting build for ProjectRef(file:/build/repo/,root) (mongoscala3codec)... [0/1]
129OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
130OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
131OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
132OpenCB::Filter out '-Werror', matches setting pattern '^-?-Werror'
133Compile scalacOptions: -Xsemanticdb, -semanticdb-target, /build/repo/target/scala-3.8.2-RC1-bin-20260204-c0aba9f/meta, -encoding, utf8, -explain-types, -language:higherKinds, -language:implicitConversions, -Xunchecked-java-output-version:17, -unchecked, -Xcheck-macros, -Yretain-trees, -Wunused:all, -Wconf:msg=unused local definition:s, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
134[info] compiling 20 Scala sources to /build/repo/target/scala-3.8.2-RC1-bin-20260204-c0aba9f/classes ...
135[info] done compiling
136OpenCB::Filter out '-source', matches setting pattern '^-?-source(:.*)?'
137[info] compiling 23 Scala sources to /build/repo/target/scala-3.8.2-RC1-bin-20260204-c0aba9f/test-classes ...
138[info] done compiling
139[info] CaseClassFieldMapperSpec:
140[info] CaseClassFieldMapper
141[info] - should map case class fields correctly
142[info] - should handle nested case classes and primitives correctly
143[info] - should fail for unsupported types at compile time
144[info] FieldNameMongoFieldResolverSpec:
145[info] - FieldNameExtractor extracts nested field names correctly
146[info] - extracts deeply nested structures with annotations
147[info] - handles collections and maps appropriately
148[info] - handles empty case class
149[info] - handles single field case class
150[info] - handles primitive types with annotations
151[info] - handles nested structures with multiple levels of annotations
152[info] - field mapping is consistent across multiple calls
153[info] - handles option types with nested case classes
154[info] - handles case classes with inheritance hierarchy
155[info] CaseClassMapperSpec:
156[info] CaseClassMapper
157[info] - should map simple sealed hierarchies
158[info] - should map sealed hierarchies with multiple subclasses
159[info] - should return the case class itself if no subclasses exist
160[info] - should fail for non-case classes !!! IGNORED !!!
161[info] - should handle nested case classes
162[info] CaseClassCodecGeneratorSpec:
163[info] CaseClassCodecGenerator
164[info] - should generate codec with correct encoder class
165[info] - should encode simple case class to BSON document correctly
166[info] - should handle optional fields when encodeNone is false
167[info] - should handle optional fields when encodeNone is true
168[info] - should handle Some values in optional fields
169[info] - should respect @BsonProperty annotations
170[info] - should throw exception for null values during encoding
171[info] GoldenBsonStructureSpec:
172[info] SimpleUser BSON structure
173[info] - should match expected format
174[info] UserWithOptional BSON structure with NoneHandling.Encode
175[info] - should include null values
176[info] UserWithOptional BSON structure with NoneHandling.Ignore
177[info] - should omit None fields
178[info] UserWithNested BSON structure
179[info] - should correctly nest documents
180[info] UserWithCollections BSON structure
181[info] - should encode collections as arrays
182[info] Concrete case class (Circle) BSON structure
183[info] - should encode all fields correctly
184[info] Multiple related case classes
185[info] - should encode independently
186[info] Event-like case classes
187[info] - should handle different field counts
188[info] Empty collections BSON structure
189[info] - should encode as empty arrays
190[info] BSON round-trip
191[info] - should preserve exact ObjectId values
192[info] - should preserve field order in nested documents
193[info] NegativeTestSpec:
194[info] Codec
195[info] - should throw exception when encoding null root value
196[info] - should handle None in optional fields with ignoreNone policy
197[info] - should encode None as null with encodeNone policy
198[info] - should throw exception when decoding invalid type for Int field
199[info] - should throw exception when required field is missing
200[info] - should throw exception when nested case class has invalid data
201[info] - should throw exception when codec is not registered
202[info] - should handle empty string fields correctly
203[info] - should handle boundary values for numeric types
204[info] - should handle empty collections correctly
205[info] CodecTestKitSpec:
206[info] CodecTestKit.roundTrip
207[info] - should encode and decode values correctly
208[info] CodecTestKit.assertCodecSymmetry
209[info] - should pass for valid codecs
210[info] - should work with multiple data types
211[info] CodecTestKit.toBsonDocument
212[info] - should convert case class to BsonDocument
213[info] - should preserve all field types correctly
214[info] CodecTestKit.fromBsonDocument
215[info] - should decode BsonDocument to case class
216[info] CodecTestKit.assertBsonStructure
217[info] - should validate BSON structure
218[info] CodecTestKit with NoneHandling.Encode
219[info] - should encode None as null
220[info] - should encode Some values correctly
221[info] CodecTestKit with NoneHandling.Ignore
222[info] - should omit None fields
223[info] - should include Some values even with Ignore policy
224[info] CodecTestKit with collections
225[info] - should handle List fields
226[info] - should handle Set fields
227[info] - should handle empty collections
228[info] CodecTestKit.testRegistry
229[info] - should create minimal registry
230[info] CodecTestKit with edge cases
231[info] - should handle empty strings
232[info] - should handle special characters
233[info] - should handle Unicode characters
234[info] - should handle boundary values
235[info] CodecTestKit with nested case classes
236[info] - should handle complex nested structures
237[info] CodecTestKit.assertBsonContains
238[info] - should verify partial BSON structure
239[info] CodecTestKit.bsonEquivalent
240[info] - should ignore field order
241[info] - should detect missing fields
242[info] - should detect different values
243[info] CodecTestKit.checkCodecSymmetry
244[info] - should return Right for valid codec
245[info] CodecTestKit.codecSymmetryProperty
246[info] - should return true for valid codec
247[info] CodecTestKit.prettyPrint
248[info] - should format BSON documents readably
249[info] CodecTestKit.diff
250[info] - should identify missing fields
251[info] - should identify extra fields
252[info] - should identify mismatched values
253[info] - should return no differences for identical documents
254[info] CodecTestKit.roundTripWithContext
255[info] - should use custom encoder context
256[info] CodecTestKit.assertCodecSymmetryWithContext
257[info] - should support custom contexts
258[info] CodecTestKit.extractField
259[info] - should extract specific field values
260[info] - should return null for non-existent fields
261[info] CodecTestKit.bsonArraysEqual
262[info] - should compare arrays in order
263[info] - should detect different order
264[info] CodecTestKit.bsonArraysEquivalent
265[info] - should ignore element order
266[info] - should detect different elements
267[info] CodecTestKit.bsonDeepContains
268[info] - should verify nested field paths
269[info] - should detect mismatched nested values
270[info] CodecTestKit.deepDiff
271[info] - should report nested differences
272[info] - should handle array differences
273[info] - should return empty list for identical documents
274[info] CodecTestKit.bsonValuesEqual
275[info] - should handle nested documents
276[info] - should handle arrays recursively
277[info] GoldenResourcesSpec:
278[info] SimpleUser golden
279[info] - should match resource BSON exactly and decode back
280[info] UserWithNested golden
281[info] - should match nested structure from resource
282[info] UserWithCollections golden
283[info] - should match arrays from resource
284[info] Circle golden
285[info] - should match resource with discriminator field
286[info] CodecConfigSpec:
287[info] CodecConfig
288[info] - should have correct default values
289[info] - should support custom noneHandling
290[info] - should support custom discriminatorField
291[info] - should support custom discriminatorStrategy
292[info] CodecConfig.shouldEncodeNone
293[info] - should return true when noneHandling is Encode
294[info] - should return false when noneHandling is Ignore
295[info] CodecConfig.withIgnoreNone
296[info] - should return config with Ignore noneHandling
297[info] CodecConfig.withEncodeNone
298[info] - should return config with Encode noneHandling
299[info] CodecConfig.withDiscriminatorField
300[info] - should return config with custom discriminator field
301[info] CodecConfig.withDiscriminatorStrategy
302[info] - should return config with custom strategy
303[info] CodecConfig
304[info] - should support method chaining
305[info] NoneHandling
306[info] - should have Encode case
307[info] - should have Ignore case
308[info] DiscriminatorStrategy
309[info] - should support SimpleName
310[info] - should support FullyQualifiedName
311[info] - should support Custom with mapping
312[info] PropertyBasedAdtSpec:
313[info] Circle codec
314[info] - should round-trip for arbitrary values
315[info] Rectangle codec
316[info] - should round-trip for arbitrary values
317[info] AnnotationNameSpec:
318[info] - findAnnotationValue should return the annotation value for a field with @BsonProperty
319[info] - findAnnotationValue should return None for a field without @BsonProperty
320[info] - findAnnotationValue should return None for a non-existent field
321[info] - findAnnotationValue should return None when no fields have annotations
322[info] - findAnnotationValue should return None for an empty case class
323[info] - findAnnotationValue should handle fields with multiple annotations
324[info] BsonCodecSpec:
325[info] BsonCodec.fromCodec
326[info] - should create BsonCodec from MongoDB Codec
327[info] BsonCodec.toCodec
328[info] - should convert BsonCodec to MongoDB Codec
329[info] BsonCodec.encoderClass
330[info] - should return the correct runtime class
331[info] BsonCodec.imap
332[info] - should map codec to different type
333[info] BsonCodec.imap
334[info] - should handle complex transformations
335[info] BsonCodec.derived
336[info] - should create codec for case class
337[info] BsonCodec.derived
338[info] - should work with simple case classes
339[info] BsonCodec.encoderClass
340[info] - should return correct class for derived codec
341[info] BsonCodec
342[info] - should support chaining imap transformations
343[info] CaseClassFactorySpec:
344[info] CaseClassFactory
345[info] - should instantiate a simple case class
346[info] - should instantiate a nested case class
347[info] - should instantiate a case class with optional fields
348[info] - should fail for unsupported types at compile time
349[info] - should throw an exception for missing required fields
350[info] - should throw an exception for invalid field data types
351[info] - should instantiate a case class with a Scala 3 enum field
352[info] - should throw an exception for invalid enum field values
353[info] - should instantiate a case class with all field types
354[info] - should instantiate a case class with a nested enum field
355[info] - should return a Inner(null)
356[info] - should instantiate a case class with an enum field using ordinal value
357[info] - should instantiate a case class with a custom enum codec using parameter field
358[info] - should instantiate Status from ordinal value
359[info] - should fail on invalid enum ordinal
360[info] - should use @BsonEnum annotation to decode from custom field
361[info] - should decode enum with @BsonEnum annotation from string representation of custom field
362[info] CaseClassBsonWriterSpec:
363[info] CaseClassBsonWriter
364[info] - should write simple primitive fields correctly
365[info] - should handle optional fields when encodeNone is false
366[info] - should handle optional fields when encodeNone is true
367[info] - should handle Some values in optional fields
368[info] - should respect @BsonProperty annotations
369[info] - should write Map[String, String] fields as BSON documents
370[info] - should write empty maps correctly
371[info] - should write Iterable fields as BSON arrays
372[info] - should write empty iterables correctly
373[info] EnumValueCodecProviderSpec:
374[info] EnumValueCodecProvider
375[info] - should create provider with correct type handling
376[info] - should work with simple enum transformation functions
377[info] - should handle conversion errors gracefully
378[info] - should test enum transformation functions work correctly
379[info] CachedCodecRegistrySpec:
380[info] CachedCodecRegistry
381[info] - should cache codec lookups
382[info] - should handle multiple types
383[info] - should throw exception for unregistered types
384[info] - should cache multiple codec lookups independently
385[info] - should work with builder pattern
386[info] ClassToCaseFlagMapSpec:
387[info] classToCaseClassMap
388[info] - should handle primitive types
389[info] - should identify case classes
390[info] - should identify sealed classes
391[info] - should handle nested case classes
392[info] - should not flag non-case classes as case classes
393[info] - should handle mixed types
394[info] PropertyBasedCodecSpec:
395[info] SimplePerson codec
396[info] - should round-trip correctly for all generated values
397[info] PersonWithOption codec
398[info] - should round-trip correctly with Some values
399[info] - should round-trip correctly with NoneHandling.Ignore
400[info] PersonWithNested codec
401[info] - should round-trip correctly with nested case classes
402[info] CollectionHolder codec
403[info] - should round-trip correctly with List and Seq
404[info] MapHolder codec
405[info] - should round-trip correctly with Map fields
406[info] Codec
407[info] - should handle empty strings
408[info] - should handle Unicode characters
409[info] - should handle boundary values for Int
410[info] - should handle empty collections
411[info] - should handle empty maps
412[info] Codec with default values
413[info] - should use defaults when fields are missing
414[info] MongoPathSpec:
415[info] - MongoPath.of should extract simple field name
416[info] - MongoPath.of should extract another simple field
417[info] - MongoPath.of should extract numeric field
418[info] - MongoPath.of should use @BsonProperty annotation value
419[info] - MongoPath.of should use @BsonProperty for name field
420[info] - MongoPath.of should use field name when no annotation present
421[info] - MongoPath.of should extract nested field path
422[info] - MongoPath.of should extract nested field with city
423[info] - MongoPath.of should respect @BsonProperty in nested field
424[info] - MongoPath.of should handle top-level field in model with nesting
425[info] - MongoPath.of should handle Option[String] field
426[info] - MongoPath.of should handle Option[Int] field
427[info] - MongoPath.of should handle Option[CaseClass] field
428[info] - MongoPath.of should handle nested field in Option[CaseClass]
429[info] - MongoPath.of should handle nested field with annotation in Option
430[info] - MongoPath.of should handle deeply nested field
431[info] - MongoPath.of should respect annotation in deep nesting
432[info] - MongoPath.of should handle annotation at first level of nesting
433[info] - MongoPath.of should handle middle level of deep nesting
434[info] - MongoPath.of should handle top-level annotation in mixed model
435[info] - MongoPath.of should handle normal field in mixed model
436[info] - MongoPath.of should handle nested object in mixed model
437[info] - MongoPath.of should handle nested annotation in mixed model
438[info] - MongoPath.of should handle single character field names
439[info] - MongoPath.of should handle underscore in field names
440[info] - MongoPath.of should handle camelCase field names
441[info] - MongoPath.of should handle List field
442[info] - MongoPath.of should handle Seq field
443[info] - MongoPath.of should handle Map field
444[info] - MongoPath.of should handle annotation with underscores
445[info] - MongoPath.of should handle annotation with dots
446[info] - MongoPath.of should handle single letter annotation
447[info] - MongoPath.of should handle complex combination of features
448[info] - MongoPath.of should handle Option[Option[T]]
449[info] - MongoPath.of should handle MongoDB _id field
450[info] - MongoPath.of should handle typical user model
451[info] - MongoPath.of should handle Seq field navigation with .each
452[info] - MongoPath.of should handle List field navigation with .each
453[info] - MongoPath.of should handle nested Seq field with @BsonProperty
454[info] - MongoPath.of should handle multiple levels with Seq navigation
455[info] - MongoPath.of should handle Seq with nested objects and annotations
456[info] - MongoPath.of should handle Option[Seq] field directly
457[info] - MongoPath.of should handle Seq[Option] with .each and .?
458[info] - MongoPath.of should handle real-world Employee example
459[info] - MongoPath.of should handle deeply nested Seq fields
460[info] - MongoPath.of should handle mixed nested objects and Seq
461[info] - MongoPath.of should handle Seq[String] field
462[info] - MongoPath.of should handle Seq[Int] field
463[info] - MongoPath.of should handle Seq[Double] field
464[info] - MongoPath.of should handle List[String] field
465[info] - MongoPath.of should handle Option[Seq[String]] field
466[info] - MongoPath.of should handle Option[List[Int]] field
467[info] - MongoPath.of should respect @BsonProperty on Seq field
468[info] - MongoPath.of should respect @BsonProperty on Seq field and navigate with .each
469[info] - MongoPath.of should handle @BsonProperty on both Seq field and nested field
470[info] - MongoPath.of should handle Vector[T] field
471[info] - MongoPath.of should handle Vector[T] field navigation with .each
472[info] - MongoPath.of should handle IndexedSeq[T] field
473[info] - MongoPath.of should handle IndexedSeq[T] field navigation with .each
474[info] - MongoPath.of should handle Iterable[T] field
475[info] - MongoPath.of should handle Iterable[T] field navigation with .each
476[info] - MongoPath.of should handle complete Employee model
477[info] - MongoPath.of should handle deep nesting with Option and Seq
478[info] - MongoPath.of should handle Seq inside Option inside Seq
479[info] - MongoPath.of should handle @BsonProperty with MongoDB _id convention
480[info] - MongoPath.of should handle multiple Seq fields
481[info] - MongoPath.of should handle Seq at different nesting levels
482[info] - MongoPath.of should handle BigDecimal fields
483[info] - MongoPath.of should handle BigInt fields
484[info] - MongoPath.of should handle Option[BigDecimal] fields
485[info] - MongoPath.of should handle Seq[BigDecimal] fields
486[info] - MongoPath.of should handle Long fields
487[info] - MongoPath.of should handle Float fields
488[info] - MongoPath.of should handle Byte fields
489[info] - MongoPath.of should handle Short fields
490[info] - MongoPath.of should handle Char fields
491[info] - MongoPath.of should handle all common Scala types
492[info] RegistryBuilderEnhancementsSpec:
493[info] RegistryBuilder.just
494[info] - should register a single type and build immediately
495[info] RegistryBuilder.withTypes
496[info] - should register multiple types and build immediately
497[info] RegistryBuilder.registerIf
498[info] - should conditionally register types based on boolean
499[info] - should work with chained conditions
500[info] RegistryBuilder.currentConfig
501[info] - should return the current configuration
502[info] RegistryBuilder.codecCount
503[info] - should return the number of registered codecs
504[info] RegistryBuilder.providerCount
505[info] - should return the number of registered providers
506[info] RegistryBuilder.isEmpty
507[info] - should check if builder has no codecs or providers
508[info] RegistryBuilder.isCached
509[info] - should indicate if registry is cached
510[info] RegistryBuilder.hasCodecFor
511[info] - should check if codec is available for a type
512[info] RegistryBuilder.tryGetCodec
513[info] - should return Some(codec) if available
514[info] - should return None if codec is not available
515[info] RegistryBuilder.summary
516[info] - should provide a human-readable summary
517[info] - should show correct NoneHandling in summary
518[info] Convenience methods
519[info] - should simplify common patterns
520[info] State inspection methods
521[info] - should allow debugging and introspection
522[info] Performance optimizations
523[info] - should work correctly with new methods
524[info] Combined usage
525[info] - should demonstrate real-world patterns
526[info] CodecProviderMacroSpec:
527[info] CodecProviderMacro.createCodecProviderIgnoreNone
528[info] - should omit None fields from the BSON document
529[info] CodecProviderMacro.createCodecProviderEncodeNone
530[info] - should include None fields as null in the BSON document
531[info] - should return null for non-matching class types
532[info] - should return correct codec for matching class types
533[info] - should work with multiple providers in the same registry
534[info] AdditionalRegistryBuilderSpec:
535[info] RegistryBuilder.from
536[info] - should create builder from existing registry
537[info] RegistryBuilder
538[info] - should support building from existing registry
539[info] RegistryBuilder.configure
540[info] - should allow configuration updates
541[info] - should support multiple configuration updates
542[info] RegistryBuilder.ignoreNone
543[info] - should set NoneHandling to Ignore
544[info] RegistryBuilder.encodeNone
545[info] - should set NoneHandling to Encode
546[info] RegistryBuilder.registerAll
547[info] - should register multiple types
548[info] RegistryBuilder.register
549[info] - should register single type
550[info] - should support chaining multiple registers
551[info] RegistryBuilder
552[info] - should work with ignoreNone configuration
553[info] - should work with encodeNone configuration
554[info] - should support complex builder chains
555[info] SealedTraitCodecSpec:
556[info] SealedTraitCodecGenerator
557[info] - should generate codec for sealed trait with correct encoder class
558[info] - should encode Dog as Animal with discriminator field
559[info] - should encode Cat as Animal with discriminator field
560[info] - should decode Dog from document with discriminator
561[info] - should decode Cat from document with discriminator
562[info] - should round-trip all subtypes correctly
563[info] - should work with sealed classes (not just traits)
564[info] - should work with sealed abstract classes
565[info] - should use custom discriminator field name
566[info] - should handle sealed trait as a field in case class
567[info] - should handle collections of sealed types
568[info] - should handle multi-level sealed hierarchies
569[info] - should error when discriminator field is missing
570[info] - should error when discriminator value is unknown
571[info] - should error when trying to encode null sealed trait value
572[info] - should work seamlessly with regular case class registration
573
574************************
575Build summary:
576[{
577 "module": "mongoscala3codec",
578 "compile": {"status": "ok", "tookMs": 13088, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
579 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
580 "test-compile": {"status": "ok", "tookMs": 51016, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
581 "test": {"status": "ok", "tookMs": 1435, "passed": 309, "failed": 0, "ignored": 1, "skipped": 0, "total": 310, "byFramework": [{"framework": "unknown", "stats": {"passed": 309, "failed": 0, "ignored": 1, "skipped": 0, "total": 310}}]},
582 "publish": {"status": "skipped", "tookMs": 0},
583 "metadata": {
584 "crossScalaVersions": ["3.3.1", "3.4.2", "3.6.3", "3.6.4", "3.7.1", "3.7.4"]
585}
586}]
587************************
588[success] Total time: 70 s (0:01:10.0), completed Feb 5, 2026, 12:44:16 PM
589[0JChecking patch project/plugins.sbt...
590Checking patch build.sbt...
591Applied patch project/plugins.sbt cleanly.
592Applied patch build.sbt cleanly.