Build Logs

kalin-rudnicki/oxygen • 3.8.1-RC1:2026-01-13

Errors

2

Warnings

8

Total Lines

1948

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