Build Logs

kalin-rudnicki/oxygen • 3.8.0-RC5:2025-12-31

Errors

2

Warnings

8

Total Lines

1943

1##################################
2Clonning https://github.com/kalin-rudnicki/oxygen.git into /build/repo using revision 0.3.0
3##################################
4Note: switching to 'd6bd157fc8e4c4eccdb8f627a446ec82991ca088'.
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.0-RC5
24Scala binary version found: 3.8
25Implicitly using source version 3.8
26Scala binary version found: 3.8
27Implicitly using source version 3.8
28Would try to apply common scalacOption (best-effort, sbt/mill only):
29Append: ,REQUIRE:-source:3.8
30Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
31
32Try apply source patch:
33Path: project/Settings.scala
34Pattern: val Scala_3 = "3.7.4"
35Replacement: val Scala_3 = "3.8.0-RC5"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (17))
38Compiled project (Scala 3.7.3, JVM (17))
39Successfully applied pattern 'val Scala_3 = "3.7.4"' in project/Settings.scala
40----
41Starting build for 3.8.0-RC5
42Execute tests: true
43sbt project found:
44Sbt version 1.11.3 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 kalin-rudnicki/oxygen
47##################################
48Scala version: 3.8.0-RC5
49Targets: io.github.kalin-rudnicki%oxygen-cli io.github.kalin-rudnicki%oxygen-core io.github.kalin-rudnicki%oxygen-crypto-model io.github.kalin-rudnicki%oxygen-crypto-service io.github.kalin-rudnicki%oxygen-executable io.github.kalin-rudnicki%oxygen-http-zio io.github.kalin-rudnicki%oxygen-json io.github.kalin-rudnicki%oxygen-quoted io.github.kalin-rudnicki%oxygen-schema io.github.kalin-rudnicki%oxygen-sql io.github.kalin-rudnicki%oxygen-sql-migration io.github.kalin-rudnicki%oxygen-sql-test io.github.kalin-rudnicki%oxygen-storage io.github.kalin-rudnicki%oxygen-storage-in-memory io.github.kalin-rudnicki%oxygen-test io.github.kalin-rudnicki%oxygen-test-container io.github.kalin-rudnicki%oxygen-transform io.github.kalin-rudnicki%oxygen-zio
50Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Settings.scala","pattern":"val Scala_3 = \"3.7.4\"","replaceWith":"val Scala_3 = \"<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-Xmx16G
60-Xss4M
61-Dcommunitybuild.scala=3.8.0-RC5
62-Dcommunitybuild.project.dependencies.add=
63-Xmx7G
64-Xms4G
65-Xss8M
66-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
67-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
68-jar
69/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
70"setCrossScalaVersions 3.8.0-RC5"
71"++3.8.0-RC5 -v"
72"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
73"set every credentials := Nil"
74"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
75"removeScalacOptionsStartingWith -P:wartremover"
76
77moduleMappings
78"runBuild 3.8.0-RC5 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Settings.scala","pattern":"val Scala_3 = \"3.7.4\"","replaceWith":"val Scala_3 = \"<SCALA_VERSION>\""}]}""" io.github.kalin-rudnicki%oxygen-cli io.github.kalin-rudnicki%oxygen-core io.github.kalin-rudnicki%oxygen-crypto-model io.github.kalin-rudnicki%oxygen-crypto-service io.github.kalin-rudnicki%oxygen-executable io.github.kalin-rudnicki%oxygen-http-zio io.github.kalin-rudnicki%oxygen-json io.github.kalin-rudnicki%oxygen-quoted io.github.kalin-rudnicki%oxygen-schema io.github.kalin-rudnicki%oxygen-sql io.github.kalin-rudnicki%oxygen-sql-migration io.github.kalin-rudnicki%oxygen-sql-test io.github.kalin-rudnicki%oxygen-storage io.github.kalin-rudnicki%oxygen-storage-in-memory io.github.kalin-rudnicki%oxygen-test io.github.kalin-rudnicki%oxygen-test-container io.github.kalin-rudnicki%oxygen-transform io.github.kalin-rudnicki%oxygen-zio"
79
80[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
81[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
82[info] loading project definition from /build/repo/project
83[info] compiling 4 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
84[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
85[info] Compilation completed in 8.579s.
86[info] done compiling
87[info] loading settings for project oxygen-root from build.sbt...
88[info] resolving key references (70968 settings) ...
89[info] set current project to oxygen-root (in build file:/build/repo/)
90[warn] there's a key that's not used by any other settings/tasks:
91[warn]
92[warn] * example-ui / webCompDirs
93[warn] +- /build/repo/build.sbt:697
94[warn]
95[warn] note: a setting might still be used by a command; to exclude a key from this `lintUnused` check
96[warn] either append it to `Global / excludeLintKeys` or call .withRank(KeyRanks.Invisible) on the key
97Execute setCrossScalaVersions: 3.8.0-RC5
98OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in sql-it/crossScalaVersions
99OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example-apiJS/crossScalaVersions
100OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-test-container/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-test-container/crossScalaVersions
102OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-crypto-modelNative/crossScalaVersions
103OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-crypto-modelNative/crossScalaVersions
104OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example/crossScalaVersions
105OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example/crossScalaVersions
106OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example-ui/crossScalaVersions
107OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example-ui/crossScalaVersions
108OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-sql-test/crossScalaVersions
109OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-sql-test/crossScalaVersions
110OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-httpJVM/crossScalaVersions
111OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-httpJVM/crossScalaVersions
112OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-jsonJS/crossScalaVersions
113OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-jsonJS/crossScalaVersions
114OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example-coreJVM/crossScalaVersions
115OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example-coreJVM/crossScalaVersions
116OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-zioJVM/crossScalaVersions
117OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-zioJVM/crossScalaVersions
118OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-storage/crossScalaVersions
119OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-storage/crossScalaVersions
120OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-zioJS/crossScalaVersions
121OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-zioJS/crossScalaVersions
122OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-modules/crossScalaVersions
123OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-modules/crossScalaVersions
124OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-coreNative/crossScalaVersions
125OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-coreNative/crossScalaVersions
126OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-httpJS/crossScalaVersions
127OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-httpJS/crossScalaVersions
128OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in http-it/crossScalaVersions
129OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in http-it/crossScalaVersions
130OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example-api-modelsJS/crossScalaVersions
131OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example-api-modelsJS/crossScalaVersions
132OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-zioNative/crossScalaVersions
133OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-zioNative/crossScalaVersions
134OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in utJVM/crossScalaVersions
135OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in utJVM/crossScalaVersions
136OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in it/crossScalaVersions
137OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in it/crossScalaVersions
138OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-coreJS/crossScalaVersions
139OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-coreJS/crossScalaVersions
140OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example-domain-impl/crossScalaVersions
141OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example-domain-impl/crossScalaVersions
142OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example-api-modelsJVM/crossScalaVersions
143OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example-api-modelsJVM/crossScalaVersions
144OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-executableJVM/crossScalaVersions
145OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-executableJVM/crossScalaVersions
146OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in utNative/crossScalaVersions
147OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in utNative/crossScalaVersions
148OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-cliNative/crossScalaVersions
149OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-cliNative/crossScalaVersions
150OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-cliJVM/crossScalaVersions
151OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-cliJVM/crossScalaVersions
152OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-ui-web/crossScalaVersions
153OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-ui-web/crossScalaVersions
154OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-all/crossScalaVersions
155OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-all/crossScalaVersions
156OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-quotedJS/crossScalaVersions
157OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-quotedJS/crossScalaVersions
158OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example-apiJVM/crossScalaVersions
159OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example-apiJVM/crossScalaVersions
160OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in sql-it/crossScalaVersions
161OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example-coreJS/crossScalaVersions
162OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example-coreJS/crossScalaVersions
163OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-sql/crossScalaVersions
164OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-sql/crossScalaVersions
165OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example-domain/crossScalaVersions
166OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example-domain/crossScalaVersions
167OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-testNative/crossScalaVersions
168OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-testNative/crossScalaVersions
169OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-crypto-service/crossScalaVersions
170OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-crypto-service/crossScalaVersions
171OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-quotedNative/crossScalaVersions
172OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-quotedNative/crossScalaVersions
173OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-crypto-modelJVM/crossScalaVersions
174OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-crypto-modelJVM/crossScalaVersions
175OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in utJS/crossScalaVersions
176OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in utJS/crossScalaVersions
177OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example-domain-models/crossScalaVersions
178OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example-domain-models/crossScalaVersions
179OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-jsonJVM/crossScalaVersions
180OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-jsonJVM/crossScalaVersions
181OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-schemaNative/crossScalaVersions
182OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-schemaNative/crossScalaVersions
183OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-storage-in-memory/crossScalaVersions
184OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-storage-in-memory/crossScalaVersions
185OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in example-web-server/crossScalaVersions
186OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example-web-server/crossScalaVersions
187OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-coreJVM/crossScalaVersions
188OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-coreJVM/crossScalaVersions
189OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-modules-js/crossScalaVersions
190OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-modules-js/crossScalaVersions
191OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-modules-native/crossScalaVersions
192OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-modules-native/crossScalaVersions
193OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example-apiJS/crossScalaVersions
194OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-transformNative/crossScalaVersions
195OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-transformNative/crossScalaVersions
196OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-executableNative/crossScalaVersions
197OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-executableNative/crossScalaVersions
198OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-executableJS/crossScalaVersions
199OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-executableJS/crossScalaVersions
200OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-transformJVM/crossScalaVersions
201OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-transformJVM/crossScalaVersions
202OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-testJVM/crossScalaVersions
203OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-testJVM/crossScalaVersions
204OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-testJS/crossScalaVersions
205OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-testJS/crossScalaVersions
206OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-schemaJVM/crossScalaVersions
207OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-jsonNative/crossScalaVersions
208OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-schemaJVM/crossScalaVersions
209OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-jsonNative/crossScalaVersions
210OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-transformJS/crossScalaVersions
211OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-transformJS/crossScalaVersions
212OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-crypto-modelJS/crossScalaVersions
213OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-sql-migration/crossScalaVersions
214OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-crypto-modelJS/crossScalaVersions
215OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-sql-migration/crossScalaVersions
216OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-quotedJVM/crossScalaVersions
217OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-root/crossScalaVersions
218OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-cliJS/crossScalaVersions
219OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-root/crossScalaVersions
220OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-cliJS/crossScalaVersions
221OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-quotedJVM/crossScalaVersions
222OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-schemaJS/crossScalaVersions
223OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-schemaJS/crossScalaVersions
224OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in oxygen-modules-jvm/crossScalaVersions
225OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in oxygen-modules-jvm/crossScalaVersions
226[info] set current project to oxygen-root (in build file:/build/repo/)
227[info] Setting Scala version to 3.8.0-RC5 on 64 projects.
228[info] Switching Scala version on:
229[info] utNative (3.8.0-RC5)
230[info] oxygen-executableJS (3.8.0-RC5)
231[info] oxygen-quotedNative (3.8.0-RC5)
232[info] oxygen-sql (3.8.0-RC5)
233[info] oxygen-crypto-modelJVM (3.8.0-RC5)
234[info] example-coreJS (3.8.0-RC5)
235[info] oxygen-crypto-service (3.8.0-RC5)
236[info] utJVM (3.8.0-RC5)
237[info] oxygen-jsonJVM (3.8.0-RC5)
238[info] example-apiJVM (3.8.0-RC5)
239[info] example-domain (3.8.0-RC5)
240[info] oxygen-testJS (3.8.0-RC5)
241[info] oxygen-storage (3.8.0-RC5)
242[info] oxygen-httpJS (3.8.0-RC5)
243[info] oxygen-crypto-modelJS (3.8.0-RC5)
244[info] oxygen-modules-js (3.8.0-RC5)
245[info] example-api-modelsJS (3.8.0-RC5)
246[info] oxygen-schemaJS (3.8.0-RC5)
247[info] oxygen-quotedJVM (3.8.0-RC5)
248[info] example-ui (3.8.0-RC5)
249[info] oxygen-zioJVM (3.8.0-RC5)
250[info] sql-it (3.8.0-RC5)
251[info] utJS (3.8.0-RC5)
252[info] oxygen-transformJVM (3.8.0-RC5)
253[info] oxygen-modules-jvm (3.8.0-RC5)
254[info] * oxygen-root (3.8.0-RC5)
255[info] example-coreJVM (3.8.0-RC5)
256[info] oxygen-all (3.8.0-RC5)
257[info] oxygen-quotedJS (3.8.0-RC5)
258[info] example-domain-models (3.8.0-RC5)
259[info] it (3.8.0-RC5)
260[info] oxygen-sql-migration (3.8.0-RC5)
261[info] oxygen-testJVM (3.8.0-RC5)
262[info] oxygen-coreJS (3.8.0-RC5)
263[info] oxygen-executableJVM (3.8.0-RC5)
264[info] oxygen-cliJS (3.8.0-RC5)
265[info] oxygen-httpJVM (3.8.0-RC5)
266[info] example-apiJS (3.8.0-RC5)
267[info] oxygen-coreJVM (3.8.0-RC5)
268[info] oxygen-jsonJS (3.8.0-RC5)
269[info] http-it (3.8.0-RC5)
270[info] oxygen-executableNative (3.8.0-RC5)
271[info] oxygen-testNative (3.8.0-RC5)
272[info] oxygen-cliJVM (3.8.0-RC5)
273[info] oxygen-storage-in-memory (3.8.0-RC5)
274[info] oxygen-sql-test (3.8.0-RC5)
275[info] example-domain-impl (3.8.0-RC5)
276[info] oxygen-crypto-modelNative (3.8.0-RC5)
277[info] oxygen-zioJS (3.8.0-RC5)
278[info] oxygen-transformNative (3.8.0-RC5)
279[info] oxygen-transformJS (3.8.0-RC5)
280[info] oxygen-ui-web (3.8.0-RC5)
281[info] oxygen-modules (3.8.0-RC5)
282[info] oxygen-schemaJVM (3.8.0-RC5)
283[info] oxygen-jsonNative (3.8.0-RC5)
284[info] oxygen-cliNative (3.8.0-RC5)
285[info] example (3.8.0-RC5)
286[info] example-web-server (3.8.0-RC5)
287[info] example-api-modelsJVM (3.8.0-RC5)
288[info] oxygen-modules-native (3.8.0-RC5)
289[info] oxygen-schemaNative (3.8.0-RC5)
290[info] oxygen-zioNative (3.8.0-RC5)
291[info] oxygen-coreNative (3.8.0-RC5)
292[info] oxygen-test-container (3.8.0-RC5)
293[info] Excluding projects:
294[info] Reapplying settings...
295[info] set current project to oxygen-root (in build file:/build/repo/)
296Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
297[info] Reapplying settings...
298[info] set current project to oxygen-root (in build file:/build/repo/)
299[info] Defining Global / credentials, credentials and 62 others.
300[info] The new values will be used by Global / pgpSelectPassphrase, Global / pgpSigningKey and 319 others.
301[info] Run `last` for details.
302[info] Reapplying settings...
303[info] set current project to oxygen-root (in build file:/build/repo/)
304Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
305[info] Reapplying settings...
306OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
307
308 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
309 Did you mean example-ui / allExcludeDependencies ?
310 , retry without global scopes
311[info] Reapplying settings...
312[info] set current project to oxygen-root (in build file:/build/repo/)
313Execute removeScalacOptionsStartingWith: -P:wartremover
314[info] Reapplying settings...
315[info] set current project to oxygen-root (in build file:/build/repo/)
316[success] Total time: 0 s, completed Dec 31, 2025, 10:49:05 PM
317Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Settings.scala","pattern":"val Scala_3 = \"3.7.4\"","replaceWith":"val Scala_3 = \"<SCALA_VERSION>\""}]}
318Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
319Starting build...
320Projects: Set(oxygen-sql, oxygen-crypto-modelJVM, oxygen-crypto-service, utJVM, oxygen-jsonJVM, oxygen-storage, oxygen-quotedJVM, oxygen-zioJVM, oxygen-transformJVM, oxygen-sql-migration, oxygen-testJVM, oxygen-executableJVM, oxygen-httpJVM, oxygen-coreJVM, oxygen-cliJVM, oxygen-storage-in-memory, oxygen-sql-test, oxygen-schemaJVM, oxygen-test-container)
321Starting build for ProjectRef(file:/build/repo/,oxygen-transformJVM) (oxygen-transform)... [0/19]
322OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
323OpenCB::Filter out '-source:future', matches setting pattern '^-?-source(:.*)?'
324OpenCB::Filter out '-Werror', matches setting pattern '^-?-Werror'
325OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
326OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
327Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
328[info] compiling 35 Scala sources to /build/repo/modules/general/quoted/.jvm/target/scala-3.8.0-RC5/classes ...
329[info] done compiling
330[info] compiling 88 Scala sources to /build/repo/modules/general/core/.jvm/target/scala-3.8.0-RC5/classes ...
331[info] done compiling
332[info] compiling 5 Scala sources to /build/repo/modules/general/transform/.jvm/target/scala-3.8.0-RC5/classes ...
333[info] done compiling
334[info] compiling 18 Scala sources to /build/repo/modules/general/json/.jvm/target/scala-3.8.0-RC5/classes ...
335[info] done compiling
336[info] compiling 27 Scala sources to /build/repo/modules/general/zio/.jvm/target/scala-3.8.0-RC5/classes ...
337[info] done compiling
338[info] compiling 10 Scala sources to /build/repo/modules/general/test-utils/.jvm/target/scala-3.8.0-RC5/classes ...
339[info] done compiling
340[info] compiling 3 Scala sources to /build/repo/modules/general/transform/.jvm/target/scala-3.8.0-RC5/test-classes ...
341[info] done compiling
342+ TransformSpec
343 + givens
344 + id - String
345 + some - String
346 + seq - Password
347 + seq - String
348 + derived
349 + domain.SumExample.A -> api.SumExample.A
350 + domain.SumExample.B -> api.SumExample.B
351 + domain.Person -> api.Person
3527 tests passed. 0 tests failed. 0 tests ignored.
353
354Executed in 344 ms
355
356Starting build for ProjectRef(file:/build/repo/,oxygen-httpJVM) (oxygen-http-zio)... [1/19]
357Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
358[info] compiling 8 Scala sources to /build/repo/modules/crypto/model/.jvm/target/scala-3.8.0-RC5/classes ...
359[info] done compiling
360[info] compiling 23 Scala sources to /build/repo/modules/general/schema/.jvm/target/scala-3.8.0-RC5/classes ...
361[info] done compiling
362[info] compiling 70 Scala sources to /build/repo/modules/http/zio/.jvm/target/scala-3.8.0-RC5/classes ...
363[info] done compiling
364[info] compiling 1 Scala source to /build/repo/modules/http/zio/.jvm/target/scala-3.8.0-RC5/test-classes ...
365[info] done compiling
366+ MultiClientSpec
367 + can support multiple clients which send to base URL
3681 tests passed. 0 tests failed. 0 tests ignored.
369
370Executed in 468 ms
371
372Starting build for ProjectRef(file:/build/repo/,oxygen-crypto-service) (oxygen-crypto-service)... [2/19]
373Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
374[info] compiling 6 Scala sources to /build/repo/modules/crypto/service/target/scala-3.8.0-RC5/classes ...
375[info] done compiling
376[info] compiling 5 Scala sources to /build/repo/modules/crypto/service/target/scala-3.8.0-RC5/test-classes ...
377[info] done compiling
378+ JWTServiceSpec
379 + hmac
380 + detects invalid signature
381 + can issue and validate its own token - 2
382 + fails with invalid key - 1
383 + fails with invalid key - 2
384 + can issue and validate its own token - 1
385 + rsa
386 + can issue and validate its own token - 1
387 + can issue and validate its own token - 1
388 + detects invalid signature
389 + fails with invalid key - 2
390 + fails with invalid key - 1
391 + invalid algo
392 + invalid algo detected
393 + none
394 + can issue and validate its own token - 1
395+ EncryptionServiceSpec
396 + no-op
397 + can 'encrypt' and 'decrypt', and the value is the same
398 + live
399 + basic round-trip works
400 + encrypting the same value with the same service creates different IV and Cypher
401 + attempting to decrypt with invalid key fails
402 + fails with invalid IV
403+ JWTServiceSpec
404 + rsa
405 + fails on expired token - after
406 + can issue and validate its own token
407 + fails on invalid token
408 + fails on expired token - exact
409 + hmac
410 + fails on expired token - after
411 + fails on expired token - exact
412 + can issue and validate its own token
413 + fails on invalid token
41425 tests passed. 0 tests failed. 0 tests ignored.
415
416Executed in 709 ms
417
418Starting build for ProjectRef(file:/build/repo/,oxygen-testJVM) (oxygen-test)... [3/19]
419Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
420[info] compiling 1 Scala source to /build/repo/modules/general/test-utils/.jvm/target/scala-3.8.0-RC5/test-classes ...
421[info] done compiling
422+ TestExamplesSpec
423 + finite
424 + gen
425 + flatMap
426 + derived
4274 tests passed. 0 tests failed. 0 tests ignored.
428
429Executed in 287 ms
430
431Starting build for ProjectRef(file:/build/repo/,oxygen-storage) (oxygen-storage)... [4/19]
432Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
433[info] compiling 2 Scala sources to /build/repo/modules/sql/storage/target/scala-3.8.0-RC5/classes ...
434[info] done compiling
435Starting build for ProjectRef(file:/build/repo/,oxygen-quotedJVM) (oxygen-quoted)... [5/19]
436Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
437Starting build for ProjectRef(file:/build/repo/,utJVM) (oxygen-core)... [6/19]
438Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
439[info] compiling 39 Scala sources to /build/repo/modules/tests/pre-test-unit-tests/.jvm/target/scala-3.8.0-RC5/test-classes ...
440[info] done compiling
441
442----- 1 ---------------------------------------------------------------------------------------------
443
444from: JSON ~ oxygen.schema.CompatSpec.person.NoAge
445to: JSON ~ oxygen.schema.CompatSpec.person.NoAge
446
447
448 JsonProduct:
449 [38;2;125;91;166m| fields:
450 [38;2;125;91;166m| [38;2;229;71;36m| added (0):
451 [38;2;125;91;166m| [38;2;229;71;36m| removed (0):
452 [38;2;125;91;166m| [38;2;229;71;36m| both (2):
453 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| first:
454 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
455 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
456 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
457 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
458 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
459 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| last:
460 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
461 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
462 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
463 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
464 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
465
466
467 ExactEqual
468
469
470----- 2 ---------------------------------------------------------------------------------------------
471
472from: JSON ~ oxygen.schema.CompatSpec.person.NoAge
473to: JSON ~ oxygen.schema.CompatSpec.person.RequiredAge
474
475
476 JsonProduct:
477 [38;2;125;91;166m| fields:
478 [38;2;125;91;166m| [38;2;229;71;36m| added (1):
479 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
480 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
481 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
482 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type:
483 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JSON ~ scala.Int:
484 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| type: JsonNumber
485 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| number-format: Int32
486 [38;2;125;91;166m| [38;2;229;71;36m| removed (0):
487 [38;2;125;91;166m| [38;2;229;71;36m| both (2):
488 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| first:
489 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
490 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
491 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
492 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
493 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
494 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| last:
495 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
496 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
497 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
498 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
499 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
500
501
502 JsonProduct:
503 [38;2;125;91;166m| fields:
504 [38;2;125;91;166m| [38;2;229;71;36m| added (1):
505 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
506 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
507 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
508 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type:
509 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JSON ~ scala.Int:
510 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| type: JsonNumber
511 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| number-format: Int32
512 [38;2;125;91;166m| [38;2;229;71;36m| removed (0):
513 [38;2;125;91;166m| [38;2;229;71;36m| both (0):
514
515
516----- 3 ---------------------------------------------------------------------------------------------
517
518from: JSON ~ oxygen.schema.CompatSpec.person.RequiredAge
519to: JSON ~ oxygen.schema.CompatSpec.person.RequiredAge
520
521
522 JsonProduct:
523 [38;2;125;91;166m| fields:
524 [38;2;125;91;166m| [38;2;229;71;36m| added (0):
525 [38;2;125;91;166m| [38;2;229;71;36m| removed (0):
526 [38;2;125;91;166m| [38;2;229;71;36m| both (3):
527 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
528 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
529 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
530 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
531 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonNumber:
532 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| numberFormat: Int32
533 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| first:
534 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
535 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
536 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
537 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
538 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
539 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| last:
540 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
541 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
542 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
543 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
544 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
545
546
547 ExactEqual
548
549
550----- 4 ---------------------------------------------------------------------------------------------
551
552from: JSON ~ oxygen.schema.CompatSpec.person.RequiredAge
553to: JSON ~ oxygen.schema.CompatSpec.person.NoAge
554
555
556 JsonProduct:
557 [38;2;125;91;166m| fields:
558 [38;2;125;91;166m| [38;2;229;71;36m| added (0):
559 [38;2;125;91;166m| [38;2;229;71;36m| removed (1):
560 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
561 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
562 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
563 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type:
564 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JSON ~ scala.Int:
565 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| type: JsonNumber
566 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| number-format: Int32
567 [38;2;125;91;166m| [38;2;229;71;36m| both (2):
568 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| first:
569 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
570 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
571 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
572 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
573 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
574 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| last:
575 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
576 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
577 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
578 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
579 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
580
581
582 JsonProduct:
583 [38;2;125;91;166m| fields:
584 [38;2;125;91;166m| [38;2;229;71;36m| added (0):
585 [38;2;125;91;166m| [38;2;229;71;36m| removed (1):
586 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
587 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
588 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
589 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type:
590 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JSON ~ scala.Int:
591 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| type: JsonNumber
592 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| number-format: Int32
593 [38;2;125;91;166m| [38;2;229;71;36m| both (0):
594
595
596----- 5 ---------------------------------------------------------------------------------------------
597
598from: JSON ~ oxygen.schema.CompatSpec.person.OptionalAge
599to: JSON ~ oxygen.schema.CompatSpec.person.AgeBirthday
600
601
602 JsonProduct:
603 [38;2;125;91;166m| fields:
604 [38;2;125;91;166m| [38;2;229;71;36m| added (0):
605 [38;2;125;91;166m| [38;2;229;71;36m| removed (0):
606 [38;2;125;91;166m| [38;2;229;71;36m| both (3):
607 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
608 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable:
609 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Different:
610 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| from: true
611 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| to: false
612 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing:
613 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Different:
614 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| from: Null
615 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| to: Undefined
616 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
617 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| NotComparable:
618 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| from:
619 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| JSON ~ scala.Int:
620 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| type: JsonNumber
621 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| number-format: Int32
622 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| to:
623 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| JSON ~ Json.PlainText(FormattedText<ISO 8601 (Date)>(java.time.LocalDate)):
624 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| type: Json String
625 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| string-type:
626 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| Plain Text ~ FormattedText<ISO 8601 (Date)>(java.time.LocalDate):
627 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| type: Formatted Text
628 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| formats:
629 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| - ISO 8601 (Date)
630 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| underlying-type:
631 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| Plain Text ~ java.time.LocalDate:
632 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| type: Plain Text
633 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| source-file: oxygen.schema.PlainTextSchema.scala
634 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| source-file-line: 91
635 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| first:
636 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
637 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
638 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
639 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
640 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
641 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| last:
642 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
643 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
644 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
645 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
646 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
647
648
649 JsonProduct:
650 [38;2;125;91;166m| fields:
651 [38;2;125;91;166m| [38;2;229;71;36m| added (0):
652 [38;2;125;91;166m| [38;2;229;71;36m| removed (0):
653 [38;2;125;91;166m| [38;2;229;71;36m| both (1):
654 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
655 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable:
656 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Different:
657 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| from: true
658 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| to: false
659 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing:
660 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Different:
661 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| from: Null
662 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| to: Undefined
663 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
664 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| NotComparable:
665 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| from:
666 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| JSON ~ scala.Int:
667 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| type: JsonNumber
668 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| number-format: Int32
669 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| to:
670 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| JSON ~ Json.PlainText(FormattedText<ISO 8601 (Date)>(java.time.LocalDate)):
671 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| type: Json String
672 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| string-type:
673 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| Plain Text ~ FormattedText<ISO 8601 (Date)>(java.time.LocalDate):
674 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| type: Formatted Text
675 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| formats:
676 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| - ISO 8601 (Date)
677 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| underlying-type:
678 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| Plain Text ~ java.time.LocalDate:
679 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| type: Plain Text
680 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| source-file: oxygen.schema.PlainTextSchema.scala
681 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| source-file-line: 91
682
683
684----- 6 ---------------------------------------------------------------------------------------------
685
686from: JSON ~ oxygen.schema.CompatSpec.person.OptionalAge
687to: JSON ~ oxygen.schema.CompatSpec.person.AgeDecimal
688
689
690 JsonProduct:
691 [38;2;125;91;166m| fields:
692 [38;2;125;91;166m| [38;2;229;71;36m| added (1):
693 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| loop:
694 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: true
695 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: Null
696 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type:
697 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JSON ~ oxygen.schema.CompatSpec.person.AgeDecimal:
698 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| type: Json Object (Product)
699 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| fields:
700 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| - name: first
701 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| nullable: false
702 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| on-missing: Error
703 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| type:
704 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| JSON ~ Json.PlainText(java.lang.String):
705 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type: Json String
706 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| string-type:
707 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Plain Text ~ java.lang.String:
708 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| type: Plain Text
709 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| source-file: oxygen.schema.PlainTextSchema.scala
710 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| source-file-line: 111
711 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| - name: last
712 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| nullable: false
713 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| on-missing: Error
714 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| type:
715 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| JSON ~ Json.PlainText(java.lang.String):
716 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type: Json String
717 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| string-type:
718 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Plain Text ~ java.lang.String:
719 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| type: Plain Text
720 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| source-file: oxygen.schema.PlainTextSchema.scala
721 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| source-file-line: 111
722 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| - name: age
723 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| nullable: true
724 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| on-missing: Null
725 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| type:
726 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| JSON ~ scala.Double:
727 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type: JsonNumber
728 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| number-format: Float64
729 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| - name: loop
730 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| nullable: true
731 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| on-missing: Null
732 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| type: < recursive reference > ~ JSON ~ oxygen.schema.CompatSpec.person.AgeDecimal
733 [38;2;125;91;166m| [38;2;229;71;36m| removed (0):
734 [38;2;125;91;166m| [38;2;229;71;36m| both (3):
735 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
736 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: true
737 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: Null
738 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
739 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonNumber:
740 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| numberFormat:
741 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| Different:
742 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| from: Int32
743 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| to: Float64
744 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| first:
745 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
746 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
747 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
748 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
749 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
750 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| last:
751 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
752 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
753 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
754 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
755 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
756
757
758 JsonProduct:
759 [38;2;125;91;166m| fields:
760 [38;2;125;91;166m| [38;2;229;71;36m| added (1):
761 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| loop:
762 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: true
763 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: Null
764 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type:
765 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JSON ~ oxygen.schema.CompatSpec.person.AgeDecimal:
766 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| type: Json Object (Product)
767 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| fields:
768 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| - name: first
769 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| nullable: false
770 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| on-missing: Error
771 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| type:
772 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| JSON ~ Json.PlainText(java.lang.String):
773 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type: Json String
774 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| string-type:
775 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Plain Text ~ java.lang.String:
776 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| type: Plain Text
777 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| source-file: oxygen.schema.PlainTextSchema.scala
778 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| source-file-line: 111
779 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| - name: last
780 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| nullable: false
781 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| on-missing: Error
782 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| type:
783 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| JSON ~ Json.PlainText(java.lang.String):
784 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type: Json String
785 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| string-type:
786 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Plain Text ~ java.lang.String:
787 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| type: Plain Text
788 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| source-file: oxygen.schema.PlainTextSchema.scala
789 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| source-file-line: 111
790 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| - name: age
791 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| nullable: true
792 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| on-missing: Null
793 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| type:
794 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| JSON ~ scala.Double:
795 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| type: JsonNumber
796 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| number-format: Float64
797 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| - name: loop
798 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| nullable: true
799 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| on-missing: Null
800 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| type: < recursive reference > ~ JSON ~ oxygen.schema.CompatSpec.person.AgeDecimal
801 [38;2;125;91;166m| [38;2;229;71;36m| removed (0):
802 [38;2;125;91;166m| [38;2;229;71;36m| both (1):
803 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
804 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: true
805 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: Null
806 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
807 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonNumber:
808 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| numberFormat:
809 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| Different:
810 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| from: Int32
811 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| to: Float64
812
813
814----- 7 ---------------------------------------------------------------------------------------------
815
816from: JSON ~ oxygen.schema.CompatSpec.person.SpecifiedAge
817to: JSON ~ oxygen.schema.CompatSpec.person.AgeDecimal
818
819
820 JsonProduct:
821 [38;2;125;91;166m| fields:
822 [38;2;125;91;166m| [38;2;229;71;36m| added (0):
823 [38;2;125;91;166m| [38;2;229;71;36m| removed (0):
824 [38;2;125;91;166m| [38;2;229;71;36m| both (4):
825 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
826 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable:
827 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Different:
828 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| from: false
829 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| to: true
830 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing:
831 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Different:
832 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| from: Undefined
833 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| to: Null
834 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
835 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonNumber:
836 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| numberFormat:
837 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| Different:
838 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| from: Int32
839 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| to: Float64
840 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| first:
841 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
842 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
843 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
844 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
845 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
846 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| last:
847 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
848 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
849 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
850 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
851 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
852 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| loop:
853 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: true
854 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: Null
855 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
856 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonProduct:
857 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| fields:
858 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| added (0):
859 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| removed (0):
860 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| both (4):
861 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
862 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: true
863 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: Null
864 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
865 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonNumber:
866 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| numberFormat: Float64
867 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| first:
868 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
869 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
870 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
871 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
872 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
873 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| last:
874 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: false
875 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: <decode-error>
876 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
877 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonString:
878 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| underlying: ExactEqual
879 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| loop:
880 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable: true
881 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing: Null
882 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
883 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| RecursiveReference:
884 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| from: JSON ~ oxygen.schema.CompatSpec.person.AgeDecimal
885 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| to: JSON ~ oxygen.schema.CompatSpec.person.AgeDecimal
886
887
888 JsonProduct:
889 [38;2;125;91;166m| fields:
890 [38;2;125;91;166m| [38;2;229;71;36m| added (0):
891 [38;2;125;91;166m| [38;2;229;71;36m| removed (0):
892 [38;2;125;91;166m| [38;2;229;71;36m| both (1):
893 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| age:
894 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| nullable:
895 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Different:
896 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| from: false
897 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| to: true
898 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| onMissing:
899 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| Different:
900 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| from: Undefined
901 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| to: Null
902 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| underlying:
903 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| JsonNumber:
904 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| numberFormat:
905 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| Different:
906 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| from: Int32
907 [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| [38;2;62;137;20m| [38;2;128;111;195m| [38;2;125;91;166m| [38;2;229;71;36m| [38;2;85;214;190m| to: Float64
908
909+ MyNonGlobalLayerSpec
910[[38;2;255;255;0mWARN ]: [38;2;236;140;131mtimestamp=[38;2;130;114;233m2025-12-31T21:50:58.469835532Z [38;2;236;140;131mlocation=[38;2;130;114;233moxygen.zio.system.CommandSpec.testSpec [38;2;236;140;131mfile=[38;2;130;114;233mCommandSpec.scala [38;2;236;140;131mline=[38;2;130;114;233m25 [38;2;236;140;131mfiber-id=[38;2;130;114;233mzio-fiber-646
911[ ]: [38;2;242;108;167mcommand=[38;2;18;71;248mecho
912[ ]: [38;2;125;205;133mCommandSpec / command / executes as expected=[38;2;223;41;53m90 ms
913[ ]: command-1
914 + test #1
915 + test #2
916 + test #3
917 + test #4
918 + test #5
919+ CommandSpec
920 + command
921 + command builds properly
922 + executes as expected
923+ UnionRemovingSpec
924 + removes
925 + Test on line #57
926 + Test on line #58
927 + Test on line #55
928 + Test on line #56
929 + Test on line #59
930 + remains
931 + Test on line #62
932 + Test on line #63
933 + Test on line #64
934 + Test on line #65
935 + Test on line #66
936+ EncodedThrowableSpec
937 + "java.lang.RuntimeException"
938 + "error"
939 + "error\n Cause: error2"
940 + "error\n Cause: java.lang.RuntimeException"
941+ VersionSpec
942 + ordering
943 + parse
944 + 1.2.3
945 + v1.2.3
946 + v1.2.3-SNAPSHOT
947 + 1.2.3-RC1
948 + 1.2.3-what
949+ JsonSpec
950 + derived instances
951 + Product1
952 + JsonSpec.Product1 -> {"s":"ABC","b":true}
953 + JsonSpec.Product1 -> {"s":"ABC","b":true,"i":123}
954 + NestedSums
955 + UnrollWithDiscriminator
956 + JsonSpec.NestedSums.UnrollWithDiscriminator -> {"type":"A"}
957 + JsonSpec.NestedSums.UnrollWithDiscriminator -> {"type":"B"}
958 + JsonSpec.NestedSums.UnrollWithDiscriminator -> {"type":"C"}
959 + JsonSpec.NestedSums.UnrollWithDiscriminator -> {"type":"D"}
960 + UnrollNoDiscriminator
961 + JsonSpec.NestedSums.UnrollNoDiscriminator -> {"C":{}}
962 + JsonSpec.NestedSums.UnrollNoDiscriminator -> {"D":{}}
963 + JsonSpec.NestedSums.UnrollNoDiscriminator -> {"A":{}}
964 + JsonSpec.NestedSums.UnrollNoDiscriminator -> {"B":{}}
965 + NestedNoDiscriminator
966 + JsonSpec.NestedSums.NestedNoDiscriminator -> {"Case1":{"A":{}}}
967 + JsonSpec.NestedSums.NestedNoDiscriminator -> {"Case1":{"B":{}}}
968 + JsonSpec.NestedSums.NestedNoDiscriminator -> {"Case2":{"C":{}}}
969 + JsonSpec.NestedSums.NestedNoDiscriminator -> {"Case2":{"D":{}}}
970 + NestedWithDiscriminator
971 + JsonSpec.NestedSums.NestedWithDiscriminator -> {"type1":"Case2","type3":"C"}
972 + JsonSpec.NestedSums.NestedWithDiscriminator -> {"type1":"Case2","type3":"D"}
973 + JsonSpec.NestedSums.NestedWithDiscriminator -> {"type1":"Case1","type2":"A"}
974 + JsonSpec.NestedSums.NestedWithDiscriminator -> {"type1":"Case1","type2":"B"}
975 + Product2
976 + JsonSpec.Product2 -> {"name":"A","inner":{"name":"B","inner":{"name":"C"}}}
977 + JsonSpec.Product2 -> {"name":"A"}
978 + JsonSpec.Product2 -> {"name":"A","inner":{"name":"B"}}
979 + Product3
980 + JsonSpec.Product3 -> {"f1":1,"f2":"hi"}
981 + Sum2
982 + JsonSpec.Sum2 -> {"c1":{"f1":1}}
983 + JsonSpec.Sum2 -> {"Case2":{"b":true}}
984 + Sum3
985 + JsonSpec.Sum3 -> {"type":"c1","f1":1}
986 + JsonSpec.Sum3 -> {"type":"Case2","b":true}
987 + Sum1
988 + JsonSpec.Sum1 -> {"S":{"s":"ABC"}}
989 + JsonSpec.Sum1 -> {"B":{"b":true}}
990 + JsonSpec.Sum1 -> {"I":{"i":123}}
991 + JsonSpec.Sum1 -> {"I":{}}
992 + JsonSpec.Sum1 -> {"P":{"p":{"s":"ABC","b":false}}}
993 + WrappedBoolean
994 + JsonSpec.WrappedBoolean -> true
995 + FlattenOuterRequired
996 + JsonSpec.FlattenOuterRequired -> {"outer1":1,"inner1":2}
997 + JsonSpec.FlattenOuterRequired -> {"outer1":1,"outer2":"O","inner1":2,"inner2":"I"}
998 + provided instances
999 + String -> "ABC"
1000 + Int -> 123
1001 + Boolean -> true
1002 + Month -> "July"
1003 + Option[Boolean] -> true
1004 + Option[Boolean] -> false
1005 + Option[Boolean] -> null
1006 + seq
1007 + Seq[Int] -> []
1008 + List[Int] -> []
1009 + Vector[Int] -> []
1010 + Seq[Int] -> [1,2,3]
1011 + <fails> NonEmptyList[Int] -> []
1012 + Vector[Int] -> [1,2,3]
1013 + List[Int] -> [1,2,3]
1014 + string transform
1015 + JsonSpec.MyClass2 -> {"field":"eyJ0eXBlIjoiYmFzZTY0IiwidmFsdWUiOiJTdHJpbmcifQ"}
1016+ ZipSpec
1017 + ((), ()) <-> ()
1018 + ((), 1) <-> 1
1019 + (1, ()) <-> 1
1020 + ((1,2), (3,4)) <-> (1,2,3,4)
1021 + ((1,2), 3) <-> (1,2,3)
1022 + (1, (2,3)) <-> (1,2,3)
1023 + (1, 2) <-> (1,2)
1024 + ((), (1,2)) <-> (1,2)
1025 + ((1,2), ()) <-> (1,2)
1026+ GrowableSpec
1027 + Empty
1028 + Concat
1029 + Single
1030 + Map
1031 + Map
1032 + Collect
1033 + Many
1034 + FilterNot
1035 + FlatMap + Fill
1036 + Filter
1037 + DistinctBy
1038 + Distinct
1039+ NonEmptyListSpec
1040 + fromList
1041 + empty
1042 + non-empty
1043 + growing
1044 + concat ops work
1045 + concat ops via SeqLike works
1046 + unapply
1047 + nel
1048 + list - non-empty
1049 + list - non-empty
1050 + of
1051 + fill
1052 + 1
1053 + 5
1054+ DerivedFromAndToExprSpec
1055 + ToExpr
1056 + sum
1057 + product
1058 + FromExpr
1059 + product 2
1060 + product 1
1061 + sum 1
1062 + sum 2
1063 + sum 3
1064 + Class2
1065 + Class3
1066+ QuotedSpec
1067 + Class1
1068+ TraverseSpec
1069 + travers
1070 + list/option
1071 + case 1
1072 + case 2
1073 + nel/option
1074 + case 1
1075 + case 2
1076 + list/either
1077 + case 1
1078 + case 2
1079 + case 3
1080 + nel/either
1081 + case 1
1082 + case 2
1083 + case 3
1084+ InfiniteSetSpec
1085 + &~
1086 + (Inclusive(A,B),Inclusive(A,B))
1087 + (Inclusive(A,B),Inclusive(B,C))
1088 + (Inclusive(A,B),Inclusive(C,D))
1089 + (Inclusive(A,B),Exclusive(A,B))
1090 + (Inclusive(B,C),Inclusive(B,C))
1091 + (Inclusive(A,B),Exclusive(B,C))
1092 + (Inclusive(A,B),Exclusive(C,D))
1093 + (Inclusive(B,C),Inclusive(A,B))
1094 + (Inclusive(B,C),Inclusive(C,D))
1095 + (Inclusive(C,D),Inclusive(A,B))
1096 + (Inclusive(C,D),Inclusive(B,C))
1097 + (Inclusive(C,D),Inclusive(C,D))
1098 + (Inclusive(B,C),Exclusive(A,B))
1099 + (Inclusive(B,C),Exclusive(B,C))
1100 + (Inclusive(B,C),Exclusive(C,D))
1101 + (Inclusive(C,D),Exclusive(A,B))
1102 + (Exclusive(A,B),Inclusive(B,C))
1103 + (Exclusive(A,B),Inclusive(C,D))
1104 + (Inclusive(C,D),Exclusive(B,C))
1105 + (Inclusive(C,D),Exclusive(C,D))
1106 + (Exclusive(A,B),Inclusive(A,B))
1107 + (Exclusive(A,B),Exclusive(A,B))
1108 + (Exclusive(B,C),Inclusive(B,C))
1109 + (Exclusive(B,C),Inclusive(C,D))
1110 + (Exclusive(A,B),Exclusive(B,C))
1111 + (Exclusive(A,B),Exclusive(C,D))
1112 + (Exclusive(B,C),Inclusive(A,B))
1113 + (Exclusive(B,C),Exclusive(A,B))
1114 + (Exclusive(C,D),Inclusive(B,C))
1115 + (Exclusive(C,D),Inclusive(C,D))
1116 + (Exclusive(B,C),Exclusive(B,C))
1117 + (Exclusive(B,C),Exclusive(C,D))
1118 + (Exclusive(C,D),Inclusive(A,B))
1119 + (Exclusive(C,D),Exclusive(A,B))
1120 + (Exclusive(C,D),Exclusive(B,C))
1121 + (Exclusive(C,D),Exclusive(C,D))
1122 + &
1123 + (Inclusive(A,B),Inclusive(A,B))
1124 + (Inclusive(A,B),Inclusive(B,C))
1125 + (Inclusive(A,B),Inclusive(C,D))
1126+ ZipNSpec
1127 + (Inclusive(A,B),Exclusive(A,B))
1128 + (Inclusive(A,B),Exclusive(B,C))
1129 + (Inclusive(A,B),Exclusive(C,D))
1130 + (Inclusive(B,C),Inclusive(A,B))
1131 + Zip4
1132 + (Inclusive(B,C),Inclusive(B,C))
1133 + (Inclusive(B,C),Inclusive(C,D))
1134 + (Inclusive(B,C),Exclusive(A,B))
1135 + (Inclusive(B,C),Exclusive(B,C))
1136 + (Inclusive(B,C),Exclusive(C,D))
1137 + (Inclusive(C,D),Inclusive(B,C))
1138 + (Inclusive(C,D),Exclusive(A,B))
1139 + (Inclusive(C,D),Inclusive(C,D))
1140 + (Inclusive(C,D),Inclusive(A,B))
1141 + (Inclusive(C,D),Exclusive(B,C))
1142 + (Exclusive(A,B),Inclusive(A,B))
1143 + (Inclusive(C,D),Exclusive(C,D))
1144 + (Exclusive(A,B),Exclusive(A,B))
1145 + (Exclusive(A,B),Inclusive(C,D))
1146 + (Exclusive(A,B),Exclusive(B,C))
1147 + (Exclusive(B,C),Inclusive(B,C))
1148 + (Exclusive(A,B),Inclusive(B,C))
1149 + (Exclusive(B,C),Inclusive(A,B))
1150 + (Exclusive(A,B),Exclusive(C,D))
1151 + (Exclusive(B,C),Inclusive(C,D))
1152 + (Exclusive(B,C),Exclusive(B,C))
1153 + (Exclusive(C,D),Inclusive(A,B))
1154 + (Exclusive(C,D),Inclusive(B,C))
1155 + (Exclusive(C,D),Inclusive(C,D))
1156 + (Exclusive(C,D),Exclusive(A,B))
1157 + (Exclusive(B,C),Exclusive(A,B))
1158 + (Exclusive(C,D),Exclusive(B,C))
1159 + (Exclusive(C,D),Exclusive(C,D))
1160 + (Exclusive(B,C),Exclusive(C,D))
1161 + |
1162 + (Inclusive(A,B),Inclusive(A,B))
1163 + (Inclusive(A,B),Inclusive(B,C))
1164 + (Inclusive(A,B),Inclusive(C,D))
1165 + (Inclusive(A,B),Exclusive(A,B))
1166 + (Inclusive(A,B),Exclusive(B,C))
1167 + (Inclusive(A,B),Exclusive(C,D))
1168 + (Inclusive(B,C),Inclusive(A,B))
1169 + (Inclusive(B,C),Inclusive(B,C))
1170 + (Inclusive(B,C),Inclusive(C,D))
1171 + (Inclusive(B,C),Exclusive(A,B))
1172 + ((), (), (), ()) <-> ()
1173 + (Inclusive(B,C),Exclusive(B,C))
1174 + (Inclusive(B,C),Exclusive(C,D))
1175 + ((), (), (), 1) <-> 1
1176 + (Inclusive(C,D),Inclusive(A,B))
1177 + (1, 2, (), ()) <-> (1,2)
1178 + (Inclusive(C,D),Inclusive(B,C))
1179 + (Inclusive(C,D),Inclusive(C,D))
1180 + (Inclusive(C,D),Exclusive(A,B))
1181 + (Inclusive(C,D),Exclusive(B,C))
1182 + (Inclusive(C,D),Exclusive(C,D))
1183 + (Exclusive(A,B),Inclusive(A,B))
1184 + (Exclusive(A,B),Inclusive(B,C))
1185 + (Exclusive(A,B),Inclusive(C,D))
1186 + (Exclusive(A,B),Exclusive(A,B))
1187 + (Exclusive(A,B),Exclusive(B,C))
1188 + (Exclusive(A,B),Exclusive(C,D))
1189 + (Exclusive(B,C),Inclusive(C,D))
1190 + (Exclusive(B,C),Inclusive(A,B))
1191 + (Exclusive(B,C),Inclusive(B,C))
1192 + (Exclusive(B,C),Exclusive(A,B))
1193 + (1, (), (), ()) <-> 1
1194 + (Exclusive(B,C),Exclusive(B,C))
1195 + (Exclusive(C,D),Inclusive(C,D))
1196 + (Exclusive(C,D),Exclusive(A,B))
1197 + (Exclusive(C,D),Exclusive(B,C))
1198 + (Exclusive(C,D),Exclusive(C,D))
1199 + (Exclusive(B,C),Exclusive(C,D))
1200 + (Exclusive(C,D),Inclusive(A,B))
1201 + (Exclusive(C,D),Inclusive(B,C))
1202+ SpecifiedSpec
1203 + decode
1204 + (1, 2, 3, 4) <-> (1,2,3,4)
1205 + { "s": null }
1206 + {}
1207 + { "i": 1 }
1208 + { "s": "s" }
1209 + { "b": [] }
1210 + { "b": [true, false] }
1211 + { "w": 25 }
1212 + { "i": 1, "s": "s", "b": [true, false] }
1213 + round trip
1214 + MyClass(<<unspecified>>,<<unspecified>>,<<unspecified>>,<<unspecified>>)
1215 + MyClass(1,<<unspecified>>,<<unspecified>>,<<unspecified>>)
1216 + MyClass(<<unspecified>>,Some(s),<<unspecified>>,<<unspecified>>)
1217 + MyClass(<<unspecified>>,None,<<unspecified>>,<<unspecified>>)
1218 + MyClass(<<unspecified>>,<<unspecified>>,List(true, false),<<unspecified>>)
1219 + MyClass(<<unspecified>>,<<unspecified>>,List(),<<unspecified>>)
1220 + MyClass(1,Some(s),List(true, false),<<unspecified>>)
1221+ CompatSpec
1222+ MacroSpec
1223 + default args
1224 + Class1
1225 + enum values
1226 + Sum1
1227 + Sum2
1228 + Sum3
1229 + Sum5
1230 + Sum4
1231 + seq
1232 + List(1, 2, 3)
1233 + List(1, 2, 3)
1234 + List()
1235 + matching
1236 + strings
1237 + abc + def
1238 + const + const
1239 + abc + const
1240 + const + def
1241 + product transform
1242 + () <-> CaseObject0
1243 + () <-> CaseClass0()
1244 + 5 <-> CaseClass1(5)
1245 + (5,s,true) <-> CaseClass2(5,s,true)
1246 + (1, (), (), 2) <-> (1,2)
1247 + ((1,2), (3,4), (5,6), (7,8)) <-> (1,2,3,4,5,6,7,8)
1248 + Zip3
1249 + ((), (), ()) <-> ()
1250 + (1, (), ()) <-> 1
1251 + ((), (), 1) <-> 1
1252 + (1, 2, ()) <-> (1,2)
1253 + (1, (), 2) <-> (1,2)
1254 + (1, 2, 3) <-> (1,2,3)
1255 + ((1,2), (3,4), (5,6)) <-> (1,2,3,4,5,6)
1256 + Zip5
1257 + ((), (), (), (), ()) <-> ()
1258 + (1, (), (), (), ()) <-> 1
1259 + ((), (), (), (), 1) <-> 1
1260 + (1, 2, (), (), ()) <-> (1,2)
1261 + (1, (), (), (), 2) <-> (1,2)
1262 + (1, 2, 3, 4, 5) <-> (1,2,3,4,5)
1263 + ((1,2), (3,4), (5,6), (7,8), (9,10)) <-> (1,2,3,4,5,6,7,8,9,10)
1264 + sections
1265+ IndentedStringSpec
1266 + break
1267 + prefix-str
1268 + str
1269 + strs
1270 + section
1271 + prefix-indented
1272 + prefix-strs
1273+ StringCodecSpec
1274 + json
1275 + StringCodecSpec.MyClass : MyClass(base64,String) - base64UrlNoPadding
1276 + misc
1277+ SeqOpsSpec
1278 + List(1, 2, 3) <-> Vector(1, 2, 3)
1279 + LocalDate : 2024-01-02 - having fun with it (1)
1280 + List() <-> Vector()
1281 + List(1, 2, 3) <-> List(1, 2, 3)
1282 + List(1, 2, 3) <-> List(1, 2, 3)
1283 + List(1, 2, 3) <-> List(1, 2, 3)
1284 + Instant : 2020-09-13T12:26:40Z - having fun with it (2)
1285 + String : - having fun with it (3)
1286 + surround doesn't duplicate
1287 + base64
1288 + String : ABC\nDEF% - base64Url
1289 + String : ABC\nDEF% - base64
1290 + String : ABC\nDEF% - base64UrlNoPadding
1291 + String : ABC\nDEF% - base64Mime
1292 + String : ABC\nDEF% - base64NoPadding
1293 + String : ABC\nDEF% - base64MimeNoPadding
1294 + standard
1295 + string
1296 + String : string
1297 + boolean
1298 + Boolean : true
1299 + Boolean : false
1300 + instant
1301 + Instant : 2020-09-13T12:26:40Z
1302 + int
1303 + Int : 25
1304 + Int : -25
1305 + Int : 37
1306 + float
1307 + Float : 25.47
1308 + Float : -25.47
1309 + offset date time
1310 + OffsetDateTime : 2020-01-01T01:02:03Z
1311 + OffsetDateTime : 2020-01-01T01:02:03+05:00
1312 + time zone
1313 + TimeZone : sun.util.calendar.ZoneInfo[id=\"MST\",offset=-25200000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
1314 + zoned date time
1315 + ZonedDateTime : 2020-01-01T01:02:03Z
1316 + ZonedDateTime : 2020-01-01T01:02:03+05:00
1317 + ZonedDateTime : 2020-01-01T01:02:03-07:00[America/Denver]
1318 + local date
1319 + LocalDate : 2020-02-04
1320 + LocalDate : 2020-02-04
1321 + LocalDate : 2020-02-04
1322 + LocalDate : 1820-02-04
1323 + LocalDate : 2020-02-04
1324 + LocalDate : 1820-02-04
1325 + zone id
1326 + ZoneId : America/Denver
1327 + zone offset
1328 + ZoneOffset : +05:00
1329 + ZoneOffset : -07:00
1330 + local date time
1331 + LocalDateTime : 2024-02-04T15:30:45
1332 + LocalDateTime : 2020-02-04T14:00
1333 + LocalDateTime : 2020-02-04T14:40
1334 + local time
1335 + LocalTime : 15:30:45
1336 + LocalTime : 03:30:45
1337 + LocalTime : 01:00
1338 + LocalTime : 01:23
1339 + LocalTime : 01:23:45
1340 + LocalTime : 13:23
1341 + LocalTime : 13:23:45
1342 + LocalTime : 13:00
1343 + LocalTime : 00:00
1344 + LocalTime : 12:00
1345 + duration
1346 + Duration : PT672H
1347 + Duration : PT1H30M
1348 + Duration : PT1H
1349+ ShowSpec
1350 + .show extension
1351 + derives Show.ToString
1352 + `sh` interpolator
1353+ StringOpsSpec
1354 + 2
1355 + "-[-]-" : "-"
1356 + "[-]-" : "-"
1357 + "-[-]" : "-"
1358 + "[-]" : "-"
1359 + empty
1360 + "" : "-"
1361 + 1
1362 + "-|" : "-"
1363 + "|" : "-"
1364 + "-|-" : "-"
1365 + "|-" : "-"
1366 + 4
1367 + "-[-|-|-]-" : "-"
1368 + "-[-|-|-]" : "-"
1369 + "[-|-|-]-" : "-"
1370 + "[-|-|-]" : "-"
1371+ ColorStringSpec
1372 + interpolation
1373 + []
1374 + [|]
1375 + [...]
1376 + [...]
1377 + [...???...]
1378 + toString
1379 + [...???...] + Extended
1380 + [[...???...]] + Extended
1381 + [...???...] + Simple
1382 + [...[48;2;0;0;128m???...] + Extended
1383 + [...[48;2;0;0;128m???...] + PreferSimple
1384 + [...[48;2;0;0;128m???...] + Simple
1385 + [...[48;2;0;0;128m???...] + ShowColorName
1386 + [...???...] + Colorless
1387 + [...???...] + Extended
1388 + split
1389 + nested - color
1390 + "-[-|-...-|-]-" : "-"
1391 + simple
1392 + "" : "-"
1393 + "[-]" : "-"
1394 + "[-|-]" : "-"
1395 + "-[-|-]-" : "-"
1396 + nested - no color
1397 + "-[-|-]-" : "-"
1398 + "-[-|-]-" : "-"
1399 + "-[--|--]-" : "-"
1400 + "[-|-]" : "-"
1401 + "[-|-]" : "-"
1402 + "[--|--]" : "-"
1403+ MyGlobalLayerSpec
1404 + test #1
1405 + test #2
1406 + test #3
1407 + test #4
1408 + test #5
1409+ FunctorSpec
1410 + map
1411 + option
1412 + some
1413 + none
1414 + either
1415 + right
1416 + left
1417 + list
1418 + non-empty
1419 + empty
1420 + seq
1421 + non-empty
1422 + empty
1423 + nel
1424+ StreamAggregatorSpec
1425 + aOptB
1426 + empty
1427 + case-1
1428 + case-2
1429 + many
1430 + non-empty
1431 + empty
1432 + optional
1433 + empty
1434 + non-empty
1435 + single
1436 + empty
1437+ FunctorSpec
1438 + non-empty
1439 + map
1440 + mega
1441 + nel
1442 + seq
1443 + list
1444 + option
1445 + some->some
1446 + none->none
1447 + case-1
1448 + none->some
1449 + empty
1450 + some->none
1451+ ParTraverseSpec
1452 + parTraverse
1453 + list/either
1454 + case 1
1455 + case 2
1456 + case 3
1457 + nel/either
1458 + case 1
1459 + case 2
1460 + case 3
1461+ EnumSpec
1462 + EnumWithOther
1463 + EnumSpec.Enum3 / "B" / B
1464 + EnumSpec.Enum3 / "a" / A
1465 + EnumSpec.Enum3 / "b" / B
1466 + EnumSpec.Enum3 / "other-1" / C(other-1)
1467 + EnumSpec.Enum3 / "OTHER-2" / C(OTHER-2)
1468 + EnumSpec.Enum3 / "A" / A
1469 + StrictEnum
1470 + EnumSpec.Enum1 / "a" / A
1471 + EnumSpec.Enum1 / "Aa" / A
1472 + EnumSpec.Enum2 / "case-a" / CaseA
1473 + EnumSpec.Enum2 / "CASE-B" / CaseB
1474 + EnumSpec.Enum2 / "case-C" / CaseC
1475 + round trip: A
1476+ TypeTagSpec
1477 + EnumSpec.Enum1 / "A" / A
1478 + round trip: CaseB
1479 + round trip: C
1480 + round trip: CaseA
1481 + from:
1482 + round trip: B
1483 + round trip: CaseC
1484+ ApplicativeSpec
1485 + ap
1486 + list
1487 + non-empty/non-empty
1488 + empty/non-empty
1489 + non-empty/empty
1490 + classTag
1491 + either
1492 + right/left
1493 + left/left
1494 + right/right
1495 + left/right
1496 + nel
1497 + option
1498 + none/none
1499 + none/some
1500 + some/none
1501 + some/some
1502 + pure
1503 + option
1504 + either
1505 + list
1506 + seq
1507 + nel
1508 + java.lang.String
1509 + int
1510 + boolean
1511 + oxygen.core.TypeTagSpec.types.Companion
1512 + oxygen.core.TypeTagSpec.types.NonGeneric
1513 + oxygen.core.TypeTagSpec.types.Stage1[A]
1514 + oxygen.core.TypeTagSpec.types.Stage1.Stage2[B]
1515 + oxygen.core.TypeTagSpec.types.Stage1.Stage2.Stage3[C]
1516 + oxygen.core.TypeTagSpec.types.Generic[D, E, F]
1517 + derived
1518 + scala.Boolean
1519 + oxygen.core.TypeTagSpec.types.NonGeneric
1520 + oxygen.core.TypeTagSpec.types.Generic[scala.Int, scala.Boolean, java.lang.String]
1521 + oxygen.core.TypeTagSpec.types.Stage1[scala.Int]
1522 + oxygen.core.TypeTagSpec.types.Stage1[scala.Int].Stage2[java.lang.String]
1523 + scala.Int
1524 + java.lang.String
1525 + oxygen.core.TypeTagSpec.types.Companion
1526 + oxygen.core.TypeTagSpec.types.Stage1[scala.Int].Stage2[java.lang.String].Stage3[scala.Boolean]
1527 + generic param types
1528 + faTag[Option, Int]
1529 + optionTag[Int]
1530 + faTag[Either[String, ?], Int]
1531 + faTag[_ => Option, Int]
1532 + make
1533+ SeqOpsSpec
1534 + intersperse
1535 + empty
1536 + non-empty
1537 + surround
1538 + empty
1539 + non-empty
1540+ DeriveShowSpec
1541 + CaseClass4
1542 + 1 level
1543 + 2 levels
1544 + 3 levels
1545 + AnyVal1
1546 + simple
1547 + CaseObject1
1548 + simple
1549 + Enum1
1550 + A
1551 + B
1552 + CaseClass2
1553 + simple
1554 + CaseClass1
1555 + some
1556 + none
1557 + CaseClass3
1558 + int
1559 + string
1560 + Enum3
1561 + A
1562 + B
1563+ DeriveSchemaSpec
1564 + Product1
1565 + works
1566 + Product2
1567 + works
1568 + Sum1
1569 + works
1570 + Sum2
1571 + works
1572 + FlattenOuterRequired
1573 + works
1574 + compiler
1575513 tests passed. 0 tests failed. 0 tests ignored.
1576
1577Executed in 2 s 801 ms
1578
1579Starting build for ProjectRef(file:/build/repo/,oxygen-crypto-modelJVM) (oxygen-crypto-model)... [7/19]
1580Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1581Starting build for ProjectRef(file:/build/repo/,oxygen-executableJVM) (oxygen-executable)... [8/19]
1582Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1583[info] compiling 10 Scala sources to /build/repo/modules/general/cli/.jvm/target/scala-3.8.0-RC5/classes ...
1584[info] done compiling
1585[info] compiling 7 Scala sources to /build/repo/modules/general/executable/.jvm/target/scala-3.8.0-RC5/classes ...
1586[info] done compiling
1587[info] compiling 2 Scala sources to /build/repo/modules/general/cli/.jvm/target/scala-3.8.0-RC5/test-classes ...
1588[info] done compiling
1589[info] compiling 1 Scala source to /build/repo/modules/general/executable/.jvm/target/scala-3.8.0-RC5/test-classes ...
1590[info] done compiling
1591+ ExecutableAppParserSpec
1592 + passing
1593 + env var
1594 + empty
1595 + jar resource
1596 + file
1597 + env var (with nesting)
1598 + raw (valid json)
1599 + raw (valid json + with nesting)
1600 + raw (invalid json)
1601 + raw (invalid json + with nesting)
1602 + zio default
1603 + zio default (short)
160411 tests passed. 0 tests failed. 0 tests ignored.
1605
1606Executed in 354 ms
1607
1608Starting build for ProjectRef(file:/build/repo/,oxygen-jsonJVM) (oxygen-json)... [9/19]
1609Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1610Starting build for ProjectRef(file:/build/repo/,oxygen-zioJVM) (oxygen-zio)... [10/19]
1611Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1612Starting build for ProjectRef(file:/build/repo/,oxygen-sql-migration) (oxygen-sql-migration)... [11/19]
1613Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1614[info] compiling 81 Scala sources to /build/repo/modules/sql/core/target/scala-3.8.0-RC5/classes ...
1615Warning: mocking up superclass for module class dsl
1616[info] done compiling
1617[info] compiling 30 Scala sources to /build/repo/modules/sql/migration/target/scala-3.8.0-RC5/classes ...
1618[info] done compiling
1619[info] compiling 1 Scala source to /build/repo/modules/sql/core/target/scala-3.8.0-RC5/test-classes ...
1620[info] done compiling
1621Starting build for ProjectRef(file:/build/repo/,oxygen-sql) (oxygen-sql)... [12/19]
1622Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1623+ RowSchemaSpec
1624 + columns
1625 + single
1626 + Int
1627 + Short
1628 + Float
1629 + Long
1630 + Instant
1631 + String
1632 + Double
1633 + LocalDateTime
1634 + LocalDate
1635 + UUID
1636 + LocalTime
1637 + Boolean
1638 + Json
1639 + TypedJson[Int]
1640 + TypedJson[Product1]
1641 + Jsonb
1642 + TypedJsonb[Int]
1643 + TypedJsonb[Product1]
1644 + product
1645 + Product3
1646 + Product1
1647 + Product2
164821 tests passed. 0 tests failed. 0 tests ignored.
1649
1650Executed in 535 ms
1651
1652Starting build for ProjectRef(file:/build/repo/,oxygen-sql-test) (oxygen-sql-test)... [13/19]
1653Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1654[info] compiling 5 Scala sources to /build/repo/modules/general/test-container/target/scala-3.8.0-RC5/classes ...
1655[info] done compiling
1656[info] compiling 2 Scala sources to /build/repo/modules/sql/test-utils/target/scala-3.8.0-RC5/classes ...
1657[info] done compiling
1658Starting build for ProjectRef(file:/build/repo/,oxygen-storage-in-memory) (oxygen-storage-in-memory)... [14/19]
1659Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1660[info] compiling 2 Scala sources to /build/repo/modules/sql/storage-in-memory/target/scala-3.8.0-RC5/classes ...
1661[info] done compiling
1662Starting build for ProjectRef(file:/build/repo/,oxygen-cliJVM) (oxygen-cli)... [15/19]
1663Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1664+ ParserSpec
1665 + passes
1666 + values
1667 + optional value - none
1668 + repeated value - list 0
1669 + simple value
1670 + repeated value - list 3
1671 + then
1672 + repeated value - nel 1
1673 + repeated value - list 1
1674 + optional value - some
1675 + repeated value - nel 3
1676 + or - left
1677 + or - right
1678 + person
1679 + repeated + then
1680 + person - repeated
1681 + params
1682 + simple param - 2 args
1683 + simple param - 1 arg with =
1684 + boolean flag - present
1685 + boolean flag - missing
1686 + toggle - prefix true - true
1687 + toggle - prefix false - true
1688 + toggle - prefix true - false
1689 + toggle - prefix false - false
1690 + toggle - prefix false - true
1691 + toggle - prefix false - false
1692 + valueWith - list 0
1693 + valueWith - list 1 - 2 args
1694 + valueWith - list 1 - 1 arg with =
1695 + person
1696 + valueWith - list 3
1697 + multi-short-booleans - 1
1698 + multi-short-booleans - 3
1699 + multi-short-booleans - 2
1700 + empty
1701 + help
1702 + case - 1
1703 + case - 2
1704 + case - 5
1705 + case - 3
1706 + case - 4
1707 + bracketed
1708 + bracketed person
1709 + bracketed person - repeated
1710 + bracketed config - no brackets
1711 + bracketed config - empty brackets
1712 + bracketed config - labels
1713 + bracketed config - max-width
1714 + bracketed config - labels + max-width
1715+ ArgSpec
1716 + splitOn_--
1717 + right only (explicit)
1718 + empty
1719 + left only (explicit)
1720 + right only (using)
1721 + left and right
1722 + parse
1723 + fails
1724 + passes
1725 + empty
1726 + args only
1727 + params only
1728 + params with args
1729 + params with brackets
173055 tests passed. 0 tests failed. 0 tests ignored.
1731
1732Executed in 733 ms
1733
1734Starting build for ProjectRef(file:/build/repo/,oxygen-coreJVM) (oxygen-core)... [16/19]
1735Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1736Starting build for ProjectRef(file:/build/repo/,oxygen-schemaJVM) (oxygen-schema)... [17/19]
1737Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1738Starting build for ProjectRef(file:/build/repo/,oxygen-test-container) (oxygen-test-container)... [18/19]
1739Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1740
1741************************
1742Build summary:
1743[{
1744 "module": "oxygen-transform",
1745 "compile": {"status": "ok", "tookMs": 36835, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1746 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1747 "test-compile": {"status": "ok", "tookMs": 13026, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1748 "test": {"status": "ok", "tookMs": 1584, "passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7, "byFramework": [{"framework": "unknown", "stats": {"passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7}}]},
1749 "publish": {"status": "skipped", "tookMs": 0},
1750 "metadata": {
1751 "crossScalaVersions": ["2.12.20", "3.7.4"]
1752}
1753},{
1754 "module": "oxygen-http-zio",
1755 "compile": {"status": "ok", "tookMs": 24158, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1756 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1757 "test-compile": {"status": "ok", "tookMs": 1686, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1758 "test": {"status": "ok", "tookMs": 1516, "passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1, "byFramework": [{"framework": "unknown", "stats": {"passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1}}]},
1759 "publish": {"status": "skipped", "tookMs": 0},
1760 "metadata": {
1761 "crossScalaVersions": ["2.12.20", "3.7.4"]
1762}
1763},{
1764 "module": "oxygen-crypto-service",
1765 "compile": {"status": "ok", "tookMs": 1814, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1766 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1767 "test-compile": {"status": "ok", "tookMs": 1979, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1768 "test": {"status": "ok", "tookMs": 1607, "passed": 25, "failed": 0, "ignored": 0, "skipped": 0, "total": 25, "byFramework": [{"framework": "unknown", "stats": {"passed": 25, "failed": 0, "ignored": 0, "skipped": 0, "total": 25}}]},
1769 "publish": {"status": "skipped", "tookMs": 0},
1770 "metadata": {
1771 "crossScalaVersions": ["2.12.20", "3.7.4"]
1772}
1773},{
1774 "module": "oxygen-test",
1775 "compile": {"status": "ok", "tookMs": 240, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1776 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1777 "test-compile": {"status": "ok", "tookMs": 1172, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1778 "test": {"status": "ok", "tookMs": 1096, "passed": 4, "failed": 0, "ignored": 0, "skipped": 0, "total": 4, "byFramework": [{"framework": "unknown", "stats": {"passed": 4, "failed": 0, "ignored": 0, "skipped": 0, "total": 4}}]},
1779 "publish": {"status": "skipped", "tookMs": 0},
1780 "metadata": {
1781 "crossScalaVersions": ["2.12.20", "3.7.4"]
1782}
1783},{
1784 "module": "oxygen-storage",
1785 "compile": {"status": "ok", "tookMs": 816, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1786 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1787 "test-compile": {"status": "ok", "tookMs": 430, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1788 "test": {"status": "ok", "tookMs": 369, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1789 "publish": {"status": "skipped", "tookMs": 0},
1790 "metadata": {
1791 "crossScalaVersions": ["2.12.20", "3.7.4"]
1792}
1793},{
1794 "module": "oxygen-quoted",
1795 "compile": {"status": "ok", "tookMs": 40, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1796 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1797 "test-compile": {"status": "ok", "tookMs": 77, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1798 "test": {"status": "ok", "tookMs": 73, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1799 "publish": {"status": "skipped", "tookMs": 0},
1800 "metadata": {
1801 "crossScalaVersions": ["2.12.20", "3.7.4"]
1802}
1803},{
1804 "module": "oxygen-core",
1805 "compile": {"status": "ok", "tookMs": 339, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1806 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1807 "test-compile": {"status": "ok", "tookMs": 11410, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1808 "test": {"status": "ok", "tookMs": 4041, "passed": 513, "failed": 0, "ignored": 0, "skipped": 0, "total": 513, "byFramework": [{"framework": "unknown", "stats": {"passed": 513, "failed": 0, "ignored": 0, "skipped": 0, "total": 513}}]},
1809 "publish": {"status": "ok", "tookMs": 4},
1810 "metadata": {
1811 "crossScalaVersions": ["2.12.20", "3.7.4"]
1812}
1813},{
1814 "module": "oxygen-crypto-model",
1815 "compile": {"status": "ok", "tookMs": 253, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1816 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1817 "test-compile": {"status": "ok", "tookMs": 360, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1818 "test": {"status": "ok", "tookMs": 375, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1819 "publish": {"status": "skipped", "tookMs": 0},
1820 "metadata": {
1821 "crossScalaVersions": ["2.12.20", "3.7.4"]
1822}
1823},{
1824 "module": "oxygen-executable",
1825 "compile": {"status": "ok", "tookMs": 5421, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1826 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1827 "test-compile": {"status": "ok", "tookMs": 1833, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1828 "test": {"status": "ok", "tookMs": 1244, "passed": 11, "failed": 0, "ignored": 0, "skipped": 0, "total": 11, "byFramework": [{"framework": "unknown", "stats": {"passed": 11, "failed": 0, "ignored": 0, "skipped": 0, "total": 11}}]},
1829 "publish": {"status": "skipped", "tookMs": 0},
1830 "metadata": {
1831 "crossScalaVersions": ["2.12.20", "3.7.4"]
1832}
1833},{
1834 "module": "oxygen-json",
1835 "compile": {"status": "ok", "tookMs": 151, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1836 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1837 "test-compile": {"status": "ok", "tookMs": 214, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1838 "test": {"status": "ok", "tookMs": 244, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1839 "publish": {"status": "skipped", "tookMs": 0},
1840 "metadata": {
1841 "crossScalaVersions": ["2.12.20", "3.7.4"]
1842}
1843},{
1844 "module": "oxygen-zio",
1845 "compile": {"status": "ok", "tookMs": 224, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1846 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1847 "test-compile": {"status": "ok", "tookMs": 354, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1848 "test": {"status": "ok", "tookMs": 373, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1849 "publish": {"status": "skipped", "tookMs": 0},
1850 "metadata": {
1851 "crossScalaVersions": ["2.12.20", "3.7.4"]
1852}
1853},{
1854 "module": "oxygen-sql-migration",
1855 "compile": {"status": "ok", "tookMs": 13632, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1856 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1857 "test-compile": {"status": "ok", "tookMs": 1710, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1858 "test": {"status": "ok", "tookMs": 582, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1859 "publish": {"status": "skipped", "tookMs": 0},
1860 "metadata": {
1861 "crossScalaVersions": ["2.12.20", "3.7.4"]
1862}
1863},{
1864 "module": "oxygen-sql",
1865 "compile": {"status": "ok", "tookMs": 375, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1866 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1867 "test-compile": {"status": "ok", "tookMs": 551, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1868 "test": {"status": "ok", "tookMs": 1574, "passed": 21, "failed": 0, "ignored": 0, "skipped": 0, "total": 21, "byFramework": [{"framework": "unknown", "stats": {"passed": 21, "failed": 0, "ignored": 0, "skipped": 0, "total": 21}}]},
1869 "publish": {"status": "skipped", "tookMs": 0},
1870 "metadata": {
1871 "crossScalaVersions": ["2.12.20", "3.7.4"]
1872}
1873},{
1874 "module": "oxygen-sql-test",
1875 "compile": {"status": "ok", "tookMs": 1665, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1876 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1877 "test-compile": {"status": "ok", "tookMs": 720, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1878 "test": {"status": "ok", "tookMs": 818, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1879 "publish": {"status": "skipped", "tookMs": 0},
1880 "metadata": {
1881 "crossScalaVersions": ["2.12.20", "3.7.4"]
1882}
1883},{
1884 "module": "oxygen-storage-in-memory",
1885 "compile": {"status": "ok", "tookMs": 1148, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1886 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1887 "test-compile": {"status": "ok", "tookMs": 710, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1888 "test": {"status": "ok", "tookMs": 590, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1889 "publish": {"status": "skipped", "tookMs": 0},
1890 "metadata": {
1891 "crossScalaVersions": ["2.12.20", "3.7.4"]
1892}
1893},{
1894 "module": "oxygen-cli",
1895 "compile": {"status": "ok", "tookMs": 234, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1896 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1897 "test-compile": {"status": "ok", "tookMs": 446, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1898 "test": {"status": "ok", "tookMs": 1602, "passed": 55, "failed": 0, "ignored": 0, "skipped": 0, "total": 55, "byFramework": [{"framework": "unknown", "stats": {"passed": 55, "failed": 0, "ignored": 0, "skipped": 0, "total": 55}}]},
1899 "publish": {"status": "skipped", "tookMs": 0},
1900 "metadata": {
1901 "crossScalaVersions": ["2.12.20", "3.7.4"]
1902}
1903},{
1904 "module": "oxygen-core",
1905 "compile": {"status": "ok", "tookMs": 131, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1906 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1907 "test-compile": {"status": "ok", "tookMs": 183, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1908 "test": {"status": "ok", "tookMs": 194, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1909 "publish": {"status": "skipped", "tookMs": 0},
1910 "metadata": {
1911 "crossScalaVersions": ["2.12.20", "3.7.4"]
1912}
1913},{
1914 "module": "oxygen-schema",
1915 "compile": {"status": "ok", "tookMs": 345, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1916 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1917 "test-compile": {"status": "ok", "tookMs": 529, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1918 "test": {"status": "ok", "tookMs": 572, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1919 "publish": {"status": "skipped", "tookMs": 0},
1920 "metadata": {
1921 "crossScalaVersions": ["2.12.20", "3.7.4"]
1922}
1923},{
1924 "module": "oxygen-test-container",
1925 "compile": {"status": "ok", "tookMs": 367, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1926 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1927 "test-compile": {"status": "ok", "tookMs": 561, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1928 "test": {"status": "ok", "tookMs": 551, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1929 "publish": {"status": "skipped", "tookMs": 0},
1930 "metadata": {
1931 "crossScalaVersions": ["2.12.20", "3.7.4"]
1932}
1933}]
1934************************
1935[success] Total time: 172 s (0:02:52.0), completed Dec 31, 2025, 10:51:57 PM
1936[0JChecking patch project/plugins.sbt...
1937Checking patch project/build.properties...
1938Checking patch project/Settings.scala...
1939Checking patch build.sbt...
1940Applied patch project/plugins.sbt cleanly.
1941Applied patch project/build.properties cleanly.
1942Applied patch project/Settings.scala cleanly.
1943Applied patch build.sbt cleanly.