Build Logs
kalin-rudnicki/oxygen • 3.8.0-RC6:2026-01-08
Errors
2
Warnings
8
Total Lines
1948
1##################################
2Clonning https://github.com/kalin-rudnicki/oxygen.git into /build/repo using revision 0.3.1
3##################################
4Note: switching to 'f7ad074670a9cf055d970dbe70a7b36dff94d675'.
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-RC6
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-RC6"
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-RC6
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-RC6
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-RC6
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-RC6"
71"++3.8.0-RC6 -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-RC6 """{"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.962s.
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-RC6
98OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in sql-it/crossScalaVersions
99OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in sql-it/crossScalaVersions
100OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-test-container/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-test-container/crossScalaVersions
102OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-crypto-modelNative/crossScalaVersions
103OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-crypto-modelNative/crossScalaVersions
104OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example/crossScalaVersions
105OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example/crossScalaVersions
106OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example-ui/crossScalaVersions
107OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example-ui/crossScalaVersions
108OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-sql-test/crossScalaVersions
109OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-sql-test/crossScalaVersions
110OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-httpJVM/crossScalaVersions
111OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-httpJVM/crossScalaVersions
112OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-jsonNative/crossScalaVersions
113OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-jsonNative/crossScalaVersions
114OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example-coreJVM/crossScalaVersions
115OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-zioJVM/crossScalaVersions
116OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example-coreJVM/crossScalaVersions
117OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-zioJVM/crossScalaVersions
118OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-zioJS/crossScalaVersions
119OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-zioJS/crossScalaVersions
120OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-storage/crossScalaVersions
121OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-storage/crossScalaVersions
122OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-modules/crossScalaVersions
123OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-modules/crossScalaVersions
124OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-coreNative/crossScalaVersions
125OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-coreNative/crossScalaVersions
126OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-httpJS/crossScalaVersions
127OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-httpJS/crossScalaVersions
128OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example-api-modelsJS/crossScalaVersions
129OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in http-it/crossScalaVersions
130OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in http-it/crossScalaVersions
131OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example-apiJS/crossScalaVersions
132OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example-apiJS/crossScalaVersions
133OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-zioNative/crossScalaVersions
134OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-zioNative/crossScalaVersions
135OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in utJVM/crossScalaVersions
136OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in utJVM/crossScalaVersions
137OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in it/crossScalaVersions
138OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in it/crossScalaVersions
139OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-coreJS/crossScalaVersions
140OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-coreJS/crossScalaVersions
141OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example-domain-impl/crossScalaVersions
142OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example-domain-impl/crossScalaVersions
143OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example-api-modelsJVM/crossScalaVersions
144OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example-api-modelsJVM/crossScalaVersions
145OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-executableJVM/crossScalaVersions
146OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-cliNative/crossScalaVersions
147OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-executableJVM/crossScalaVersions
148OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-cliNative/crossScalaVersions
149OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example-api-modelsJS/crossScalaVersions
150OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-cliJVM/crossScalaVersions
151OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-cliJVM/crossScalaVersions
152OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in utNative/crossScalaVersions
153OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-ui-web/crossScalaVersions
154OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in utNative/crossScalaVersions
155OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-ui-web/crossScalaVersions
156OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-all/crossScalaVersions
157OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-all/crossScalaVersions
158OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example-apiJVM/crossScalaVersions
159OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example-apiJVM/crossScalaVersions
160OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-quotedJS/crossScalaVersions
161OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-quotedJS/crossScalaVersions
162OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-modules-jvm/crossScalaVersions
163OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-modules-jvm/crossScalaVersions
164OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example-coreJS/crossScalaVersions
165OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example-coreJS/crossScalaVersions
166OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-sql/crossScalaVersions
167OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-sql/crossScalaVersions
168OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-testNative/crossScalaVersions
169OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-testNative/crossScalaVersions
170OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-crypto-service/crossScalaVersions
171OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-crypto-service/crossScalaVersions
172OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-quotedNative/crossScalaVersions
173OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-quotedNative/crossScalaVersions
174OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-crypto-modelJVM/crossScalaVersions
175OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in utJS/crossScalaVersions
176OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-crypto-modelJVM/crossScalaVersions
177OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in utJS/crossScalaVersions
178OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-jsonJVM/crossScalaVersions
179OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-jsonJVM/crossScalaVersions
180OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-schemaNative/crossScalaVersions
181OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-schemaNative/crossScalaVersions
182OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-storage-in-memory/crossScalaVersions
183OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-storage-in-memory/crossScalaVersions
184OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example-web-server/crossScalaVersions
185OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example-web-server/crossScalaVersions
186OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-coreJVM/crossScalaVersions
187OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-coreJVM/crossScalaVersions
188OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-modules-js/crossScalaVersions
189OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-modules-js/crossScalaVersions
190OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-modules-native/crossScalaVersions
191OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-modules-native/crossScalaVersions
192OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-transformNative/crossScalaVersions
193OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-transformNative/crossScalaVersions
194OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-executableNative/crossScalaVersions
195OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-executableNative/crossScalaVersions
196OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-executableJS/crossScalaVersions
197OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-executableJS/crossScalaVersions
198OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-transformJVM/crossScalaVersions
199OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-transformJVM/crossScalaVersions
200OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-testJVM/crossScalaVersions
201OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-testJVM/crossScalaVersions
202OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-testJS/crossScalaVersions
203OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-testJS/crossScalaVersions
204OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-schemaJVM/crossScalaVersions
205OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-schemaJVM/crossScalaVersions
206OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-transformJS/crossScalaVersions
207OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-transformJS/crossScalaVersions
208OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-quotedJVM/crossScalaVersions
209OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-quotedJVM/crossScalaVersions
210OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-sql-migration/crossScalaVersions
211OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-sql-migration/crossScalaVersions
212OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-crypto-modelJS/crossScalaVersions
213OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-crypto-modelJS/crossScalaVersions
214OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-root/crossScalaVersions
215OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-root/crossScalaVersions
216OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-cliJS/crossScalaVersions
217OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-cliJS/crossScalaVersions
218OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-schemaJS/crossScalaVersions
219OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-schemaJS/crossScalaVersions
220OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in oxygen-jsonJS/crossScalaVersions
221OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in oxygen-jsonJS/crossScalaVersions
222OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example-domain-models/crossScalaVersions
223OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example-domain-models/crossScalaVersions
224OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in example-domain/crossScalaVersions
225OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in example-domain/crossScalaVersions
226[info] set current project to oxygen-root (in build file:/build/repo/)
227[info] Setting Scala version to 3.8.0-RC6 on 64 projects.
228[info] Switching Scala version on:
229[info] utNative (3.8.0-RC6)
230[info] oxygen-executableJS (3.8.0-RC6)
231[info] oxygen-quotedNative (3.8.0-RC6)
232[info] oxygen-sql (3.8.0-RC6)
233[info] oxygen-crypto-modelJVM (3.8.0-RC6)
234[info] example-coreJS (3.8.0-RC6)
235[info] oxygen-crypto-service (3.8.0-RC6)
236[info] utJVM (3.8.0-RC6)
237[info] oxygen-jsonJVM (3.8.0-RC6)
238[info] example-apiJVM (3.8.0-RC6)
239[info] example-domain (3.8.0-RC6)
240[info] oxygen-testJS (3.8.0-RC6)
241[info] oxygen-storage (3.8.0-RC6)
242[info] oxygen-httpJS (3.8.0-RC6)
243[info] oxygen-crypto-modelJS (3.8.0-RC6)
244[info] oxygen-modules-js (3.8.0-RC6)
245[info] example-api-modelsJS (3.8.0-RC6)
246[info] oxygen-schemaJS (3.8.0-RC6)
247[info] oxygen-quotedJVM (3.8.0-RC6)
248[info] example-ui (3.8.0-RC6)
249[info] oxygen-zioJVM (3.8.0-RC6)
250[info] sql-it (3.8.0-RC6)
251[info] utJS (3.8.0-RC6)
252[info] oxygen-transformJVM (3.8.0-RC6)
253[info] oxygen-modules-jvm (3.8.0-RC6)
254[info] * oxygen-root (3.8.0-RC6)
255[info] example-coreJVM (3.8.0-RC6)
256[info] oxygen-all (3.8.0-RC6)
257[info] oxygen-quotedJS (3.8.0-RC6)
258[info] example-domain-models (3.8.0-RC6)
259[info] it (3.8.0-RC6)
260[info] oxygen-sql-migration (3.8.0-RC6)
261[info] oxygen-testJVM (3.8.0-RC6)
262[info] oxygen-coreJS (3.8.0-RC6)
263[info] oxygen-executableJVM (3.8.0-RC6)
264[info] oxygen-cliJS (3.8.0-RC6)
265[info] oxygen-httpJVM (3.8.0-RC6)
266[info] example-apiJS (3.8.0-RC6)
267[info] oxygen-coreJVM (3.8.0-RC6)
268[info] oxygen-jsonJS (3.8.0-RC6)
269[info] http-it (3.8.0-RC6)
270[info] oxygen-executableNative (3.8.0-RC6)
271[info] oxygen-testNative (3.8.0-RC6)
272[info] oxygen-cliJVM (3.8.0-RC6)
273[info] oxygen-storage-in-memory (3.8.0-RC6)
274[info] oxygen-sql-test (3.8.0-RC6)
275[info] example-domain-impl (3.8.0-RC6)
276[info] oxygen-crypto-modelNative (3.8.0-RC6)
277[info] oxygen-zioJS (3.8.0-RC6)
278[info] oxygen-transformNative (3.8.0-RC6)
279[info] oxygen-transformJS (3.8.0-RC6)
280[info] oxygen-ui-web (3.8.0-RC6)
281[info] oxygen-modules (3.8.0-RC6)
282[info] oxygen-schemaJVM (3.8.0-RC6)
283[info] oxygen-jsonNative (3.8.0-RC6)
284[info] oxygen-cliNative (3.8.0-RC6)
285[info] example (3.8.0-RC6)
286[info] example-web-server (3.8.0-RC6)
287[info] example-api-modelsJVM (3.8.0-RC6)
288[info] oxygen-modules-native (3.8.0-RC6)
289[info] oxygen-schemaNative (3.8.0-RC6)
290[info] oxygen-zioNative (3.8.0-RC6)
291[info] oxygen-coreNative (3.8.0-RC6)
292[info] oxygen-test-container (3.8.0-RC6)
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 Jan 8, 2026, 2:46:17 AM
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-RC6/classes ...
329[info] done compiling
330[info] compiling 89 Scala sources to /build/repo/modules/general/core/.jvm/target/scala-3.8.0-RC6/classes ...
331[info] done compiling
332[info] compiling 5 Scala sources to /build/repo/modules/general/transform/.jvm/target/scala-3.8.0-RC6/classes ...
333[info] done compiling
334[info] compiling 19 Scala sources to /build/repo/modules/general/json/.jvm/target/scala-3.8.0-RC6/classes ...
335[info] done compiling
336[info] compiling 27 Scala sources to /build/repo/modules/general/zio/.jvm/target/scala-3.8.0-RC6/classes ...
337[info] done compiling
338[info] compiling 10 Scala sources to /build/repo/modules/general/test-utils/.jvm/target/scala-3.8.0-RC6/classes ...
339[info] done compiling
340[info] compiling 3 Scala sources to /build/repo/modules/general/transform/.jvm/target/scala-3.8.0-RC6/test-classes ...
341[info] done compiling
342+ TransformSpec
343 + givens
344 + some - String
345 + seq - Password
346 + seq - String
347 + id - String
348 + derived
349 + domain.SumExample.B -> api.SumExample.B
350 + domain.SumExample.A -> api.SumExample.A
351 + domain.Person -> api.Person
3527 tests passed. 0 tests failed. 0 tests ignored.
353
354Executed in 373 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-RC6/classes ...
359[info] done compiling
360[info] compiling 23 Scala sources to /build/repo/modules/general/schema/.jvm/target/scala-3.8.0-RC6/classes ...
361[info] done compiling
362[info] compiling 70 Scala sources to /build/repo/modules/http/zio/.jvm/target/scala-3.8.0-RC6/classes ...
363[info] done compiling
364[info] compiling 1 Scala source to /build/repo/modules/http/zio/.jvm/target/scala-3.8.0-RC6/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 489 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-RC6/classes ...
375[info] done compiling
376[info] compiling 5 Scala sources to /build/repo/modules/crypto/service/target/scala-3.8.0-RC6/test-classes ...
377[info] done compiling
378+ JWTServiceSpec
379 + rsa
380 + fails on invalid token
381 + fails on expired token - exact
382 + can issue and validate its own token
383 + fails on expired token - after
384 + hmac
385 + fails on invalid token
386 + can issue and validate its own token
387 + fails on expired token - exact
388 + fails on expired token - after
389+ EncryptionServiceSpec
390 + no-op
391 + can 'encrypt' and 'decrypt', and the value is the same
392 + live
393 + encrypting the same value with the same service creates different IV and Cypher
394 + attempting to decrypt with invalid key fails
395 + basic round-trip works
396 + fails with invalid IV
397+ JWTServiceSpec
398 + none
399 + can issue and validate its own token - 1
400 + hmac
401 + can issue and validate its own token - 1
402 + can issue and validate its own token - 2
403 + detects invalid signature
404 + fails with invalid key - 2
405 + fails with invalid key - 1
406 + invalid algo
407 + invalid algo detected
408 + rsa
409 + can issue and validate its own token - 1
410 + fails with invalid key - 1
411 + can issue and validate its own token - 1
412 + detects invalid signature
413 + fails with invalid key - 2
41425 tests passed. 0 tests failed. 0 tests ignored.
415
416Executed in 826 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-RC6/test-classes ...
421[info] done compiling
422+ TestExamplesSpec
423 + finite
424 + derived
425 + gen
426 + flatMap
4274 tests passed. 0 tests failed. 0 tests ignored.
428
429Executed in 341 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-RC6/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-RC6/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+ TypeTagSpec
910 + from:
911 + derived
912 + oxygen.core.TypeTagSpec.types.Companion
913 + scala.Boolean
914 + scala.Int
915 + java.lang.String
916 + oxygen.core.TypeTagSpec.types.Stage1[scala.Int].Stage2[java.lang.String]
917 + oxygen.core.TypeTagSpec.types.Generic[scala.Int, scala.Boolean, java.lang.String]
918 + generic param types
919 + faTag[Either[String, ?], Int]
920 + faTag[_ => Option, Int]
921 + optionTag[Int]
922 + faTag[Option, Int]
923 + oxygen.core.TypeTagSpec.types.Stage1[scala.Int].Stage2[java.lang.String].Stage3[scala.Boolean]
924 + oxygen.core.TypeTagSpec.types.NonGeneric
925 + oxygen.core.TypeTagSpec.types.Stage1[scala.Int]
926 + make
927 + classTag
928 + int
929 + boolean
930 + java.lang.String
931 + oxygen.core.TypeTagSpec.types.Companion
932 + oxygen.core.TypeTagSpec.types.NonGeneric
933 + oxygen.core.TypeTagSpec.types.Generic[D, E, F]
934 + oxygen.core.TypeTagSpec.types.Stage1[A]
935 + oxygen.core.TypeTagSpec.types.Stage1.Stage2[B]
936 + oxygen.core.TypeTagSpec.types.Stage1.Stage2.Stage3[C]
937+ MyGlobalLayerSpec
938 + test #1
939 + test #2
940 + test #3
941 + test #4
942 + test #5
943+ DeriveShowSpec
944 + CaseClass1
945 + some
946 + none
947 + CaseClass2
948 + simple
949 + CaseClass3
950 + string
951 + int
952+ QuotedSpec
953 + CaseClass4
954 + 2 levels
955 + 3 levels
956 + 1 level
957 + AnyVal1
958 + simple
959 + CaseObject1
960 + simple
961 + Enum1
962 + A
963 + B
964 + Enum3
965 + A
966 + B
967+ IndentedStringSpec
968 + break
969 + str
970 + strs
971 + section
972 + prefix-str
973 + prefix-strs
974 + prefix-indented
975 + sections
976+ FunctorSpec
977 + map
978 + either
979 + left
980 + right
981 + option
982 + some
983 + none
984 + list
985 + non-empty
986 + empty
987 + seq
988 + non-empty
989 + empty
990 + nel
991+ SpecifiedSpec
992 + decode
993 + {}
994 + { "i": 1 }
995 + { "s": "s" }
996 + { "s": null }
997 + { "i": 1, "s": "s", "b": [true, false] }
998 + { "b": [] }
999 + { "b": [true, false] }
1000 + Class1
1001 + { "w": 25 }
1002 + round trip
1003 + MyClass(<<unspecified>>,None,<<unspecified>>,<<unspecified>>)
1004 + MyClass(<<unspecified>>,<<unspecified>>,<<unspecified>>,<<unspecified>>)
1005 + MyClass(1,<<unspecified>>,<<unspecified>>,<<unspecified>>)
1006 + Class3
1007 + Class2
1008 + MyClass(<<unspecified>>,Some(s),<<unspecified>>,<<unspecified>>)
1009 + MyClass(<<unspecified>>,<<unspecified>>,List(true, false),<<unspecified>>)
1010 + MyClass(1,Some(s),List(true, false),<<unspecified>>)
1011 + MyClass(<<unspecified>>,<<unspecified>>,List(),<<unspecified>>)
1012+ StreamAggregatorSpec
1013 + many
1014 + non-empty
1015 + empty
1016 + aOptB
1017 + empty
1018 + case-1
1019 + case-2
1020 + optional
1021 + non-empty
1022 + empty
1023 + single
1024 + non-empty
1025 + empty
1026 + mega
1027 + empty
1028 + case-1
1029+ ApplicativeSpec
1030 + pure
1031 + list
1032 + seq
1033 + option
1034 + either
1035 + nel
1036+ EnumSpec
1037 + EnumWithOther
1038 + EnumSpec.Enum3 / "a" / A
1039 + EnumSpec.Enum3 / "B" / B
1040 + EnumSpec.Enum3 / "b" / B
1041 + EnumSpec.Enum3 / "A" / A
1042 + ap
1043 + EnumSpec.Enum3 / "other-1" / C(other-1)
1044 + EnumSpec.Enum3 / "OTHER-2" / C(OTHER-2)
1045 + option
1046 + StrictEnum
1047 + some/some
1048 + EnumSpec.Enum1 / "A" / A
1049 + EnumSpec.Enum1 / "a" / A
1050 + none/some
1051 + none/none
1052 + some/none
1053 + nel
1054 + either
1055 + right/right
1056 + EnumSpec.Enum1 / "Aa" / A
1057 + left/right
1058 + EnumSpec.Enum2 / "case-a" / CaseA
1059 + right/left
1060 + EnumSpec.Enum2 / "case-C" / CaseC
1061 + left/left
1062 + round trip: A
1063 + list
1064 + round trip: B
1065 + non-empty/non-empty
1066 + empty/non-empty
1067 + round trip: C
1068 + round trip: CaseA
1069 + non-empty/empty
1070 + round trip: CaseB
1071 + EnumSpec.Enum2 / "CASE-B" / CaseB
1072 + round trip: CaseC
1073+ SeqOpsSpec
1074 + intersperse
1075 + non-empty
1076 + empty
1077 + surround
1078 + empty
1079 + non-empty
1080+ VersionSpec
1081 + all-equal
1082 + v1
1083 + v1-ALPHA
1084 + v1
1085 + parse
1086 + v1.2.3
1087 + 1.2.3-RC1
1088 + 1.2.3
1089 + 1.2.3-what
1090 + v1.2.3-SNAPSHOT
1091 + ordering
1092 + ord-test-1
1093+ EncodedThrowableSpec
1094 + "java.lang.RuntimeException"
1095 + "error"
1096 + "error\n Cause: error2"
1097 + "error\n Cause: java.lang.RuntimeException"
1098+ ColorStringSpec
1099 + split
1100 + nested - no color
1101 + "-[-|-]-" : "-"
1102 + "-[-|-]-" : "-"
1103 + "-[--|--]-" : "-"
1104 + "[-|-]" : "-"
1105 + "[-|-]" : "-"
1106 + "[--|--]" : "-"
1107 + nested - color
1108 + "-[-|-...-|-]-" : "-"
1109 + simple
1110 + "" : "-"
1111 + "-[-|-]-" : "-"
1112 + "[-]" : "-"
1113 + "[-|-]" : "-"
1114 + toString
1115 + [...???...] + Colorless
1116 + [...???...] + Extended
1117 + [...???...] + Extended
1118 + [[...???...]] + Extended
1119 + [...[48;2;0;0;128m???...] + PreferSimple
1120 + [...[48;2;0;0;128m???...] + Simple
1121 + [...???...] + Simple
1122 + [...[48;2;0;0;128m???...] + Extended
1123 + [...[48;2;0;0;128m???...] + ShowColorName
1124 + interpolation
1125 + []
1126 + [...]
1127 + [...]
1128 + [...???...]
1129 + [|]
1130+ MyNonGlobalLayerSpec
1131 + test #1
1132 + test #2
1133 + test #3
1134 + test #4
1135 + test #5
1136+ NonEmptyListSpec
1137 + fromList
1138 + non-empty
1139 + empty
1140 + fill
1141 + 1
1142 + 5
1143 + growing
1144 + concat ops work
1145 + concat ops via SeqLike works
1146 + of
1147 + unapply
1148 + nel
1149 + list - non-empty
1150 + list - non-empty
1151+ StringCodecSpec
1152 + misc
1153 + String : - having fun with it (3)
1154 + surround doesn't duplicate
1155 + LocalDate : 2024-01-02 - having fun with it (1)
1156 + Instant : 2020-09-13T12:26:40Z - having fun with it (2)
1157 + json
1158 + StringCodecSpec.MyClass : MyClass(base64,String) - base64UrlNoPadding
1159 + base64
1160 + String : ABC\nDEF% - base64
1161 + String : ABC\nDEF% - base64Url
1162 + String : ABC\nDEF% - base64Mime
1163 + String : ABC\nDEF% - base64NoPadding
1164 + String : ABC\nDEF% - base64UrlNoPadding
1165 + String : ABC\nDEF% - base64MimeNoPadding
1166 + standard
1167 + string
1168 + String : string
1169 + boolean
1170+ SeqOpsSpec
1171 + Boolean : true
1172 + Boolean : false
1173 + instant
1174 + Instant : 2020-09-13T12:26:40Z
1175 + int
1176 + Int : 25
1177 + Int : -25
1178 + Int : 37
1179 + float
1180 + Float : 25.47
1181 + Float : -25.47
1182 + offset date time
1183 + OffsetDateTime : 2020-01-01T01:02:03Z
1184 + OffsetDateTime : 2020-01-01T01:02:03+05:00
1185 + time zone
1186 + TimeZone : sun.util.calendar.ZoneInfo[id=\"MST\",offset=-25200000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
1187 + zone id
1188 + ZoneId : America/Denver
1189 + zone offset
1190 + List(1, 2, 3) <-> List(1, 2, 3)
1191 + ZoneOffset : +05:00
1192 + List(1, 2, 3) <-> Vector(1, 2, 3)
1193 + ZoneOffset : -07:00
1194[[38;2;255;255;0mWARN ]: [38;2;236;140;131mtimestamp=[38;2;130;114;233m2026-01-08T01:48:17.910660923Z [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-20966
1195[ ]: [38;2;242;108;167mcommand=[38;2;18;71;248mecho
1196[ ]: [38;2;125;205;133mCommandSpec / command / executes as expected=[38;2;223;41;53m55 ms
1197[ ]: command-1
1198 + zoned date time
1199 + ZonedDateTime : 2020-01-01T01:02:03Z
1200 + ZonedDateTime : 2020-01-01T01:02:03+05:00
1201 + ZonedDateTime : 2020-01-01T01:02:03-07:00[America/Denver]
1202 + duration
1203 + Duration : PT1H
1204 + Duration : PT1H30M
1205 + Duration : PT672H
1206 + local date time
1207 + LocalDateTime : 2024-02-04T15:30:45
1208 + List(1, 2, 3) <-> List(1, 2, 3)
1209 + LocalDateTime : 2020-02-04T14:00
1210 + LocalDateTime : 2020-02-04T14:40
1211 + local date
1212 + LocalDate : 2020-02-04
1213 + LocalDate : 2020-02-04
1214 + LocalDate : 2020-02-04
1215 + LocalDate : 1820-02-04
1216 + LocalDate : 2020-02-04
1217 + LocalDate : 1820-02-04
1218 + local time
1219 + LocalTime : 15:30:45
1220 + LocalTime : 03:30:45
1221 + LocalTime : 01:00
1222 + LocalTime : 01:23
1223 + LocalTime : 01:23:45
1224 + LocalTime : 13:00
1225 + List() <-> Vector()
1226 + LocalTime : 13:23
1227 + LocalTime : 13:23:45
1228 + LocalTime : 00:00
1229 + LocalTime : 12:00
1230+ ZipNSpec
1231 + Zip3
1232 + ((), (), ()) <-> ()
1233 + (1, (), ()) <-> 1
1234 + List(1, 2, 3) <-> List(1, 2, 3)
1235 + ((), (), 1) <-> 1
1236 + (1, 2, ()) <-> (1,2)
1237 + (1, (), 2) <-> (1,2)
1238+ CompatSpec
1239 + (1, 2, 3) <-> (1,2,3)
1240 + ((1,2), (3,4), (5,6)) <-> (1,2,3,4,5,6)
1241 + Zip5
1242 + ((), (), (), (), ()) <-> ()
1243 + (1, (), (), (), ()) <-> 1
1244 + ((), (), (), (), 1) <-> 1
1245 + (1, 2, (), (), ()) <-> (1,2)
1246 + (1, (), (), (), 2) <-> (1,2)
1247 + ((1,2), (3,4), (5,6), (7,8), (9,10)) <-> (1,2,3,4,5,6,7,8,9,10)
1248 + (1, 2, 3, 4, 5) <-> (1,2,3,4,5)
1249 + Zip4
1250 + ((), (), (), ()) <-> ()
1251 + (1, (), (), ()) <-> 1
1252 + ((), (), (), 1) <-> 1
1253 + (1, 2, (), ()) <-> (1,2)
1254 + (1, (), (), 2) <-> (1,2)
1255 + ((1,2), (3,4), (5,6), (7,8)) <-> (1,2,3,4,5,6,7,8)
1256 + (1, 2, 3, 4) <-> (1,2,3,4)
1257+ ShowSpec
1258 + .show extension
1259 + `sh` interpolator
1260 + derives Show.ToString
1261+ GrowableSpec
1262 + Concat
1263 + Empty
1264+ DerivedFromAndToExprSpec
1265 + FromExpr
1266 + Many
1267 + Single
1268 + Map
1269 + Map
1270 + FlatMap + Fill
1271 + Filter
1272 + Collect
1273 + FilterNot
1274 + Distinct
1275 + DistinctBy
1276+ MacroSpec
1277 + default args
1278 + Class1
1279 + matching
1280 + strings
1281 + abc + def
1282 + abc + const
1283 + const + def
1284 + const + const
1285 + seq
1286 + List()
1287 + List(1, 2, 3)
1288 + List(1, 2, 3)
1289 + enum values
1290 + Sum1
1291 + Sum2
1292 + product 1
1293 + Sum3
1294 + Sum4
1295 + Sum5
1296 + product transform
1297 + () <-> CaseObject0
1298 + () <-> CaseClass0()
1299 + 5 <-> CaseClass1(5)
1300 + (5,s,true) <-> CaseClass2(5,s,true)
1301+ ParTraverseSpec
1302 + parTraverse
1303 + list/either
1304 + case 1
1305 + case 2
1306 + case 3
1307 + nel/either
1308 + case 2
1309 + case 3
1310 + case 1
1311 + product 2
1312 + sum 3
1313 + sum 1
1314 + sum 2
1315 + ToExpr
1316 + product
1317 + sum
1318+ InfiniteSetSpec
1319 + |
1320 + (Inclusive(A,B),Inclusive(A,B))
1321 + (Inclusive(A,B),Inclusive(B,C))
1322 + (Inclusive(A,B),Exclusive(A,B))
1323 + (Inclusive(B,C),Inclusive(A,B))
1324 + (Inclusive(A,B),Inclusive(C,D))
1325 + (Inclusive(A,B),Exclusive(B,C))
1326 + (Inclusive(A,B),Exclusive(C,D))
1327 + (Inclusive(B,C),Exclusive(B,C))
1328 + (Inclusive(B,C),Exclusive(C,D))
1329 + (Inclusive(B,C),Inclusive(B,C))
1330 + (Inclusive(B,C),Inclusive(C,D))
1331 + (Inclusive(B,C),Exclusive(A,B))
1332 + (Inclusive(C,D),Inclusive(A,B))
1333 + (Inclusive(C,D),Inclusive(B,C))
1334 + (Inclusive(C,D),Inclusive(C,D))
1335 + (Inclusive(C,D),Exclusive(B,C))
1336 + (Exclusive(A,B),Inclusive(A,B))
1337 + (Exclusive(A,B),Inclusive(B,C))
1338 + (Exclusive(A,B),Exclusive(A,B))
1339 + (Inclusive(C,D),Exclusive(C,D))
1340 + (Exclusive(A,B),Inclusive(C,D))
1341 + (Inclusive(C,D),Exclusive(A,B))
1342 + (Exclusive(A,B),Exclusive(B,C))
1343 + (Exclusive(B,C),Inclusive(B,C))
1344 + (Exclusive(B,C),Inclusive(C,D))
1345 + (Exclusive(B,C),Inclusive(A,B))
1346 + (Exclusive(A,B),Exclusive(C,D))
1347 + (Exclusive(B,C),Exclusive(C,D))
1348 + (Exclusive(B,C),Exclusive(A,B))
1349 + (Exclusive(C,D),Inclusive(A,B))
1350 + (Exclusive(B,C),Exclusive(B,C))
1351 + (Exclusive(C,D),Inclusive(C,D))
1352 + (Exclusive(C,D),Exclusive(B,C))
1353 + (Exclusive(C,D),Exclusive(C,D))
1354 + (Exclusive(C,D),Inclusive(B,C))
1355 + (Exclusive(C,D),Exclusive(A,B))
1356 + &~
1357 + (Inclusive(A,B),Inclusive(A,B))
1358 + (Inclusive(A,B),Inclusive(B,C))
1359 + (Inclusive(A,B),Inclusive(C,D))
1360 + (Inclusive(A,B),Exclusive(A,B))
1361 + (Inclusive(A,B),Exclusive(B,C))
1362 + (Inclusive(A,B),Exclusive(C,D))
1363 + (Inclusive(B,C),Inclusive(A,B))
1364 + (Inclusive(B,C),Inclusive(B,C))
1365 + (Inclusive(B,C),Inclusive(C,D))
1366 + (Inclusive(B,C),Exclusive(A,B))
1367 + (Inclusive(B,C),Exclusive(B,C))
1368 + (Inclusive(B,C),Exclusive(C,D))
1369 + (Inclusive(C,D),Inclusive(A,B))
1370 + (Inclusive(C,D),Exclusive(B,C))
1371 + (Inclusive(C,D),Inclusive(B,C))
1372 + (Inclusive(C,D),Inclusive(C,D))
1373 + (Inclusive(C,D),Exclusive(A,B))
1374 + (Inclusive(C,D),Exclusive(C,D))
1375 + (Exclusive(A,B),Inclusive(A,B))
1376 + (Exclusive(A,B),Exclusive(A,B))
1377 + (Exclusive(A,B),Inclusive(B,C))
1378 + (Exclusive(A,B),Inclusive(C,D))
1379 + (Exclusive(A,B),Exclusive(B,C))
1380 + (Exclusive(B,C),Inclusive(C,D))
1381 + (Exclusive(A,B),Exclusive(C,D))
1382 + (Exclusive(B,C),Exclusive(A,B))
1383 + (Exclusive(B,C),Inclusive(B,C))
1384 + (Exclusive(B,C),Exclusive(B,C))
1385 + (Exclusive(B,C),Exclusive(C,D))
1386 + (Exclusive(B,C),Inclusive(A,B))
1387 + (Exclusive(C,D),Inclusive(B,C))
1388 + (Exclusive(C,D),Inclusive(C,D))
1389 + (Exclusive(C,D),Exclusive(C,D))
1390 + (Exclusive(C,D),Exclusive(A,B))
1391 + (Exclusive(C,D),Exclusive(B,C))
1392 + (Exclusive(C,D),Inclusive(A,B))
1393 + &
1394 + (Inclusive(A,B),Inclusive(A,B))
1395 + (Inclusive(A,B),Inclusive(B,C))
1396 + (Inclusive(A,B),Inclusive(C,D))
1397 + (Inclusive(A,B),Exclusive(A,B))
1398 + (Inclusive(A,B),Exclusive(B,C))
1399 + (Inclusive(B,C),Inclusive(C,D))
1400 + (Inclusive(A,B),Exclusive(C,D))
1401 + (Inclusive(B,C),Inclusive(A,B))
1402 + (Inclusive(B,C),Inclusive(B,C))
1403 + (Inclusive(B,C),Exclusive(A,B))
1404 + (Inclusive(C,D),Inclusive(B,C))
1405 + (Inclusive(B,C),Exclusive(B,C))
1406 + (Inclusive(B,C),Exclusive(C,D))
1407 + (Inclusive(C,D),Inclusive(A,B))
1408 + (Inclusive(C,D),Inclusive(C,D))
1409 + (Exclusive(A,B),Inclusive(A,B))
1410 + (Inclusive(C,D),Exclusive(A,B))
1411 + (Inclusive(C,D),Exclusive(B,C))
1412 + (Inclusive(C,D),Exclusive(C,D))
1413 + (Exclusive(A,B),Inclusive(B,C))
1414 + (Exclusive(A,B),Exclusive(C,D))
1415 + (Exclusive(A,B),Inclusive(C,D))
1416 + (Exclusive(A,B),Exclusive(A,B))
1417 + (Exclusive(A,B),Exclusive(B,C))
1418 + (Exclusive(B,C),Inclusive(A,B))
1419 + (Exclusive(B,C),Exclusive(B,C))
1420 + (Exclusive(B,C),Inclusive(B,C))
1421 + (Exclusive(B,C),Inclusive(C,D))
1422 + (Exclusive(B,C),Exclusive(A,B))
1423 + (Exclusive(B,C),Exclusive(C,D))
1424 + (Exclusive(C,D),Inclusive(A,B))
1425 + (Exclusive(C,D),Inclusive(B,C))
1426 + (Exclusive(C,D),Inclusive(C,D))
1427 + (Exclusive(C,D),Exclusive(A,B))
1428 + (Exclusive(C,D),Exclusive(B,C))
1429 + (Exclusive(C,D),Exclusive(C,D))
1430+ CommandSpec
1431 + command
1432 + command builds properly
1433 + executes as expected
1434+ FunctorSpec
1435 + map
1436 + list
1437 + seq
1438 + nel
1439 + option
1440 + some->some
1441 + some->none
1442 + none->some
1443 + none->none
1444+ UnionRemovingSpec
1445 + removes
1446 + Test on line #55
1447 + Test on line #56
1448 + Test on line #57
1449 + Test on line #58
1450 + Test on line #59
1451 + remains
1452 + Test on line #62
1453 + Test on line #63
1454 + Test on line #64
1455 + Test on line #65
1456 + Test on line #66
1457+ StringOpsSpec
1458 + 4
1459 + "-[-|-|-]-" : "-"
1460 + "[-|-|-]" : "-"
1461 + "[-|-|-]-" : "-"
1462 + "-[-|-|-]" : "-"
1463 + 2
1464 + "[-]-" : "-"
1465 + "[-]" : "-"
1466 + "-[-]" : "-"
1467 + "-[-]-" : "-"
1468 + empty
1469 + "" : "-"
1470 + 1
1471 + "-|-" : "-"
1472+ JsonSpec
1473 + string transform
1474 + JsonSpec.MyClass2 -> {"field":"eyJ0eXBlIjoiYmFzZTY0IiwidmFsdWUiOiJTdHJpbmcifQ"}
1475 + derived instances
1476 + Product3
1477 + JsonSpec.Product3 -> {"f1":1,"f2":"hi"}
1478 + Product2
1479 + JsonSpec.Product2 -> {"name":"A"}
1480 + JsonSpec.Product2 -> {"name":"A","inner":{"name":"B"}}
1481 + JsonSpec.Product2 -> {"name":"A","inner":{"name":"B","inner":{"name":"C"}}}
1482 + WrappedBoolean
1483 + JsonSpec.WrappedBoolean -> true
1484 + Product1
1485 + JsonSpec.Product1 -> {"s":"ABC","b":true}
1486 + JsonSpec.Product1 -> {"s":"ABC","b":true,"i":123}
1487 + "|-" : "-"
1488 + Sum2
1489 + "-|" : "-"
1490 + JsonSpec.Sum2 -> {"c1":{"f1":1}}
1491 + "|" : "-"
1492+ ZipSpec
1493 + ((), ()) <-> ()
1494 + ((), 1) <-> 1
1495 + (1, ()) <-> 1
1496 + ((1,2), (3,4)) <-> (1,2,3,4)
1497 + ((1,2), ()) <-> (1,2)
1498 + ((), (1,2)) <-> (1,2)
1499 + ((1,2), 3) <-> (1,2,3)
1500 + (1, (2,3)) <-> (1,2,3)
1501 + (1, 2) <-> (1,2)
1502+ TraverseSpec
1503 + travers
1504 + list/option
1505 + JsonSpec.Sum2 -> {"Case2":{"b":true}}
1506 + Sum1
1507 + JsonSpec.Sum1 -> {"S":{"s":"ABC"}}
1508 + JsonSpec.Sum1 -> {"B":{"b":true}}
1509 + JsonSpec.Sum1 -> {"I":{"i":123}}
1510 + JsonSpec.Sum1 -> {"I":{}}
1511 + JsonSpec.Sum1 -> {"P":{"p":{"s":"ABC","b":false}}}
1512 + FlattenOuterRequired
1513 + JsonSpec.FlattenOuterRequired -> {"outer1":1,"inner1":2}
1514 + JsonSpec.FlattenOuterRequired -> {"outer1":1,"outer2":"O","inner1":2,"inner2":"I"}
1515 + Sum3
1516 + JsonSpec.Sum3 -> {"type":"c1","f1":1}
1517 + JsonSpec.Sum3 -> {"type":"Case2","b":true}
1518 + case 1
1519 + case 2
1520 + nel/option
1521 + case 1
1522 + case 2
1523 + list/either
1524 + case 1
1525 + case 2
1526 + case 3
1527 + nel/either
1528 + case 1
1529 + case 2
1530 + case 3
1531 + NestedSums
1532 + NestedNoDiscriminator
1533 + JsonSpec.NestedSums.NestedNoDiscriminator -> {"Case1":{"A":{}}}
1534 + JsonSpec.NestedSums.NestedNoDiscriminator -> {"Case1":{"B":{}}}
1535 + JsonSpec.NestedSums.NestedNoDiscriminator -> {"Case2":{"C":{}}}
1536 + JsonSpec.NestedSums.NestedNoDiscriminator -> {"Case2":{"D":{}}}
1537 + NestedWithDiscriminator
1538 + JsonSpec.NestedSums.NestedWithDiscriminator -> {"type1":"Case2","type3":"D"}
1539 + JsonSpec.NestedSums.NestedWithDiscriminator -> {"type1":"Case2","type3":"C"}
1540 + JsonSpec.NestedSums.NestedWithDiscriminator -> {"type1":"Case1","type2":"A"}
1541 + JsonSpec.NestedSums.NestedWithDiscriminator -> {"type1":"Case1","type2":"B"}
1542 + UnrollWithDiscriminator
1543 + JsonSpec.NestedSums.UnrollWithDiscriminator -> {"type":"C"}
1544 + JsonSpec.NestedSums.UnrollWithDiscriminator -> {"type":"D"}
1545 + JsonSpec.NestedSums.UnrollWithDiscriminator -> {"type":"A"}
1546 + JsonSpec.NestedSums.UnrollWithDiscriminator -> {"type":"B"}
1547 + UnrollNoDiscriminator
1548 + JsonSpec.NestedSums.UnrollNoDiscriminator -> {"C":{}}
1549 + JsonSpec.NestedSums.UnrollNoDiscriminator -> {"D":{}}
1550 + JsonSpec.NestedSums.UnrollNoDiscriminator -> {"B":{}}
1551 + JsonSpec.NestedSums.UnrollNoDiscriminator -> {"A":{}}
1552 + provided instances
1553 + String -> "ABC"
1554 + Int -> 123
1555 + Boolean -> true
1556 + Month -> "July"
1557 + Option[Boolean] -> true
1558 + Option[Boolean] -> false
1559 + Option[Boolean] -> null
1560 + seq
1561 + Seq[Int] -> [1,2,3]
1562 + Seq[Int] -> []
1563 + List[Int] -> []
1564 + Vector[Int] -> []
1565 + List[Int] -> [1,2,3]
1566 + Vector[Int] -> [1,2,3]
1567 + <fails> NonEmptyList[Int] -> []
1568+ DeriveSchemaSpec
1569 + Product1
1570 + works
1571 + Product2
1572 + works
1573 + FlattenOuterRequired
1574 + works
1575 + Sum1
1576 + works
1577 + Sum2
1578 + works
1579 + compiler
1580516 tests passed. 0 tests failed. 0 tests ignored.
1581
1582Executed in 2 s 847 ms
1583
1584Starting build for ProjectRef(file:/build/repo/,oxygen-crypto-modelJVM) (oxygen-crypto-model)... [7/19]
1585Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1586Starting build for ProjectRef(file:/build/repo/,oxygen-executableJVM) (oxygen-executable)... [8/19]
1587Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1588[info] compiling 10 Scala sources to /build/repo/modules/general/cli/.jvm/target/scala-3.8.0-RC6/classes ...
1589[info] done compiling
1590[info] compiling 7 Scala sources to /build/repo/modules/general/executable/.jvm/target/scala-3.8.0-RC6/classes ...
1591[info] done compiling
1592[info] compiling 2 Scala sources to /build/repo/modules/general/cli/.jvm/target/scala-3.8.0-RC6/test-classes ...
1593[info] done compiling
1594[info] compiling 1 Scala source to /build/repo/modules/general/executable/.jvm/target/scala-3.8.0-RC6/test-classes ...
1595[info] done compiling
1596+ ExecutableAppParserSpec
1597 + passing
1598 + jar resource
1599 + file
1600 + env var
1601 + empty
1602 + raw (valid json)
1603 + env var (with nesting)
1604 + raw (invalid json)
1605 + raw (valid json + with nesting)
1606 + raw (invalid json + with nesting)
1607 + zio default
1608 + zio default (short)
160911 tests passed. 0 tests failed. 0 tests ignored.
1610
1611Executed in 431 ms
1612
1613Starting build for ProjectRef(file:/build/repo/,oxygen-jsonJVM) (oxygen-json)... [9/19]
1614Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1615Starting build for ProjectRef(file:/build/repo/,oxygen-zioJVM) (oxygen-zio)... [10/19]
1616Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1617Starting build for ProjectRef(file:/build/repo/,oxygen-sql-migration) (oxygen-sql-migration)... [11/19]
1618Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1619[info] compiling 81 Scala sources to /build/repo/modules/sql/core/target/scala-3.8.0-RC6/classes ...
1620Warning: mocking up superclass for module class dsl
1621[info] done compiling
1622[info] compiling 30 Scala sources to /build/repo/modules/sql/migration/target/scala-3.8.0-RC6/classes ...
1623[info] done compiling
1624[info] compiling 1 Scala source to /build/repo/modules/sql/core/target/scala-3.8.0-RC6/test-classes ...
1625[info] done compiling
1626Starting build for ProjectRef(file:/build/repo/,oxygen-sql) (oxygen-sql)... [12/19]
1627Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1628+ RowSchemaSpec
1629 + columns
1630 + single
1631 + Short
1632 + Long
1633 + Float
1634 + Int
1635 + Double
1636 + String
1637 + Instant
1638 + LocalDateTime
1639 + LocalDate
1640 + LocalTime
1641 + Boolean
1642 + UUID
1643 + Json
1644 + TypedJson[Product1]
1645 + TypedJson[Int]
1646 + Jsonb
1647 + TypedJsonb[Int]
1648 + TypedJsonb[Product1]
1649 + product
1650 + Product3
1651 + Product2
1652 + Product1
165321 tests passed. 0 tests failed. 0 tests ignored.
1654
1655Executed in 515 ms
1656
1657Starting build for ProjectRef(file:/build/repo/,oxygen-sql-test) (oxygen-sql-test)... [13/19]
1658Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1659[info] compiling 5 Scala sources to /build/repo/modules/general/test-container/target/scala-3.8.0-RC6/classes ...
1660[info] done compiling
1661[info] compiling 2 Scala sources to /build/repo/modules/sql/test-utils/target/scala-3.8.0-RC6/classes ...
1662[info] done compiling
1663Starting build for ProjectRef(file:/build/repo/,oxygen-storage-in-memory) (oxygen-storage-in-memory)... [14/19]
1664Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1665[info] compiling 2 Scala sources to /build/repo/modules/sql/storage-in-memory/target/scala-3.8.0-RC6/classes ...
1666[info] done compiling
1667Starting build for ProjectRef(file:/build/repo/,oxygen-cliJVM) (oxygen-cli)... [15/19]
1668Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1669+ ParserSpec
1670 + passes
1671 + values
1672 + then
1673 + simple value
1674 + repeated value - list 1
1675 + optional value - some
1676 + repeated value - list 3
1677 + optional value - none
1678 + repeated value - nel 1
1679 + repeated value - list 0
1680 + repeated + then
1681 + or - left
1682 + person - repeated
1683 + repeated value - nel 3
1684 + or - right
1685 + person
1686 + params
1687 + simple param - 2 args
1688 + simple param - 1 arg with =
1689 + boolean flag - present
1690 + boolean flag - missing
1691 + toggle - prefix false - false
1692 + toggle - prefix false - true
1693 + toggle - prefix true - true
1694 + toggle - prefix false - false
1695 + toggle - prefix true - false
1696 + valueWith - list 0
1697 + toggle - prefix false - true
1698 + valueWith - list 1 - 1 arg with =
1699 + valueWith - list 3
1700 + valueWith - list 1 - 2 args
1701 + person
1702 + multi-short-booleans - 1
1703 + multi-short-booleans - 2
1704 + multi-short-booleans - 3
1705 + empty
1706 + bracketed
1707 + bracketed person
1708 + bracketed person - repeated
1709 + bracketed config - no brackets
1710 + bracketed config - empty brackets
1711 + bracketed config - labels
1712 + bracketed config - max-width
1713 + bracketed config - labels + max-width
1714 + help
1715 + case - 1
1716 + case - 2
1717 + case - 3
1718 + case - 4
1719 + case - 5
1720+ ArgSpec
1721 + splitOn_--
1722 + empty
1723 + left only (explicit)
1724 + right only (explicit)
1725 + right only (using)
1726 + left and right
1727 + parse
1728 + fails
1729 + passes
1730 + params only
1731 + params with args
1732 + empty
1733 + args only
1734 + params with brackets
173555 tests passed. 0 tests failed. 0 tests ignored.
1736
1737Executed in 834 ms
1738
1739Starting build for ProjectRef(file:/build/repo/,oxygen-coreJVM) (oxygen-core)... [16/19]
1740Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1741Starting build for ProjectRef(file:/build/repo/,oxygen-schemaJVM) (oxygen-schema)... [17/19]
1742Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1743Starting build for ProjectRef(file:/build/repo/,oxygen-test-container) (oxygen-test-container)... [18/19]
1744Compile scalacOptions: -Ycheck-all-patmat, -Wunused:all, -language:implicitConversions, -Yretain-trees, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1745
1746************************
1747Build summary:
1748[{
1749 "module": "oxygen-transform",
1750 "compile": {"status": "ok", "tookMs": 38043, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1751 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1752 "test-compile": {"status": "ok", "tookMs": 13875, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1753 "test": {"status": "ok", "tookMs": 1816, "passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7, "byFramework": [{"framework": "unknown", "stats": {"passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7}}]},
1754 "publish": {"status": "skipped", "tookMs": 0},
1755 "metadata": {
1756 "crossScalaVersions": ["2.12.20", "3.7.4"]
1757}
1758},{
1759 "module": "oxygen-http-zio",
1760 "compile": {"status": "ok", "tookMs": 25140, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1761 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1762 "test-compile": {"status": "ok", "tookMs": 1851, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1763 "test": {"status": "ok", "tookMs": 1675, "passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1, "byFramework": [{"framework": "unknown", "stats": {"passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1}}]},
1764 "publish": {"status": "skipped", "tookMs": 0},
1765 "metadata": {
1766 "crossScalaVersions": ["2.12.20", "3.7.4"]
1767}
1768},{
1769 "module": "oxygen-crypto-service",
1770 "compile": {"status": "ok", "tookMs": 1789, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1771 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1772 "test-compile": {"status": "ok", "tookMs": 2052, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1773 "test": {"status": "ok", "tookMs": 1755, "passed": 25, "failed": 0, "ignored": 0, "skipped": 0, "total": 25, "byFramework": [{"framework": "unknown", "stats": {"passed": 25, "failed": 0, "ignored": 0, "skipped": 0, "total": 25}}]},
1774 "publish": {"status": "skipped", "tookMs": 0},
1775 "metadata": {
1776 "crossScalaVersions": ["2.12.20", "3.7.4"]
1777}
1778},{
1779 "module": "oxygen-test",
1780 "compile": {"status": "ok", "tookMs": 288, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1781 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1782 "test-compile": {"status": "ok", "tookMs": 1452, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1783 "test": {"status": "ok", "tookMs": 1242, "passed": 4, "failed": 0, "ignored": 0, "skipped": 0, "total": 4, "byFramework": [{"framework": "unknown", "stats": {"passed": 4, "failed": 0, "ignored": 0, "skipped": 0, "total": 4}}]},
1784 "publish": {"status": "skipped", "tookMs": 0},
1785 "metadata": {
1786 "crossScalaVersions": ["2.12.20", "3.7.4"]
1787}
1788},{
1789 "module": "oxygen-storage",
1790 "compile": {"status": "ok", "tookMs": 799, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1791 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1792 "test-compile": {"status": "ok", "tookMs": 458, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1793 "test": {"status": "ok", "tookMs": 444, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1794 "publish": {"status": "skipped", "tookMs": 0},
1795 "metadata": {
1796 "crossScalaVersions": ["2.12.20", "3.7.4"]
1797}
1798},{
1799 "module": "oxygen-quoted",
1800 "compile": {"status": "ok", "tookMs": 51, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1801 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1802 "test-compile": {"status": "ok", "tookMs": 80, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1803 "test": {"status": "ok", "tookMs": 82, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1804 "publish": {"status": "skipped", "tookMs": 0},
1805 "metadata": {
1806 "crossScalaVersions": ["2.12.20", "3.7.4"]
1807}
1808},{
1809 "module": "oxygen-core",
1810 "compile": {"status": "ok", "tookMs": 353, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1811 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1812 "test-compile": {"status": "ok", "tookMs": 12540, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1813 "test": {"status": "ok", "tookMs": 4160, "passed": 516, "failed": 0, "ignored": 0, "skipped": 0, "total": 516, "byFramework": [{"framework": "unknown", "stats": {"passed": 516, "failed": 0, "ignored": 0, "skipped": 0, "total": 516}}]},
1814 "publish": {"status": "ok", "tookMs": 7},
1815 "metadata": {
1816 "crossScalaVersions": ["2.12.20", "3.7.4"]
1817}
1818},{
1819 "module": "oxygen-crypto-model",
1820 "compile": {"status": "ok", "tookMs": 217, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1821 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1822 "test-compile": {"status": "ok", "tookMs": 436, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1823 "test": {"status": "ok", "tookMs": 541, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1824 "publish": {"status": "skipped", "tookMs": 0},
1825 "metadata": {
1826 "crossScalaVersions": ["2.12.20", "3.7.4"]
1827}
1828},{
1829 "module": "oxygen-executable",
1830 "compile": {"status": "ok", "tookMs": 5782, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1831 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1832 "test-compile": {"status": "ok", "tookMs": 1869, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1833 "test": {"status": "ok", "tookMs": 1375, "passed": 11, "failed": 0, "ignored": 0, "skipped": 0, "total": 11, "byFramework": [{"framework": "unknown", "stats": {"passed": 11, "failed": 0, "ignored": 0, "skipped": 0, "total": 11}}]},
1834 "publish": {"status": "skipped", "tookMs": 0},
1835 "metadata": {
1836 "crossScalaVersions": ["2.12.20", "3.7.4"]
1837}
1838},{
1839 "module": "oxygen-json",
1840 "compile": {"status": "ok", "tookMs": 169, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1841 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1842 "test-compile": {"status": "ok", "tookMs": 270, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1843 "test": {"status": "ok", "tookMs": 270, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1844 "publish": {"status": "skipped", "tookMs": 0},
1845 "metadata": {
1846 "crossScalaVersions": ["2.12.20", "3.7.4"]
1847}
1848},{
1849 "module": "oxygen-zio",
1850 "compile": {"status": "ok", "tookMs": 254, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1851 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1852 "test-compile": {"status": "ok", "tookMs": 307, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1853 "test": {"status": "ok", "tookMs": 336, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1854 "publish": {"status": "skipped", "tookMs": 0},
1855 "metadata": {
1856 "crossScalaVersions": ["2.12.20", "3.7.4"]
1857}
1858},{
1859 "module": "oxygen-sql-migration",
1860 "compile": {"status": "ok", "tookMs": 15480, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1861 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1862 "test-compile": {"status": "ok", "tookMs": 1897, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1863 "test": {"status": "ok", "tookMs": 625, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1864 "publish": {"status": "skipped", "tookMs": 0},
1865 "metadata": {
1866 "crossScalaVersions": ["2.12.20", "3.7.4"]
1867}
1868},{
1869 "module": "oxygen-sql",
1870 "compile": {"status": "ok", "tookMs": 398, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1871 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1872 "test-compile": {"status": "ok", "tookMs": 564, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1873 "test": {"status": "ok", "tookMs": 1587, "passed": 21, "failed": 0, "ignored": 0, "skipped": 0, "total": 21, "byFramework": [{"framework": "unknown", "stats": {"passed": 21, "failed": 0, "ignored": 0, "skipped": 0, "total": 21}}]},
1874 "publish": {"status": "skipped", "tookMs": 0},
1875 "metadata": {
1876 "crossScalaVersions": ["2.12.20", "3.7.4"]
1877}
1878},{
1879 "module": "oxygen-sql-test",
1880 "compile": {"status": "ok", "tookMs": 1832, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1881 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1882 "test-compile": {"status": "ok", "tookMs": 840, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1883 "test": {"status": "ok", "tookMs": 827, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1884 "publish": {"status": "skipped", "tookMs": 0},
1885 "metadata": {
1886 "crossScalaVersions": ["2.12.20", "3.7.4"]
1887}
1888},{
1889 "module": "oxygen-storage-in-memory",
1890 "compile": {"status": "ok", "tookMs": 834, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1891 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1892 "test-compile": {"status": "ok", "tookMs": 617, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1893 "test": {"status": "ok", "tookMs": 707, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1894 "publish": {"status": "skipped", "tookMs": 0},
1895 "metadata": {
1896 "crossScalaVersions": ["2.12.20", "3.7.4"]
1897}
1898},{
1899 "module": "oxygen-cli",
1900 "compile": {"status": "ok", "tookMs": 293, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1901 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1902 "test-compile": {"status": "ok", "tookMs": 504, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1903 "test": {"status": "ok", "tookMs": 1866, "passed": 55, "failed": 0, "ignored": 0, "skipped": 0, "total": 55, "byFramework": [{"framework": "unknown", "stats": {"passed": 55, "failed": 0, "ignored": 0, "skipped": 0, "total": 55}}]},
1904 "publish": {"status": "skipped", "tookMs": 0},
1905 "metadata": {
1906 "crossScalaVersions": ["2.12.20", "3.7.4"]
1907}
1908},{
1909 "module": "oxygen-core",
1910 "compile": {"status": "ok", "tookMs": 147, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1911 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1912 "test-compile": {"status": "ok", "tookMs": 216, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1913 "test": {"status": "ok", "tookMs": 209, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1914 "publish": {"status": "skipped", "tookMs": 0},
1915 "metadata": {
1916 "crossScalaVersions": ["2.12.20", "3.7.4"]
1917}
1918},{
1919 "module": "oxygen-schema",
1920 "compile": {"status": "ok", "tookMs": 369, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1921 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1922 "test-compile": {"status": "ok", "tookMs": 618, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1923 "test": {"status": "ok", "tookMs": 617, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1924 "publish": {"status": "skipped", "tookMs": 0},
1925 "metadata": {
1926 "crossScalaVersions": ["2.12.20", "3.7.4"]
1927}
1928},{
1929 "module": "oxygen-test-container",
1930 "compile": {"status": "ok", "tookMs": 388, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1931 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1932 "test-compile": {"status": "ok", "tookMs": 622, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1933 "test": {"status": "ok", "tookMs": 629, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1934 "publish": {"status": "skipped", "tookMs": 0},
1935 "metadata": {
1936 "crossScalaVersions": ["2.12.20", "3.7.4"]
1937}
1938}]
1939************************
1940[success] Total time: 182 s (0:03:02.0), completed Jan 8, 2026, 2:49:20 AM
1941[0JChecking patch project/plugins.sbt...
1942Checking patch project/build.properties...
1943Checking patch project/Settings.scala...
1944Checking patch build.sbt...
1945Applied patch project/plugins.sbt cleanly.
1946Applied patch project/build.properties cleanly.
1947Applied patch project/Settings.scala cleanly.
1948Applied patch build.sbt cleanly.