Build Logs

creativescala/doodle • 3.8.0-RC3:2025-12-04

Errors

0

Warnings

90

Total Lines

626

1##################################
2Clonning https://github.com/creativescala/doodle.git into /build/repo using revision 0.32.0
3##################################
4Note: switching to 'be90196d816357a15badda83792ad31c20e30458'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21Would override fixed Scala version: 3.3.6
22----
23Preparing build for 3.8.0-RC3
24Scala binary version found: 3.8
25Implicitly using source version 3.8
26Scala binary version found: 3.8
27Implicitly using source version 3.8
28Would try to apply common scalacOption (best-effort, sbt/mill only):
29Append: ,REQUIRE:-source:3.8
30Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
31
32Try apply source patch:
33Path: build.sbt
34Pattern: val scala3 = "3.3.6"
35Replacement: val scala3 = "3.8.0-RC3"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (17))
38Compiled project (Scala 3.7.3, JVM (17))
39Successfully applied pattern 'val scala3 = "3.3.6"' in build.sbt
40----
41Starting build for 3.8.0-RC3
42Execute tests: true
43sbt project found:
44Sbt version 1.11.4 is not supported, minimal supported version is 1.11.5
45Enforcing usage of sbt in version 1.11.5
46No prepare script found for project creativescala/doodle
47##################################
48Scala version: 3.8.0-RC3
49Targets: org.creativescala%doodle org.creativescala%doodle-algebra org.creativescala%doodle-core org.creativescala%doodle-docs org.creativescala%doodle-examples org.creativescala%doodle-golden org.creativescala%doodle-image org.creativescala%doodle-interact org.creativescala%doodle-java2d org.creativescala%doodle-reactor org.creativescala%doodle-svg org.creativescala%doodle-turtle
50Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.6\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
51##################################
52Using extra scalacOptions: ,REQUIRE:-source:3.8
53Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
54[sbt_options] declare -a sbt_options=()
55[process_args] java_version = '17'
56[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
57# Executing command line:
58java
59-Xmx4G
60-Dcommunitybuild.scala=3.8.0-RC3
61-Dcommunitybuild.project.dependencies.add=
62-Xmx7G
63-Xms4G
64-Xss8M
65-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
66-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
67-jar
68/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
69"setCrossScalaVersions 3.8.0-RC3"
70"++3.8.0-RC3 -v"
71"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
72"set every credentials := Nil"
73"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
74"removeScalacOptionsStartingWith -P:wartremover"
75
76moduleMappings
77"runBuild 3.8.0-RC3 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.6\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" org.creativescala%doodle org.creativescala%doodle-algebra org.creativescala%doodle-core org.creativescala%doodle-docs org.creativescala%doodle-examples org.creativescala%doodle-golden org.creativescala%doodle-image org.creativescala%doodle-interact org.creativescala%doodle-java2d org.creativescala%doodle-reactor org.creativescala%doodle-svg org.creativescala%doodle-turtle"
78
79[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
80[info] loading settings for project repo-build-build from plugins.sbt...
81[info] loading project definition from /build/repo/project/project
82[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
83[info] loading project definition from /build/repo/project
84[info] compiling 3 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
85[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
86[info] Compilation completed in 8.997s.
87[info] done compiling
88[info] loading settings for project repo from build.sbt...
89[info] resolving key references (29982 settings) ...
90[info] set scmInfo to https://github.com/creativescala/doodle
91[info] set current project to repo (in build file:/build/repo/)
92Execute setCrossScalaVersions: 3.8.0-RC3
93OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in turtleJVM/crossScalaVersions
94OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in unidocs/crossScalaVersions
95[info] set scmInfo to https://github.com/creativescala/doodle
96OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in rootJVM/crossScalaVersions
97OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in golden/crossScalaVersions
98OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in docs/crossScalaVersions
99OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in canvas/crossScalaVersions
100OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in coreJVM/crossScalaVersions
101OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in examplesJS/crossScalaVersions
102OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in repo/crossScalaVersions
103OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in interactJVM/crossScalaVersions
104OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in algebraJS/crossScalaVersions
105OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in examplesJVM/crossScalaVersions
106OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in java2d/crossScalaVersions
107OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in turtleJS/crossScalaVersions
108OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in coreJS/crossScalaVersions
109OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in rootJS/crossScalaVersions
110OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in reactorJS/crossScalaVersions
111OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in algebraJVM/crossScalaVersions
112OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in imageJVM/crossScalaVersions
113OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in imageJS/crossScalaVersions
114OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in reactorJVM/crossScalaVersions
115OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in interactJS/crossScalaVersions
116OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in svgJS/crossScalaVersions
117OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in svgJVM/crossScalaVersions
118[info] set current project to repo (in build file:/build/repo/)
119[info] Setting Scala version to 3.8.0-RC3 on 24 projects.
120[info] Switching Scala version on:
121[info] reactorJS (3.8.0-RC3)
122[info] imageJS (3.8.0-RC3)
123[info] unidocs (3.8.0-RC3)
124[info] rootJS (3.8.0-RC3)
125[info] docs (3.8.0-RC3)
126[info] reactorJVM (3.8.0-RC3)
127[info] coreJS (3.8.0-RC3)
128[info] examplesJS (3.8.0-RC3)
129[info] turtleJS (3.8.0-RC3)
130[info] coreJVM (3.8.0-RC3)
131[info] rootJVM (3.8.0-RC3)
132[info] interactJS (3.8.0-RC3)
133[info] interactJVM (3.8.0-RC3)
134[info] java2d (3.8.0-RC3)
135[info] examplesJVM (3.8.0-RC3)
136[info] algebraJVM (3.8.0-RC3)
137[info] algebraJS (3.8.0-RC3)
138[info] * repo (3.8.0-RC3)
139[info] turtleJVM (3.8.0-RC3)
140[info] imageJVM (3.8.0-RC3)
141[info] svgJVM (3.8.0-RC3)
142[info] svgJS (3.8.0-RC3)
143[info] golden (3.8.0-RC3)
144[info] canvas (3.8.0-RC3)
145[info] Excluding projects:
146[info] Reapplying settings...
147[info] set scmInfo to https://github.com/creativescala/doodle
148[info] set current project to repo (in build file:/build/repo/)
149Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
150[info] Reapplying settings...
151[info] set scmInfo to https://github.com/creativescala/doodle
152[info] set current project to repo (in build file:/build/repo/)
153[info] Defining Global / credentials, algebraJS / credentials and 22 others.
154[info] The new values will be used by Compile / scalafmtOnly, IntegrationTest / scalafmtOnly and 238 others.
155[info] Run `last` for details.
156[info] Reapplying settings...
157[info] set scmInfo to https://github.com/creativescala/doodle
158[info] set current project to repo (in build file:/build/repo/)
159Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
160[info] Reapplying settings...
161OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
162
163 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
164 Did you mean rootJVM / allExcludeDependencies ?
165 , retry without global scopes
166[info] Reapplying settings...
167[info] set scmInfo to https://github.com/creativescala/doodle
168[info] set current project to repo (in build file:/build/repo/)
169Execute removeScalacOptionsStartingWith: -P:wartremover
170[info] Reapplying settings...
171[info] set scmInfo to https://github.com/creativescala/doodle
172[info] set current project to repo (in build file:/build/repo/)
173[success] Total time: 0 s, completed Dec 4, 2025, 3:33:41 PM
174Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.6\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
175Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
176Starting build...
177Projects: Set(unidocs, reactorJVM, coreJVM, rootJVM, interactJVM, java2d, examplesJVM, algebraJVM, turtleJVM, imageJVM, svgJVM, golden)
178Starting build for ProjectRef(file:/build/repo/,interactJVM) (doodle-interact)... [0/12]
179OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
180OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
181OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
182Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/interact/jvm/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
183[info] compiling 29 Scala sources to /build/repo/core/jvm/target/scala-3.8.0-RC3/classes ...
184[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/main/scala/doodle/core/Transform.scala:20:24
185[warn] 20 |import scala.annotation.tailrec
186[warn] | ^^^^^^^
187[warn] | unused import
188[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/main/scala/doodle/random/Sampler.scala:54:4
189[warn] 54 | rng =>
190[warn] | ^^^
191[warn] | unused explicit parameter
192[warn] -- [E194] Potential Issue Warning: /build/repo/core/shared/src/main/scala/doodle/random/Random.scala:26:6
193[warn] 26 | def run(rng: scala.util.Random): A =
194[warn] | ^
195[warn] |Extension method run will never be selected from type Free
196[warn] |because Free already has a member with the same name and compatible parameter types.
197[warn] |
198[warn] | longer explanation available when compiling with `-explain`
199[warn] three warnings found
200[info] done compiling
201[info] compiling 64 Scala sources to /build/repo/algebra/jvm/target/scala-3.8.0-RC3/classes ...
202[warn] -- [E198] Unused Symbol Warning: /build/repo/algebra/jvm/src/main/scala/doodle/syntax/BufferedImageWriterSyntax.scala:54:8
203[warn] 54 | r: IORuntime
204[warn] | ^
205[warn] | unused implicit parameter
206[warn] -- [E198] Unused Symbol Warning: /build/repo/algebra/shared/src/main/scala/doodle/algebra/generic/Finalized.scala:23:17
207[warn] 23 |import cats.data.*
208[warn] | ^
209[warn] | unused import
210[warn] two warnings found
211[info] done compiling
212[info] compiling 20 Scala sources to /build/repo/interact/jvm/target/scala-3.8.0-RC3/classes ...
213[warn] -- [E198] Unused Symbol Warning: /build/repo/interact/shared/src/main/scala/doodle/interact/syntax/MouseOverSyntax.scala:28:6
214[warn] 28 | picture: Picture[Alg, A]
215[warn] | ^^^^^^^
216[warn] | unused explicit parameter
217[warn] one warning found
218[info] done compiling
219[info] compiling 14 Scala sources to /build/repo/core/jvm/target/scala-3.8.0-RC3/test-classes ...
220[info] done compiling
221[info] compiling 14 Scala sources to /build/repo/algebra/jvm/target/scala-3.8.0-RC3/test-classes ...
222[warn] -- [E198] Unused Symbol Warning: /build/repo/algebra/shared/src/test/scala/doodle/algebra/generic/TestAlgebra.scala:55:22
223[warn] 55 | fa.flatMap { (bb, rdr) =>
224[warn] | ^^
225[warn] | unused explicit parameter
226[warn] one warning found
227[info] done compiling
228[info] compiling 3 Scala sources to /build/repo/interact/jvm/target/scala-3.8.0-RC3/test-classes ...
229[info] done compiling
230[info] + Easing properties.ends at 1: OK, proved property.
231[info] + Easing properties.identity is the identity: OK, passed 100 tests.
232[info] + Easing properties.followedBy sends [0.5,1.0] to second function: OK, passed 100 tests.
233[info] + Easing properties.reflect is its own inverse: OK, passed 100 tests.
234[info] + Easing properties.starts at 0: OK, proved property.
235[info] + Easing properties.followedBy sends [0,0.5) to first function: OK, passed 100 tests.
236doodle.interact.animation.InterpolationSpec:
237 + upTo empty range produces no output 0.302s
238 + upToIncluding empty range produces single output 0.017s
239 + upTo is empty when steps is zero 0.021s
240 + upToIncluding is empty when steps is zero 0.02s
241 + upTo produces requested number of steps when range is not empty 0.025s
242 + upToIncluding produces requested number of steps when range is not empty 0.019s
243 + upTo produces expected data 0.012s
244 + upToIncluding produces expected data 0.017s
245 + upToIncluding ends on stop 0.018s
246 + map transforms data 0.013s
247 + constant is always constant 0.02s
248doodle.interact.animation.TransducerSpec:
249 + empty produces no output 0.287s
250 + pure produces just one output 0.013s
251 + toList generates all elements from the transducer 0.042s
252 + product produces shortest pairs 0.044s
253 + ++ combines transducers in series 0.035s
254 + and combines transducers in parallel 0.098s
255 + and retains last value of first transducer to stop 0.011s
256 + andThen passes last output to the second transducer 0.015s
257 + repeat repeats the given number of times 0.023s
258 + repeatForever seems to repeat forever 0.078s
259 + scanLeft produces cumulative results 0.016s
260 + Transducer.scanLeft produces expected output 0.268s
261 + Transducer.scanLeftUntil runs until the stop condition is met 0.012s
262Starting build for ProjectRef(file:/build/repo/,examplesJVM) (doodle-examples)... [1/12]
263Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/examples/jvm/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
264[info] compiling 42 Scala sources and 1 Java source to /build/repo/java2d/target/scala-3.8.0-RC3/classes ...
265[warn] -- [E198] Unused Symbol Warning: /build/repo/java2d/src/main/scala/doodle/java2d/algebra/Algebra.scala:64:22
266[warn] 64 | fa.flatMap { (bb, rdr) =>
267[warn] | ^^
268[warn] | unused explicit parameter
269[warn] -- [E198] Unused Symbol Warning: /build/repo/java2d/src/main/scala/doodle/java2d/effect/Frame.scala:100:43
270[warn] 100 | case DoNotBlock extends BlockingBehavior(canvas => IO.unit)
271[warn] | ^^^^^^
272[warn] | unused explicit parameter
273[warn] -- [E198] Unused Symbol Warning: /build/repo/java2d/src/main/scala/doodle/java2d/effect/RenderRequest.scala:24:37
274[warn] 24 |import doodle.java2d.algebra.reified.Reified
275[warn] | ^^^^^^^
276[warn] | unused import
277[warn] three warnings found
278[info] done compiling
279[info] compiling 20 Scala sources to /build/repo/svg/jvm/target/scala-3.8.0-RC3/classes ...
280[info] compiling 50 Scala sources to /build/repo/image/jvm/target/scala-3.8.0-RC3/classes ...
281[warn] -- [E198] Unused Symbol Warning: /build/repo/svg/jvm/src/main/scala/doodle/svg/algebra/Algebra.scala:79:24
282[warn] 79 | fa.flatMap { (bb, rdr) =>
283[warn] | ^^
284[warn] | unused explicit parameter
285[warn] -- [E198] Unused Symbol Warning: /build/repo/svg/shared/src/main/scala/doodle/svg/algebra/Filter.scala:37:25
286[warn] 37 | Finalized.leaf { dc =>
287[warn] | ^^
288[warn] | unused explicit parameter
289[warn] -- [E198] Unused Symbol Warning: /build/repo/svg/shared/src/main/scala/doodle/svg/algebra/Filter.scala:86:25
290[warn] 86 | Finalized.leaf { dc =>
291[warn] | ^^
292[warn] | unused explicit parameter
293[warn] -- [E198] Unused Symbol Warning: /build/repo/svg/shared/src/main/scala/doodle/svg/algebra/Filter.scala:112:25
294[warn] 112 | Finalized.leaf { dc =>
295[warn] | ^^
296[warn] | unused explicit parameter
297[warn] -- [E198] Unused Symbol Warning: /build/repo/svg/shared/src/main/scala/doodle/svg/algebra/Image.scala:37:23
298[warn] 37 | Finalized.leaf { dc =>
299[warn] | ^^
300[warn] | unused explicit parameter
301[warn] 5 warnings found
302[info] done compiling
303[warn] there was 1 deprecation warning; re-run with -deprecation for details
304[warn] one warning found
305[info] done compiling
306[info] compiling 6 Scala sources to /build/repo/reactor/jvm/target/scala-3.8.0-RC3/classes ...
307[warn] -- [E198] Unused Symbol Warning: /build/repo/reactor/shared/src/main/scala/doodle/reactor/syntax/AbstractReactorSyntax.scala:76:8
308[warn] 76 | r: IORuntime
309[warn] | ^
310[warn] | unused implicit parameter in extension method animateWithCanvasToIO
311[warn] one warning found
312[info] done compiling
313[info] compiling 1 Scala source to /build/repo/examples/jvm/target/scala-3.8.0-RC3/classes ...
314[warn] -- [E198] Unused Symbol Warning: /build/repo/examples/jvm/src/main/scala/doodle/examples/svg/SvgTaggedJvmExample.scala:34:15
315[warn] 34 | def drawLink(id: String): Unit =
316[warn] | ^^
317[warn] | unused explicit parameter
318[warn] one warning found
319[info] done compiling
320Starting build for ProjectRef(file:/build/repo/,svgJVM) (doodle-svg)... [2/12]
321Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/svg/jvm/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
322[info] compiling 5 Scala sources to /build/repo/svg/jvm/target/scala-3.8.0-RC3/test-classes ...
323[warn] -- [E198] Unused Symbol Warning: /build/repo/svg/shared/src/test/scala/doodle/svg/SvgLoadBitmapSpec.scala:21:19
324[warn] 21 |import doodle.core.*
325[warn] | ^
326[warn] | unused import
327[warn] -- [E198] Unused Symbol Warning: /build/repo/svg/shared/src/test/scala/doodle/svg/algebra/TestAlgebra.scala:60:24
328[warn] 60 | fa.flatMap { (bb, rdr) =>
329[warn] | ^^
330[warn] | unused explicit parameter
331[warn] two warnings found
332[info] done compiling
333doodle.svg.effect.SvgSpec:
334 + circle renders to svg circle 0.174s
335 + paths of path elements render correctly 0.011s
336 + monospaced fonts render correctly 0.013s
337 + paths of points render correctly 0.002s
338doodle.svg.SvgLoadBitmapSpec:
339 + LoadBitmap creates correct SvgImageRef from URL 0.156s
340 + LoadBitmap creates SvgImageRef with dimensions 0.008s
341 + LoadBitmap creates SvgImageRef with width only 0.009s
342 + LoadBitmap creates SvgImageRef with height only 0.009s
343 + image method creates Drawing with correct bounding box 0.011s
344 + image element is properly centered 0.019s
345 + default dimensions are used when not specified 0.01s
346 + image renders to SVG image element 0.009s
347 + image without dimensions renders correctly 0.007s
348 + image with only width renders correctly 0.004s
349doodle.svg.FilterSpec:
350 + gaussianBlur filter should render 0.294s
351 + boxBlur filter should render 0.008s
352 + detectEdges filter should render 0.004s
353 + sharpen filter should render 0.003s
354 + emboss filter should render 0.003s
355 + dropShadow filter should render 0.006s
356 + custom convolve filter should render 0.012s
357 + non-square kernel should render with two order values 0.005s
358 + filters should generate unique IDs 0.002s
359 + multiple filters can be applied 0.003s
360Starting build for ProjectRef(file:/build/repo/,unidocs) (doodle-docs)... [3/12]
361Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/unidocs/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
362Starting build for ProjectRef(file:/build/repo/,coreJVM) (doodle-core)... [4/12]
363Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/core/jvm/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
364doodle.random.SamplerSuite:
365 + Sampler.cyclic produces items in expected order 0.025s
366 + Sampler.random produces all allowed items 0.002s
367 + Sampler.noRepeats does not repeat previous sample 0.004s
368doodle.core.ColorSuite:
369 + toRgb should convert to expected Rgb color 0.032s
370 + toOkLCh should convert to expected OkLCh color 0.004s
371 + Hsl with 0 saturation should convert to gray Rgb 0.004s
372 + Hsl spin should transform correctly 0.002s
373 + Fade in/out should transform correctly 0.001s
374 + parse hex colors correctly 0.007s
375doodle.core.ColorSpec:
376 + .toRgb andThen .toOklch is the identity 0.042s
377 + .toOklch andThen .toRgb is the identity 0.011s
378[info] + ClosedPath properties.added element is last in the list of elements: OK, passed 100 tests.
379[info] + Angle syntax properties..turns: OK, passed 100 tests.
380[info] + Angle syntax properties..radians: OK, passed 100 tests.
381[info] + Angle syntax properties..degrees: OK, passed 100 tests.
382[info] + ClosedPath properties.appended list comes after original elements: OK, passed 100 tests.
383[info] + Angle properties.angle has bijection to Double as turns: OK, passed 100 tests.
384[info] + Angle properties.angle negation is inverse: OK, passed 100 tests.
385[info] + Angle properties.angle has bijection to Double as degrees: OK, passed 100 tests.
386[info] + OpenPath properties.added element is last in the list of elements: OK, passed 100 tests.
387[info] + Angle properties.angle double negation is identity: OK, passed 100 tests.
388[info] + OpenPath properties.appended list comes after original elements: OK, passed 100 tests.
389[info] + Angle properties.angle has bijection to Double as radians: OK, passed 100 tests.
390[info] + Normalized syntax..normalized: OK, passed 100 tests.
391[info] + Transform.horizontalReflection: OK, passed 100 tests.
392[info] + Transform.verticalReflection: OK, passed 100 tests.
393[info] + Transform.scale scale the x and y coordinates appropriately: OK, passed 100 tests.
394[info] + Transform.rotate rotate the point: OK, passed 100 tests.
395[info] + Transform.andThen compose the transformations: OK, passed 100 tests.
396[info] + Transform.logicalToScreen: OK, passed 100 tests.
397[info] + Coordinate properties.minusOneHundredPercent evaluates correctly: OK, passed 100 tests.
398[info] + Transform.screenToLogical: OK, passed 100 tests.
399[info] + Coordinate properties.addition of percent and point is correct: OK, passed 100 tests.
400[info] + Coordinate properties.oneHundredPercent evaluates correctly: OK, passed 100 tests.
401[info] + Coordinate properties.subtraction of percent and point is correct: OK, passed 100 tests.
402Starting build for ProjectRef(file:/build/repo/,java2d) (doodle-java2d)... [5/12]
403Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/java2d/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
404[info] compiling 6 Scala sources to /build/repo/java2d/target/scala-3.8.0-RC3/test-classes ...
405[info] done compiling
406doodle.java2d.effect.BlockingCircularQueueSuite:
407 + Sequential access returns expected values 0.021s
408doodle.java2d.algebra.Java2dLoadBitmapSuite:
409 + LoadBitmap should successfully load a valid image file 0.224s
410 + LoadBitmap should return FileNotFound for non-existent file 0.005s
411 + LoadBitmap should return InvalidFormat for non-image file 0.002s
412 + LoadBitmap should work with Path 0.008s
413 + BufferedImage should convert to Picture using existing ToPicture 0.0s
414 + Complete flow: load image and convert to Picture 0.021s
415doodle.java2d.BufferedImageWriteSuite:
416 + writing to file produces the same output as writing BufferedImage to file 0.283s
417doodle.java2d.Base64WriterSuite:
418 + base64 should work with png 0.483s
419 + base64 should work with gif 0.03s
420 + base64 should work with jpg 0.017s
421doodle.java2d.ToPictureSuite:
422 + toPicture should work with png 0.215s
423 + toPicture should work with gif 0.034s
424 + toPicture should work with jpg 0.023s
425doodle.java2d.FileWriterSuite:
426 + write should work with png 0.473s
427 + write should work with gif 0.026s
428 + write should work with pdf 0.125s
429 + write should work with jpg 0.005s
430Starting build for ProjectRef(file:/build/repo/,imageJVM) (doodle-image)... [6/12]
431Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/image/jvm/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
432Starting build for ProjectRef(file:/build/repo/,reactorJVM) (doodle-reactor)... [7/12]
433Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/reactor/jvm/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
434Starting build for ProjectRef(file:/build/repo/,rootJVM) (doodle)... [8/12]
435Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/jvm/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
436[info] compiling 6 Scala sources to /build/repo/turtle/jvm/target/scala-3.8.0-RC3/classes ...
437[info] done compiling
438Starting build for ProjectRef(file:/build/repo/,algebraJVM) (doodle-algebra)... [9/12]
439Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/algebra/jvm/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
440[info] + Size properties.size matches bounding box size: OK, passed 100 tests.
441[info] + Generic algebra properties.Above doubles the height: OK, passed 100 tests.
442[info] + Size properties.height matches bounding box height: OK, passed 100 tests.
443[info] + Size properties.width matches bounding box width: OK, passed 100 tests.
444[info] + Text properties.strokeColor is preserved for text: OK, passed 100 tests.
445[info] + Generic algebra properties.On doesn't change the bounding box: OK, passed 100 tests.
446[info] + Generic algebra properties.Beside doubles the width: OK, passed 100 tests.
447[info] + Layout properties.hand generated path bounding boxes are correct: OK, proved property.
448[info] + Layout properties.above generates bounding boxes with the correct size: OK, passed 100 tests.
449[info] + Layout properties.margin expands bounding box by the correct amount: OK, passed 100 tests.
450[info] + Layout properties.beside generates bounding boxes with the correct size: OK, passed 100 tests.
451[info] + Layout properties.at never decreases the size of the bounding box: OK, passed 100 tests.
452[info] + Layout properties.on generates bounding boxes with the correct size: OK, passed 100 tests.
453[info] + Layout properties.hand generated at bounding boxes are correct: OK, proved property.
454[info] + Layout properties.size sets bounding box to the correct size: OK, passed 100 tests.
455[info] + Layout properties.above reifies correctly: OK, passed 100 tests.
456[info] + Layout properties.above doubles size of image: OK, passed 100 tests.
457[info] + Style properties.last fillColor takes effect: OK, passed 100 tests.
458[info] + LoadBitmap properties.missing files return failed IO: OK, proved property.
459[info] + LoadBitmap properties.loadBitmap syntax works: OK, passed 100 tests.
460[info] + LoadBitmap properties.successful loading returns IO with bitmap: OK, passed 100 tests.
461Starting build for ProjectRef(file:/build/repo/,turtleJVM) (doodle-turtle)... [10/12]
462Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/turtle/jvm/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
463Starting build for ProjectRef(file:/build/repo/,golden) (doodle-golden)... [11/12]
464Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -Xkind-projector:underscores, --java-output-version:17, -Xsemanticdb, -semanticdb-target, /build/repo/golden/target/scala-3.8.0-RC3/meta, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
465[info] compiling 9 Scala sources to /build/repo/golden/target/scala-3.8.0-RC3/test-classes ...
466[info] done compiling
467doodle.golden.GradientStroke:
468 + linear-gradient-stroke 0.205s
469 + radial-gradient-stroke 0.06s
470doodle.golden.Layout:
471 + layout-size 0.222s
472doodle.golden.FrameBackground:
473 + black-background 0.001s
474 + red-background 0.0s
475doodle.golden.ImageLayout:
476 + layout-at-debug 0.33s
477 + image-landmarks 0.047s
478 + image-size 0.024s
479doodle.golden.Text:
480 + text-serif-default 0.032s
481 + text-sans-serif-default 0.053s
482 + text-serif-48pt 0.005s
483 + text-sans-serif-48pt 0.012s
484 + text-on-circle 0.007s
485 + text-color 0.012s
486doodle.golden.Path:
487 + path-polygons 0.263s
488 + path-stars 0.076s
489 + path-rounded-rectangle 0.038s
490 + path-equilateral-triangle 0.027s
491 + path-polygons-1 0.053s
492 + path-stars-1 0.051s
493 + path-rounded-rectangle-1 0.014s
494 + path-equilateral-triangle-1 0.021s
495
496************************
497Build summary:
498[{
499 "module": "doodle-interact",
500 "compile": {"status": "ok", "tookMs": 25345, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
501 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
502 "test-compile": {"status": "ok", "tookMs": 8780, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
503 "test": {"status": "ok", "tookMs": 1672, "passed": 30, "failed": 0, "ignored": 0, "skipped": 0, "total": 30, "byFramework": [{"framework": "munit", "stats": {"passed": 24, "failed": 0, "ignored": 0, "skipped": 0, "total": 24}},{"framework": "unknown", "stats": {"passed": 6, "failed": 0, "ignored": 0, "skipped": 0, "total": 6}}]},
504 "publish": {"status": "skipped", "tookMs": 0},
505 "metadata": {
506 "crossScalaVersions": ["3.3.6"]
507}
508},{
509 "module": "doodle-examples",
510 "compile": {"status": "ok", "tookMs": 13539, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
511 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
512 "test-compile": {"status": "ok", "tookMs": 507, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
513 "test": {"status": "ok", "tookMs": 488, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
514 "publish": {"status": "skipped", "tookMs": 0},
515 "metadata": {
516 "crossScalaVersions": ["3.3.6"]
517}
518},{
519 "module": "doodle-svg",
520 "compile": {"status": "ok", "tookMs": 281, "warnings": 5, "errors": 0, "sourceVersion": "3.8"},
521 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
522 "test-compile": {"status": "ok", "tookMs": 1747, "warnings": 2, "errors": 0, "sourceVersion": "3.8"},
523 "test": {"status": "ok", "tookMs": 841, "passed": 24, "failed": 0, "ignored": 0, "skipped": 0, "total": 24, "byFramework": [{"framework": "munit", "stats": {"passed": 24, "failed": 0, "ignored": 0, "skipped": 0, "total": 24}}]},
524 "publish": {"status": "skipped", "tookMs": 0},
525 "metadata": {
526 "crossScalaVersions": ["3.3.6"]
527}
528},{
529 "module": "doodle-docs",
530 "compile": {"status": "ok", "tookMs": 57, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
531 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
532 "test-compile": {"status": "ok", "tookMs": 65, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
533 "test": {"status": "ok", "tookMs": 69, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
534 "publish": {"status": "skipped", "tookMs": 0},
535 "metadata": {
536 "crossScalaVersions": ["3.3.6"]
537}
538},{
539 "module": "doodle-core",
540 "compile": {"status": "ok", "tookMs": 50, "warnings": 3, "errors": 0, "sourceVersion": "3.8"},
541 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
542 "test-compile": {"status": "ok", "tookMs": 75, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
543 "test": {"status": "ok", "tookMs": 389, "passed": 35, "failed": 0, "ignored": 0, "skipped": 0, "total": 35, "byFramework": [{"framework": "munit", "stats": {"passed": 11, "failed": 0, "ignored": 0, "skipped": 0, "total": 11}},{"framework": "unknown", "stats": {"passed": 24, "failed": 0, "ignored": 0, "skipped": 0, "total": 24}}]},
544 "publish": {"status": "skipped", "tookMs": 0},
545 "metadata": {
546 "crossScalaVersions": ["3.3.6"]
547}
548},{
549 "module": "doodle-java2d",
550 "compile": {"status": "ok", "tookMs": 207, "warnings": 3, "errors": 0, "sourceVersion": "3.8"},
551 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
552 "test-compile": {"status": "ok", "tookMs": 1134, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
553 "test": {"status": "ok", "tookMs": 977, "passed": 18, "failed": 0, "ignored": 0, "skipped": 0, "total": 18, "byFramework": [{"framework": "munit", "stats": {"passed": 18, "failed": 0, "ignored": 0, "skipped": 0, "total": 18}}]},
554 "publish": {"status": "skipped", "tookMs": 0},
555 "metadata": {
556 "crossScalaVersions": ["3.3.6"]
557}
558},{
559 "module": "doodle-image",
560 "compile": {"status": "ok", "tookMs": 390, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
561 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
562 "test-compile": {"status": "ok", "tookMs": 408, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
563 "test": {"status": "ok", "tookMs": 339, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
564 "publish": {"status": "skipped", "tookMs": 0},
565 "metadata": {
566 "crossScalaVersions": ["3.3.6"]
567}
568},{
569 "module": "doodle-reactor",
570 "compile": {"status": "ok", "tookMs": 304, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
571 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
572 "test-compile": {"status": "ok", "tookMs": 330, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
573 "test": {"status": "ok", "tookMs": 262, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
574 "publish": {"status": "skipped", "tookMs": 0},
575 "metadata": {
576 "crossScalaVersions": ["3.3.6"]
577}
578},{
579 "module": "doodle",
580 "compile": {"status": "ok", "tookMs": 1089, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
581 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
582 "test-compile": {"status": "ok", "tookMs": 601, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
583 "test": {"status": "ok", "tookMs": 398, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
584 "publish": {"status": "skipped", "tookMs": 0},
585 "metadata": {
586 "crossScalaVersions": ["3.3.6"]
587}
588},{
589 "module": "doodle-algebra",
590 "compile": {"status": "ok", "tookMs": 96, "warnings": 2, "errors": 0, "sourceVersion": "3.8"},
591 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
592 "test-compile": {"status": "ok", "tookMs": 143, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
593 "test": {"status": "ok", "tookMs": 1152, "passed": 21, "failed": 0, "ignored": 0, "skipped": 0, "total": 21, "byFramework": [{"framework": "unknown", "stats": {"passed": 21, "failed": 0, "ignored": 0, "skipped": 0, "total": 21}}]},
594 "publish": {"status": "skipped", "tookMs": 0},
595 "metadata": {
596 "crossScalaVersions": ["3.3.6"]
597}
598},{
599 "module": "doodle-turtle",
600 "compile": {"status": "ok", "tookMs": 326, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
601 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
602 "test-compile": {"status": "ok", "tookMs": 311, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
603 "test": {"status": "ok", "tookMs": 317, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
604 "publish": {"status": "skipped", "tookMs": 0},
605 "metadata": {
606 "crossScalaVersions": ["3.3.6"]
607}
608},{
609 "module": "doodle-golden",
610 "compile": {"status": "ok", "tookMs": 268, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
611 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
612 "test-compile": {"status": "ok", "tookMs": 2121, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
613 "test": {"status": "ok", "tookMs": 1273, "passed": 22, "failed": 0, "ignored": 0, "skipped": 0, "total": 22, "byFramework": [{"framework": "munit", "stats": {"passed": 22, "failed": 0, "ignored": 0, "skipped": 0, "total": 22}}]},
614 "publish": {"status": "skipped", "tookMs": 0},
615 "metadata": {
616 "crossScalaVersions": ["3.3.6"]
617}
618}]
619************************
620[success] Total time: 109 s (0:01:49.0), completed Dec 4, 2025, 3:35:31 PM
621[0JChecking patch project/plugins.sbt...
622Checking patch project/build.properties...
623Checking patch build.sbt...
624Applied patch project/plugins.sbt cleanly.
625Applied patch project/build.properties cleanly.
626Applied patch build.sbt cleanly.