Build Logs

jd557/minart • 3.8.0-RC5:2025-12-31

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.386s.
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 backendJVM/crossScalaVersions
87OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in rootNative/crossScalaVersions
88OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in imageJVM/crossScalaVersions
89OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in soundJS/crossScalaVersions
90OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in imageNative/crossScalaVersions
91OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in coreJVM/crossScalaVersions
92OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in imageJS/crossScalaVersions
93OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in soundJVM/crossScalaVersions
94OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in backendNative/crossScalaVersions
95OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in coreJS/crossScalaVersions
96OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in soundNative/crossScalaVersions
97OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in rootJVM/crossScalaVersions
98OpenCB::Changing crossVersion 3.3.7 -> 3.7.4 in repo/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 Dec 31, 2025, 9:05:42 PM
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] scalafmt: Formatting 8 Scala sources (/build/repo/backend/jvm)...
171[info] compiling 2 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
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": 25220, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
287 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
288 "test-compile": {"status": "ok", "tookMs": 4235, "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": 192, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
297 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
298 "test-compile": {"status": "ok", "tookMs": 1085, "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": 97, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
307 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
308 "test-compile": {"status": "ok", "tookMs": 3238, "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": 2826, "warnings": 1, "errors": 0, "sourceVersion": "3.7-migration"},
317 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
318 "test-compile": {"status": "ok", "tookMs": 1218, "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": 419, "warnings": 0, "errors": 0, "sourceVersion": "3.7-migration"},
327 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
328 "test-compile": {"status": "ok", "tookMs": 486, "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 Dec 31, 2025, 9:06:29 PM
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 79bd81e1] 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-RC5
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-RC5
364Execute tests: true
365sbt project found:
366No prepare script found for project jd557/minart
367##################################
368Scala version: 3.8.0-RC5
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-RC5
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-RC5"
390"++3.8.0-RC5 -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-RC5 """{"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-RC5
406OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in soundJS/crossScalaVersions
407OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in imageJVM/crossScalaVersions
408OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in rootNative/crossScalaVersions
409OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in imageNative/crossScalaVersions
410OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in coreJVM/crossScalaVersions
411OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in backendJVM/crossScalaVersions
412OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in imageJS/crossScalaVersions
413OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in backendNative/crossScalaVersions
414OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in soundJVM/crossScalaVersions
415OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in repo/crossScalaVersions
416OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in coreJS/crossScalaVersions
417OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in soundNative/crossScalaVersions
418OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in backendJS/crossScalaVersions
419OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in rootJVM/crossScalaVersions
420OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in coreNative/crossScalaVersions
421OpenCB::Changing crossVersion 3.3.7 -> 3.8.0-RC5 in rootJS/crossScalaVersions
422[info] set current project to minart (in build file:/build/repo/)
423[info] Setting Scala version to 3.8.0-RC5 on 16 projects.
424[info] Switching Scala version on:
425[info] imageNative (3.8.0-RC5)
426[info] backendNative (3.8.0-RC5)
427[info] imageJS (3.8.0-RC5)
428[info] rootJS (3.8.0-RC5)
429[info] coreNative (3.8.0-RC5)
430[info] backendJVM (3.8.0-RC5)
431[info] soundJVM (3.8.0-RC5)
432[info] soundNative (3.8.0-RC5)
433[info] coreJS (3.8.0-RC5)
434[info] coreJVM (3.8.0-RC5)
435[info] rootJVM (3.8.0-RC5)
436[info] rootNative (3.8.0-RC5)
437[info] soundJS (3.8.0-RC5)
438[info] * repo (3.8.0-RC5)
439[info] imageJVM (3.8.0-RC5)
440[info] backendJS (3.8.0-RC5)
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 Dec 31, 2025, 9:06:47 PM
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-RC5/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-RC5/classes ...
476[info] done compiling
477[info] compiling 17 Scala sources to /build/repo/sound/jvm/target/scala-3.8.0-RC5/classes ...
478[info] done compiling
479[info] compiling 8 Scala sources to /build/repo/backend/jvm/target/scala-3.8.0-RC5/classes ...
480[info] done compiling
481[info] compiling 2 Scala sources to /build/repo/sound/jvm/target/scala-3.8.0-RC5/test-classes ...
482[info] done compiling
483eu.joaocosta.minart.audio.sound.AudioClipWriterSpec:
484 + Write a AIFF clip 0.284s
485 + Write a WAV clip 0.105s
486eu.joaocosta.minart.audio.sound.AudioClipReaderSpec:
487 + Load an AIFF file 0.154s
488 + Load a WAV file 0.106s
489 + Load a QOA file 0.18s
490 + Load the same data from different lossless formats 0.036s
491 + Load the similar data from different formats 0.146s
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-RC5/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-RC5/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.024s
503eu.joaocosta.minart.graphics.BufferedImageSurfaceSpec:
504 + Return the correct number of pixels 0.024s
505 + Write and read pixels in certain positions 0.004s
506 + Don't blow up when invalid positions are provided 0.001s
507 + Fill the surface with a single color 0.009s
508 + Combine two surfaces without blowing up 0.003s
509 + Combine a surface with a surface view without blowing up 0.005s
510 + Combine a surface with a plane without blowing up 0.007s
511 + Correctly combine two surfaces 0.006s
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-RC5/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-RC5/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.geometry.ConvexPolygonSpec:
543 + Computes the bounding box of a polygon 0.019s
544 + Check if a polygon contains a point 0.001s
545 + Return the polygon face 0.009s
546 + Check if a polygon is contained in another 0.001s
547 + Check if a polygon collides with another 0.003s
548 + Can be transformed with a chain of transformations 0.006s
549eu.joaocosta.minart.geometry.CircleSpec:
550 + Computes the bounding box of a circle 0.017s
551 + Check if a circle contains a point 0.004s
552 + Return the circle face 0.002s
553 + Check if a circle is contained in a circle 0.001s
554 + Check if a circle collides with another 0.003s
555 + Can be transformed with a chain of transformations 0.01s
556eu.joaocosta.minart.input.KeyboardInputSpec:
557 + Correctly captures key presses and releases 0.072s
558eu.joaocosta.minart.audio.AudioClipSpec:
559 + An audio clip is correctly sampled 0.011s
560 + The take and drop operations correctly update the durations 0.004s
561 + The take and drop operations correctly split the clip 0.002s
562 + The map operation maps all values 0.002s
563 + The zipWith operation combines two clips 0.01s
564 + Appending two audio clips correcty updates the duration 0.001s
565 + Appending two audio clips correcty merges at the boundaries 0.003s
566 + Repeating a clip correcty updates the duration 0.002s
567 + The mix operation combines multiple clips 0.006s
568 + A sampled AudioClip returns all samples 0.002s
569eu.joaocosta.minart.graphics.RamSurfaceSpec:
570 + Return the correct number of pixels 0.021s
571 + Write and read pixels in certain positions 0.004s
572 + Don't blow up when invalid positions are provided 0.001s
573 + Fill the surface with a single color 0.022s
574 + Combine two surfaces without blowing up 0.009s
575 + Combine a surface with a surface view without blowing up 0.008s
576 + Combine a surface with a plane without blowing up 0.015s
577 + Correctly combine two surfaces 0.01s
578 + Modify a surface in place 0.018s
579eu.joaocosta.minart.graphics.ColorSpec:
580 + Can be created from RGB values 0.001s
581 + Can be created from RGBA values 0.001s
582 + Can be created from grayscale values 0.001s
583 + Can be created from raw RGB values 0.0s
584 + Can be created from raw ARGB values 0.0s
585 + Can be created from raw BGR values 0.001s
586 + Can be created from raw ABGR values 0.001s
587 + Can be unnapplied 0.001s
588 + Can be summed/subtracted without overflowing/underflowing 0.008s
589 + Can be multiplied without overflowing/undeflowing 0.001s
590 + Can be inverted 0.0s
591 + Can be premultiplied 0.001s
592 + Operations either ignore or keep the alpha as specified 0.012s
593eu.joaocosta.minart.audio.AudioWaveSpec:
594 + A sampled AudioWave returns all samples 0.002s
595eu.joaocosta.minart.input.PointerInputSpec:
596 + Correctly captures pointer presses and releases 0.007s
597eu.joaocosta.minart.geometry.MatrixSpec:
598 + Can be applied 0.005s
599 + Can be multiplied 0.0s
600 + Can be inverted 0.002s
601eu.joaocosta.minart.geometry.AxisAlignedBoundingBoxSpec:
602 + Computes helper positions 0.001s
603 + Checks if a point is inside the box 0.001s
604 + Checks if a box is inside the box 0.0s
605 + Checks if a box collides the box 0.012s
606 + Merge two bounding boxes when there's a gap 0.001s
607 + Merge two bounding boxes when they intersect 0.0s
608 + Return an empty bounding box intersection when there's a gap 0.003s
609 + Shrink two bounding boxes when they intersect 0.0s
610eu.joaocosta.minart.audio.AudioQueueSpec:
611 + An empty single channel audio queue returns 0 0.011s
612 + An single channel audio queue has size Int.MaxValue 0.005s
613 + A single channel audio queue correctly samples audio 0.017s
614 + A single channel audio queue correctly samples audio as bytes 0.011s
615 + A single channel audio queue can be cleared 0.001s
616 + A multi channel audio queue correctly mixes audio from two clips with the same duration 0.027s
617 + A multi channel audio queue correctly mixes audio from two clips with different durations 0.006s
618 + A multi channel audio queue correctly mixes audio with different mixing definitions 0.006s
619 + A multi channel audio queue correctly clips audio 0.013s
620 + A single channel audio queue can be cleared-1 0.009s
621eu.joaocosta.minart.graphics.KernelSpec:
622 + Can be created from a odd-sized matrix 0.008s
623 + Cannot be created from a even-sized matrix 0.005s
624 + Cannot be created from an unbalanced matrix 0.0s
625 + Cannot be created with a normalization constant of 0 0.001s
626 + Can be compared for equality 0.003s
627 + Can be created with automatic normalization 0.007s
628eu.joaocosta.minart.graphics.SurfaceViewSpec:
629 + The identity view does nothing 0.006s
630 + The map view updates the colors 0.009s
631 + The flatMap view updates the colors based on the position 0.006s
632 + Transforming pixels is similar to flatmap 0.008s
633 + The contramap view updates the positions 0.018s
634 + The zip view combines two surfaces 0.005s
635 + Coflatmapping it updates the colors based on the kernel 0.01s
636 + The clip view clips a surface 0.003s
637 + Overlay combines two surfaces 0.008s
638 + FlipH mirrors the surface horizontally 0.002s
639 + FlipV mirrors the surface vertically 0.003s
640 + Scale upscales the surface 0.001s
641 + Scale downscales the plane 0.0s
642 + Scale upscale/downscales the plane across independent axis 0.001s
643 + Transpose transposes the image 0.004s
644eu.joaocosta.minart.graphics.PlaneSpec:
645 + Can be created from a constant color 0.003s
646 + Can be created from a function 0.001s
647 + Can be created from a surface with a fallback color 0.001s
648 + Can be created from a surface with repetition 0.0s
649 + Mapping it updates the colors 0.003s
650 + Flatmapping it updates the colors based on the position 0.009s
651 + Transforming pixels is similar to flatmap 0.006s
652 + Contramapping updates the positions 0.002s
653 + Zipping combines two planes 0.002s
654 + Zipping combines a plane and a surface 0.005s
655 + Coflatmapping it updates the colors based on the kernel function 0.004s
656 + Coflatmapping it updates the colors based on the kernel 0.003s
657 + Clipping clips the view 0.001s
658 + Overlay combines a plane and a surface 0.001s
659 + Inverting the color updates all colors with the inverse 0.0s
660 + Translation moves all pixels 0.0s
661 + FlipH mirrors the pixels with the Y axis 0.0s
662 + FlipV mirrors the pixels with the X axis 0.001s
663 + Scale upscales the plane 0.0s
664 + Scale downscales the plane 0.001s
665 + Rotate moves all pixels clockwise 0.001s
666 + Shear moves all pixels 0.0s
667 + Transpose moves all pixels 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-RC5/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-RC5/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-RC5/test-classes ...
682[info] done compiling
683eu.joaocosta.minart.graphics.image.SpriteSheetSpec:
684 + Compute the number of sprites 0.008s
685 + Fetch sprite by position 0.004s
686 + Fetch sprite by index 0.004s
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.003s
690 + columnScroll generate a surface with the correct size 0.001s
691 + getSurface handles no scroll 0.002s
692 + lineScroll handles no scroll 0.001s
693 + columnScroll handles no scroll 0.002s
694 + getSurface handles positive scroll 0.002s
695 + lineScroll handles positive scroll 0.001s
696 + columnScroll handles positive scroll 0.001s
697 + getSurface handles negative scroll 0.001s
698 + lineScroll handles negative scroll 0.005s
699 + columnScroll handles negative scroll 0.001s
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.001s
704 + columnScroll handles variable scroll 0.001s
705eu.joaocosta.minart.graphics.image.ImageWriterSpec:
706 + Write a PPM image 0.708s
707 + Write a BMP image 0.198s
708 + Write a QOI image 1.109s
709 + Write a PDI image 0.37s
710eu.joaocosta.minart.graphics.image.ImageReaderSpec:
711 + Load a BMP image 0.599s
712 + Load a PPM image 0.917s
713 + Load a PGM image 0.271s
714 + Load a PBM image 0.195s
715 + Load a QOI image 0.527s
716 + Load a PDI image 0.026s
717 + Load the same data from different formats (square image) 0.012s
718 + Load the same data from different formats (non-square image) 0.012s
719 + Load the same data from different formats (transparent image) 0.02s
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-RC5/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": 19769, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
729 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
730 "test-compile": {"status": "ok", "tookMs": 2601, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
731 "test": {"status": "ok", "tookMs": 1225, "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": 169, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
739 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
740 "test-compile": {"status": "ok", "tookMs": 1278, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
741 "test": {"status": "ok", "tookMs": 377, "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": 108, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
749 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
750 "test-compile": {"status": "ok", "tookMs": 3047, "warnings": 6, "errors": 0, "sourceVersion": "3.8"},
751 "test": {"status": "ok", "tookMs": 403, "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": 2344, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
759 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
760 "test-compile": {"status": "ok", "tookMs": 1268, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
761 "test": {"status": "ok", "tookMs": 3118, "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": 385, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
769 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
770 "test-compile": {"status": "ok", "tookMs": 396, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
771 "test": {"status": "ok", "tookMs": 361, "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: 43 s, completed Dec 31, 2025, 9:07:31 PM
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.