Build Logs

commercetools/sphere-scala-libs • 3.8.0-RC3:2025-12-04

Errors

1

Warnings

4

Total Lines

691

1##################################
2Clonning https://github.com/commercetools/sphere-scala-libs.git into /build/repo using revision v0.19.0-RC1
3##################################
4Note: switching to '6820d8f97edbaafdd632dbe62cd1b74850c95faa'.
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.7
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.7"
35Replacement: val scala3 = "3.8.0-RC3"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (21))
38Compiled project (Scala 3.7.3, JVM (21))
39Successfully applied pattern 'val scala3 = "3.3.7"' in build.sbt
40----
41Starting build for 3.8.0-RC3
42Execute tests: true
43sbt project found:
44No prepare script found for project commercetools/sphere-scala-libs
45##################################
46Scala version: 3.8.0-RC3
47Targets: com.commercetools%sphere-json com.commercetools%sphere-json-core com.commercetools%sphere-json-derivation com.commercetools%sphere-mongo com.commercetools%sphere-mongo-core com.commercetools%sphere-mongo-derivation com.commercetools%sphere-util
48Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.7\"","replaceWith":"val scala3 = \"<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 = '21'
54[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21/rt.jar'
55# Executing command line:
56java
57-Dfile.encoding=UTF-8
58-XX:+UnlockDiagnosticVMOptions
59-XX:MaxMetaspaceSize=2g
60-Xmx2g
61-Xss2M
62-Dcommunitybuild.scala=3.8.0-RC3
63-Dcommunitybuild.project.dependencies.add=
64-Xmx7G
65-Xms4G
66-Xss8M
67-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
68-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_21
69-jar
70/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
71"setCrossScalaVersions 3.8.0-RC3"
72"++3.8.0-RC3 -v"
73"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
74"set every credentials := Nil"
75"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
76"removeScalacOptionsStartingWith -P:wartremover"
77
78moduleMappings
79"runBuild 3.8.0-RC3 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.7\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" com.commercetools%sphere-json com.commercetools%sphere-json-core com.commercetools%sphere-json-derivation com.commercetools%sphere-mongo com.commercetools%sphere-mongo-core com.commercetools%sphere-mongo-derivation com.commercetools%sphere-util"
80
81[info] [launcher] getting org.scala-sbt sbt 1.11.7 (this may take some time)...
82[info] welcome to sbt 1.11.7 (Eclipse Adoptium Java 21)
83[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
84[info] loading project definition from /build/repo/project
85[info] compiling 3 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
86[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
87[info] Compilation completed in 8.18s.
88[warn] one feature warning; re-run with -feature for details
89[warn] one warning found
90[info] done compiling
91[info] loading settings for project sphere-libs from build.sbt...
92[info] loading settings for project sphere-util from dependencies.sbt...
93[info] loading settings for project sphere-json-core from dependencies.sbt...
94[info] loading settings for project sphere-mongo-core from dependencies.sbt...
95[info] set current project to sphere-libs (in build file:/build/repo/)
96Execute setCrossScalaVersions: 3.8.0-RC3
97OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in benchmarks/crossScalaVersions
98OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in sphere-util/crossScalaVersions
99OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in sphere-json-derivation/crossScalaVersions
100OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in sphere-libs/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List() -> List(3.8.0-RC3) in sphere-libs/crossScalaVersions
102OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in sphere-mongo-core/crossScalaVersions
103OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in sphere-mongo/crossScalaVersions
104OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in sphere-json-core/crossScalaVersions
105OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in sphere-mongo-derivation/crossScalaVersions
106OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in sphere-json/crossScalaVersions
107[info] set current project to sphere-libs (in build file:/build/repo/)
108[info] Setting Scala version to 3.8.0-RC3 on 9 projects.
109[info] Switching Scala version on:
110[info] benchmarks (2.13.17, 3.8.0-RC3)
111[info] sphere-mongo (2.13.17, 3.8.0-RC3)
112[info] sphere-json-core (2.13.17, 3.8.0-RC3)
113[info] sphere-mongo-core (2.13.17, 3.8.0-RC3)
114[info] sphere-json (2.13.17, 3.8.0-RC3)
115[info] sphere-util (2.13.17, 3.8.0-RC3)
116[info] sphere-json-derivation (2.13.17, 3.8.0-RC3)
117[info] * sphere-libs (3.8.0-RC3)
118[info] sphere-mongo-derivation (2.13.17, 3.8.0-RC3)
119[info] Excluding projects:
120[info] Reapplying settings...
121[info] set current project to sphere-libs (in build file:/build/repo/)
122Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
123[info] Reapplying settings...
124[info] set current project to sphere-libs (in build file:/build/repo/)
125[info] Defining Global / credentials, benchmarks / credentials and 7 others.
126[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 71 others.
127[info] Run `last` for details.
128[info] Reapplying settings...
129[info] set current project to sphere-libs (in build file:/build/repo/)
130Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
131[info] Reapplying settings...
132OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
133
134 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
135 Did you mean sphere-util / allExcludeDependencies ?
136 , retry without global scopes
137[info] Reapplying settings...
138[info] set current project to sphere-libs (in build file:/build/repo/)
139Execute removeScalacOptionsStartingWith: -P:wartremover
140[info] Reapplying settings...
141[info] set current project to sphere-libs (in build file:/build/repo/)
142[success] Total time: 0 s, completed Dec 4, 2025, 3:25:21 PM
143Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"21"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.7\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
144Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
145Starting build...
146Projects: Set(sphere-mongo, sphere-json-core, sphere-mongo-core, sphere-json, sphere-util, sphere-json-derivation, sphere-mongo-derivation)
147Starting build for ProjectRef(file:/build/repo/,sphere-mongo-derivation) (sphere-mongo-derivation)... [0/7]
148OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
149OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
150OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
151Compile scalacOptions: -unchecked, -noindent, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
152[info] compiling 9 Scala sources to /build/repo/util/target/scala-3.8.0-RC3/classes ...
153[info] done compiling
154[info] compiling 7 Scala sources to /build/repo/mongo/mongo-core/target/scala-3.8.0-RC3/classes ...
155[info] done compiling
156[info] compiling 15 Scala sources to /build/repo/mongo/mongo-derivation/target/scala-3.8.0-RC3/test-classes ...
157[info] done compiling
158[info] SumTypesDerivingSpec:
159[info] Serializing sum types
160[info] - must use 'type' as default field (86 milliseconds)
161[info] - must use custom values (18 milliseconds)
162[info] - must use intermediate level (22 milliseconds)
163[info] - must use default values if custom values are empty (7 milliseconds)
164[info] DefaultValuesSpec:
165[info] deriving MongoFormat
166[info] - must handle default values (66 milliseconds)
167[info] MongoIgnoreSpec:
168[info] MongoIgnore
169[info] when annotated field has no default
170[info] - must fail with a suitable message (63 milliseconds)
171[info] when annotated field has also a default
172[info] - must omit the field in serialization (7 milliseconds)
173[info] MongoTypeSwitchSpec:
174[info] mongoTypeSwitch
175[info] - must derive a subset of a sealed trait (68 milliseconds)
176[info] - must derive a subset of a sealed trait with a mongoKey (11 milliseconds)
177[info] SerializationTestForScala3Features:
178[info] mongoProduct
179[info] - must generate a format that serializes optional fields with value None as BSON objects without that field (using derives) (23 milliseconds)
180[info] mongoSum
181[info] - must serialize and deserialize sealed hierarchies (17 milliseconds)
182[info] must mongoEnum
183[info] - must serialize and deserialize scala3 enums (pending)
184[info] MongoTypeHintFieldWithSealedTraitSpec:
185[info] MongoTypeHintField (with sealed trait)
186[info] - must allow to set another field to distinguish between types (toMongo) (36 milliseconds)
187[info] - must allow to set another field to distinguish between types (fromMongo) (1 millisecond)
188[info] SerializationTest:
189[info] mongoProduct
190[info] - must deserialize mongo object (4 milliseconds)
191[info] - must generate a format that serializes optional fields with value None as BSON objects without that field (21 milliseconds)
192[info] - must generate a format that use default values (1 millisecond)
193[info] mongoEnum
194[info] - must serialize and deserialize enumerations (45 milliseconds)
195[info] MongoEmbeddedSpec:
196[info] MongoEmbedded
197[info] - should flatten the db object in one object (11 milliseconds)
198[info] - should validate that the db object contains all needed fields (2 milliseconds)
199[info] - should support optional embedded attribute (5 milliseconds)
200[info] - should ignore unknown fields (1 millisecond)
201[info] - should ignore ignored fields (6 milliseconds)
202[info] - should check for sub-fields (15 milliseconds)
203[info] - should support the absence of optional embedded attribute (0 milliseconds)
204[info] - should validate the absence of some embedded attributes (1 millisecond)
205[info] DeriveMongoformatSpec:
206[info] deriving MongoFormat
207[info] - must read normal singleton values (36 milliseconds)
208[info] - must read custom singleton values (3 milliseconds)
209[info] - must fail to read if singleton value is unknown (2 milliseconds)
210[info] - must write normal singleton values (1 millisecond)
211[info] - must write custom singleton values (1 millisecond)
212[info] - must write and consequently read, which must produce the original value (0 milliseconds)
213[info] - must read and write sealed trait with only one subtype (2 milliseconds)
214[info] - must fail to derive if trait is not sealed (0 milliseconds)
215[info] OptionMongoFormatSpec:
216[info] MongoFormat[Option[_]]
217[info] - should handle presence of all fields (20 milliseconds)
218[info] - should handle presence of all fields mixed with ignored fields (1 millisecond)
219[info] - should handle presence of not all the fields (6 milliseconds)
220[info] - should handle absence of all fields (0 milliseconds)
221[info] - should handle absence of all fields mixed with ignored fields (0 milliseconds)
222[info] - should consider all fields if the data type does not impose any restriction (2 milliseconds)
223[info] - should parse optional element (7 milliseconds)
224[info] SumTypesDerivingScala3Spec:
225[info] Serializing sum types
226[info] - must use custom field & values (16 milliseconds)
227[info] - must nested trait case 1: @MongoTypeHintField only on a subtype case class (9 milliseconds)
228[info] - must nested trait case 2: @MongoTypeHintField on a subtype case class and the supertype (9 milliseconds)
229[info] - must do not use sealed trait info when using a case class directly (26 milliseconds)
230[info] - must allow for providing custom instances for objects (7 milliseconds)
231[info] - must allow for providing custom instances for classes (5 milliseconds)
232[info] - must allow for providing custom instances for classes when the class has a type parameter with an upper bound (6 milliseconds)
233[info] - must allow for providing custom instances for classes when the class has an unbounded type parameter (4 milliseconds)
234[info] MongoTypeHintFieldWithAbstractClassSpec:
235[info] MongoTypeHintField (with abstract class)
236[info] - must allow to set another field to distinguish between types (toMongo) (21 milliseconds)
237[info] - must allow to set another field to distinguish between types (fromMongo) (1 millisecond)
238[info] DerivationSpec:
239[info] MongoFormat derivation
240[info] - should support composition (14 milliseconds)
241[info] - should support ADT (13 milliseconds)
242[info] - should annotations (0 milliseconds)
243[info] MongoKeySpec:
244[info] deriving MongoFormat
245[info] - must rename fields annotated with @MongoKey (20 milliseconds)
246Starting build for ProjectRef(file:/build/repo/,sphere-json-core) (sphere-json-core)... [1/7]
247Compile scalacOptions: -unchecked, -noindent, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
248[info] compiling 16 Scala sources to /build/repo/json/json-core/target/scala-3.8.0-RC3/classes ...
249[warn] there was 1 deprecation warning; re-run with -deprecation for details
250[warn] one warning found
251[info] done compiling
252[info] compiling 12 Scala sources to /build/repo/json/json-core/target/scala-3.8.0-RC3/test-classes ...
253[info] done compiling
254[info] ToJSONSpec:
255[info] ToJSON.apply
256[info] - must create a ToJSON (22 milliseconds)
257[info] SetHandlingSpec:
258[info] JSON deserialization
259[info] - must should accept same elements in array to create a set (153 milliseconds)
260[info] SphereJsonParserSpec:
261[info] Object mapper
262[info] - must accept strings with 20_000_000 bytes (138 milliseconds)
263[info] BigNumberParsingSpec:
264[info] parsing a big number
265[info] - should not take much time when parsed as Double (207 milliseconds)
266[info] + Joda - java.time compat.compatibility between serialized Instant and DateTime: OK, passed 100 tests.
267[info] - should not take much time when parsed as Long (63 milliseconds)
268[info] + Joda - java.time compat.roundtrip from java.time.Instant: OK, passed 100 tests.
269[info] + Joda - java.time compat.compatibility between serialized java.time.LocalTime and org.joda.time.LocalTime: OK, passed 100 tests.
270[info] + Joda - java.time compat.roundtrip from org.joda.time.DateTime: OK, passed 100 tests.
271[info] - should not take much time when parsed as Int (58 milliseconds)
272[info] JSONCatsInstancesTest:
273[info] Invariant[JSON]
274[info] - must allow imaping a default format (4 milliseconds)
275[info] Functor[FromJson] and Contramap[ToJson]
276[info] - must allow mapping and contramapping a default format (5 milliseconds)
277[info] JodaJavaLocalDateCompatSpec:
278[info] parsing a LocalDate
279[info] - should accept two digit years (45 milliseconds)
280[info] - should accept year zero (1 millisecond)
281[info] - should accept no day set (1 millisecond)
282[info] - should accept up to nine digit years (2 milliseconds)
283[info] - should accept a year with leading zero (0 milliseconds)
284[info] - should accept a year with leading plus sign (0 milliseconds)
285[info] MoneyMarshallingSpec:
286[info] money encoding/decoding
287[info] - should be symmetric (49 milliseconds)
288[info] - should decode with type info (9 milliseconds)
289[info] - should decode without type info (1 millisecond)
290[info] High precision money encoding/decoding
291[info] - should be symmetric (32 milliseconds)
292[info] - should decode with type info (6 milliseconds)
293[info] - should decode with centAmount (1 millisecond)
294[info] - should validate data when decoded from JSON (1 millisecond)
295[info] JSONSpec:
296[info] JSON.apply
297[info] - must find possible JSON instance (1 millisecond)
298[info] - must create instance from FromJSON and ToJSON (1 millisecond)
299[info] SphereJsonExample:
300[info] JSON[User]
301[info] - should serialize and deserialize an user (49 milliseconds)
302[info] DateTimeParsingSpec:
303[info] parsing a DateTime
304[info] - should reject strings with invalid year (9 milliseconds)
305[info] - should accept strings with valid year (1 millisecond)
306[info] - should reject strings with years that are out of range for integers (3 milliseconds)
307[info] - should reject strings that are out of range for other fields (1 millisecond)
308[info] - should reject strings with invalid days (0 milliseconds)
309[info] - should reject strings with invalid months (1 millisecond)
310[info] - should reject strings with invalid hours (1 millisecond)
311[info] - should reject strings with invalid minutes (0 milliseconds)
312[info] - should reject strings with invalid seconds (1 millisecond)
313[info] parsing an Instant
314[info] - should accept strings with invalid year (1 millisecond)
315[info] - should reject strings with years that are out of range for integers (2 milliseconds)
316[info] - should reject strings that are out of range for other fields (1 millisecond)
317[info] - should reject strings with invalid days (1 millisecond)
318[info] - should reject strings with invalid months (0 milliseconds)
319[info] - should reject strings with invalid hours (0 milliseconds)
320[info] - should reject strings with invalid minutes (1 millisecond)
321[info] - should reject strings with invalid seconds (0 milliseconds)
322[info] parsing a Java instant
323[info] - should accept a full instant with milliseconds and offset (0 milliseconds)
324[info] - should accept a year with offset (0 milliseconds)
325[info] - should accept a year month with offset (1 millisecond)
326[info] - should accept a year month day without offset (0 milliseconds)
327[info] - should accept a year month day with offset (0 milliseconds)
328[info] - should accept a year month day with hour and offset (1 millisecond)
329[info] - should accept a year month day with hour, minute, and offset (0 milliseconds)
330[info] - should accept a year month day with hour, minute, second, and offset (4 milliseconds)
331[info] - should accept a year month day with hour, fraction, and offset (1 millisecond)
332[info] - should accept a year month day with hour, minute, fraction, and offset (1 millisecond)
333[info] - should accept a year month day with hour, minute, second, fraction, and offset (2 milliseconds)
334[info] - should accept a year month day with hour, minute, second, fraction, but no offset (1 millisecond)
335[info] - should accept a year month day with hour, minute, second, and an offset containing a colon (2 milliseconds)
336[info] - should accept a year month day with hour, minute, second, and an offset of zero containing a colon (0 milliseconds)
337[info] - should accept a year month day with hour, minute, second, and a negative colon offset (0 milliseconds)
338[info] - should accept a year month day with hour, minute, second, and an offset of hours only (1 millisecond)
339[info] + JSON.read/write List of Ints: OK, passed 100 tests.
340[info] + JSON.read/write Vector of Strings: OK, passed 100 tests.
341[info] + JSON.read/write NonEmptyList of Shorts: OK, passed 100 tests.
342[info] + JSON.read/write NonEmptyList of Ints: OK, passed 100 tests.
343[info] + JSON.read/write Set of Strings: OK, passed 100 tests.
344[info] + JSON.read/write List of Booleans: OK, passed 100 tests.
345[info] + JSON.read/write Map of Shorts: OK, passed 100 tests.
346[info] + JSON.read/write Set of Doubles: OK, passed 100 tests.
347[info] + JSON.read/write Option of Doubles: OK, passed 100 tests.
348[info] + JSON.read/write Unit: OK, passed 100 tests.
349[info] + JSON.read/write Option of Strings: OK, passed 100 tests.
350[info] + JSON.read/write LocalDate: OK, passed 100 tests.
351[info] + JSON.read/write Currency: OK, passed 100 tests.
352[info] + JSON.read/write Option of Floats: OK, passed 100 tests.
353[info] + JSON.read/write Map of Strings: OK, passed 100 tests.
354[info] + JSON.read/write Map of Floats: OK, passed 100 tests.
355[info] + JSON.read/write NonEmptyList of Strings: OK, passed 100 tests.
356[info] + JSON.read/write java.time.YearMonth: OK, passed 100 tests.
357[info] + JSON.read/write Map of Ints: OK, passed 100 tests.
358[info] + JSON.read/write YearMonth: OK, passed 100 tests.
359[info] + JSON.read/write Locale: OK, passed 100 tests.
360[info] + JSON.read/write List of Strings: OK, passed 100 tests.
361[info] + JSON.read/write java.time.LocalTime: OK, passed 100 tests.
362[info] + JSON.read/write UUID: OK, passed 100 tests.
363[info] + JSON.read/write Vector of Ints: OK, passed 100 tests.
364[info] + JSON.read/write Map of Booleans: OK, passed 100 tests.
365[info] + JSON.read/write Option of Shorts: OK, passed 100 tests.
366[info] + JSON.read/write NonEmptyList of Booleans: OK, passed 100 tests.
367[info] + JSON.read/write Option of Longs: OK, passed 100 tests.
368[info] + JSON.read/write Option of Booleans: OK, passed 100 tests.
369[info] + JSON.read/write NonEmptyList of Longs: OK, passed 100 tests.
370[info] + JSON.read/write NonEmptyList of Doubles: OK, passed 100 tests.
371[info] + JSON.read/write Map of Doubles: OK, passed 100 tests.
372[info] + JSON.read/write Set of Longs: OK, passed 100 tests.
373[info] + JSON.read/write Vector of Booleans: OK, passed 100 tests.
374[info] + JSON.read/write List of Longs: OK, passed 100 tests.
375[info] + JSON.read/write Set of Booleans: OK, passed 100 tests.
376[info] + JSON.read/write Vector of Shorts: OK, passed 100 tests.
377[info] + JSON.read/write java.time.Instant: OK, passed 100 tests.
378[info] + JSON.read/write Vector of Doubles: OK, passed 100 tests.
379[info] + JSON.read/write Map of Longs: OK, passed 100 tests.
380[info] + JSON.read/write LocalTime: OK, passed 100 tests.
381[info] + JSON.read/write Vector of Floats: OK, passed 100 tests.
382[info] + JSON.read/write java.time.LocalDate: OK, passed 100 tests.
383[info] + JSON.read/write List of Doubles: OK, passed 100 tests.
384[info] + JSON.read/write Set of Floats: OK, passed 100 tests.
385[info] + JSON.read/write Vector of Longs: OK, passed 100 tests.
386[info] + JSON.read/write Set of Ints: OK, passed 100 tests.
387[info] + JSON.read/write Option of Ints: OK, passed 100 tests.
388[info] + JSON.read/write NonEmptyList of Floats: OK, passed 100 tests.
389[info] + JSON.read/write List of Shorts: OK, passed 100 tests.
390[info] + JSON.read/write DateTime: OK, passed 100 tests.
391[info] + JSON.read/write Set of Shorts: OK, passed 100 tests.
392[info] + JSON.read/write Money: OK, passed 100 tests.
393[info] + JSON.read/write List of Floats: OK, passed 100 tests.
394Starting build for ProjectRef(file:/build/repo/,sphere-json) (sphere-json)... [2/7]
395Compile scalacOptions: -unchecked, -noindent, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
396Starting build for ProjectRef(file:/build/repo/,sphere-mongo) (sphere-mongo)... [3/7]
397Compile scalacOptions: -unchecked, -noindent, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
398Starting build for ProjectRef(file:/build/repo/,sphere-json-derivation) (sphere-json-derivation)... [4/7]
399Compile scalacOptions: -unchecked, -noindent, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
400[info] compiling 10 Scala sources to /build/repo/json/json-derivation/target/scala-3.8.0-RC3/test-classes ...
401[info] done compiling
402[info] JSONEmbeddedSpec:
403[info] JSONEmbedded
404[info] - should flatten the json in one object (183 milliseconds)
405[info] - should validate that the json contains all needed fields (1 millisecond)
406[info] - should support optional embedded attribute (7 milliseconds)
407[info] - should ignore unknown fields (1 millisecond)
408[info] - should check for sub-fields (12 milliseconds)
409[info] - should support the absence of optional embedded attribute (1 millisecond)
410[info] - should validate the absence of some embedded attributes (0 milliseconds)
411[info] DefaultValuesSpec:
412[info] deriving JSON
413[info] - must handle default values (171 milliseconds)
414[info] - must handle Option with no explicit default values (5 milliseconds)
415[info] JsonTypeHintFieldSpec:
416[info] JSONTypeHintField
417[info] - must allow to set another field to distinguish between types (toMongo) (171 milliseconds)
418[info] - must allow to set another field to distinguish between types (fromJSON) (1 millisecond)
419[info] OptionReaderSpec:
420[info] OptionReader
421[info] - should handle presence of all fields (172 milliseconds)
422[info] - should handle presence of all fields mixed with ignored fields (1 millisecond)
423[info] - should handle presence of not all the fields (5 milliseconds)
424[info] - should handle absence of all fields (0 milliseconds)
425[info] - should handle optional map (15 milliseconds)
426[info] - should handle optional list (7 milliseconds)
427[info] - should handle absence of all fields mixed with ignored fields (1 millisecond)
428[info] - should consider all fields if the data type does not impose any restriction (0 milliseconds)
429[info] - should parse optional element (9 milliseconds)
430[info] SubTypeNameSpec:
431[info] JSON.subtypeNames
432[info] - must return all subtypes of a trait when using deriveJSON (9 milliseconds)
433[info] - must return all subtypes of a trait when using jsonTypeSwitch (9 milliseconds)
434[info] - must return only class names in nested trait hierarchies (20 milliseconds)
435[info] DeriveSingletonJSONSpec:
436[info] DeriveSingletonJSON
437[info] - must read normal singleton values (30 milliseconds)
438[info] - must fail to read if singleton value is unknown (4 milliseconds)
439[info] - must write normal singleton values (3 milliseconds)
440[info] - must read custom singleton values (0 milliseconds)
441[info] - must write custom singleton values (1 millisecond)
442[info] - must write and consequently read, which must produce the original value (1 millisecond)
443[info] - must read and write sealed trait with only one subtype (3 milliseconds)
444[info] NullHandlingSpec:
445[info] JSON deserialization
446[info] - must accept undefined fields and use default values for them (8 milliseconds)
447[info] - must accept null values and use default values for them (1 millisecond)
448[info] - must accept JNothing values and use default values for them (0 milliseconds)
449[info] - must accept not-null values and use them (3 milliseconds)
450[info] JSONKeySpec:
451[info] deriving JSON
452[info] - must rename fields annotated with @JSONKey (11 milliseconds)
453[info] JSONSpec:
454[info] JSON.apply
455[info] - must find possible JSON instance (5 milliseconds)
456[info] - must create instance from FromJSON and ToJSON (3 milliseconds)
457[info] JSON
458[info] - must read/write a custom class using custom typeclass instances (75 milliseconds)
459[info] - must fail reading wrong currency code. (1 millisecond)
460[info] - must provide derived JSON instances for product types (case classes) (10 milliseconds)
461[info] - must handle empty String (2 milliseconds)
462[info] - must provide user-friendly error by empty String (0 milliseconds)
463[info] - must handle incorrect json (1 millisecond)
464[info] - must provide user-friendly error by incorrect json (1 millisecond)
465[info] - must provide derived JSON instances for sum types (10 milliseconds)
466[info] - must provide derived instances for product types with concrete type parameters (3 milliseconds)
467[info] - must provide derived instances for product types with generic type parameters (2 milliseconds)
468[info] - must provide derived instances for singleton objects (10 milliseconds)
469[info] - must provide derived instances for sum types with a mix of case class / object (6 milliseconds)
470[info] - must provide derived instances for scala.Enumeration (8 milliseconds)
471[info] - must handle subclasses correctly in `jsonTypeSwitch` (21 milliseconds)
472[info] ToJSON and FromJSON
473[info] - must provide derived JSON instances for sum types (6 milliseconds)
474[info] - must provide derived instances for product types with concrete type parameters (2 milliseconds)
475[info] - must provide derived instances for sum types with a mix of case class / object (3 milliseconds)
476[info] - must provide derived instances for scala.Enumeration (1 millisecond)
477[info] - must handle subclasses correctly in `jsonTypeSwitch` (9 milliseconds)
478[info] - must provide derived JSON instances for product types (case classes) (4 milliseconds)
479[info] JsonTypeSwitchSpec:
480[info] jsonTypeSwitch
481[info] - must derive a subset of a sealed trait with newSyntax (3 milliseconds)
482[info] - must derive a subset of a sealed trait with oldSyntax (1 millisecond)
483[info] - must derive a subset of a sealed trait with a mongoKey with newSyntax (2 milliseconds)
484[info] - must derive a subset of a sealed trait with a mongoKey with oldSyntax (1 millisecond)
485[info] - must combine different sum types tree with newSyntax (11 milliseconds)
486[info] - must combine different sum types tree with oldSyntax (0 milliseconds)
487[info] - must handle custom implementations for subtypes with newSyntax (13 milliseconds)
488[info] - must handle custom implementations for subtypes with oldSyntax (2 milliseconds)
489[info] must handle the PlatformFormattedNotification case
490[info] - when using the /old/ syntax (164 milliseconds)
491[info] - when using the /new/ syntax (15 milliseconds)
492Starting build for ProjectRef(file:/build/repo/,sphere-mongo-core) (sphere-mongo-core)... [5/7]
493Compile scalacOptions: -unchecked, -noindent, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
494[info] compiling 4 Scala sources to /build/repo/mongo/mongo-core/target/scala-3.8.0-RC3/test-classes ...
495[info] done compiling
496[info] BaseMoneyMongoFormatTest:
497[info] MongoFormat[BaseMoney]
498[info] - should be symmetric (13 milliseconds)
499[info] - should decode with type info (25 milliseconds)
500[info] - should decode without type info (1 millisecond)
501[info] MongoFormat[HighPrecisionMoney]
502[info] - should be symmetric (9 milliseconds)
503[info] - should decode with type info (1 millisecond)
504[info] - should decode with centAmount (1 millisecond)
505[info] - should validate data when decoded from JSON (59 milliseconds)
506[info] DefaultMongoFormatsTest:
507[info] DefaultMongoFormats
508[info] - must support List[String] (83 milliseconds)
509[info] - must support List[A: MongoFormat] (7 milliseconds)
510[info] - must support Vector[String] (3 milliseconds)
511[info] - must support Vector[A: MongoFormat] (7 milliseconds)
512[info] - must support Set[String] (4 milliseconds)
513[info] - must support Set[A: MongoFormat] (21 milliseconds)
514[info] - must support Map[String, String] (8 milliseconds)
515[info] - must support Map[String, A: MongoFormat] (4 milliseconds)
516[info] - must support Java Locale (9 milliseconds)
517[info] - must support UUID (2 milliseconds)
518[info] MongoFormatCatsInstancesTest:
519[info] Invariant[MongoFormat]
520[info] - must allow imaping a default format (11 milliseconds)
521Starting build for ProjectRef(file:/build/repo/,sphere-util) (sphere-util)... [6/7]
522Compile scalacOptions: -unchecked, -noindent, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
523[info] compiling 7 Scala sources to /build/repo/util/target/scala-3.8.0-RC3/test-classes ...
524[info] done compiling
525[info] MoneySpec:
52615:26:46.062 [pool-77-thread-8] WARN ScalaLoggingCompatiblitySpec$Log$2$ -- Message1
527[info] Money
528[info] - should have value semantics. (14 milliseconds)
529[info] - should default to HALF_EVEN rounding mode when using monetary notation and use provided rounding mode when performing operations. (1 millisecond)
530[info] - should not accept an amount with an invalid scale for the used currency when using the constructor directly. (15 milliseconds)
531[info] - should return an InvalidArgumentException when using the unsafeApply method (4 milliseconds)
532[info] - should not be prone to common rounding errors known from floating point numbers. (2 milliseconds)
533[info] - should support the unary '-' operator. (1 millisecond)
534[info] - should throw error on overflow in the unary '-' operator. (0 milliseconds)
535[info] - should support the binary '+' operator. (0 milliseconds)
536[info] - should support the binary '+' operator on different currencies. (1 millisecond)
537[info] - should throw error on overflow in the binary '+' operator. (1 millisecond)
538[info] - should support the binary '-' operator. (1 millisecond)
539[info] - should throw error on overflow in the binary '-' operator. (1 millisecond)
540[info] - should support the binary '*' operator, requiring a rounding mode. (0 milliseconds)
541[info] - should throw error on overflow in the binary '*' operator. (0 milliseconds)
542[info] - should support the binary '/%' (divideAndRemainder) operator. (5 milliseconds)
543[info] - should throw error on overflow in the binary '/%' (divideAndRemainder) operator. (1 millisecond)
544[info] - should support getting the remainder of a division ('%'). (0 milliseconds)
545[info] - should not overflow when getting the remainder of a division ('%'). (0 milliseconds)
546[info] - should support partitioning an amount without losing or gaining money. (4 milliseconds)
547[info] - should allow comparing money with the same currency. (2 milliseconds)
548[info] - should support currencies with a scale of 0 (i.e. Japanese Yen) (2 milliseconds)
549[info] - should be able to update the centAmount (1 millisecond)
550[info] - should provide convenient toString (1 millisecond)
551[info] + DateTimeFormats roundtrip.roundtrip from java.time.LocalDateTime: OK, passed 100 tests.
552[info] + DateTimeFormats roundtrip.roundtrip from java.time.OffsetDateTime: OK, passed 100 tests.
553[info] + DateTimeFormats roundtrip.roundtrip from java.time.Instant: OK, passed 100 tests.
554[info] - should not fail on toString (28 milliseconds)
555[info] + DateTimeFormats roundtrip.compatibility between serialized java.time.LocalDate and org.joda.time.LocalDate: OK, passed 100 tests.
556[info] + DateTimeFormats roundtrip.compatibility between serialized OffsetDateTime and joda.time.DateTime: OK, passed 100 tests.
557[info] + DateTimeFormats roundtrip.compatibility between serialized java.time.LocalTime and org.joda.time.LocalTime: OK, passed 100 tests.
558[info] HighPrecisionMoneySpec:
559[info] High Precision Money
560[info] - should allow creation of high precision money (12 milliseconds)
561[info] - should not allow creation of high precision money with less fraction digits than the currency has (11 milliseconds)
562[info] - should convert precise amount to long value correctly (0 milliseconds)
563[info] - should reduce fraction digits as expected (1 millisecond)
564[info] - should support the unary '-' operator. (3 milliseconds)
565[info] - should throw error on overflow in the unary '-' operator. (4 milliseconds)
566[info] - should support the binary '+' operator. (1 millisecond)
567[info] - should throw error on overflow in the binary '+' operator. (0 milliseconds)
568[info] - should support the binary '-' operator. (4 milliseconds)
569[info] - should throw error on overflow in the binary '-' operator. (1 millisecond)
570[info] - should support the binary '*' operator. (1 millisecond)
571[info] - should throw error on overflow in the binary '*' operator. (3 milliseconds)
572[info] - should support the binary '%' operator. (2 milliseconds)
573[info] - should throw error on overflow in the binary '%' operator. (1 millisecond)
574[info] - should support the binary '/%' operator. (1 millisecond)
575[info] - should throw error on overflow in the binary '/%' operator. (2 milliseconds)
576[info] - should support the remainder operator. (1 millisecond)
577[info] - should not overflow when getting the remainder of a division ('%'). (1 millisecond)
578[info] - should partition the value properly. (39 milliseconds)
579[info] - should validate fractionDigits (min) (84 milliseconds)
580[info] - should validate fractionDigits (max) (0 milliseconds)
581[info] - should validate centAmount (1 millisecond)
582[info] - should provide convenient toString (1 millisecond)
583[info] - should not fail on toString (3 milliseconds)
584[info] - should fail on too big fraction decimal (0 milliseconds)
585[info] DateTimeFormatsSpec:
586[info] DateTimeFormats
587[info] - should parse date-times supported by sphere (40 milliseconds)
588[info] - should parse local dates with five digits (0 milliseconds)
589[info] - should parse local dates with five digits prefixed by a plus sign (3 milliseconds)
590[info] - should parse local dates with zero padded days (0 milliseconds)
591[info] - should parse local dates with non-zero padded days (0 milliseconds)
592[info] - should parse local dates with zero padded months (0 milliseconds)
593[info] - should parse local dates with non-zero padded months (0 milliseconds)
594[info] - should parse local dates with missing day as first day of the month (0 milliseconds)
595[info] - should parse local dates with missing day and month as first day of the first month (0 milliseconds)
596[info] - should accept two digit years (1 millisecond)
597[info] - should accept negative years (0 milliseconds)
598[info] - should accept negative four digit years (0 milliseconds)
599[info] - should accept a year with a leading zero (0 milliseconds)
600[info] - should accept a nine digit year (0 milliseconds)
601[info] - should accept year zero (1 millisecond)
602[info] - should not accept a zero day (1 millisecond)
603[info] - should not accept a zero month (0 milliseconds)
604[info] - should not accept days greater than 31 (1 millisecond)
605[info] - should not accept months greater than 12 (0 milliseconds)
606[info] ScalaLoggingCompatiblitySpec:
607[info] Ensure we skip ScalaLogging 3.9.5, because varargs will not compile under 3.9.5
608[info] LangTagSpec:
609[info] LangTag
610[info] - should accept valid language tags (6 milliseconds)
611[info] - should not accept invalid language tags (4 milliseconds)
612
613************************
614Build summary:
615[{
616 "module": "sphere-mongo-derivation",
617 "compile": {"status": "ok", "tookMs": 12349, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
618 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
619 "test-compile": {"status": "ok", "tookMs": 10766, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
620 "test": {"status": "ok", "tookMs": 872, "passed": 54, "failed": 0, "ignored": 0, "skipped": 0, "total": 54, "byFramework": [{"framework": "unknown", "stats": {"passed": 54, "failed": 0, "ignored": 0, "skipped": 0, "total": 54}}]},
621 "publish": {"status": "skipped", "tookMs": 0},
622 "metadata": {
623 "crossScalaVersions": ["2.13.17", "3.3.7"]
624}
625},{
626 "module": "sphere-json-core",
627 "compile": {"status": "ok", "tookMs": 2864, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
628 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
629 "test-compile": {"status": "ok", "tookMs": 3485, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
630 "test": {"status": "ok", "tookMs": 2035, "passed": 116, "failed": 0, "ignored": 0, "skipped": 0, "total": 116, "byFramework": [{"framework": "unknown", "stats": {"passed": 116, "failed": 0, "ignored": 0, "skipped": 0, "total": 116}}]},
631 "publish": {"status": "skipped", "tookMs": 0},
632 "metadata": {
633 "crossScalaVersions": ["2.13.17", "3.3.7"]
634}
635},{
636 "module": "sphere-json",
637 "compile": {"status": "ok", "tookMs": 169, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
638 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
639 "test-compile": {"status": "ok", "tookMs": 194, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
640 "test": {"status": "ok", "tookMs": 178, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
641 "publish": {"status": "skipped", "tookMs": 0},
642 "metadata": {
643 "crossScalaVersions": ["2.13.17", "3.3.7"]
644}
645},{
646 "module": "sphere-mongo",
647 "compile": {"status": "ok", "tookMs": 135, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
648 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
649 "test-compile": {"status": "ok", "tookMs": 199, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
650 "test": {"status": "ok", "tookMs": 194, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
651 "publish": {"status": "skipped", "tookMs": 0},
652 "metadata": {
653 "crossScalaVersions": ["2.13.17", "3.3.7"]
654}
655},{
656 "module": "sphere-json-derivation",
657 "compile": {"status": "ok", "tookMs": 98, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
658 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
659 "test-compile": {"status": "ok", "tookMs": 8194, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
660 "test": {"status": "ok", "tookMs": 775, "passed": 67, "failed": 0, "ignored": 0, "skipped": 0, "total": 67, "byFramework": [{"framework": "unknown", "stats": {"passed": 67, "failed": 0, "ignored": 0, "skipped": 0, "total": 67}}]},
661 "publish": {"status": "skipped", "tookMs": 0},
662 "metadata": {
663 "crossScalaVersions": ["2.13.17", "3.3.7"]
664}
665},{
666 "module": "sphere-mongo-core",
667 "compile": {"status": "ok", "tookMs": 72, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
668 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
669 "test-compile": {"status": "ok", "tookMs": 931, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
670 "test": {"status": "ok", "tookMs": 443, "passed": 18, "failed": 0, "ignored": 0, "skipped": 0, "total": 18, "byFramework": [{"framework": "unknown", "stats": {"passed": 18, "failed": 0, "ignored": 0, "skipped": 0, "total": 18}}]},
671 "publish": {"status": "skipped", "tookMs": 0},
672 "metadata": {
673 "crossScalaVersions": ["2.13.17", "3.3.7"]
674}
675},{
676 "module": "sphere-util",
677 "compile": {"status": "ok", "tookMs": 38, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
678 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
679 "test-compile": {"status": "ok", "tookMs": 1682, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
680 "test": {"status": "ok", "tookMs": 487, "passed": 76, "failed": 0, "ignored": 0, "skipped": 0, "total": 76, "byFramework": [{"framework": "unknown", "stats": {"passed": 76, "failed": 0, "ignored": 0, "skipped": 0, "total": 76}}]},
681 "publish": {"status": "skipped", "tookMs": 0},
682 "metadata": {
683 "crossScalaVersions": ["2.13.17", "3.3.7"]
684}
685}]
686************************
687[success] Total time: 85 s (0:01:25.0), completed Dec 4, 2025, 3:26:46 PM
688[0JChecking patch project/plugins.sbt...
689Checking patch build.sbt...
690Applied patch project/plugins.sbt cleanly.
691Applied patch build.sbt cleanly.