Build Logs
typelevel/paiges • 3.8.0-RC2:2025-11-28
Errors
0
Warnings
29
Total Lines
401
1##################################
2Clonning https://github.com/typelevel/paiges.git into /build/repo using revision v0.4.4
3##################################
4Note: switching to '4d6217ade3aae6b625dd7ac3fe2337fd88dd0433'.
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.3
22----
23Preparing build for 3.8.0-RC2
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 Scala3Version = "3.3.3"
35Replacement: val Scala3Version = "3.8.0-RC2"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (17))
38Compiled project (Scala 3.7.3, JVM (17))
39Successfully applied pattern 'val Scala3Version = "3.3.3"' in build.sbt
40----
41Starting build for 3.8.0-RC2
42Execute tests: true
43sbt project found:
44Sbt version 1.10.0 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 typelevel/paiges
47##################################
48Scala version: 3.8.0-RC2
49Targets: org.typelevel%paiges-cats org.typelevel%paiges-core
50Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val Scala3Version = \"3.3.3\"","replaceWith":"val Scala3Version = \"<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-Xms1G
60-Xmx4G
61-XX:+UseG1GC
62-Dcommunitybuild.scala=3.8.0-RC2
63-Dcommunitybuild.project.dependencies.add=
64-Xmx7G
65-Xms4G
66-Xss8M
67-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
68-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
69-jar
70/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
71"setCrossScalaVersions 3.8.0-RC2"
72"++3.8.0-RC2 -v"
73"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
74"set every credentials := Nil"
75"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
76"removeScalacOptionsStartingWith -P:wartremover"
77
78moduleMappings
79"runBuild 3.8.0-RC2 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val Scala3Version = \"3.3.3\"","replaceWith":"val Scala3Version = \"<SCALA_VERSION>\""}]}""" org.typelevel%paiges-cats org.typelevel%paiges-core"
80
81[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
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 2 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.628s.
87[info] done compiling
88[info] loading settings for project root from build.sbt...
89[info] resolving key references (12610 settings) ...
90[info] set scmInfo to https://github.com/typelevel/paiges
91[info] set current project to root (in build file:/build/repo/)
92Execute setCrossScalaVersions: 3.8.0-RC2
93OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in benchmark/crossScalaVersions
94OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in docs/crossScalaVersions
95OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in coreJVM/crossScalaVersions
96OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in rootNative/crossScalaVersions
97OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in coreJS/crossScalaVersions
98OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in rootJS/crossScalaVersions
99OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in catsJVM/crossScalaVersions
100OpenCB::Limitting incorrect crossVersions List() -> List(2.13.14) in root/crossScalaVersions
101OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in coreNative/crossScalaVersions
102[info] set scmInfo to https://github.com/typelevel/paiges
103OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in catsNative/crossScalaVersions
104OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in rootJVM/crossScalaVersions
105OpenCB::Changing crossVersion 3.8.0-RC2 -> 3.8.0-RC2 in catsJS/crossScalaVersions
106[info] set current project to root (in build file:/build/repo/)
107[info] Setting Scala version to 3.8.0-RC2 on 11 projects.
108[info] Switching Scala version on:
109[info] catsNative (2.13.14, 2.12.19, 3.8.0-RC2)
110[info] rootJS (2.13.14, 2.12.19, 3.8.0-RC2)
111[info] coreNative (2.13.14, 2.12.19, 3.8.0-RC2)
112[info] docs (2.13.14, 2.12.19, 3.8.0-RC2)
113[info] coreJS (2.13.14, 2.12.19, 3.8.0-RC2)
114[info] coreJVM (2.13.14, 2.12.19, 3.8.0-RC2)
115[info] rootJVM (2.13.14, 2.12.19, 3.8.0-RC2)
116[info] rootNative (2.13.14, 2.12.19, 3.8.0-RC2)
117[info] catsJS (2.13.14, 2.12.19, 3.8.0-RC2)
118[info] catsJVM (2.13.14, 2.12.19, 3.8.0-RC2)
119[info] benchmark (2.13.14, 2.12.19, 3.8.0-RC2)
120[info] Excluding projects:
121[info] * root (2.13.14)
122[info] Reapplying settings...
123[info] set scmInfo to https://github.com/typelevel/paiges
124[info] set current project to root (in build file:/build/repo/)
125Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
126[info] Reapplying settings...
127[info] set scmInfo to https://github.com/typelevel/paiges
128[info] set current project to root (in build file:/build/repo/)
129[info] Defining Global / credentials, benchmark / credentials and 10 others.
130[info] The new values will be used by Compile / scalafmtOnly, IntegrationTest / scalafmtOnly and 105 others.
131[info] Run `last` for details.
132[info] Reapplying settings...
133[info] set scmInfo to https://github.com/typelevel/paiges
134[info] set current project to root (in build file:/build/repo/)
135Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
136[info] Reapplying settings...
137OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
138
139 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
140 Did you mean allExcludeDependencies ?
141 , retry without global scopes
142[info] Reapplying settings...
143[info] set scmInfo to https://github.com/typelevel/paiges
144[info] set current project to root (in build file:/build/repo/)
145Execute removeScalacOptionsStartingWith: -P:wartremover
146[info] Reapplying settings...
147[info] set scmInfo to https://github.com/typelevel/paiges
148[info] set current project to root (in build file:/build/repo/)
149[success] Total time: 0 s, completed Nov 28, 2025, 12:47:37 PM
150Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val Scala3Version = \"3.3.3\"","replaceWith":"val Scala3Version = \"<SCALA_VERSION>\""}]}
151Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
152Starting build...
153Projects: Set(catsJVM, coreJVM)
154Starting build for ProjectRef(file:/build/repo/,catsJVM) (paiges-cats)... [0/2]
155OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
156OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
157OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
158Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Ykind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
159[info] compiling 6 Scala sources to /build/repo/core/.jvm/target/scala-3.8.0-RC2/classes ...
160[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
161[warn] -- [E175] Potential Issue Warning: /build/repo/core/src/main/scala/org/typelevel/paiges/Doc.scala:279:17
162[warn] 279 | bldr.append(it.next())
163[warn] | ^^^^^^^^^^^^^^^^^^^^^^
164[warn] |discarded non-Unit value of type StringBuilder. Add `: Unit` to discard silently.
165[warn] -- [E175] Potential Issue Warning: /build/repo/core/src/main/scala/org/typelevel/paiges/Doc.scala:409:15
166[warn] 409 | pw.append(it.next())
167[warn] | ^^^^^^^^^^^^^^^^^^^^
168[warn] |discarded non-Unit value of type java.io.PrintWriter. Add `: Unit` to discard silently.
169[warn] three warnings found
170[info] done compiling
171[info] compiling 3 Scala sources to /build/repo/cats/jvm/target/scala-3.8.0-RC2/classes ...
172[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
173[warn] one warning found
174[info] done compiling
175[info] compiling 6 Scala sources to /build/repo/core/.jvm/target/scala-3.8.0-RC2/test-classes ...
176[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
177[warn] -- [E175] Potential Issue Warning: /build/repo/core/src/test/scala/org/typelevel/paiges/PaigesScalacheckTest.scala:218:16
178[warn] 218 | assertEq(lhs0, rhs0)
179[warn] | ^^^^^^^^^^^^^^^^^^^^
180[warn] |discarded non-Unit value of type org.scalatest.Assertion. Add `: Unit` to discard silently.
181[warn] -- [E198] Unused Symbol Warning: /build/repo/core/src/test/scala/org/typelevel/paiges/PaigesTest.scala:307:15
182[warn] 307 | import Doc._
183[warn] | ^
184[warn] | unused import
185[warn] -- [E198] Unused Symbol Warning: /build/repo/core/src/test/scala/org/typelevel/paiges/PaigesTest.scala:319:15
186[warn] 319 | import Doc._
187[warn] | ^
188[warn] | unused import
189[warn] there were 6 deprecation warnings; re-run with -deprecation for details
190[warn] 5 warnings found
191[info] done compiling
192[info] compiling 1 Scala source to /build/repo/cats/jvm/target/scala-3.8.0-RC2/test-classes ...
193[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
194[warn] one warning found
195[info] done compiling
196[info] LawTests:
197[info] - Monoid[Doc].monoid.associative (139 milliseconds)
198[info] - Monoid[Doc].monoid.collect0 (14 milliseconds)
199[info] - Monoid[Doc].monoid.combine all (149 milliseconds)
200[info] - Monoid[Doc].monoid.combineAllOption (109 milliseconds)
201[info] - Monoid[Doc].monoid.intercalateCombineAllOption (93 milliseconds)
202[info] - Monoid[Doc].monoid.intercalateIntercalates (10 milliseconds)
203[info] - Monoid[Doc].monoid.intercalateRepeat1 (8 milliseconds)
204[info] - Monoid[Doc].monoid.intercalateRepeat2 (6 milliseconds)
205[info] - Monoid[Doc].monoid.is id (8 milliseconds)
206[info] - Monoid[Doc].monoid.left identity (4 milliseconds)
207[info] - Monoid[Doc].monoid.repeat0 (3 milliseconds)
208[info] - Monoid[Doc].monoid.repeat1 (5 milliseconds)
209[info] - Monoid[Doc].monoid.repeat2 (5 milliseconds)
210[info] - Monoid[Doc].monoid.reverseCombineAllOption (53 milliseconds)
211[info] - Monoid[Doc].monoid.reverseRepeat1 (5 milliseconds)
212[info] - Monoid[Doc].monoid.reverseRepeat2 (5 milliseconds)
213[info] - Monoid[Doc].monoid.reverseReverses (6 milliseconds)
214[info] - Monoid[Doc].monoid.right identity (4 milliseconds)
215[info] - Monoid[Style].monoid.associative (4 milliseconds)
216[info] - Monoid[Style].monoid.collect0 (1 millisecond)
217[info] - Monoid[Style].monoid.combine all (16 milliseconds)
218[info] - Monoid[Style].monoid.combineAllOption (17 milliseconds)
219[info] - Monoid[Style].monoid.intercalateCombineAllOption (18 milliseconds)
220[info] - Monoid[Style].monoid.intercalateIntercalates (3 milliseconds)
221[info] - Monoid[Style].monoid.intercalateRepeat1 (2 milliseconds)
222[info] - Monoid[Style].monoid.intercalateRepeat2 (2 milliseconds)
223[info] - Monoid[Style].monoid.is id (1 millisecond)
224[info] - Monoid[Style].monoid.left identity (1 millisecond)
225[info] - Monoid[Style].monoid.repeat0 (1 millisecond)
226[info] - Monoid[Style].monoid.repeat1 (1 millisecond)
227[info] - Monoid[Style].monoid.repeat2 (1 millisecond)
228[info] - Monoid[Style].monoid.reverseCombineAllOption (10 milliseconds)
229[info] - Monoid[Style].monoid.reverseRepeat1 (1 millisecond)
230[info] - Monoid[Style].monoid.reverseRepeat2 (2 milliseconds)
231[info] - Monoid[Style].monoid.reverseReverses (2 milliseconds)
232[info] - Monoid[Style].monoid.right identity (1 millisecond)
233[info] - Contravariant[Document].contravariant.contravariant composition (10 milliseconds)
234[info] - Contravariant[Document].contravariant.contravariant identity (3 milliseconds)
235[info] - Contravariant[Document].contravariant.invariant composition (8 milliseconds)
236[info] - Contravariant[Document].contravariant.invariant identity (2 milliseconds)
237[info] - Contravariant[Document].serializable.can serialize and deserialize (7 milliseconds)
238[info] - Defer[Document].defer.defer Identity (4 milliseconds)
239[info] - Defer[Document].defer.defer does not evaluate (1 millisecond)
240[info] - Defer[Document].defer.defer is stack safe (52 milliseconds)
241[info] - Defer[Document].defer.defer matches fix (2 milliseconds)
242[info] - Semigroupal[Document].semigroupal.semigroupal associativity (9 milliseconds)
243[info] - Semigroupal[Document].serializable.can serialize and deserialize (5 milliseconds)
244Starting build for ProjectRef(file:/build/repo/,coreJVM) (paiges-core)... [1/2]
245Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Ykind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
246[38;5;203mT[38;5;203mh[38;5;203mr[38;5;203me[38;5;203me [38;5;203mR[38;5;203mi[38;5;203mn[38;5;203mg[38;5;203ms [38;5;203mf[38;5;209mo[38;5;209mr [38;5;208mt[38;5;208mh[38;5;208me [38;5;208mE[38;5;208ml[38;5;208mv[38;5;208me[38;5;208mn[38;5;208m-[38;5;208mk[38;5;208mi[38;5;208mn[38;5;208mg[38;5;208ms [38;5;208mu[38;5;208mn[38;5;208md[38;5;208me[38;5;214mr [38;5;214mt[38;5;214mh[38;5;214me [38;5;214ms[38;5;214mk[38;5;214my[38;5;214m,[38;5;214m
247[38;5;214mS[38;5;214me[38;5;214mv[38;5;214me[38;5;214mn [38;5;214mf[38;5;214mo[38;5;214mr [38;5;214mt[38;5;214mh[38;5;178me [38;5;184mD[38;5;184mw[38;5;184ma[38;5;184mr[38;5;184mf[38;5;184m-[38;5;184ml[38;5;184mo[38;5;184mr[38;5;184md[38;5;184ms [38;5;184mi[38;5;184mn [38;5;184mt[38;5;184mh[38;5;184me[38;5;184mi[38;5;184mr [38;5;184mh[38;5;184ma[38;5;184ml[38;5;184ml[38;5;148ms [38;5;148mo[38;5;154mf [38;5;154ms[38;5;154mt[38;5;154mo[38;5;154mn[38;5;154me[38;5;154m,[38;5;154m
248[38;5;154mN[38;5;154mi[38;5;154mn[38;5;154me [38;5;154mf[38;5;154mo[38;5;154mr [38;5;154mM[38;5;154mo[38;5;154mr[38;5;118mt[38;5;118ma[38;5;118ml [38;5;118mM[38;5;118me[38;5;118mn [38;5;118md[38;5;118mo[38;5;118mo[38;5;118mm[38;5;118me[38;5;118md [38;5;118mt[38;5;118mo [38;5;118md[38;5;118mi[38;5;118me[38;5;118m,[38;5;118m
249[38;5;119mO[38;5;83mn[38;5;83me [38;5;83mf[38;5;83mo[38;5;83mr [38;5;83mt[38;5;83mh[38;5;83me [38;5;83mD[38;5;83ma[38;5;83mr[38;5;83mk [38;5;83mL[38;5;83mo[38;5;83mr[38;5;83md [38;5;83mo[38;5;83mn [38;5;83mh[38;5;83mi[38;5;83ms [38;5;83md[38;5;84ma[38;5;48mr[38;5;48mk [38;5;48mt[38;5;48mh[38;5;48mr[38;5;48mo[38;5;48mn[38;5;48me[38;5;48m
250[38;5;48mI[38;5;48mn [38;5;48mt[38;5;48mh[38;5;48me [38;5;48mL[38;5;48ma[38;5;48mn[38;5;48md [38;5;48mo[38;5;49mf [38;5;49mM[38;5;49mo[38;5;49mr[38;5;49md[38;5;49mo[38;5;49mr [38;5;49mw[38;5;49mh[38;5;49me[38;5;49mr[38;5;49me [38;5;49mt[38;5;49mh[38;5;49me [38;5;49mS[38;5;49mh[38;5;49ma[38;5;49md[38;5;43mo[38;5;44mw[38;5;44ms [38;5;44ml[38;5;44mi[38;5;44me[38;5;44m.[38;5;44m
251[38;5;44mO[38;5;44mn[38;5;44me [38;5;44mR[38;5;44mi[38;5;44mn[38;5;44mg [38;5;44mt[38;5;44mo [38;5;44mr[38;5;44mu[38;5;44ml[38;5;44me [38;5;44mt[38;5;44mh[38;5;38me[38;5;39mm [38;5;39ma[38;5;39ml[38;5;39ml[38;5;39m, [38;5;39mO[38;5;39mn[38;5;39me [38;5;39mR[38;5;39mi[38;5;39mn[38;5;39mg [38;5;39mt[38;5;39mo [38;5;39mf[38;5;39mi[38;5;39mn[38;5;39md [38;5;39mt[38;5;33mh[38;5;33me[38;5;33mm[38;5;33m,[38;5;33m
252[38;5;33mO[38;5;33mn[38;5;33me [38;5;33mR[38;5;33mi[38;5;33mn[38;5;33mg [38;5;33mt[38;5;33mo [38;5;33mb[38;5;33mr[38;5;33mi[38;5;33mn[38;5;33mg [38;5;69mt[38;5;63mh[38;5;63me[38;5;63mm [38;5;63ma[38;5;63ml[38;5;63ml [38;5;63ma[38;5;63mn[38;5;63md [38;5;63mi[38;5;63mn [38;5;63mt[38;5;63mh[38;5;63me [38;5;63md[38;5;63ma[38;5;63mr[38;5;63mk[38;5;63mn[38;5;63me[38;5;63ms[38;5;63ms [38;5;99mb[38;5;93mi[38;5;93mn[38;5;93md [38;5;93mt[38;5;93mh[38;5;93me[38;5;93mm[38;5;93m
253[38;5;93mI[38;5;93mn [38;5;93mt[38;5;93mh[38;5;93me [38;5;93mL[38;5;93ma[38;5;93mn[38;5;93md [38;5;93mo[38;5;93mf [38;5;129mM[38;5;129mo[38;5;129mr[38;5;129md[38;5;129mo[38;5;129mr [38;5;129mw[38;5;129mh[38;5;129me[38;5;129mr[38;5;129me [38;5;129mt[38;5;129mh[38;5;129me [38;5;129mS[38;5;129mh[38;5;129ma[38;5;129md[38;5;128mo[38;5;128mw[38;5;164ms [38;5;164ml[38;5;164mi[38;5;164me[38;5;164m.[38;5;164m
254
255
256[30;48;5;203mT[30;48;5;184mh[30;48;5;118mr[30;48;5;49me[30;48;5;39me [30;48;5;93mR[30;48;5;164mi[30;48;5;203mn[30;48;5;184mg[30;48;5;118ms [30;48;5;49mf[30;48;5;39mo[30;48;5;93mr [30;48;5;164mt[30;48;5;203mh[30;48;5;184me
257[30;48;5;118mE[30;48;5;49ml[30;48;5;39mv[30;48;5;93me[30;48;5;164mn[30;48;5;203m-[30;48;5;184mk[30;48;5;118mi[30;48;5;49mn[30;48;5;39mg[30;48;5;93ms [30;48;5;164mu[30;48;5;203mn[30;48;5;184md[30;48;5;118me[30;48;5;49mr [30;48;5;39mt[30;48;5;93mh[30;48;5;164me [30;48;5;203ms[30;48;5;184mk[30;48;5;118my[30;48;5;49m,[30;48;5;39m
258[30;48;5;93mS[30;48;5;164me[30;48;5;203mv[30;48;5;184me[30;48;5;118mn [30;48;5;49mf[30;48;5;39mo[30;48;5;93mr [30;48;5;164mt[30;48;5;203mh[30;48;5;184me [30;48;5;118mD[30;48;5;49mw[30;48;5;39ma[30;48;5;93mr[30;48;5;164mf[30;48;5;203m-[30;48;5;184ml[30;48;5;118mo[30;48;5;49mr[30;48;5;39md[30;48;5;93ms [30;48;5;164mi[30;48;5;203mn
259[30;48;5;184mt[30;48;5;118mh[30;48;5;49me[30;48;5;39mi[30;48;5;93mr [30;48;5;164mh[30;48;5;203ma[30;48;5;184ml[30;48;5;118ml[30;48;5;49ms [30;48;5;39mo[30;48;5;93mf [30;48;5;164ms[30;48;5;203mt[30;48;5;184mo[30;48;5;118mn[30;48;5;49me[30;48;5;39m,[30;48;5;93m
260[30;48;5;164mN[30;48;5;203mi[30;48;5;184mn[30;48;5;118me [30;48;5;49mf[30;48;5;39mo[30;48;5;93mr [30;48;5;164mM[30;48;5;203mo[30;48;5;184mr[30;48;5;118mt[30;48;5;49ma[30;48;5;39ml [30;48;5;93mM[30;48;5;164me[30;48;5;203mn [30;48;5;184md[30;48;5;118mo[30;48;5;49mo[30;48;5;39mm[30;48;5;93me[30;48;5;164md
261[30;48;5;203mt[30;48;5;184mo [30;48;5;118md[30;48;5;49mi[30;48;5;39me[30;48;5;93m,[30;48;5;164m
262[30;48;5;203mO[30;48;5;184mn[30;48;5;118me [30;48;5;49mf[30;48;5;39mo[30;48;5;93mr [30;48;5;164mt[30;48;5;203mh[30;48;5;184me [30;48;5;118mD[30;48;5;49ma[30;48;5;39mr[30;48;5;93mk [30;48;5;164mL[30;48;5;203mo[30;48;5;184mr[30;48;5;118md [30;48;5;49mo[30;48;5;39mn [30;48;5;93mh[30;48;5;164mi[30;48;5;203ms
263[30;48;5;184md[30;48;5;118ma[30;48;5;49mr[30;48;5;39mk [30;48;5;93mt[30;48;5;164mh[30;48;5;203mr[30;48;5;184mo[30;48;5;118mn[30;48;5;49me[30;48;5;39m
264[30;48;5;93mI[30;48;5;164mn [30;48;5;203mt[30;48;5;184mh[30;48;5;118me [30;48;5;49mL[30;48;5;39ma[30;48;5;93mn[30;48;5;164md [30;48;5;203mo[30;48;5;184mf [30;48;5;118mM[30;48;5;49mo[30;48;5;39mr[30;48;5;93md[30;48;5;164mo[30;48;5;203mr [30;48;5;184mw[30;48;5;118mh[30;48;5;49me[30;48;5;39mr[30;48;5;93me
265[30;48;5;164mt[30;48;5;203mh[30;48;5;184me [30;48;5;118mS[30;48;5;49mh[30;48;5;39ma[30;48;5;93md[30;48;5;164mo[30;48;5;203mw[30;48;5;184ms [30;48;5;118ml[30;48;5;49mi[30;48;5;39me[30;48;5;93m.[30;48;5;164m
266[30;48;5;203mO[30;48;5;184mn[30;48;5;118me [30;48;5;49mR[30;48;5;39mi[30;48;5;93mn[30;48;5;164mg [30;48;5;203mt[30;48;5;184mo [30;48;5;118mr[30;48;5;49mu[30;48;5;39ml[30;48;5;93me [30;48;5;164mt[30;48;5;203mh[30;48;5;184me[30;48;5;118mm [30;48;5;49ma[30;48;5;39ml[30;48;5;93ml[30;48;5;164m,
267[30;48;5;203mO[30;48;5;184mn[30;48;5;118me [30;48;5;49mR[30;48;5;39mi[30;48;5;93mn[30;48;5;164mg [30;48;5;203mt[30;48;5;184mo [30;48;5;118mf[30;48;5;49mi[30;48;5;39mn[30;48;5;93md [30;48;5;164mt[30;48;5;203mh[30;48;5;184me[30;48;5;118mm[30;48;5;49m,[30;48;5;39m
268[30;48;5;93mO[30;48;5;164mn[30;48;5;203me [30;48;5;184mR[30;48;5;118mi[30;48;5;49mn[30;48;5;39mg [30;48;5;93mt[30;48;5;164mo [30;48;5;203mb[30;48;5;184mr[30;48;5;118mi[30;48;5;49mn[30;48;5;39mg [30;48;5;93mt[30;48;5;164mh[30;48;5;203me[30;48;5;184mm [30;48;5;118ma[30;48;5;49ml[30;48;5;39ml
269[30;48;5;93ma[30;48;5;164mn[30;48;5;203md [30;48;5;184mi[30;48;5;118mn [30;48;5;49mt[30;48;5;39mh[30;48;5;93me [30;48;5;164md[30;48;5;203ma[30;48;5;184mr[30;48;5;118mk[30;48;5;49mn[30;48;5;39me[30;48;5;93ms[30;48;5;164ms [30;48;5;203mb[30;48;5;184mi[30;48;5;118mn[30;48;5;49md
270[30;48;5;39mt[30;48;5;93mh[30;48;5;164me[30;48;5;203mm[30;48;5;184m
271[30;48;5;118mI[30;48;5;49mn [30;48;5;39mt[30;48;5;93mh[30;48;5;164me [30;48;5;203mL[30;48;5;184ma[30;48;5;118mn[30;48;5;49md [30;48;5;39mo[30;48;5;93mf [30;48;5;164mM[30;48;5;203mo[30;48;5;184mr[30;48;5;118md[30;48;5;49mo[30;48;5;39mr [30;48;5;93mw[30;48;5;164mh[30;48;5;203me[30;48;5;184mr[30;48;5;118me
272[30;48;5;49mt[30;48;5;39mh[30;48;5;93me [30;48;5;164mS[30;48;5;203mh[30;48;5;184ma[30;48;5;118md[30;48;5;49mo[30;48;5;39mw[30;48;5;93ms [30;48;5;164ml[30;48;5;203mi[30;48;5;184me[30;48;5;118m.[30;48;5;49m
273
274[info] JsonTest:
275[info] - test nesteded array json example (29 milliseconds)
276[info] ColorTest:
277[info] - rainbow demo (35 milliseconds)
278[info] DocumentTest:
279[info] - Document[Unit] (24 milliseconds)
280[info] - Document[Boolean] (0 milliseconds)
281[info] - Document[Byte] (103 milliseconds)
282[info] - Document[Short] (60 milliseconds)
283[info] - Document[Int] (37 milliseconds)
284[info] - Document[Long] (29 milliseconds)
285[info] - Document[Float] (50 milliseconds)
286[info] - Document[Double] (30 milliseconds)
287[info] - Document[String] (16 milliseconds)
288[info] - Document[List[Int]] (0 milliseconds)
289[info] - Ops (1 millisecond)
290[info] PaigesTest:
291[info] - basic test (1 millisecond)
292[info] - nested test (0 milliseconds)
293[info] - paper example (1 millisecond)
294[info] - nesteding with paragraph (1 millisecond)
295[info] - test paragraph (0 milliseconds)
296[info] - dangling space 1 (5 milliseconds)
297[info] - dangling space 2 (1 millisecond)
298[info] - renderTrim trims a single line (0 milliseconds)
299[info] - hard union cases (1 millisecond)
300[info] - test json array example (2 milliseconds)
301[info] - test json map example (4 milliseconds)
302[info] - maxWidth is stack safe (186 milliseconds)
303[info] - renderWide is stack safe (151 milliseconds)
304[info] - lineBreak works as expected (1 millisecond)
305[info] - align works as expected (0 milliseconds)
306[info] - fill example (1 millisecond)
307[info] - Doc.tabulate works in some example cases (4 milliseconds)
308[info] - abbreviated Doc.tabulate works in an example case (0 milliseconds)
309[info] - cat (1 millisecond)
310[info] - defer doesn't evaluate immediately (0 milliseconds)
311[info] - defer short circuits (1 millisecond)
312[info] PaigesScalacheckTest:
313[info] - (x = y) -> (x.## = y.##) (313 milliseconds)
314[info] - concat is associative (102 milliseconds)
315[info] - line is associative (49 milliseconds)
316[info] - lineOrSpace is associative (46 milliseconds)
317[info] - LazyDoc.evaluate never returns a LazyDoc (25 milliseconds)
318[info] - writeTo works (29 milliseconds)
319[info] - writeToTrim works (40 milliseconds)
320[info] - empty does not change things (18 milliseconds)
321[info] - spaces(n) == text(" ") * n == text(" " * n) (229 milliseconds)
322[info] - Doc.split(s, " ", space).render(w) = s (9 milliseconds)
323[info] - splitting x on x gives x (16 milliseconds)
324[info] - renderStreamTrim and renderTrim are consistent (16 milliseconds)
325[info] - trim-law: renderTrim is what we expect (19 milliseconds)
326[info] - (a /: b) works as expected (8 milliseconds)
327[info] - space works as expected (11 milliseconds)
328[info] - isEmpty == render(w).isEmpty for all w (9 milliseconds)
329[info] - nonEmpty == !isEmpty (9 milliseconds)
330[info] - isEmpty compare empty == 0 (9 milliseconds)
331[info] - renders are constant after maxWidth (123 milliseconds)
332[info] - render(w) == render(0) for w <= 0 (9 milliseconds)
333[info] - c.flatten + d.flatten == (c + d).flatten (14 milliseconds)
334[info] - group law (25 milliseconds)
335[info] - flatten(group(a)) == flatten(a) (6 milliseconds)
336[info] - a.flatten == a.flatten.flatten (7 milliseconds)
337[info] - a.flatten == a.flattenOption.getOrElse(a) (7 milliseconds)
338[info] - a.aligned.aligned == a.aligned (8 milliseconds)
339[info] - a is flat ==> Concat(a, Union(b, c)) === Union(Concat(a, b), Concat(a, c)) (10 milliseconds)
340[info] - c is flat ==> Concat(Union(a, b), c) === Union(Concat(a, c), Concat(b, c)) (10 milliseconds)
341[info] - Union invariant: `a.flatten == b.flatten` (234 milliseconds)
342[info] - Union invariant: `a != b` (122 milliseconds)
343[info] - Union invariant: `a` has 2-right-associated `Concat` nodes (119 milliseconds)
344[info] - Union invariant: the first line of `a` is at least as long as the first line of `b` (133 milliseconds)
345[info] - test Doc.text (4 milliseconds)
346[info] - Doc.repeat matches naive implementation (1 millisecond)
347[info] - (d * a) * b == d * (a * b) (2 milliseconds)
348[info] - text(s) * n == s * n for identifiers (6 milliseconds)
349[info] - render(w) == renderStream(w).mkString (8 milliseconds)
350[info] - renderWide == render(maxWidth) (6 milliseconds)
351[info] - character concat works (5 milliseconds)
352[info] - fill matches spec (71 milliseconds)
353[info] - FlatAlt invariant 0: FlatAlt renders as default (9 milliseconds)
354[info] - FlatAlt invariant 1: All constructed FlatAlt have width(default) <= width(flattened) (6 milliseconds)
355[info] - FlatAlt invariant 2: default != whenFlat (otherwise the FlatAlt is redundant) (7 milliseconds)
356[info] - FlatAlt invariant 3: FlatAlt does not occur on the left side of a union (5 milliseconds)
357[info] - flattened docs never have FlatAlt (5 milliseconds)
358[info] - removeControls(Doc.ansiControl(ns).render(w)) is empty (10 milliseconds)
359[info] - styles are associative under ++ (8 milliseconds)
360[info] - styles have an Empty identity under ++ (4 milliseconds)
361[info] - rhs wins for style fg (6 milliseconds)
362[info] - rhs wins for style bg (4 milliseconds)
363[info] - unzero is idempotent (7 milliseconds)
364[info] - unzero removes all ZeroWidth nodes (6 milliseconds)
365[info] - hang law (10 milliseconds)
366[info] - indent law (13 milliseconds)
367[info] - x.line(s) = (x :/ s) (10 milliseconds)
368[info] - x.lineOrSpace(s) = x.lineOrSpace(Doc.text(s)) (9 milliseconds)
369[info] - Doc.defer(x).representation(true) = x.representation(true) (12 milliseconds)
370
371************************
372Build summary:
373[{
374 "module": "paiges-cats",
375 "compile": {"status": "ok", "tookMs": 11713, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
376 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
377 "test-compile": {"status": "ok", "tookMs": 7923, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
378 "test": {"status": "ok", "tookMs": 1626, "passed": 47, "failed": 0, "ignored": 0, "skipped": 0, "total": 47, "byFramework": [{"framework": "unknown", "stats": {"passed": 47, "failed": 0, "ignored": 0, "skipped": 0, "total": 47}}]},
379 "publish": {"status": "skipped", "tookMs": 0},
380 "metadata": {
381 "crossScalaVersions": ["2.13.14", "2.12.19", "3.3.3"]
382}
383},{
384 "module": "paiges-core",
385 "compile": {"status": "ok", "tookMs": 69, "warnings": 2, "errors": 0, "sourceVersion": "3.8"},
386 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
387 "test-compile": {"status": "ok", "tookMs": 100, "warnings": 3, "errors": 0, "sourceVersion": "3.8"},
388 "test": {"status": "ok", "tookMs": 2291, "passed": 91, "failed": 0, "ignored": 0, "skipped": 0, "total": 91, "byFramework": [{"framework": "unknown", "stats": {"passed": 91, "failed": 0, "ignored": 0, "skipped": 0, "total": 91}}]},
389 "publish": {"status": "skipped", "tookMs": 0},
390 "metadata": {
391 "crossScalaVersions": ["2.13.14", "2.12.19", "3.3.3"]
392}
393}]
394************************
395[success] Total time: 40 s, completed Nov 28, 2025, 12:48:17 PM
396[0JChecking patch project/plugins.sbt...
397Checking patch project/build.properties...
398Checking patch build.sbt...
399Applied patch project/plugins.sbt cleanly.
400Applied patch project/build.properties cleanly.
401Applied patch build.sbt cleanly.