Build Logs
outr/spice • 3.8.0-RC2:2025-11-28
Errors
4
Warnings
78
Total Lines
1174
1##################################
2Clonning https://github.com/outr/spice.git into /build/repo using revision 0.10.17
3##################################
4Note: switching to '107f4e9b6fad6b06a2b56f63565b5f1d04881831'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21Would override fixed Scala version: 3.3.7
22Using target Scala version for migration: 3.7.4
23Migrating project for -source:3.7 using Scala 3.7.4
24----
25Preparing build for 3.7.4
26Would try to apply common scalacOption (best-effort, sbt/mill only):
27Append: -rewrite,REQUIRE:-source:3.7-migration
28Remove: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
29
30Try apply source patch:
31Path: build.sbt
32Pattern: val scala3: String = "3.3.7"
33Replacement: val scala3: String = "3.7.4"
34Starting compilation server
35Compiling project (Scala 3.7.3, JVM (25))
36Compiled project (Scala 3.7.3, JVM (25))
37WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
38WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.7.3/scala3-library_3-3.7.3.jar)
39WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
40WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
41Successfully applied pattern 'val scala3: String = "3.3.7"' in build.sbt
42----
43Starting build for 3.7.4
44Execute tests: false
45sbt project found:
46No prepare script found for project outr/spice
47##################################
48Scala version: 3.7.4
49Targets: com.outr%spice com.outr%spice-client com.outr%spice-client-jvm com.outr%spice-client-netty com.outr%spice-client-okhttp com.outr%spice-core com.outr%spice-delta com.outr%spice-openapi com.outr%spice-server com.outr%spice-server-undertow
50Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"25"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.7"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3: String = \"3.3.7\"","replaceWith":"val scala3: String = \"<SCALA_VERSION>\""}]}
51##################################
52Using extra scalacOptions: -rewrite,REQUIRE:-source:3.7-migration
53Filtering out scalacOptions: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
54[sbt_options] declare -a sbt_options=()
55[process_args] java_version = '25'
56[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_25/rt.jar'
57# Executing command line:
58java
59-Dfile.encoding=UTF-8
60-Dcommunitybuild.scala=3.7.4
61-Dcommunitybuild.project.dependencies.add=
62-Xmx7G
63-Xms4G
64-Xss8M
65-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
66-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_25
67-jar
68/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
69"setCrossScalaVersions 3.7.4"
70"++3.7.4 -v"
71"mapScalacOptions "-rewrite,REQUIRE:-source:3.7-migration,-Wconf:msg=can be rewritten automatically under:s" "-indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
72"set every credentials := Nil"
73"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
74"removeScalacOptionsStartingWith -P:wartremover"
75
76moduleMappings
77"runBuild 3.7.4 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"25"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.7"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3: String = \"3.3.7\"","replaceWith":"val scala3: String = \"<SCALA_VERSION>\""}]}""" com.outr%spice com.outr%spice-client com.outr%spice-client-jvm com.outr%spice-client-netty com.outr%spice-client-okhttp com.outr%spice-core com.outr%spice-delta com.outr%spice-openapi com.outr%spice-server com.outr%spice-server-undertow"
78
79[info] [launcher] getting org.scala-sbt sbt 1.11.7 (this may take some time)...
80WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
81WARNING: sun.misc.Unsafe::arrayBaseOffset has been called by net.openhft.hashing.UnsafeAccess (file:/root/.sbt/boot/scala-2.12.20/org.scala-sbt/sbt/1.11.7/zero-allocation-hashing-0.16.jar)
82WARNING: Please consider reporting this to the maintainers of class net.openhft.hashing.UnsafeAccess
83WARNING: sun.misc.Unsafe::arrayBaseOffset will be removed in a future release
84WARNING: A restricted method in java.lang.System has been called
85WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/root/.sbt/boot/scala-2.12.20/org.scala-sbt/sbt/1.11.7/jna-5.12.0.jar)
86WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
87WARNING: Restricted methods will be blocked in a future release unless native access is enabled
88
89[info] welcome to sbt 1.11.7 (Eclipse Adoptium Java 25)
90[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
91[info] loading project definition from /build/repo/project
92[info] compiling 3 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
93[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
94[info] Compilation completed in 8.035s.
95[info] done compiling
96[info] loading settings for project root from build.sbt...
97[info] resolving key references (10786 settings) ...
98[info] set current project to spice (in build file:/build/repo/)
99Execute setCrossScalaVersions: 3.7.4
100OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in server/crossScalaVersions
101OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in coreJVM/crossScalaVersions
102OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in clientJVM/crossScalaVersions
103OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in clientImplementationJVM/crossScalaVersions
104OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in coreJS/crossScalaVersions
105OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in clientImplementationOkHttp/crossScalaVersions
106OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in root/crossScalaVersions
107OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in serverImplementationUndertow/crossScalaVersions
108OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in clientImplementationNetty/crossScalaVersions
109OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in openAPI/crossScalaVersions
110OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in delta/crossScalaVersions
111OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in clientJS/crossScalaVersions
112[info] set current project to spice (in build file:/build/repo/)
113[info] Setting Scala version to 3.7.4 on 12 projects.
114[info] Switching Scala version on:
115[info] server (2.13.17, 3.7.4)
116[info] openAPI (2.13.17, 3.7.4)
117[info] * root (2.13.17, 3.7.4)
118[info] clientJS (2.13.17, 3.7.4)
119[info] clientImplementationNetty (2.13.17, 3.7.4)
120[info] clientJVM (2.13.17, 3.7.4)
121[info] coreJS (2.13.17, 3.7.4)
122[info] clientImplementationOkHttp (2.13.17, 3.7.4)
123[info] coreJVM (2.13.17, 3.7.4)
124[info] delta (2.13.17, 3.7.4)
125[info] serverImplementationUndertow (2.13.17, 3.7.4)
126[info] clientImplementationJVM (2.13.17, 3.7.4)
127[info] Excluding projects:
128[info] Reapplying settings...
129[info] set current project to spice (in build file:/build/repo/)
130Execute mapScalacOptions: -rewrite,REQUIRE:-source:3.7-migration,-Wconf:msg=can be rewritten automatically under:s -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
131[info] Reapplying settings...
132[info] set current project to spice (in build file:/build/repo/)
133[info] Defining Global / credentials, clientImplementationJVM / credentials and 10 others.
134[info] The new values will be used by Global / pgpSelectPassphrase, Global / pgpSigningKey and 59 others.
135[info] Run `last` for details.
136[info] Reapplying settings...
137[info] set current project to spice (in build file:/build/repo/)
138Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
139[info] Reapplying settings...
140OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
141
142 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
143 Did you mean allExcludeDependencies ?
144 , retry without global scopes
145[info] Reapplying settings...
146[info] set current project to spice (in build file:/build/repo/)
147Execute removeScalacOptionsStartingWith: -P:wartremover
148[info] Reapplying settings...
149[info] set current project to spice (in build file:/build/repo/)
150[success] Total time: 0 s, completed Nov 28, 2025, 12:08:54 PM
151Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"25"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.7"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3: String = \"3.3.7\"","replaceWith":"val scala3: String = \"<SCALA_VERSION>\""}]}
152Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),CompileOnly,List()))
153Starting build...
154Projects: Set(server, openAPI, root, clientImplementationNetty, clientJVM, clientImplementationOkHttp, coreJVM, delta, serverImplementationUndertow, clientImplementationJVM)
155Starting build for ProjectRef(file:/build/repo/,openAPI) (spice-openapi)... [0/10]
156OpenCB::Exclude Scala3 specific scalacOption `-rewrite` in Scala 2.12.20 module Global
157OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.7-migration` in Scala 2.12.20 module Global
158OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
159Compile scalacOptions: -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
160[info] compiling 92 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
161[info] [patched file /build/repo/core/shared/src/main/scala/spice/http/content/SharedContentHelpers.scala]
162[info] [patched file /build/repo/core/shared/src/main/scala/spice/http/Headers.scala]
163[info] [patched file /build/repo/core/shared/src/main/scala/spice/util/BufferManager.scala]
164[info] done compiling
165[info] compiling 22 Scala sources to /build/repo/delta/target/scala-3.7.4/classes ...
166[info] done compiling
167[info] compiling 49 Scala sources to /build/repo/server/target/scala-3.7.4/classes ...
168[info] [patched file /build/repo/server/src/main/scala/spice/http/server/rest/Restful.scala]
169[info] [patched file /build/repo/server/src/main/scala/spice/http/server/handler/HttpHandlerBuilder.scala]
170[info] [patched file /build/repo/server/src/main/scala/spice/http/server/dsl/package.scala]
171[info] [patched file /build/repo/server/src/main/scala/spice/http/server/dsl/LastConnectionFilter.scala]
172[info] done compiling
173[info] compiling 29 Scala sources to /build/repo/openapi/target/scala-3.7.4/classes ...
174[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/openapi/src/main/scala/spice/openapi/generator/dart/OpenAPIDartGenerator.scala:30:24
175[warn] 30 | api.componentByRef(s) match {
176[warn] | ^^^^^^^^^^^^^^^^^^^^^
177[warn] |match may not be exhaustive.
178[warn] |
179[warn] |It would fail on pattern case: Some(_: spice.openapi.OpenAPISchema.MultiSchema)
180[warn] |
181[warn] | longer explanation available when compiling with `-explain`
182[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/openapi/src/main/scala/spice/openapi/generator/dart/OpenAPIDartGenerator.scala:548:20
183[warn] 548 | case ref: OpenAPISchema.Ref => ref.ref.ref2Type
184[warn] | ^
185[warn] |match may not be exhaustive.
186[warn] |
187[warn] |It would fail on pattern case: _: spice.openapi.OpenAPISchema.MultiSchema, spice.openapi.OpenAPISchema.Not(_, _)
188[warn] |
189[warn] | longer explanation available when compiling with `-explain`
190[info] [patched file /build/repo/openapi/src/main/scala/spice/openapi/OpenAPISchema.scala]
191[info] [patched file /build/repo/openapi/src/main/scala/spice/openapi/OpenAPIContent.scala]
192[info] [patched file /build/repo/openapi/src/main/scala/spice/openapi/server/ServiceCall.scala]
193[info] [patched file /build/repo/openapi/src/main/scala/spice/openapi/server/OpenAPIHttpServer.scala]
194[info] [patched file /build/repo/openapi/src/main/scala/spice/openapi/OpenAPIPath.scala]
195[warn] two warnings found
196[info] done compiling
197[info] compiling 3 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
198[info] done compiling
199[info] compiling 17 Scala sources to /build/repo/client/jvm/target/scala-3.7.4/classes ...
200[info] compiling 4 Scala sources to /build/repo/server/target/scala-3.7.4/classes ...
201[info] done compiling
202[info] done compiling
203[info] compiling 3 Scala sources to /build/repo/client/implementation/jvm/target/scala-3.7.4/classes ...
204[info] compiling 5 Scala sources to /build/repo/openapi/target/scala-3.7.4/classes ...
205[info] [patched file /build/repo/client/implementation/jvm/src/main/scala/spice/http/client/JVMHttpClientWebSocket.scala]
206[info] [patched file /build/repo/client/implementation/jvm/src/main/scala/spice/http/client/JVMHttpClientInstance.scala]
207[info] done compiling
208[info] compiling 1 Scala source to /build/repo/client/implementation/jvm/target/scala-3.7.4/test-classes ...
209[info] done compiling
210[info] compiling 5 Scala sources to /build/repo/server/target/scala-3.7.4/test-classes ...
211[info] done compiling
212[info] compiling 4 Scala sources to /build/repo/openapi/target/scala-3.7.4/classes ...
213[info] done compiling
214[info] done compiling
215[info] compiling 5 Scala sources to /build/repo/openapi/target/scala-3.7.4/test-classes ...
216[info] done compiling
217[info] compiling 3 Scala sources to /build/repo/client/implementation/jvm/target/scala-3.7.4/classes ...
218[info] done compiling
219Starting build for ProjectRef(file:/build/repo/,clientImplementationOkHttp) (spice-client-okhttp)... [1/10]
220Compile scalacOptions: -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
221[info] compiling 4 Scala sources to /build/repo/client/implementation/okhttp/target/scala-3.7.4/classes ...
222[info] done compiling
223[info] compiling 1 Scala source to /build/repo/client/implementation/okhttp/target/scala-3.7.4/test-classes ...
224[info] done compiling
225Starting build for ProjectRef(file:/build/repo/,clientImplementationJVM) (spice-client-jvm)... [2/10]
226Compile scalacOptions: -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
227Starting build for ProjectRef(file:/build/repo/,root) (spice)... [3/10]
228Compile scalacOptions: -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
229Starting build for ProjectRef(file:/build/repo/,coreJVM) (spice-core)... [4/10]
230Compile scalacOptions: -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
231[info] compiling 7 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/test-classes ...
2322025.11.28 12:10:01:530 pool-48-thread-5 WARN spice.net.EmailAddress.parse:52
233 Unrecognized email address: [test]
234[info] done compiling
235Starting build for ProjectRef(file:/build/repo/,clientImplementationNetty) (spice-client-netty)... [5/10]
236Compile scalacOptions: -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
237[info] compiling 5 Scala sources to /build/repo/client/implementation/netty/target/scala-3.7.4/classes ...
238[info] [patched file /build/repo/client/implementation/netty/src/main/scala/spice/http/client/NettyHttpClientInstance.scala]
239[info] done compiling
240[info] compiling 1 Scala source to /build/repo/client/implementation/netty/target/scala-3.7.4/classes ...
241[info] done compiling
242[info] compiling 1 Scala source to /build/repo/client/implementation/netty/target/scala-3.7.4/test-classes ...
243[info] done compiling
244Starting build for ProjectRef(file:/build/repo/,delta) (spice-delta)... [6/10]
245Compile scalacOptions: -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
246[info] compiling 1 Scala source to /build/repo/delta/target/scala-3.7.4/test-classes ...
247[info] done compiling
248Starting build for ProjectRef(file:/build/repo/,clientJVM) (spice-client)... [7/10]
249Compile scalacOptions: -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
250Starting build for ProjectRef(file:/build/repo/,server) (spice-server)... [8/10]
251Compile scalacOptions: -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
252Starting build for ProjectRef(file:/build/repo/,serverImplementationUndertow) (spice-server-undertow)... [9/10]
253Compile scalacOptions: -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
254[info] compiling 5 Scala sources to /build/repo/server/implementation/undertow/target/scala-3.7.4/classes ...
255[info] done compiling
256[info] compiling 3 Scala sources to /build/repo/server/implementation/undertow/target/scala-3.7.4/test-classes ...
257[info] [patched file /build/repo/server/implementation/undertow/src/test/scala/spec/UndertowWebSocketSpec.scala]
258[info] done compiling
259[info] compiling 1 Scala source to /build/repo/server/implementation/undertow/target/scala-3.7.4/test-classes ...
260[info] done compiling
261
262************************
263Build summary:
264[{
265 "module": "spice-openapi",
266 "compile": {"status": "ok", "tookMs": 24098, "warnings": 2, "errors": 0, "sourceVersion": "3.7-migration"},
267 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
268 "test-compile": {"status": "ok", "tookMs": 8600, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
269 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
270 "publish": {"status": "skipped", "tookMs": 0},
271 "metadata": {
272 "crossScalaVersions": ["2.13.17", "3.3.7"]
273}
274},{
275 "module": "spice-client-okhttp",
276 "compile": {"status": "ok", "tookMs": 754, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
277 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
278 "test-compile": {"status": "ok", "tookMs": 841, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
279 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
280 "publish": {"status": "skipped", "tookMs": 0},
281 "metadata": {
282 "crossScalaVersions": ["2.13.17", "3.3.7"]
283}
284},{
285 "module": "spice-client-jvm",
286 "compile": {"status": "ok", "tookMs": 105, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
287 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
288 "test-compile": {"status": "ok", "tookMs": 129, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
289 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
290 "publish": {"status": "skipped", "tookMs": 0},
291 "metadata": {
292 "crossScalaVersions": ["2.13.17", "3.3.7"]
293}
294},{
295 "module": "spice",
296 "compile": {"status": "ok", "tookMs": 36, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
297 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
298 "test-compile": {"status": "ok", "tookMs": 58, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
299 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
300 "publish": {"status": "skipped", "tookMs": 0},
301 "metadata": {
302 "crossScalaVersions": ["2.13.17", "3.3.7"]
303}
304},{
305 "module": "spice-core",
306 "compile": {"status": "ok", "tookMs": 40, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
307 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
308 "test-compile": {"status": "ok", "tookMs": 1744, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
309 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
310 "publish": {"status": "skipped", "tookMs": 0},
311 "metadata": {
312 "crossScalaVersions": ["2.13.17", "3.3.7"]
313}
314},{
315 "module": "spice-client-netty",
316 "compile": {"status": "ok", "tookMs": 880, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
317 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
318 "test-compile": {"status": "ok", "tookMs": 1492, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
319 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
320 "publish": {"status": "skipped", "tookMs": 0},
321 "metadata": {
322 "crossScalaVersions": ["2.13.17", "3.3.7"]
323}
324},{
325 "module": "spice-delta",
326 "compile": {"status": "ok", "tookMs": 74, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
327 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
328 "test-compile": {"status": "ok", "tookMs": 460, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
329 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
330 "publish": {"status": "skipped", "tookMs": 0},
331 "metadata": {
332 "crossScalaVersions": ["2.13.17", "3.3.7"]
333}
334},{
335 "module": "spice-client",
336 "compile": {"status": "ok", "tookMs": 53, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
337 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
338 "test-compile": {"status": "ok", "tookMs": 99, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
339 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
340 "publish": {"status": "skipped", "tookMs": 0},
341 "metadata": {
342 "crossScalaVersions": ["2.13.17", "3.3.7"]
343}
344},{
345 "module": "spice-server",
346 "compile": {"status": "ok", "tookMs": 126, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
347 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
348 "test-compile": {"status": "ok", "tookMs": 239, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
349 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
350 "publish": {"status": "skipped", "tookMs": 0},
351 "metadata": {
352 "crossScalaVersions": ["2.13.17", "3.3.7"]
353}
354},{
355 "module": "spice-server-undertow",
356 "compile": {"status": "ok", "tookMs": 684, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
357 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
358 "test-compile": {"status": "ok", "tookMs": 1488, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
359 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
360 "publish": {"status": "skipped", "tookMs": 0},
361 "metadata": {
362 "crossScalaVersions": ["2.13.17", "3.3.7"]
363}
364}]
365************************
366[success] Total time: 95 s (0:01:35.0), completed Nov 28, 2025, 12:10:29 PM
367[0JChecking patch project/plugins.sbt...
368Checking patch build.sbt...
369Applied patch project/plugins.sbt cleanly.
370Applied patch build.sbt cleanly.
371Commit migration rewrites
372Switched to a new branch 'opencb/migrate-source-3.7'
373[opencb/migrate-source-3.7 9c40dc1] Apply Scala compiler rewrites using -source:3.7-migration using Scala 3.7.4
374 16 files changed, 22 insertions(+), 22 deletions(-)
375----
376Preparing build for 3.8.0-RC2
377Scala binary version found: 3.8
378Implicitly using source version 3.8
379Scala binary version found: 3.8
380Implicitly using source version 3.8
381Would try to apply common scalacOption (best-effort, sbt/mill only):
382Append: ,REQUIRE:-source:3.8
383Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
384
385Try apply source patch:
386Path: build.sbt
387Pattern: val scala3: String = "3.3.7"
388Replacement: val scala3: String = "3.8.0-RC2"
389WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
390WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.7.3/scala3-library_3-3.7.3.jar)
391WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
392WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
393Successfully applied pattern 'val scala3: String = "3.3.7"' in build.sbt
394----
395Starting build for 3.8.0-RC2
396Execute tests: true
397sbt project found:
398No prepare script found for project outr/spice
399##################################
400Scala version: 3.8.0-RC2
401Targets: com.outr%spice com.outr%spice-client com.outr%spice-client-jvm com.outr%spice-client-netty com.outr%spice-client-okhttp com.outr%spice-core com.outr%spice-delta com.outr%spice-openapi com.outr%spice-server com.outr%spice-server-undertow
402Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"25"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.7"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3: String = \"3.3.7\"","replaceWith":"val scala3: String = \"<SCALA_VERSION>\""}]}
403##################################
404Using extra scalacOptions: ,REQUIRE:-source:3.8
405Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
406[sbt_options] declare -a sbt_options=()
407[process_args] java_version = '25'
408[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_25/rt.jar'
409# Executing command line:
410java
411-Dfile.encoding=UTF-8
412-Dcommunitybuild.scala=3.8.0-RC2
413-Dcommunitybuild.project.dependencies.add=
414-Xmx7G
415-Xms4G
416-Xss8M
417-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
418-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_25
419-jar
420/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
421"setCrossScalaVersions 3.8.0-RC2"
422"++3.8.0-RC2 -v"
423"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
424"set every credentials := Nil"
425"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
426"removeScalacOptionsStartingWith -P:wartremover"
427
428moduleMappings
429"runBuild 3.8.0-RC2 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"25"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.7"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3: String = \"3.3.7\"","replaceWith":"val scala3: String = \"<SCALA_VERSION>\""}]}""" com.outr%spice com.outr%spice-client com.outr%spice-client-jvm com.outr%spice-client-netty com.outr%spice-client-okhttp com.outr%spice-core com.outr%spice-delta com.outr%spice-openapi com.outr%spice-server com.outr%spice-server-undertow"
430
431WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
432WARNING: sun.misc.Unsafe::arrayBaseOffset has been called by net.openhft.hashing.UnsafeAccess (file:/root/.sbt/boot/scala-2.12.20/org.scala-sbt/sbt/1.11.7/zero-allocation-hashing-0.16.jar)
433WARNING: Please consider reporting this to the maintainers of class net.openhft.hashing.UnsafeAccess
434WARNING: sun.misc.Unsafe::arrayBaseOffset will be removed in a future release
435WARNING: A restricted method in java.lang.System has been called
436WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/root/.sbt/boot/scala-2.12.20/org.scala-sbt/sbt/1.11.7/jna-5.12.0.jar)
437WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
438WARNING: Restricted methods will be blocked in a future release unless native access is enabled
439
440[info] welcome to sbt 1.11.7 (Eclipse Adoptium Java 25)
441[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
442[info] loading project definition from /build/repo/project
443[info] loading settings for project root from build.sbt...
444[info] resolving key references (10786 settings) ...
445[info] set current project to spice (in build file:/build/repo/)
446Execute setCrossScalaVersions: 3.8.0-RC2
447OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in server/crossScalaVersions
448OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in clientJVM/crossScalaVersions
449OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in coreJVM/crossScalaVersions
450OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in clientImplementationJVM/crossScalaVersions
451OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in coreJS/crossScalaVersions
452OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in clientImplementationOkHttp/crossScalaVersions
453OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in clientJS/crossScalaVersions
454OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in clientImplementationNetty/crossScalaVersions
455OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in serverImplementationUndertow/crossScalaVersions
456OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in openAPI/crossScalaVersions
457OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in delta/crossScalaVersions
458OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in root/crossScalaVersions
459[info] set current project to spice (in build file:/build/repo/)
460[info] Setting Scala version to 3.8.0-RC2 on 12 projects.
461[info] Switching Scala version on:
462[info] server (2.13.17, 3.8.0-RC2)
463[info] openAPI (2.13.17, 3.8.0-RC2)
464[info] * root (2.13.17, 3.8.0-RC2)
465[info] clientJS (2.13.17, 3.8.0-RC2)
466[info] clientImplementationNetty (2.13.17, 3.8.0-RC2)
467[info] clientJVM (2.13.17, 3.8.0-RC2)
468[info] coreJS (2.13.17, 3.8.0-RC2)
469[info] clientImplementationOkHttp (2.13.17, 3.8.0-RC2)
470[info] coreJVM (2.13.17, 3.8.0-RC2)
471[info] delta (2.13.17, 3.8.0-RC2)
472[info] serverImplementationUndertow (2.13.17, 3.8.0-RC2)
473[info] clientImplementationJVM (2.13.17, 3.8.0-RC2)
474[info] Excluding projects:
475[info] Reapplying settings...
476[info] set current project to spice (in build file:/build/repo/)
477Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
478[info] Reapplying settings...
479[info] set current project to spice (in build file:/build/repo/)
480[info] Defining Global / credentials, clientImplementationJVM / credentials and 10 others.
481[info] The new values will be used by Global / pgpSelectPassphrase, Global / pgpSigningKey and 59 others.
482[info] Run `last` for details.
483[info] Reapplying settings...
484[info] set current project to spice (in build file:/build/repo/)
485Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
486[info] Reapplying settings...
487OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
488
489 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
490 Did you mean allExcludeDependencies ?
491 , retry without global scopes
492[info] Reapplying settings...
493[info] set current project to spice (in build file:/build/repo/)
494Execute removeScalacOptionsStartingWith: -P:wartremover
495[info] Reapplying settings...
496[info] set current project to spice (in build file:/build/repo/)
497[success] Total time: 0 s, completed Nov 28, 2025, 12:10:44 PM
498Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"25"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.7"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3: String = \"3.3.7\"","replaceWith":"val scala3: String = \"<SCALA_VERSION>\""}]}
499Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
500Starting build...
501Projects: Set(server, openAPI, root, clientImplementationNetty, clientJVM, clientImplementationOkHttp, coreJVM, delta, serverImplementationUndertow, clientImplementationJVM)
502Starting build for ProjectRef(file:/build/repo/,openAPI) (spice-openapi)... [0/10]
503OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
504OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
505Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
506[info] compiling 92 Scala sources to /build/repo/core/jvm/target/scala-3.8.0-RC2/classes ...
507[info] done compiling
508[info] compiling 22 Scala sources to /build/repo/delta/target/scala-3.8.0-RC2/classes ...
509[info] done compiling
510[info] compiling 49 Scala sources to /build/repo/server/target/scala-3.8.0-RC2/classes ...
511[info] done compiling
512[info] compiling 29 Scala sources to /build/repo/openapi/target/scala-3.8.0-RC2/classes ...
513[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/openapi/src/main/scala/spice/openapi/generator/dart/OpenAPIDartGenerator.scala:30:24
514[warn] 30 | api.componentByRef(s) match {
515[warn] | ^^^^^^^^^^^^^^^^^^^^^
516[warn] |match may not be exhaustive.
517[warn] |
518[warn] |It would fail on pattern case: Some(_: spice.openapi.OpenAPISchema.MultiSchema)
519[warn] |
520[warn] | longer explanation available when compiling with `-explain`
521[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/openapi/src/main/scala/spice/openapi/generator/dart/OpenAPIDartGenerator.scala:548:20
522[warn] 548 | case ref: OpenAPISchema.Ref => ref.ref.ref2Type
523[warn] | ^
524[warn] |match may not be exhaustive.
525[warn] |
526[warn] |It would fail on pattern case: _: spice.openapi.OpenAPISchema.MultiSchema, spice.openapi.OpenAPISchema.Not(_, _)
527[warn] |
528[warn] | longer explanation available when compiling with `-explain`
529[warn] two warnings found
530[info] done compiling
531[info] compiling 17 Scala sources to /build/repo/client/jvm/target/scala-3.8.0-RC2/classes ...
532[info] done compiling
533[info] compiling 3 Scala sources to /build/repo/client/implementation/jvm/target/scala-3.8.0-RC2/classes ...
534[info] done compiling
535[info] compiling 1 Scala source to /build/repo/client/implementation/jvm/target/scala-3.8.0-RC2/test-classes ...
536[info] done compiling
537[info] compiling 5 Scala sources to /build/repo/server/target/scala-3.8.0-RC2/test-classes ...
538[info] done compiling
539[info] compiling 5 Scala sources to /build/repo/openapi/target/scala-3.8.0-RC2/test-classes ...
540[info] done compiling
541WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
542WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/root/.cache/coursier/v1/https/repo.scala-lang.org/artifactory/maven-nightlies/org/scala-lang/scala-library/3.8.0-RC2/scala-library-3.8.0-RC2.jar)
543WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
544WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
545[info] OpenAPIServerSpec:
546[info] OpenAPIServer
547[info] - should initialize the server (162 milliseconds)
548[info] - should validate a proper swagger.yml file (345 milliseconds)
549[info] - should call the /users endpoint on api.example.com (54 milliseconds)
550[info] - should call the /users endpoint on staging-api.example.com (3 milliseconds)
551[info] OpenAPIHttpServerSpec:
552[info] OpenAPIHttpServer
553openapi: '3.0.3'
554info:
555 title: 'Example Server'
556 version: '1.0'
557servers:
558 - url: 'http://127.0.0.1:8080/'
559 - url: 'https://127.0.0.1'
560paths:
561 /reverse:
562 post:
563 summary: 'Reverses text'
564 description: 'Reverses text'
565 requestBody:
566 required: true
567 content:
568 application/json:
569 schema:
570 $ref: '#/components/schemas/ReverseRequest'
571 responses:
572 200:
573 description: 'OK'
574 content:
575 application/json:
576 schema:
577 $ref: '#/components/schemas/ReverseResponse'
578 /combine:
579 post:
580 summary: 'Combines the values of an enum'
581 description: 'Combines the values of an enum'
582 requestBody:
583 required: true
584 content:
585 application/json:
586 schema:
587 $ref: '#/components/schemas/CombineRequest'
588 responses:
589 200:
590 description: 'OK'
591 content:
592 application/json:
593 schema:
594 $ref: '#/components/schemas/CombineResponse'
595 /upload:
596 post:
597 summary: 'Uploads a file'
598 description: 'Uploads a file'
599 requestBody:
600 required: true
601 content:
602 multipart/form-data:
603 schema:
604 type: 'object'
605 properties:
606 userId:
607 type: 'string'
608 file:
609 type: 'string'
610 format: 'binary'
611 xFullClass: 'spec.OpenAPIHttpServerSpec.FileUploadRequest'
612 responses:
613 200:
614 description: 'OK'
615 content:
616 application/json:
617 schema:
618 $ref: '#/components/schemas/FileUploadResponse'
619components:
620 schemas:
621 Auth:
622 type: 'object'
623 properties:
624 username:
625 type: 'string'
626 password:
627 type: 'string'
628 xFullClass: 'spec.OpenAPIHttpServerSpec.Auth'
629 CombineRequest:
630 type: 'object'
631 properties:
632 auth:
633 $ref: '#/components/schemas/Auth'
634 map:
635 type: 'object'
636 additionalProperties:
637 $ref: '#/components/schemas/NumEnum'
638 xFullClass: 'spec.OpenAPIHttpServerSpec.CombineRequest'
639 CombineResponse:
640 type: 'object'
641 properties:
642 list:
643 type: 'array'
644 items:
645 $ref: '#/components/schemas/NumEnum'
646 error:
647 type: 'string'
648 nullable: true
649 xFullClass: 'spec.OpenAPIHttpServerSpec.CombineResponse'
650 FileUploadResponse:
651 type: 'object'
652 properties:
653 userId:
654 type: 'string'
655 length:
656 type: 'integer'
657 xFullClass: 'spec.OpenAPIHttpServerSpec.FileUploadResponse'
658 NumEnum:
659 type: 'string'
660 description: 'spec.OpenAPIHttpServerSpec.NumEnum'
661 enum:
662 - 'One'
663 - 'Two'
664 - 'Three'
665 xFullClass: 'spec.OpenAPIHttpServerSpec.NumEnum'
666 ReverseRequest:
667 type: 'object'
668 properties:
669 auth:
670 $ref: '#/components/schemas/Auth'
671 text:
672 type: 'string'
673 xFullClass: 'spec.OpenAPIHttpServerSpec.ReverseRequest'
674 ReverseResponse:
675 type: 'object'
676 properties:
677 text:
678 type: 'string'
679 nullable: true
680 error:
681 type: 'string'
682 nullable: true
683 xFullClass: 'spec.OpenAPIHttpServerSpec.ReverseResponse'
684[info] - should verify the YAML generated is correct (114 milliseconds)
685[info] - should generate Dart code for the server (36 milliseconds)
686[info] OpenAPIServerAdvancedSpec:
687[info] OpenAPIServer Advanced
688[info] - should validate a proper swagger.yml file (16 milliseconds)
689[info] OpenAPISpec:
690[info] OpenAPI Generation
691[info] - should create a minimal OpenAPI document manually (3 milliseconds)
692[info] - should create a simple OpenAPI document manually (8 milliseconds)
693[info] - should create a simple OpenAPI document manually using oneOf (11 milliseconds)
694[info] - should create a tic tac toe example manually (9 milliseconds)
695[info] OpenAPIDartGeneratorSpec:
696[info] OpenAPIDartGenerator
697[info] - should generate Dart code for the server (20 milliseconds)
698[info] - should not generate Dart files for primitive types without additional properties (8 milliseconds)
699[info] - should handle schema named 'string' correctly (1 millisecond)
700Starting build for ProjectRef(file:/build/repo/,clientImplementationOkHttp) (spice-client-okhttp)... [1/10]
701Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
702[info] compiling 4 Scala sources to /build/repo/client/implementation/okhttp/target/scala-3.8.0-RC2/classes ...
703[info] done compiling
704[info] compiling 1 Scala source to /build/repo/client/implementation/okhttp/target/scala-3.8.0-RC2/test-classes ...
705[info] done compiling
706[info] OkHttpClientSpec:
707[info] OkHttpClient
708[info] - should load Moduload (19 milliseconds)
709[info] - should be the default implementation (47 milliseconds)
710[info] - should GET the user-agent (22 milliseconds)
711[info] - should call a URL multiple times with a rate limiter (2 milliseconds)
712[info] - should call a URL and get a case class back (3 milliseconds)
713[info] - should restful call to a URL (61 milliseconds)
714[info] - should call a URL and get an image back (1 millisecond)
715Starting build for ProjectRef(file:/build/repo/,clientImplementationJVM) (spice-client-jvm)... [2/10]
716Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
717[info] JVMHttpClientSpec:
718[info] JVMHttpClient
719[info] - should load Moduload (8 milliseconds)
720[info] - should be the default implementation (22 milliseconds)
721[info] - should GET the user-agent (14 milliseconds)
722[info] - should call a URL multiple times with a rate limiter (2 milliseconds)
723[info] - should call a URL and get a case class back (2 milliseconds)
724[info] - should restful call to a URL (46 milliseconds)
725[info] - should call a URL and get an image back (1 millisecond)
726Starting build for ProjectRef(file:/build/repo/,root) (spice)... [3/10]
727Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
728Starting build for ProjectRef(file:/build/repo/,coreJVM) (spice-core)... [4/10]
729Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
730[info] compiling 7 Scala sources to /build/repo/core/jvm/target/scala-3.8.0-RC2/test-classes ...
7312025.11.28 12:11:34:989 pool-55-thread-2 WARN spice.net.EmailAddress.parse:52
732 Unrecognized email address: [test]
733[info] done compiling
734[info] IPSpec:
735[info] IP
736[info] - should validate 127.0.0.1 via interpolation (15 milliseconds)
737[info] - should fail interpolation of 127.0.0.1.2 (0 milliseconds)
738[info] - should fail interpolation of 300.0.0.1 (0 milliseconds)
739[info] - should convert to JSON (7 milliseconds)
740[info] - should convert from JSON (2 milliseconds)
741[info] should parsing IPv4 addresses
742[info] - should properly parse 127.0.01 (0 milliseconds)
743[info] - should properly parse 1.2.3.4 (0 milliseconds)
744[info] - should resolve None for 256.0.0.1 (0 milliseconds)
745[info] should parsing IPv6 addresses
746[info] - should properly parse fe80:0:0:0:0:0:0:1%1 (1 millisecond)
747[info] - should properly parse 2604:ca00:129:99af::860:930a (3 milliseconds)
748[info] - should properly parse 0:0:0:0:0:0:0:0 (1 millisecond)
749[info] URLPathSpec:
750[info] Path
751[info] - should interpolate a simple path (15 milliseconds)
752[info] - should interpolate with up-level and same-level (1 millisecond)
753[info] - should verify path argument matching (3 milliseconds)
754[info] - should verify partial path argument matching (2 milliseconds)
755[info] - should verify a slightly more complex path with argument (1 millisecond)
756[info] - should validate a complex encoded path (2 milliseconds)
757[info] ContentTypeSpec:
758[info] ContentType
759[info] - should parse a massive type (58 milliseconds)
760[info] - should parse a simple type with dual semi-colons (0 milliseconds)
761[info] EmailAddressSpec:
762[info] EmailAddress
763[info] when validating
764[info] - should parse simple@example.com (5 milliseconds)
765[info] - should parse SIMPLE@ExAmPlE.com (0 milliseconds)
766[info] - should parse SI(a comment)MPLE+test@ExAm{another comment}PlE.com (1 millisecond)
767[info] - should parse an email address via interpolation (0 milliseconds)
768[info] - should fail to compile with invalid email address interpolation (0 milliseconds)
769[info] CookieSpec:
770[info] Cookies
771[info] when parsing
772[info] - should support a single entry (6 milliseconds)
773[info] - should support two entries (0 milliseconds)
774[info] - should support a poorly processed value (0 milliseconds)
775[info] PortSpec:
776[info] Port
777[info] - should validate 8080 via interpolation (2 milliseconds)
778[info] - should fail validation of -1 via interpolation (0 milliseconds)
779[info] - should fail validation of 100000 via interpolation (1 millisecond)
780[info] - should convert to JSON (2 milliseconds)
781[info] - should convert from JSON (0 milliseconds)
782[info] URLSpec:
783[info] URL
784[info] when parsing
785[info] - should properly parse a simple URL (4 milliseconds)
786[info] - should properly parse a URL with GET params (1 millisecond)
787[info] - should properly parse an IP address with a ? on the end (1 millisecond)
788[info] - should property parse an IPv6 url (2 milliseconds)
789[info] - should quick fail parsing a non-URL (4 milliseconds)
790[info] - should fail to parse an email address (1 millisecond)
791[info] - should fail to parse 'it...' (0 milliseconds)
792[info] - should fail to parse 'it.' (0 milliseconds)
793[info] - should fail to parse ':smile' (0 milliseconds)
794[info] - should test (3 milliseconds)
795[info] - should properly parse a simple URL with key-only param (0 milliseconds)
796[info] - should properly parse a simple HTTPS URL (5 milliseconds)
797[info] - should properly parse a simple file URL (1 millisecond)
798[info] - should properly parse a URL without the protocol defined (8 milliseconds)
799[info] - should properly parse a URL with just the domain name (0 milliseconds)
800[info] - should properly parse a fairly long URL (1 millisecond)
801[info] - should properly detect an invalid TLD (0 milliseconds)
802[info] - should properly unapply from a String (0 milliseconds)
803[info] - should properly parse a URL with two for the same key (1 millisecond)
804[info] - should properly parse a URL with some crazy characters (3 milliseconds)
805[info] - should properly encode a URL with a pipe (1 millisecond)
806[info] - should properly parse a relative URL (0 milliseconds)
807[info] - should properly parse a relative URL with invalid higher level (1 millisecond)
808[info] - should properly parse a relative URL with multiple higher levels (0 milliseconds)
809[info] - should apply a relative URL to an existing URL (2 milliseconds)
810[info] - should apply an absolute path to an existing path (0 milliseconds)
811[info] - should apply a full part to an existing URL (0 milliseconds)
812[info] - should apply a relative path as a part to an existing URL (1 millisecond)
813[info] - should properly parse an extremely long URL and spit it back syntactically equal (1 millisecond)
814[info] - should properly create a decoded URL and encode it (1 millisecond)
815[info] - should properly parse a URL with an encoded path and decode it (1 millisecond)
816[info] - should properly parse a URL with a + (0 milliseconds)
817[info] - should properly parse a URL with regex interference (0 milliseconds)
818[info] - should properly interpolate a URL (1 millisecond)
819[info] - should properly parse a URL with IPv6 (1 millisecond)
820[info] - should properly parse a URL with a colon (1 millisecond)
821[info] - should fail to parse an invalid URL (0 milliseconds)
822[info] - should fail to compile when interpolating a URL with a param (0 milliseconds)
823[info] - should fail to compile an invalid URL (0 milliseconds)
824[info] when applying parts
825[info] - should replace one URL with another (0 milliseconds)
826[info] - should replace the path (0 milliseconds)
827[info] - should replace params (0 milliseconds)
828[info] - should replace the path and params (0 milliseconds)
829[info] - should apply relative path (0 milliseconds)
830[info] - should apply a new path without forward-slash (0 milliseconds)
831[info] when encoding to path
832[info] - should apply a complete path properly (1 millisecond)
833[info] - should apply a complete path with port properly (0 milliseconds)
834[info] - should should handle commas (0 milliseconds)
835[info] - should use a URL with a colon in the path (1 millisecond)
836Starting build for ProjectRef(file:/build/repo/,clientImplementationNetty) (spice-client-netty)... [5/10]
837Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
838[info] compiling 5 Scala sources to /build/repo/client/implementation/netty/target/scala-3.8.0-RC2/classes ...
839[info] done compiling
840[info] compiling 1 Scala source to /build/repo/client/implementation/netty/target/scala-3.8.0-RC2/test-classes ...
841[info] done compiling
842[info] NettyHttpClientSpec:
843[info] NettyHttpClient
844[info] - should load Moduload (8 milliseconds)
845[info] - should be the default implementation (21 milliseconds)
846[info] - should GET the user-agent (13 milliseconds)
847[info] - should call a URL multiple times with a rate limiter (2 milliseconds)
848[info] - should call a URL and get a case class back (2 milliseconds)
849[info] - should restful call to a URL (40 milliseconds)
850[info] - should call a URL and get an image back (1 millisecond)
851[info] - should download a large HTTPS file and stream to disk (0 milliseconds)
852Starting build for ProjectRef(file:/build/repo/,delta) (spice-delta)... [6/10]
853Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
854[info] compiling 1 Scala source to /build/repo/delta/target/scala-3.8.0-RC2/test-classes ...
855[info] done compiling
8562025.11.28 12:11:40:717 pool-77-thread-1-ScalaTest-running-TemplateGeneratorSpec INFO spec.TemplateGeneratorSpec.result:31
857 Tag: Open(h1,Map(data-spice -> object, id -> heading),29,66,Some(Close(h1,73,78))), Content: <h1 data-spice="object" id="heading">Heading</h1>, Type: object, Class: heading
858 Tag: Open(li,Map(data-spice -> class, data-spice-class -> listItem, id -> entry),85,147,Some(Close(li,152,157))), Content: <li data-spice="class" data-spice-class="listItem" id="entry">Entry</li>, Type: class, Class: listItem
859[info] TemplateGeneratorSpec:
860[info] TemplateGenerator
861[info] - should generate source from a simple HTML file (84 milliseconds)
862Starting build for ProjectRef(file:/build/repo/,clientJVM) (spice-client)... [7/10]
863Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
864Starting build for ProjectRef(file:/build/repo/,server) (spice-server)... [8/10]
865Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
866WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
867WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/root/.cache/coursier/v1/https/repo.scala-lang.org/artifactory/maven-nightlies/org/scala-lang/scala-library/3.8.0-RC2/scala-library-3.8.0-RC2.jar)
868WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
869WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
870[info] ServerSpec:
871[info] TestHttpApplication
872[info] - should configure the TestServer (90 milliseconds)
873[info] - should configure Restful endpoints (21 milliseconds)
874[info] - should receive OK for test.html (106 milliseconds)
875[info] - should receive NotFound for other.html (7 milliseconds)
876[info] - should reverse a String with the Restful endpoint via POST (72 milliseconds)
877[info] - should reverse a String with the Restful endpoint via GET (9 milliseconds)
878[info] - should reverse a String with the Restful endpoint via GET with path-based arg (2 milliseconds)
8792025.11.28 12:11:43:141 pool-1-thread-1-ScalaTest-running-ServerSpec WARN spice.http.server.handler.LifecycleHandler.throwable2Content:81
880 http://localhost/test/reverse/info failed with Info Test - /build/repo/server/src/test/scala/spec/ServerSpec.scala:181 (spec.ServerSpec#ReverseService.apply result)
881[info] - should reverse a String with an informational error (89 milliseconds)
882 http://localhost/test/reverse/warn failed with Warn Test - /build/repo/server/src/test/scala/spec/ServerSpec.scala:182 (spec.ServerSpec#ReverseService.apply result)
883[info] - should reverse a String with an warn error (4 milliseconds)
8842025.11.28 12:11:43:202 pool-1-thread-1-ScalaTest-running-ServerSpec ERROR spice.http.server.handler.LifecycleHandler.throwable2Content:82
885 http://localhost/test/reverse/error failed with Error Test - /build/repo/server/src/test/scala/spec/ServerSpec.scala:183 (spec.ServerSpec#ReverseService.apply result)
886 spice.UserException: Error Test
887 at spice.UserException$.apply(UserException.scala:27)
888 at spec.ServerSpec#ReverseService.apply.<task>(ServerSpec.scala:187)
889 at spec.ServerSpec$ReverseService$.apply$$anonfun$1(ServerSpec.scala:183)
890 at rapid.fiber.SynchronousFiber.handle$1(SynchronousFiber.scala:47)
891 at rapid.fiber.SynchronousFiber.execute(SynchronousFiber.scala:78)
892 at rapid.fiber.SynchronousFiber.<init>(SynchronousFiber.scala:96)
893 at rapid.fiber.SynchronousFiber$.apply(SynchronousFiber.scala:10)
894 at rapid.Task.exec(Task.scala:25)
895 at rapid.Task.exec$(Task.scala:20)
896 at rapid.task.Suspend.exec(Suspend.scala:6)
897 at rapid.Task.sync(Task.scala:351)
898 at rapid.Task.sync$(Task.scala:20)
899 at rapid.task.Suspend.sync(Suspend.scala:6)
900 at rapid.Task.attempt$$anonfun$1$$anonfun$1(Task.scala:310)
901 at scala.util.Try$.apply(Try.scala:218)
902 at rapid.Task.attempt$$anonfun$1(Task.scala:310)
903 at rapid.fiber.SynchronousFiber.handle$1(SynchronousFiber.scala:47)
904 at rapid.fiber.SynchronousFiber.execute(SynchronousFiber.scala:78)
905 at rapid.fiber.SynchronousFiber.<init>(SynchronousFiber.scala:96)
906 at rapid.fiber.SynchronousFiber$.apply(SynchronousFiber.scala:10)
907 at rapid.Task.exec(Task.scala:25)
908 at rapid.Task.exec$(Task.scala:20)
909 at rapid.task.FlatMap.exec(FlatMap.scala:6)
910 at rapid.Task.sync(Task.scala:351)
911 at rapid.Task.sync$(Task.scala:20)
912 at rapid.task.FlatMap.sync(FlatMap.scala:6)
913 at rapid.Task.attempt$$anonfun$1$$anonfun$1(Task.scala:310)
914 at scala.util.Try$.apply(Try.scala:218)
915 at rapid.Task.attempt$$anonfun$1(Task.scala:310)
916 at rapid.fiber.SynchronousFiber.handle$1(SynchronousFiber.scala:47)
917 at rapid.fiber.SynchronousFiber.execute(SynchronousFiber.scala:78)
918 at rapid.fiber.SynchronousFiber.<init>(SynchronousFiber.scala:96)
919 at rapid.fiber.SynchronousFiber$.apply(SynchronousFiber.scala:10)
920 at rapid.Task.exec(Task.scala:25)
921 at rapid.Task.exec$(Task.scala:20)
922 at rapid.task.FlatMap.exec(FlatMap.scala:6)
923 at rapid.Task.sync(Task.scala:351)
924 at rapid.Task.sync$(Task.scala:20)
925 at rapid.task.FlatMap.sync(FlatMap.scala:6)
926 at spec.ServerSpec.f$proxy10$1(ServerSpec.scala:133)
927 at spec.ServerSpec.$init$$$anonfun$1$$anonfun$10(ServerSpec.scala:121)
928 at org.scalatest.Transformer.apply$$anonfun$1(Transformer.scala:22)
929 at org.scalatest.OutcomeOf.outcomeOf(OutcomeOf.scala:85)
930 at org.scalatest.OutcomeOf.outcomeOf$(OutcomeOf.scala:31)
931 at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
932 at org.scalatest.Transformer.apply(Transformer.scala:22)
933 at org.scalatest.Transformer.apply(Transformer.scala:21)
934 at org.scalatest.wordspec.AnyWordSpecLike$$anon$3.apply(AnyWordSpecLike.scala:1118)
935 at org.scalatest.TestSuite.withFixture(TestSuite.scala:196)
936 at org.scalatest.TestSuite.withFixture$(TestSuite.scala:138)
937 at org.scalatest.wordspec.AnyWordSpec.withFixture(AnyWordSpec.scala:1879)
938 at org.scalatest.wordspec.AnyWordSpecLike.invokeWithFixture$1(AnyWordSpecLike.scala:1124)
939 at org.scalatest.wordspec.AnyWordSpecLike.runTest$$anonfun$1(AnyWordSpecLike.scala:1128)
940 at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306)
941 at org.scalatest.wordspec.AnyWordSpecLike.runTest(AnyWordSpecLike.scala:1128)
942 at org.scalatest.wordspec.AnyWordSpecLike.runTest$(AnyWordSpecLike.scala:44)
943 at org.scalatest.wordspec.AnyWordSpec.runTest(AnyWordSpec.scala:1879)
944 at org.scalatest.wordspec.AnyWordSpecLike.runTests$$anonfun$1(AnyWordSpecLike.scala:1187)
945 at org.scalatest.SuperEngine.traverseSubNodes$1$$anonfun$1(Engine.scala:413)
946 at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
947 at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
948 at scala.collection.immutable.List.foreach(List.scala:327)
949 at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:429)
950 at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:390)
951 at org.scalatest.SuperEngine.traverseSubNodes$1$$anonfun$1(Engine.scala:427)
952 at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
953 at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
954 at scala.collection.immutable.List.foreach(List.scala:327)
955 at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:429)
956 at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:396)
957 at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:475)
958 at org.scalatest.wordspec.AnyWordSpecLike.runTests(AnyWordSpecLike.scala:1187)
959 at org.scalatest.wordspec.AnyWordSpecLike.runTests$(AnyWordSpecLike.scala:44)
960 at org.scalatest.wordspec.AnyWordSpec.runTests(AnyWordSpec.scala:1879)
961 at org.scalatest.Suite.run(Suite.scala:1114)
962 at org.scalatest.Suite.run$(Suite.scala:564)
963 at org.scalatest.wordspec.AnyWordSpec.org$scalatest$wordspec$AnyWordSpecLike$$super$run(AnyWordSpec.scala:1879)
964 at org.scalatest.wordspec.AnyWordSpecLike.run$$anonfun$1(AnyWordSpecLike.scala:1232)
965 at org.scalatest.SuperEngine.runImpl(Engine.scala:535)
966 at org.scalatest.wordspec.AnyWordSpecLike.run(AnyWordSpecLike.scala:1232)
967 at org.scalatest.wordspec.AnyWordSpecLike.run$(AnyWordSpecLike.scala:44)
968 at org.scalatest.wordspec.AnyWordSpec.run(AnyWordSpec.scala:1879)
969 at org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:321)
970 at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:517)
971 at sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:414)
972 at java.util.concurrent.FutureTask.run(FutureTask.java:328)
973 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
974 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
975 at java.lang.Thread.run(Thread.java:1474)
976
977[info] - should reverse a String with a logged error (10 milliseconds)
978[info] - should call a Restful endpoint that takes Unit as the request (5 milliseconds)
979[info] - should call a Restful endpoint that takes multipart content (10 milliseconds)
980WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
981WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/root/.cache/coursier/v1/https/repo.scala-lang.org/artifactory/maven-nightlies/org/scala-lang/scala-library/3.8.0-RC2/scala-library-3.8.0-RC2.jar)
982WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
983WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
984[info] RestfulSpec:
985[info] Restful
986[info] when working with GET parameters
987[info] - should convert dot-separated values properly (91 milliseconds)
988WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
989WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/root/.cache/coursier/v1/https/repo.scala-lang.org/artifactory/maven-nightlies/org/scala-lang/scala-library/3.8.0-RC2/scala-library-3.8.0-RC2.jar)
990WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
991WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
992[info] ServerDSLSpec:
993[info] Server DSL
994[info] when creating a simple handler with MutableHttpServer
995[info] - should properly accept a request for /hello/world.txt (210 milliseconds)
996[info] - should properly accept a request for /hello/world.html (6 milliseconds)
997[info] - should properly return a 404 for /hello/other.html (6 milliseconds)
998[info] - should properly return a 404 for a POST (3 milliseconds)
999[info] - should reject a request from a different origin IP (3 milliseconds)
1000[info] when creating a HttpServer directly
1001[info] - should match a simple GET (5 milliseconds)
1002[info] - should match a simple POST (5 milliseconds)
1003[info] - should match not-found (3 milliseconds)
1004[info] when specific testing with filters
1005[info] - should properly process the first path (31 milliseconds)
1006[info] - should properly fall through to the second path (2 milliseconds)
1007Starting build for ProjectRef(file:/build/repo/,serverImplementationUndertow) (spice-server-undertow)... [9/10]
1008Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
1009[info] compiling 5 Scala sources to /build/repo/server/implementation/undertow/target/scala-3.8.0-RC2/classes ...
1010[info] done compiling
1011[info] compiling 3 Scala sources to /build/repo/server/implementation/undertow/target/scala-3.8.0-RC2/test-classes ...
1012[info] done compiling
1013WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
1014WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/root/.cache/coursier/v1/https/repo.scala-lang.org/artifactory/maven-nightlies/org/scala-lang/scala-library/3.8.0-RC2/scala-library-3.8.0-RC2.jar)
1015WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
1016WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
1017[info] UndertowWebSocketSpec:
1018[info] Undertow WebSocket
10192025.11.28 12:11:49:224 pool-1-thread-1-ScalaTest-running-UndertowWebSocketSpec INFO io.undertow.Undertow.start
1020 starting server: Undertow - 2.3.20.Final
10212025.11.28 12:11:49:289 pool-1-thread-1-ScalaTest-running-UndertowWebSocketSpec INFO org.xnio.Xnio.<clinit>
1022 XNIO version 3.8.16.Final
10232025.11.28 12:11:49:298 pool-1-thread-1-ScalaTest-running-UndertowWebSocketSpec INFO org.xnio.nio.NioXnio.<clinit>
1024 XNIO NIO Implementation Version 3.8.16.Final
10252025.11.28 12:11:49:423 pool-1-thread-1-ScalaTest-running-UndertowWebSocketSpec INFO org.jboss.threads.Version.<clinit>
1026 JBoss Threads version 3.7.0.Final
10272025.11.28 12:11:49:501 pool-1-thread-1-ScalaTest-running-UndertowWebSocketSpec INFO spice.http.server.HttpServer.start:31
1028 Server started on http://127.0.0.1:44547/
1029[info] - should start the server (462 milliseconds)
1030[info] - should open a WebSocket to the server (389 milliseconds)
1031[info] - should send a message to the server (3 milliseconds)
10322025.11.28 12:11:49:919 XNIO-1 I/O-4 INFO spec.UndertowWebSocketSpec.connect:68
1033 Received: Hello, World! from client! Echoing back...
10342025.11.28 12:11:49:924 HttpClient-1-Worker-2 INFO spec.UndertowWebSocketSpec.UndertowWebSocketSpec:32
1035 Received Hello, World! from server!
1036[info] - should receive a response from the server (110 milliseconds)
1037[info] - should disconnect the client (2 milliseconds)
10382025.11.28 12:11:50:025 pool-1-thread-1-ScalaTest-running-UndertowWebSocketSpec INFO io.undertow.Undertow.stop
1039 stopping server: Undertow - 2.3.20.Final
1040[info] - should stop the server (5 milliseconds)
1041[info] UndertowServerSpec:
1042[info] UndertowServerSpec
1043[info] - should configure the server (55 milliseconds)
10442025.11.28 12:11:50:104 pool-1-thread-1-ScalaTest-running-UndertowServerSpec INFO io.undertow.Undertow.start
1045 starting server: Undertow - 2.3.20.Final
10462025.11.28 12:11:50:109 pool-1-thread-1-ScalaTest-running-UndertowServerSpec INFO spice.http.server.HttpServer.start:31
1047 Server started on http://127.0.0.1:33449/
1048[info] - should start the server (8 milliseconds)
1049[info] - should receive OK for test.txt (65 milliseconds)
1050[info] - should receive NotFound for test.html (13 milliseconds)
1051[info] - should reverse a String with the Restful endpoint via POST (80 milliseconds)
1052[info] - should reverse a String with the Restful endpoint via GET (12 milliseconds)
1053[info] - should reverse a String with the Restful endpoint via GET with path-based arg (7 milliseconds)
1054[info] - should call a Restful endpoint that takes Unit as the request (10 milliseconds)
1055[info] - should call a Restful endpoint that takes a String as the request (7 milliseconds)
10562025.11.28 12:11:50:315 pool-1-thread-1-ScalaTest-running-UndertowServerSpec INFO io.undertow.Undertow.start
1057 starting server: Undertow - 2.3.20.Final
10582025.11.28 12:11:50:320 pool-1-thread-1-ScalaTest-running-UndertowServerSpec INFO spice.http.server.HttpServer.start:31
1059 Server started on http://127.0.0.1:33901/, http://127.0.0.1:8282/
10602025.11.28 12:11:50:324 pool-1-thread-1-ScalaTest-running-UndertowServerSpec INFO io.undertow.Undertow.stop
1061 stopping server: Undertow - 2.3.20.Final
1062[info] - should start an adhoc server on any available port and make sure it propagates back (13 milliseconds)
1063 stopping server: Undertow - 2.3.20.Final
1064[info] - should stop the server (4 milliseconds)
1065
1066************************
1067Build summary:
1068[{
1069 "module": "spice-openapi",
1070 "compile": {"status": "ok", "tookMs": 26790, "warnings": 2, "errors": 0, "sourceVersion": "3.8"},
1071 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1072 "test-compile": {"status": "ok", "tookMs": 7345, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1073 "test": {"status": "ok", "tookMs": 2045, "passed": 14, "failed": 0, "ignored": 0, "skipped": 0, "total": 14, "byFramework": [{"framework": "unknown", "stats": {"passed": 14, "failed": 0, "ignored": 0, "skipped": 0, "total": 14}}]},
1074 "publish": {"status": "skipped", "tookMs": 0},
1075 "metadata": {
1076 "crossScalaVersions": ["2.13.17", "3.3.7"]
1077}
1078},{
1079 "module": "spice-client-okhttp",
1080 "compile": {"status": "ok", "tookMs": 1003, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1081 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1082 "test-compile": {"status": "ok", "tookMs": 852, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1083 "test": {"status": "ok", "tookMs": 493, "passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7, "byFramework": [{"framework": "unknown", "stats": {"passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7}}]},
1084 "publish": {"status": "skipped", "tookMs": 0},
1085 "metadata": {
1086 "crossScalaVersions": ["2.13.17", "3.3.7"]
1087}
1088},{
1089 "module": "spice-client-jvm",
1090 "compile": {"status": "ok", "tookMs": 125, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1091 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1092 "test-compile": {"status": "ok", "tookMs": 155, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1093 "test": {"status": "ok", "tookMs": 376, "passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7, "byFramework": [{"framework": "unknown", "stats": {"passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7}}]},
1094 "publish": {"status": "skipped", "tookMs": 0},
1095 "metadata": {
1096 "crossScalaVersions": ["2.13.17", "3.3.7"]
1097}
1098},{
1099 "module": "spice",
1100 "compile": {"status": "ok", "tookMs": 47, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1101 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1102 "test-compile": {"status": "ok", "tookMs": 59, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1103 "test": {"status": "ok", "tookMs": 67, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1104 "publish": {"status": "skipped", "tookMs": 0},
1105 "metadata": {
1106 "crossScalaVersions": ["2.13.17", "3.3.7"]
1107}
1108},{
1109 "module": "spice-core",
1110 "compile": {"status": "ok", "tookMs": 48, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1111 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1112 "test-compile": {"status": "ok", "tookMs": 1574, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1113 "test": {"status": "ok", "tookMs": 332, "passed": 81, "failed": 0, "ignored": 0, "skipped": 0, "total": 81, "byFramework": [{"framework": "unknown", "stats": {"passed": 81, "failed": 0, "ignored": 0, "skipped": 0, "total": 81}}]},
1114 "publish": {"status": "skipped", "tookMs": 0},
1115 "metadata": {
1116 "crossScalaVersions": ["2.13.17", "3.3.7"]
1117}
1118},{
1119 "module": "spice-client-netty",
1120 "compile": {"status": "ok", "tookMs": 1022, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1121 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1122 "test-compile": {"status": "ok", "tookMs": 986, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1123 "test": {"status": "ok", "tookMs": 363, "passed": 8, "failed": 0, "ignored": 0, "skipped": 0, "total": 8, "byFramework": [{"framework": "unknown", "stats": {"passed": 8, "failed": 0, "ignored": 0, "skipped": 0, "total": 8}}]},
1124 "publish": {"status": "skipped", "tookMs": 0},
1125 "metadata": {
1126 "crossScalaVersions": ["2.13.17", "3.3.7"]
1127}
1128},{
1129 "module": "spice-delta",
1130 "compile": {"status": "ok", "tookMs": 80, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1131 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1132 "test-compile": {"status": "ok", "tookMs": 578, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1133 "test": {"status": "ok", "tookMs": 340, "passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1, "byFramework": [{"framework": "unknown", "stats": {"passed": 1, "failed": 0, "ignored": 0, "skipped": 0, "total": 1}}]},
1134 "publish": {"status": "skipped", "tookMs": 0},
1135 "metadata": {
1136 "crossScalaVersions": ["2.13.17", "3.3.7"]
1137}
1138},{
1139 "module": "spice-client",
1140 "compile": {"status": "ok", "tookMs": 68, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1141 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1142 "test-compile": {"status": "ok", "tookMs": 113, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1143 "test": {"status": "ok", "tookMs": 138, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1144 "publish": {"status": "skipped", "tookMs": 0},
1145 "metadata": {
1146 "crossScalaVersions": ["2.13.17", "3.3.7"]
1147}
1148},{
1149 "module": "spice-server",
1150 "compile": {"status": "ok", "tookMs": 129, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1151 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1152 "test-compile": {"status": "ok", "tookMs": 237, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1153 "test": {"status": "ok", "tookMs": 3025, "passed": 23, "failed": 0, "ignored": 0, "skipped": 0, "total": 23, "byFramework": [{"framework": "unknown", "stats": {"passed": 23, "failed": 0, "ignored": 0, "skipped": 0, "total": 23}}]},
1154 "publish": {"status": "skipped", "tookMs": 0},
1155 "metadata": {
1156 "crossScalaVersions": ["2.13.17", "3.3.7"]
1157}
1158},{
1159 "module": "spice-server-undertow",
1160 "compile": {"status": "ok", "tookMs": 934, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1161 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1162 "test-compile": {"status": "ok", "tookMs": 1352, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
1163 "test": {"status": "ok", "tookMs": 2537, "passed": 17, "failed": 0, "ignored": 0, "skipped": 0, "total": 17, "byFramework": [{"framework": "unknown", "stats": {"passed": 17, "failed": 0, "ignored": 0, "skipped": 0, "total": 17}}]},
1164 "publish": {"status": "skipped", "tookMs": 0},
1165 "metadata": {
1166 "crossScalaVersions": ["2.13.17", "3.3.7"]
1167}
1168}]
1169************************
1170[success] Total time: 67 s (0:01:07.0), completed Nov 28, 2025, 12:11:51 PM
1171[0JChecking patch project/plugins.sbt...
1172Checking patch build.sbt...
1173Applied patch project/plugins.sbt cleanly.
1174Applied patch build.sbt cleanly.