Build Logs

jd557/minart • 3.8.0-RC6:2026-01-08

Errors

0

Warnings

88

Total Lines

784

1##################################
2Clonning https://github.com/jd557/minart.git into /build/repo using revision v0.6.5
3##################################
4Note: switching to '21b47acd5cbdd85b6138e34d765d2af4d3e836e7'.
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
21Using target Scala version for migration: 3.7.4
22Migrating project for -source:3.7 using Scala 3.7.4
23----
24Preparing build for 3.7.4
25Would try to apply common scalacOption (best-effort, sbt/mill only):
26Append: -rewrite,REQUIRE:-source:3.7-migration
27Remove: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
28
29Try apply source patch:
30Path: core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala
31Pattern: copy(cx = newCx, cy = newCy, newWidth, newHeight)
32Replacement: copy(cx = newCx, cy = newCy, width = newWidth, height = newHeight)
33Starting compilation server
34Compiling project (Scala 3.7.3, JVM (17))
35Compiled project (Scala 3.7.3, JVM (17))
36Successfully applied pattern 'copy(cx = newCx, cy = newCy, newWidth, newHeight)' in core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala
37----
38Starting build for 3.7.4
39Execute tests: false
40sbt project found:
41No prepare script found for project jd557/minart
42##################################
43Scala version: 3.7.4
44Targets: eu.joaocosta%minart eu.joaocosta%minart-backend eu.joaocosta%minart-core eu.joaocosta%minart-image eu.joaocosta%minart-sound
45Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.7"],"sourcePatches":[{"path":"core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala","pattern":"copy(cx = newCx, cy = newCy, newWidth, newHeight)","replaceWith":"copy(cx = newCx, cy = newCy, width = newWidth, height = newHeight)"}]}
46##################################
47Using extra scalacOptions: -rewrite,REQUIRE:-source:3.7-migration
48Filtering out scalacOptions: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
49[sbt_options] declare -a sbt_options=()
50[process_args] java_version = '17'
51[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
52# Executing command line:
53java
54-Dfile.encoding=UTF-8
55-Dcommunitybuild.scala=3.7.4
56-Dcommunitybuild.project.dependencies.add=
57-Xmx7G
58-Xms4G
59-Xss8M
60-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
61-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
62-jar
63/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
64"setCrossScalaVersions 3.7.4"
65"++3.7.4 -v"
66"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""
67"set every credentials := Nil"
68"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
69"removeScalacOptionsStartingWith -P:wartremover"
70
71moduleMappings
72"runBuild 3.7.4 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.7"],"sourcePatches":[{"path":"core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala","pattern":"copy(cx = newCx, cy = newCy, newWidth, newHeight)","replaceWith":"copy(cx = newCx, cy = newCy, width = newWidth, height = newHeight)"}]}""" eu.joaocosta%minart eu.joaocosta%minart-backend eu.joaocosta%minart-core eu.joaocosta%minart-image eu.joaocosta%minart-sound"
73
74[info] [launcher] getting org.scala-sbt sbt 1.11.7 (this may take some time)...
75[info] welcome to sbt 1.11.7 (Eclipse Adoptium Java 17.0.8)
76[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
77[info] loading project definition from /build/repo/project
78[info] compiling 2 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
79[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
80[info] Compilation completed in 8.709s.
81[info] done compiling
82[info] loading settings for project repo from build.sbt, contributors.sbt, version.sbt...
83[info] resolving key references (19143 settings) ...
84[info] set current project to minart (in build file:/build/repo/)
85Execute setCrossScalaVersions: 3.7.4
86OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in rootNative/crossScalaVersions
87OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in imageNative/crossScalaVersions
88OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in imageJVM/crossScalaVersions
89OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in coreJVM/crossScalaVersions
90OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in imageJS/crossScalaVersions
91OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in backendNative/crossScalaVersions
92OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in soundJVM/crossScalaVersions
93OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in soundJS/crossScalaVersions
94OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in backendJVM/crossScalaVersions
95OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in repo/crossScalaVersions
96OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in coreJS/crossScalaVersions
97OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in soundNative/crossScalaVersions
98OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in rootJVM/crossScalaVersions
99OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in backendJS/crossScalaVersions
100OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in coreNative/crossScalaVersions
101OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in rootJS/crossScalaVersions
102[info] set current project to minart (in build file:/build/repo/)
103[info] Setting Scala version to 3.7.4 on 16 projects.
104[info] Switching Scala version on:
105[info] imageNative (3.7.4)
106[info] backendNative (3.7.4)
107[info] imageJS (3.7.4)
108[info] rootJS (3.7.4)
109[info] coreNative (3.7.4)
110[info] backendJVM (3.7.4)
111[info] soundJVM (3.7.4)
112[info] soundNative (3.7.4)
113[info] coreJS (3.7.4)
114[info] coreJVM (3.7.4)
115[info] rootJVM (3.7.4)
116[info] rootNative (3.7.4)
117[info] soundJS (3.7.4)
118[info] * repo (3.7.4)
119[info] imageJVM (3.7.4)
120[info] backendJS (3.7.4)
121[info] Excluding projects:
122[info] Reapplying settings...
123[info] set current project to minart (in build file:/build/repo/)
124Execute 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
125[info] Reapplying settings...
126[info] set current project to minart (in build file:/build/repo/)
127[info] Defining Global / credentials, backendJS / credentials and 14 others.
128[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 128 others.
129[info] Run `last` for details.
130[info] Reapplying settings...
131[info] set current project to minart (in build file:/build/repo/)
132Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
133[info] Reapplying settings...
134OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
135
136 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
137 Did you mean rootJVM / allExcludeDependencies ?
138 , retry without global scopes
139[info] Reapplying settings...
140[info] set current project to minart (in build file:/build/repo/)
141Execute removeScalacOptionsStartingWith: -P:wartremover
142[info] Reapplying settings...
143[info] set current project to minart (in build file:/build/repo/)
144[success] Total time: 0 s, completed Jan 8, 2026, 2:14:56 AM
145Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.7"],"sourcePatches":[{"path":"core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala","pattern":"copy(cx = newCx, cy = newCy, newWidth, newHeight)","replaceWith":"copy(cx = newCx, cy = newCy, width = newWidth, height = newHeight)"}]}
146Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),CompileOnly,List()))
147Starting build...
148Projects: Set(backendJVM, soundJVM, coreJVM, rootJVM, imageJVM)
149Starting build for ProjectRef(file:/build/repo/,soundJVM) (minart-sound)... [0/5]
150OpenCB::Exclude Scala3 specific scalacOption `-rewrite` in Scala 2.12.20 module Global
151OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.7-migration` in Scala 2.12.20 module Global
152OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
153OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
154Compile scalacOptions: -encoding, utf8, -unchecked, -language:higherKinds, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Xsemanticdb, -semanticdb-target, /build/repo/sound/jvm/target/scala-3.7.4/meta, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
155[info] scalafmt: Formatting 15 Scala sources (/build/repo/core/jvm)...
156[info] scalafmt: Formatting 2 Scala sources (/build/repo/sound/jvm)...
157[info] scalafmt: Formatting 17 Scala sources (/build/repo/sound/jvm)...
158[info] scalafmt: Formatting 46 Scala sources (/build/repo/core/jvm)...
159[info] compiling 46 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
160[info] [patched file /build/repo/core/shared/src/main/scala/eu/joaocosta/minart/runtime/AppLoop.scala]
161[info] [patched file /build/repo/core/shared/src/main/scala/eu/joaocosta/minart/backend/subsystem/LowLevelSubsystem.scala]
162[info] done compiling
163[info] Running scalafix on 46 Scala sources
164[info] compiling 17 Scala sources to /build/repo/sound/jvm/target/scala-3.7.4/classes ...
165[info] done compiling
166[info] Running scalafix on 17 Scala sources
167[info] scalafmt: Formatting 3 Scala sources (/build/repo/backend/jvm)...
168[info] scalafmt: Formatting 2 Scala sources (/build/repo/core/jvm)...
169[info] scalafmt: Reformatted 1 Scala sources
170[info] compiling 2 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
171[info] scalafmt: Formatting 8 Scala sources (/build/repo/backend/jvm)...
172[info] done compiling
173[info] compiling 3 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
174[info] done compiling
175[info] Running scalafix on 1 Scala sources (incremental)
176[info] compiling 8 Scala sources to /build/repo/backend/jvm/target/scala-3.7.4/classes ...
177[info] [patched file /build/repo/backend/jvm/src/main/scala/eu/joaocosta/minart/backend/JavaAudioPlayer.scala]
178[info] [patched file /build/repo/backend/jvm/src/main/scala/eu/joaocosta/minart/backend/JavaAsyncLoopRunner.scala]
179[info] [patched file /build/repo/backend/jvm/src/main/scala/eu/joaocosta/minart/backend/AwtCanvas.scala]
180[info] done compiling
181[info] Running scalafix on 8 Scala sources
182[info] compiling 2 Scala sources to /build/repo/sound/jvm/target/scala-3.7.4/test-classes ...
183[info] [patched file /build/repo/sound/shared/src/test/scala/eu/joaocosta/minart/audio/sound/AudioClipWriterSpec.scala]
184[info] done compiling
185[info] Running scalafix on 2 Scala sources
186[info] scalafmt: Formatting 1 Scala sources (/build/repo/sound/jvm)...
187[info] scalafmt: Formatting 3 Scala sources (/build/repo/backend/jvm)...
188[info] compiling 1 Scala source to /build/repo/core/jvm/target/scala-3.7.4/classes ...
189[info] scalafmt: Reformatted 1 Scala sources
190[info] done compiling
191[info] compiling 3 Scala sources to /build/repo/backend/jvm/target/scala-3.7.4/classes ...
192[info] done compiling
193[info] Running scalafix on 1 Scala sources (incremental)
194[info] compiling 1 Scala source to /build/repo/sound/jvm/target/scala-3.7.4/test-classes ...
195[info] done compiling
196[info] compiling 1 Scala source to /build/repo/backend/jvm/target/scala-3.7.4/classes ...
197[info] done compiling
198Starting build for ProjectRef(file:/build/repo/,backendJVM) (minart-backend)... [1/5]
199Compile scalacOptions: -encoding, utf8, -unchecked, -language:higherKinds, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Xsemanticdb, -semanticdb-target, /build/repo/backend/jvm/target/scala-3.7.4/meta, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
200[info] compiling 3 Scala sources to /build/repo/backend/jvm/target/scala-3.7.4/test-classes ...
201[warn] -- [E198] Unused Symbol Warning: /build/repo/backend/shared/src/test/scala/eu/joaocosta/minart/runtime/AppLoopSpec.scala:35:13
202[warn] 35 | (canvas: Canvas) => {
203[warn] | ^^^^^^
204[warn] | unused explicit parameter
205[info] [patched file /build/repo/backend/shared/src/test/scala/eu/joaocosta/minart/runtime/AppLoopSpec.scala]
206[warn] one warning found
207[info] done compiling
208[info] Running scalafix on 3 Scala sources
209[info] scalafmt: Formatting 1 Scala sources (/build/repo/backend/jvm)...
210[info] scalafmt: Reformatted 1 Scala sources
211[info] compiling 1 Scala source to /build/repo/backend/jvm/target/scala-3.7.4/test-classes ...
212[warn] -- [E198] Unused Symbol Warning: /build/repo/backend/shared/src/test/scala/eu/joaocosta/minart/runtime/AppLoopSpec.scala:35:13
213[warn] 35 | (canvas: Canvas) => {
214[warn] | ^^^^^^
215[warn] | unused explicit parameter
216[warn] one warning found
217[info] done compiling
218[info] Running scalafix on 1 Scala sources (incremental)
219[info] compiling 1 Scala source to /build/repo/backend/jvm/target/scala-3.7.4/test-classes ...
220[warn] -- [E198] Unused Symbol Warning: /build/repo/backend/shared/src/test/scala/eu/joaocosta/minart/runtime/AppLoopSpec.scala:35:13
221[warn] 35 | (canvas: Canvas) => {
222[warn] | ^^^^^^
223[warn] | unused explicit parameter
224[warn] one warning found
225[info] done compiling
226Starting build for ProjectRef(file:/build/repo/,coreJVM) (minart-core)... [2/5]
227Compile scalacOptions: -encoding, utf8, -unchecked, -language:higherKinds, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Xsemanticdb, -semanticdb-target, /build/repo/core/jvm/target/scala-3.7.4/meta, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
228[info] compiling 15 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/test-classes ...
229[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/PlaneSpec.scala:52:27
230[warn] 52 | .flatMap(color => (x, y) => if (y >= 8) color.invert else color)
231[warn] | ^
232[warn] | unused explicit parameter
233[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/PlaneSpec.scala:66:27
234[warn] 66 | .flatMap(color => (x, y) => if (y >= 8) color.invert else color)
235[warn] | ^
236[warn] | unused explicit parameter
237[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/PlaneSpec.scala:70:33
238[warn] 70 | .transformPixels((color, x, y) => if (y >= 8) color.invert else color)
239[warn] | ^
240[warn] | unused explicit parameter
241[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/SurfaceViewSpec.scala:33:25
242[warn] 33 | .flatMap(color => (x, y) => if (y >= 8) color.invert else color)
243[warn] | ^
244[warn] | unused explicit parameter
245[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/SurfaceViewSpec.scala:47:27
246[warn] 47 | .flatMap(color => (x, y) => if (y >= 8) color.invert else color)
247[warn] | ^
248[warn] | unused explicit parameter
249[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/SurfaceViewSpec.scala:51:33
250[warn] 51 | .transformPixels((color, x, y) => if (y >= 8) color.invert else color)
251[warn] | ^
252[warn] | unused explicit parameter
253[warn] 6 warnings found
254[info] done compiling
255[info] Running scalafix on 15 Scala sources
256Starting build for ProjectRef(file:/build/repo/,imageJVM) (minart-image)... [3/5]
257Compile scalacOptions: -encoding, utf8, -unchecked, -language:higherKinds, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Xsemanticdb, -semanticdb-target, /build/repo/image/jvm/target/scala-3.7.4/meta, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
258[info] scalafmt: Formatting 4 Scala sources (/build/repo/image/jvm)...
259[info] scalafmt: Formatting 24 Scala sources (/build/repo/image/jvm)...
260[info] compiling 24 Scala sources to /build/repo/image/jvm/target/scala-3.7.4/classes ...
261[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/image/shared/src/main/scala/eu/joaocosta/minart/graphics/image/qoi/QoiImageReader.scala:31:8
262[warn] 31 | case (0xc0, 0x3e) =>
263[warn] | ^
264[warn] | match may not be exhaustive.
265[warn] |
266[warn] | It would fail on pattern case: (_, _)
267[warn] |
268[warn] | longer explanation available when compiling with `-explain`
269[warn] one warning found
270[info] done compiling
271[info] Running scalafix on 24 Scala sources
272[info] compiling 4 Scala sources to /build/repo/image/jvm/target/scala-3.7.4/test-classes ...
273[info] [patched file /build/repo/image/shared/src/test/scala/eu/joaocosta/minart/graphics/image/ImageWriterSpec.scala]
274[info] done compiling
275[info] Running scalafix on 4 Scala sources
276[info] scalafmt: Formatting 1 Scala sources (/build/repo/image/jvm)...
277[info] compiling 1 Scala source to /build/repo/image/jvm/target/scala-3.7.4/test-classes ...
278[info] done compiling
279Starting build for ProjectRef(file:/build/repo/,rootJVM) (minart)... [4/5]
280Compile scalacOptions: -encoding, utf8, -unchecked, -language:higherKinds, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Xsemanticdb, -semanticdb-target, /build/repo/jvm/target/scala-3.7.4/meta, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.7-migration
281
282************************
283Build summary:
284[{
285 "module": "minart-sound",
286 "compile": {"status": "ok", "tookMs": 25604, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
287 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
288 "test-compile": {"status": "ok", "tookMs": 4003, "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": ["3.3.7"]
293}
294},{
295 "module": "minart-backend",
296 "compile": {"status": "ok", "tookMs": 209, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
297 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
298 "test-compile": {"status": "ok", "tookMs": 1218, "warnings": 1, "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": ["3.3.7"]
303}
304},{
305 "module": "minart-core",
306 "compile": {"status": "ok", "tookMs": 104, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
307 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
308 "test-compile": {"status": "ok", "tookMs": 3328, "warnings": 6, "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": ["3.3.7"]
313}
314},{
315 "module": "minart-image",
316 "compile": {"status": "ok", "tookMs": 2896, "warnings": 1, "errors": 0, "sourceVersion": "3.7-migration"},
317 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
318 "test-compile": {"status": "ok", "tookMs": 1200, "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": ["3.3.7"]
323}
324},{
325 "module": "minart",
326 "compile": {"status": "ok", "tookMs": 389, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
327 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
328 "test-compile": {"status": "ok", "tookMs": 451, "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": ["3.3.7"]
333}
334}]
335************************
336[success] Total time: 48 s, completed Jan 8, 2026, 2:15:45 AM
337[0JChecking patch project/plugins.sbt...
338Checking patch core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala...
339Checking patch build.sbt...
340Applied patch project/plugins.sbt cleanly.
341Applied patch core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala cleanly.
342Applied patch build.sbt cleanly.
343Commit migration rewrites
344Switched to a new branch 'opencb/migrate-source-3.7'
345[opencb/migrate-source-3.7 1e340101] Apply Scala compiler rewrites using -source:3.7-migration using Scala 3.7.4
346 8 files changed, 20 insertions(+), 20 deletions(-)
347----
348Preparing build for 3.8.0-RC6
349Scala binary version found: 3.8
350Implicitly using source version 3.8
351Scala binary version found: 3.8
352Implicitly using source version 3.8
353Would try to apply common scalacOption (best-effort, sbt/mill only):
354Append: ,REQUIRE:-source:3.8
355Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
356
357Try apply source patch:
358Path: core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala
359Pattern: copy(cx = newCx, cy = newCy, newWidth, newHeight)
360Replacement: copy(cx = newCx, cy = newCy, width = newWidth, height = newHeight)
361Successfully applied pattern 'copy(cx = newCx, cy = newCy, newWidth, newHeight)' in core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala
362----
363Starting build for 3.8.0-RC6
364Execute tests: true
365sbt project found:
366No prepare script found for project jd557/minart
367##################################
368Scala version: 3.8.0-RC6
369Targets: eu.joaocosta%minart eu.joaocosta%minart-backend eu.joaocosta%minart-core eu.joaocosta%minart-image eu.joaocosta%minart-sound
370Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.7"],"sourcePatches":[{"path":"core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala","pattern":"copy(cx = newCx, cy = newCy, newWidth, newHeight)","replaceWith":"copy(cx = newCx, cy = newCy, width = newWidth, height = newHeight)"}]}
371##################################
372Using extra scalacOptions: ,REQUIRE:-source:3.8
373Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
374[sbt_options] declare -a sbt_options=()
375[process_args] java_version = '17'
376[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
377# Executing command line:
378java
379-Dfile.encoding=UTF-8
380-Dcommunitybuild.scala=3.8.0-RC6
381-Dcommunitybuild.project.dependencies.add=
382-Xmx7G
383-Xms4G
384-Xss8M
385-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
386-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
387-jar
388/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
389"setCrossScalaVersions 3.8.0-RC6"
390"++3.8.0-RC6 -v"
391"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
392"set every credentials := Nil"
393"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
394"removeScalacOptionsStartingWith -P:wartremover"
395
396moduleMappings
397"runBuild 3.8.0-RC6 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.7"],"sourcePatches":[{"path":"core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala","pattern":"copy(cx = newCx, cy = newCy, newWidth, newHeight)","replaceWith":"copy(cx = newCx, cy = newCy, width = newWidth, height = newHeight)"}]}""" eu.joaocosta%minart eu.joaocosta%minart-backend eu.joaocosta%minart-core eu.joaocosta%minart-image eu.joaocosta%minart-sound"
398
399[info] welcome to sbt 1.11.7 (Eclipse Adoptium Java 17.0.8)
400[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
401[info] loading project definition from /build/repo/project
402[info] loading settings for project repo from build.sbt, contributors.sbt, version.sbt...
403[info] resolving key references (19143 settings) ...
404[info] set current project to minart (in build file:/build/repo/)
405Execute setCrossScalaVersions: 3.8.0-RC6
406OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in rootNative/crossScalaVersions
407OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in backendJVM/crossScalaVersions
408OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in imageJVM/crossScalaVersions
409OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in soundJS/crossScalaVersions
410OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in imageNative/crossScalaVersions
411OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in coreJVM/crossScalaVersions
412OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in imageJS/crossScalaVersions
413OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in backendNative/crossScalaVersions
414OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in soundJVM/crossScalaVersions
415OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in repo/crossScalaVersions
416OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in coreJS/crossScalaVersions
417OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in soundNative/crossScalaVersions
418OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in backendJS/crossScalaVersions
419OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in rootJVM/crossScalaVersions
420OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in coreNative/crossScalaVersions
421OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC6 in rootJS/crossScalaVersions
422[info] set current project to minart (in build file:/build/repo/)
423[info] Setting Scala version to 3.8.0-RC6 on 16 projects.
424[info] Switching Scala version on:
425[info] imageNative (3.8.0-RC6)
426[info] backendNative (3.8.0-RC6)
427[info] imageJS (3.8.0-RC6)
428[info] rootJS (3.8.0-RC6)
429[info] coreNative (3.8.0-RC6)
430[info] backendJVM (3.8.0-RC6)
431[info] soundJVM (3.8.0-RC6)
432[info] soundNative (3.8.0-RC6)
433[info] coreJS (3.8.0-RC6)
434[info] coreJVM (3.8.0-RC6)
435[info] rootJVM (3.8.0-RC6)
436[info] rootNative (3.8.0-RC6)
437[info] soundJS (3.8.0-RC6)
438[info] * repo (3.8.0-RC6)
439[info] imageJVM (3.8.0-RC6)
440[info] backendJS (3.8.0-RC6)
441[info] Excluding projects:
442[info] Reapplying settings...
443[info] set current project to minart (in build file:/build/repo/)
444Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
445[info] Reapplying settings...
446[info] set current project to minart (in build file:/build/repo/)
447[info] Defining Global / credentials, backendJS / credentials and 14 others.
448[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 128 others.
449[info] Run `last` for details.
450[info] Reapplying settings...
451[info] set current project to minart (in build file:/build/repo/)
452Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
453[info] Reapplying settings...
454OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
455
456 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
457 Did you mean rootJVM / allExcludeDependencies ?
458 , retry without global scopes
459[info] Reapplying settings...
460[info] set current project to minart (in build file:/build/repo/)
461Execute removeScalacOptionsStartingWith: -P:wartremover
462[info] Reapplying settings...
463[info] set current project to minart (in build file:/build/repo/)
464[success] Total time: 0 s, completed Jan 8, 2026, 2:16:03 AM
465Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.7"],"sourcePatches":[{"path":"core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala","pattern":"copy(cx = newCx, cy = newCy, newWidth, newHeight)","replaceWith":"copy(cx = newCx, cy = newCy, width = newWidth, height = newHeight)"}]}
466Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
467Starting build...
468Projects: Set(backendJVM, soundJVM, coreJVM, rootJVM, imageJVM)
469Starting build for ProjectRef(file:/build/repo/,soundJVM) (minart-sound)... [0/5]
470OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
471OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
472OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
473Compile scalacOptions: -encoding, utf8, -unchecked, -language:higherKinds, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Xsemanticdb, -semanticdb-target, /build/repo/sound/jvm/target/scala-3.8.0-RC6/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
474[info] scalafmt: Formatting 1 Scala sources (/build/repo/core/jvm)...
475[info] compiling 46 Scala sources to /build/repo/core/jvm/target/scala-3.8.0-RC6/classes ...
476[info] done compiling
477[info] compiling 17 Scala sources to /build/repo/sound/jvm/target/scala-3.8.0-RC6/classes ...
478[info] done compiling
479[info] compiling 8 Scala sources to /build/repo/backend/jvm/target/scala-3.8.0-RC6/classes ...
480[info] done compiling
481[info] compiling 2 Scala sources to /build/repo/sound/jvm/target/scala-3.8.0-RC6/test-classes ...
482[info] done compiling
483eu.joaocosta.minart.audio.sound.AudioClipWriterSpec:
484 + Write a AIFF clip 0.267s
485 + Write a WAV clip 0.119s
486eu.joaocosta.minart.audio.sound.AudioClipReaderSpec:
487 + Load an AIFF file 0.131s
488 + Load a WAV file 0.1s
489 + Load a QOA file 0.195s
490 + Load the same data from different lossless formats 0.027s
491 + Load the similar data from different formats 0.153s
492Starting build for ProjectRef(file:/build/repo/,backendJVM) (minart-backend)... [1/5]
493Compile scalacOptions: -encoding, utf8, -unchecked, -language:higherKinds, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Xsemanticdb, -semanticdb-target, /build/repo/backend/jvm/target/scala-3.8.0-RC6/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
494[info] compiling 3 Scala sources to /build/repo/backend/jvm/target/scala-3.8.0-RC6/test-classes ...
495[warn] -- [E198] Unused Symbol Warning: /build/repo/backend/shared/src/test/scala/eu/joaocosta/minart/runtime/AppLoopSpec.scala:35:13
496[warn] 35 | (canvas: Canvas) => {
497[warn] | ^^^^^^
498[warn] | unused explicit parameter
499[warn] one warning found
500[info] done compiling
501eu.joaocosta.minart.runtime.AppLoopSpec:
502 + Have a statefulRenderLoop operation that ends when a certain state is reached 0.023s
503eu.joaocosta.minart.graphics.BufferedImageSurfaceSpec:
504 + Return the correct number of pixels 0.023s
505 + Write and read pixels in certain positions 0.004s
506 + Don't blow up when invalid positions are provided 0.003s
507 + Fill the surface with a single color 0.007s
508 + Combine two surfaces without blowing up 0.003s
509 + Combine a surface with a surface view without blowing up 0.004s
510 + Combine a surface with a plane without blowing up 0.006s
511 + Correctly combine two surfaces 0.005s
512 + Modify a surface in place 0.004s
513Starting build for ProjectRef(file:/build/repo/,coreJVM) (minart-core)... [2/5]
514Compile scalacOptions: -encoding, utf8, -unchecked, -language:higherKinds, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Xsemanticdb, -semanticdb-target, /build/repo/core/jvm/target/scala-3.8.0-RC6/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
515[info] compiling 15 Scala sources to /build/repo/core/jvm/target/scala-3.8.0-RC6/test-classes ...
516[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/PlaneSpec.scala:52:27
517[warn] 52 | .flatMap(color => (x, y) => if (y >= 8) color.invert else color)
518[warn] | ^
519[warn] | unused explicit parameter
520[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/PlaneSpec.scala:66:27
521[warn] 66 | .flatMap(color => (x, y) => if (y >= 8) color.invert else color)
522[warn] | ^
523[warn] | unused explicit parameter
524[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/PlaneSpec.scala:70:33
525[warn] 70 | .transformPixels((color, x, y) => if (y >= 8) color.invert else color)
526[warn] | ^
527[warn] | unused explicit parameter
528[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/SurfaceViewSpec.scala:33:25
529[warn] 33 | .flatMap(color => (x, y) => if (y >= 8) color.invert else color)
530[warn] | ^
531[warn] | unused explicit parameter
532[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/SurfaceViewSpec.scala:47:27
533[warn] 47 | .flatMap(color => (x, y) => if (y >= 8) color.invert else color)
534[warn] | ^
535[warn] | unused explicit parameter
536[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/eu/joaocosta/minart/graphics/SurfaceViewSpec.scala:51:33
537[warn] 51 | .transformPixels((color, x, y) => if (y >= 8) color.invert else color)
538[warn] | ^
539[warn] | unused explicit parameter
540[warn] 6 warnings found
541[info] done compiling
542eu.joaocosta.minart.input.PointerInputSpec:
543 + Correctly captures pointer presses and releases 0.019s
544eu.joaocosta.minart.geometry.ConvexPolygonSpec:
545 + Computes the bounding box of a polygon 0.013s
546 + Check if a polygon contains a point 0.001s
547 + Return the polygon face 0.007s
548 + Check if a polygon is contained in another 0.001s
549 + Check if a polygon collides with another 0.003s
550 + Can be transformed with a chain of transformations 0.006s
551eu.joaocosta.minart.graphics.ColorSpec:
552 + Can be created from RGB values 0.015s
553 + Can be created from RGBA values 0.002s
554 + Can be created from grayscale values 0.001s
555 + Can be created from raw RGB values 0.0s
556 + Can be created from raw ARGB values 0.001s
557 + Can be created from raw BGR values 0.001s
558 + Can be created from raw ABGR values 0.0s
559 + Can be unnapplied 0.002s
560 + Can be summed/subtracted without overflowing/underflowing 0.005s
561 + Can be multiplied without overflowing/undeflowing 0.001s
562 + Can be inverted 0.002s
563 + Can be premultiplied 0.001s
564 + Operations either ignore or keep the alpha as specified 0.005s
565eu.joaocosta.minart.audio.AudioWaveSpec:
566 + A sampled AudioWave returns all samples 0.015s
567eu.joaocosta.minart.geometry.AxisAlignedBoundingBoxSpec:
568 + Computes helper positions 0.001s
569 + Checks if a point is inside the box 0.0s
570 + Checks if a box is inside the box 0.001s
571 + Checks if a box collides the box 0.002s
572 + Merge two bounding boxes when there's a gap 0.001s
573 + Merge two bounding boxes when they intersect 0.001s
574 + Return an empty bounding box intersection when there's a gap 0.001s
575 + Shrink two bounding boxes when they intersect 0.001s
576eu.joaocosta.minart.input.KeyboardInputSpec:
577 + Correctly captures key presses and releases 0.08s
578eu.joaocosta.minart.graphics.KernelSpec:
579 + Can be created from a odd-sized matrix 0.014s
580 + Cannot be created from a even-sized matrix 0.004s
581 + Cannot be created from an unbalanced matrix 0.0s
582 + Cannot be created with a normalization constant of 0 0.001s
583 + Can be compared for equality 0.006s
584 + Can be created with automatic normalization 0.019s
585eu.joaocosta.minart.geometry.CircleSpec:
586 + Computes the bounding box of a circle 0.001s
587 + Check if a circle contains a point 0.001s
588 + Return the circle face 0.001s
589 + Check if a circle is contained in a circle 0.005s
590 + Check if a circle collides with another 0.0s
591 + Can be transformed with a chain of transformations 0.006s
592eu.joaocosta.minart.audio.AudioClipSpec:
593 + An audio clip is correctly sampled 0.006s
594 + The take and drop operations correctly update the durations 0.001s
595 + The take and drop operations correctly split the clip 0.003s
596 + The map operation maps all values 0.002s
597 + The zipWith operation combines two clips 0.007s
598 + Appending two audio clips correcty updates the duration 0.001s
599 + Appending two audio clips correcty merges at the boundaries 0.003s
600 + Repeating a clip correcty updates the duration 0.001s
601 + The mix operation combines multiple clips 0.005s
602 + A sampled AudioClip returns all samples 0.001s
603eu.joaocosta.minart.audio.AudioQueueSpec:
604 + An empty single channel audio queue returns 0 0.024s
605 + An single channel audio queue has size Int.MaxValue 0.008s
606 + A single channel audio queue correctly samples audio 0.015s
607 + A single channel audio queue correctly samples audio as bytes 0.003s
608 + A single channel audio queue can be cleared 0.002s
609 + A multi channel audio queue correctly mixes audio from two clips with the same duration 0.02s
610 + A multi channel audio queue correctly mixes audio from two clips with different durations 0.006s
611 + A multi channel audio queue correctly mixes audio with different mixing definitions 0.008s
612 + A multi channel audio queue correctly clips audio 0.007s
613 + A single channel audio queue can be cleared-1 0.007s
614eu.joaocosta.minart.geometry.MatrixSpec:
615 + Can be applied 0.007s
616 + Can be multiplied 0.0s
617 + Can be inverted 0.001s
618eu.joaocosta.minart.graphics.RamSurfaceSpec:
619 + Return the correct number of pixels 0.013s
620 + Write and read pixels in certain positions 0.001s
621 + Don't blow up when invalid positions are provided 0.001s
622 + Fill the surface with a single color 0.014s
623 + Combine two surfaces without blowing up 0.009s
624 + Combine a surface with a surface view without blowing up 0.003s
625 + Combine a surface with a plane without blowing up 0.004s
626 + Correctly combine two surfaces 0.003s
627 + Modify a surface in place 0.018s
628eu.joaocosta.minart.graphics.PlaneSpec:
629 + Can be created from a constant color 0.003s
630 + Can be created from a function 0.001s
631 + Can be created from a surface with a fallback color 0.004s
632 + Can be created from a surface with repetition 0.003s
633 + Mapping it updates the colors 0.009s
634 + Flatmapping it updates the colors based on the position 0.006s
635 + Transforming pixels is similar to flatmap 0.016s
636 + Contramapping updates the positions 0.016s
637 + Zipping combines two planes 0.005s
638 + Zipping combines a plane and a surface 0.007s
639 + Coflatmapping it updates the colors based on the kernel function 0.01s
640 + Coflatmapping it updates the colors based on the kernel 0.014s
641 + Clipping clips the view 0.001s
642 + Overlay combines a plane and a surface 0.003s
643 + Inverting the color updates all colors with the inverse 0.0s
644 + Translation moves all pixels 0.001s
645 + FlipH mirrors the pixels with the Y axis 0.012s
646 + FlipV mirrors the pixels with the X axis 0.002s
647 + Scale upscales the plane 0.006s
648 + Scale downscales the plane 0.0s
649 + Rotate moves all pixels clockwise 0.001s
650 + Shear moves all pixels 0.001s
651 + Transpose moves all pixels 0.0s
652eu.joaocosta.minart.graphics.SurfaceViewSpec:
653 + The identity view does nothing 0.002s
654 + The map view updates the colors 0.003s
655 + The flatMap view updates the colors based on the position 0.003s
656 + Transforming pixels is similar to flatmap 0.002s
657 + The contramap view updates the positions 0.002s
658 + The zip view combines two surfaces 0.002s
659 + Coflatmapping it updates the colors based on the kernel 0.003s
660 + The clip view clips a surface 0.001s
661 + Overlay combines two surfaces 0.001s
662 + FlipH mirrors the surface horizontally 0.002s
663 + FlipV mirrors the surface vertically 0.001s
664 + Scale upscales the surface 0.0s
665 + Scale downscales the plane 0.001s
666 + Scale upscale/downscales the plane across independent axis 0.0s
667 + Transpose transposes the image 0.001s
668Starting build for ProjectRef(file:/build/repo/,imageJVM) (minart-image)... [3/5]
669Compile scalacOptions: -encoding, utf8, -unchecked, -language:higherKinds, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Xsemanticdb, -semanticdb-target, /build/repo/image/jvm/target/scala-3.8.0-RC6/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
670[info] compiling 24 Scala sources to /build/repo/image/jvm/target/scala-3.8.0-RC6/classes ...
671[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/image/shared/src/main/scala/eu/joaocosta/minart/graphics/image/qoi/QoiImageReader.scala:31:8
672[warn] 31 | case (0xc0, 0x3e) =>
673[warn] | ^
674[warn] | match may not be exhaustive.
675[warn] |
676[warn] | It would fail on pattern case: (_, _)
677[warn] |
678[warn] | longer explanation available when compiling with `-explain`
679[warn] one warning found
680[info] done compiling
681[info] compiling 4 Scala sources to /build/repo/image/jvm/target/scala-3.8.0-RC6/test-classes ...
682[info] done compiling
683eu.joaocosta.minart.graphics.image.SpriteSheetSpec:
684 + Compute the number of sprites 0.01s
685 + Fetch sprite by position 0.003s
686 + Fetch sprite by index 0.005s
687eu.joaocosta.minart.graphics.image.WrapAroundSpec:
688 + getSurface generate a surface with the correct size 0.008s
689 + lineScroll generate a surface with the correct size 0.008s
690 + columnScroll generate a surface with the correct size 0.005s
691 + getSurface handles no scroll 0.001s
692 + lineScroll handles no scroll 0.001s
693 + columnScroll handles no scroll 0.008s
694 + getSurface handles positive scroll 0.001s
695 + lineScroll handles positive scroll 0.002s
696 + columnScroll handles positive scroll 0.001s
697 + getSurface handles negative scroll 0.0s
698 + lineScroll handles negative scroll 0.004s
699 + columnScroll handles negative scroll 0.005s
700 + getSurface handles overflow scroll 0.001s
701 + lineScroll handles overflow scroll 0.001s
702 + columnScroll handles overflow scroll 0.001s
703 + lineScroll handles variable scroll 0.006s
704 + columnScroll handles variable scroll 0.001s
705eu.joaocosta.minart.graphics.image.ImageWriterSpec:
706 + Write a PPM image 0.743s
707 + Write a BMP image 0.252s
708 + Write a QOI image 1.113s
709 + Write a PDI image 0.304s
710eu.joaocosta.minart.graphics.image.ImageReaderSpec:
711 + Load a BMP image 0.633s
712 + Load a PPM image 1.116s
713 + Load a PGM image 0.342s
714 + Load a PBM image 0.203s
715 + Load a QOI image 0.366s
716 + Load a PDI image 0.024s
717 + Load the same data from different formats (square image) 0.013s
718 + Load the same data from different formats (non-square image) 0.009s
719 + Load the same data from different formats (transparent image) 0.032s
720 + Load the same data from different formats (large image) 0.202s
721Starting build for ProjectRef(file:/build/repo/,rootJVM) (minart)... [4/5]
722Compile scalacOptions: -encoding, utf8, -unchecked, -language:higherKinds, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Xsemanticdb, -semanticdb-target, /build/repo/jvm/target/scala-3.8.0-RC6/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
723
724************************
725Build summary:
726[{
727 "module": "minart-sound",
728 "compile": {"status": "ok", "tookMs": 20184, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
729 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
730 "test-compile": {"status": "ok", "tookMs": 2666, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
731 "test": {"status": "ok", "tookMs": 1255, "passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7, "byFramework": [{"framework": "munit", "stats": {"passed": 7, "failed": 0, "ignored": 0, "skipped": 0, "total": 7}}]},
732 "publish": {"status": "skipped", "tookMs": 0},
733 "metadata": {
734 "crossScalaVersions": ["3.3.7"]
735}
736},{
737 "module": "minart-backend",
738 "compile": {"status": "ok", "tookMs": 205, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
739 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
740 "test-compile": {"status": "ok", "tookMs": 1168, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
741 "test": {"status": "ok", "tookMs": 352, "passed": 10, "failed": 0, "ignored": 0, "skipped": 0, "total": 10, "byFramework": [{"framework": "munit", "stats": {"passed": 10, "failed": 0, "ignored": 0, "skipped": 0, "total": 10}}]},
742 "publish": {"status": "skipped", "tookMs": 0},
743 "metadata": {
744 "crossScalaVersions": ["3.3.7"]
745}
746},{
747 "module": "minart-core",
748 "compile": {"status": "ok", "tookMs": 123, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
749 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
750 "test-compile": {"status": "ok", "tookMs": 3095, "warnings": 6, "errors": 0, "sourceVersion": "3.8"},
751 "test": {"status": "ok", "tookMs": 422, "passed": 112, "failed": 0, "ignored": 0, "skipped": 0, "total": 112, "byFramework": [{"framework": "munit", "stats": {"passed": 112, "failed": 0, "ignored": 0, "skipped": 0, "total": 112}}]},
752 "publish": {"status": "skipped", "tookMs": 0},
753 "metadata": {
754 "crossScalaVersions": ["3.3.7"]
755}
756},{
757 "module": "minart-image",
758 "compile": {"status": "ok", "tookMs": 2364, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
759 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
760 "test-compile": {"status": "ok", "tookMs": 1307, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
761 "test": {"status": "ok", "tookMs": 3347, "passed": 34, "failed": 0, "ignored": 0, "skipped": 0, "total": 34, "byFramework": [{"framework": "munit", "stats": {"passed": 34, "failed": 0, "ignored": 0, "skipped": 0, "total": 34}}]},
762 "publish": {"status": "skipped", "tookMs": 0},
763 "metadata": {
764 "crossScalaVersions": ["3.3.7"]
765}
766},{
767 "module": "minart",
768 "compile": {"status": "ok", "tookMs": 445, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
769 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
770 "test-compile": {"status": "ok", "tookMs": 443, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
771 "test": {"status": "ok", "tookMs": 444, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
772 "publish": {"status": "skipped", "tookMs": 0},
773 "metadata": {
774 "crossScalaVersions": ["3.3.7"]
775}
776}]
777************************
778[success] Total time: 44 s, completed Jan 8, 2026, 2:16:47 AM
779[0JChecking patch project/plugins.sbt...
780Checking patch core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala...
781Checking patch build.sbt...
782Applied patch project/plugins.sbt cleanly.
783Applied patch core/shared/src/main/scala/eu/joaocosta/minart/graphics/SurfaceView.scala cleanly.
784Applied patch build.sbt cleanly.