Build Logs
typelevel/cats-parse • 3.8.0:2026-01-13
Errors
3
Warnings
6
Total Lines
708
1##################################
2Clonning https://github.com/typelevel/cats-parse.git into /build/repo using revision v1.1.0
3##################################
4Note: switching to '5a4abf64083a7e8a6f171f82f5d5cfa446268034'.
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.4
22Using target Scala version for migration: 3.7.4
23Migrating project for -source:3.4 using Scala 3.7.4
24----
25Preparing build for 3.7.4
26Would try to apply common scalacOption (best-effort, sbt/mill only):
27Append: -rewrite,REQUIRE:-source:3.4-migration
28Remove: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
29
30Try apply source patch:
31Path: build.sbt
32Pattern: val scala3 = "3.3.4"
33Replacement: val scala3 = "3.7.4"
34Starting compilation server
35Compiling project (Scala 3.7.3, JVM (17))
36Compiled project (Scala 3.7.3, JVM (17))
37Successfully applied pattern 'val scala3 = "3.3.4"' in build.sbt
38----
39Starting build for 3.7.4
40Execute tests: false
41sbt project found:
42Sbt version 1.10.6 is not supported, minimal supported version is 1.11.5
43Enforcing usage of sbt in version 1.11.5
44No prepare script found for project typelevel/cats-parse
45##################################
46Scala version: 3.7.4
47Targets: org.typelevel%cats-parse
48Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.4"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.4\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
49##################################
50Using extra scalacOptions: -rewrite,REQUIRE:-source:3.4-migration
51Filtering out scalacOptions: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
52[sbt_options] declare -a sbt_options=()
53[process_args] java_version = '17'
54[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
55# Executing command line:
56java
57-Dfile.encoding=UTF-8
58-Dcommunitybuild.scala=3.7.4
59-Dcommunitybuild.project.dependencies.add=
60-Xmx7G
61-Xms4G
62-Xss8M
63-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
64-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
65-jar
66/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
67"setCrossScalaVersions 3.7.4"
68"++3.7.4 -v"
69"mapScalacOptions "-rewrite,REQUIRE:-source:3.4-migration,-Wconf:msg=can be rewritten automatically under:s" "-indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
70"set every credentials := Nil"
71"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
72"removeScalacOptionsStartingWith -P:wartremover"
73
74moduleMappings
75"runBuild 3.7.4 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.4"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.4\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" org.typelevel%cats-parse"
76
77[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
78[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
79[info] loading project definition from /build/repo/project
80[info] compiling 4 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
81[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
82[info] Compilation completed in 9.106s.
83[info] done compiling
84[info] loading settings for project root from build.sbt...
85[info] set scmInfo to https://github.com/typelevel/cats-parse
86[info] set current project to root (in build file:/build/repo/)
87Execute setCrossScalaVersions: 3.7.4
88OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in coreJVM/crossScalaVersions
89OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in docs/crossScalaVersions
90[info] set scmInfo to https://github.com/typelevel/cats-parse
91OpenCB::Limitting incorrect crossVersions List() -> List(2.13.14) in root/crossScalaVersions
92OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in rootNative/crossScalaVersions
93OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in coreJS/crossScalaVersions
94OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in rootJS/crossScalaVersions
95OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in bench/crossScalaVersions
96OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in coreNative/crossScalaVersions
97OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in rootJVM/crossScalaVersions
98[info] set current project to root (in build file:/build/repo/)
99[info] Setting Scala version to 3.7.4 on 8 projects.
100[info] Switching Scala version on:
101[info] rootJS (2.11.12, 2.12.20, 2.13.14, 3.7.4)
102[info] coreNative (2.12.20, 2.13.14, 3.7.4)
103[info] docs (2.11.12, 2.12.20, 2.13.14, 3.7.4)
104[info] coreJS (2.12.20, 2.13.14, 3.7.4)
105[info] coreJVM (2.11.12, 2.12.20, 2.13.14, 3.7.4)
106[info] rootJVM (2.11.12, 2.12.20, 2.13.14, 3.7.4)
107[info] rootNative (2.11.12, 2.12.20, 2.13.14, 3.7.4)
108[info] bench (2.11.12, 2.12.20, 2.13.14, 3.7.4)
109[info] Excluding projects:
110[info] * root (2.13.14)
111[info] Reapplying settings...
112[info] set scmInfo to https://github.com/typelevel/cats-parse
113[info] set current project to root (in build file:/build/repo/)
114Execute mapScalacOptions: -rewrite,REQUIRE:-source:3.4-migration,-Wconf:msg=can be rewritten automatically under:s -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
115[info] Reapplying settings...
116[info] set scmInfo to https://github.com/typelevel/cats-parse
117[info] set current project to root (in build file:/build/repo/)
118[info] Defining Global / credentials, bench / credentials and 7 others.
119[info] The new values will be used by Compile / scalafmtOnly, IntegrationTest / scalafmtOnly and 78 others.
120[info] Run `last` for details.
121[info] Reapplying settings...
122[info] set scmInfo to https://github.com/typelevel/cats-parse
123[info] set current project to root (in build file:/build/repo/)
124Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
125[info] Reapplying settings...
126OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
127
128 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
129 Did you mean allExcludeDependencies ?
130 , retry without global scopes
131[info] Reapplying settings...
132[info] set scmInfo to https://github.com/typelevel/cats-parse
133[info] set current project to root (in build file:/build/repo/)
134Execute removeScalacOptionsStartingWith: -P:wartremover
135[info] Reapplying settings...
136[info] set scmInfo to https://github.com/typelevel/cats-parse
137[info] set current project to root (in build file:/build/repo/)
138[success] Total time: 0 s, completed Jan 13, 2026, 3:39:21 PM
139Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.4"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.4\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
140Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),CompileOnly,List()))
141Starting build...
142Projects: Set(coreJVM)
143Starting build for ProjectRef(file:/build/repo/,coreJVM) (cats-parse)... [0/1]
144OpenCB::Exclude Scala3 specific scalacOption `-rewrite` in Scala 2.12.20 module Global
145OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.4-migration` in Scala 2.12.20 module Global
146OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
147OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
148Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, -java-output-version, 8, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
149[info] compiling 14 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
150[info] [patched file /build/repo/core/shared/src/main/scala/cats/parse/strings/Json.scala]
151[info] [patched file /build/repo/core/shared/src/main/scala/cats/parse/StringCodec.scala]
152[info] [patched file /build/repo/core/shared/src/main/scala/cats/parse/Rfc5234.scala]
153[info] [patched file /build/repo/core/shared/src/main/scala/cats/parse/Parser.scala]
154[info] [patched file /build/repo/core/shared/src/main/scala/cats/parse/LocationMap.scala]
155[info] [patched file /build/repo/core/shared/src/main/scala/cats/parse/Accumulator.scala]
156[info] done compiling
157[info] compiling 6 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
158[info] done compiling
159[info] compiling 7 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
160[info] done compiling
161[info] compiling 13 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/test-classes ...
162[warn] -- [E198] Unused Symbol Warning: /build/repo/core/shared/src/test/scala/cats/parse/ErrorShowTest.scala:225:26
163[warn] 225 | import cats.implicits._
164[warn] | ^
165[warn] | unused import
166[info] [patched file /build/repo/core/shared/src/test/scala/cats/parse/ParserTest.scala]
167[info] [patched file /build/repo/core/shared/src/test/scala/cats/parse/LocationMapTest.scala]
168[info] [patched file /build/repo/core/shared/src/test/scala/cats/parse/Rfc5234Test.scala]
169[info] [patched file /build/repo/core/shared/src/test/scala/cats/parse/ErrorShowTest.scala]
170[warn] one warning found
171[info] done compiling
172[info] compiling 4 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/test-classes ...
173[info] done compiling
174
175************************
176Build summary:
177[{
178 "module": "cats-parse",
179 "compile": {"status": "ok", "tookMs": 18189, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
180 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
181 "test-compile": {"status": "ok", "tookMs": 27205, "warnings": 1, "errors": 0, "sourceVersion": "3.4-migration"},
182 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
183 "publish": {"status": "skipped", "tookMs": 0},
184 "metadata": {
185 "crossScalaVersions": ["2.11.12", "2.12.20", "2.13.14", "3.3.4"]
186}
187}]
188************************
189[success] Total time: 56 s, completed Jan 13, 2026, 3:40:17 PM
190[0JChecking patch project/plugins.sbt...
191Checking patch project/build.properties...
192Checking patch build.sbt...
193Applied patch project/plugins.sbt cleanly.
194Applied patch project/build.properties cleanly.
195Applied patch build.sbt cleanly.
196Commit migration rewrites
197Switched to a new branch 'opencb/migrate-source-3.4'
198[opencb/migrate-source-3.4 a9445d3] Apply Scala compiler rewrites using -source:3.4-migration using Scala 3.7.4
199 10 files changed, 62 insertions(+), 63 deletions(-)
200----
201Preparing build for 3.8.0
202Scala binary version found: 3.8
203Implicitly using source version 3.8
204Scala binary version found: 3.8
205Implicitly using source version 3.8
206Would try to apply common scalacOption (best-effort, sbt/mill only):
207Append: ,REQUIRE:-source:3.8
208Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
209
210Try apply source patch:
211Path: build.sbt
212Pattern: val scala3 = "3.3.4"
213Replacement: val scala3 = "3.8.0"
214Successfully applied pattern 'val scala3 = "3.3.4"' in build.sbt
215----
216Starting build for 3.8.0
217Execute tests: true
218sbt project found:
219Sbt version 1.10.6 is not supported, minimal supported version is 1.11.5
220Enforcing usage of sbt in version 1.11.5
221No prepare script found for project typelevel/cats-parse
222##################################
223Scala version: 3.8.0
224Targets: org.typelevel%cats-parse
225Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.4"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.4\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
226##################################
227Using extra scalacOptions: ,REQUIRE:-source:3.8
228Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
229[sbt_options] declare -a sbt_options=()
230[process_args] java_version = '17'
231[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
232# Executing command line:
233java
234-Dfile.encoding=UTF-8
235-Dcommunitybuild.scala=3.8.0
236-Dcommunitybuild.project.dependencies.add=
237-Xmx7G
238-Xms4G
239-Xss8M
240-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
241-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
242-jar
243/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
244"setCrossScalaVersions 3.8.0"
245"++3.8.0 -v"
246"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
247"set every credentials := Nil"
248"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
249"removeScalacOptionsStartingWith -P:wartremover"
250
251moduleMappings
252"runBuild 3.8.0 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.4"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.4\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" org.typelevel%cats-parse"
253
254[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
255[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
256[info] loading project definition from /build/repo/project
257[info] loading settings for project root from build.sbt...
258[info] set scmInfo to https://github.com/typelevel/cats-parse
259java.lang.RuntimeException: Your tlBaseVersion 1.0 is behind the latest tag 1.1.0
260 at scala.sys.package$.error(package.scala:30)
261 at org.typelevel.sbt.TypelevelVersioningPlugin$.$anonfun$buildSettings$12(TypelevelVersioningPlugin.scala:95)
262 at scala.Option.flatMap(Option.scala:271)
263 at org.typelevel.sbt.TypelevelVersioningPlugin$.$anonfun$buildSettings$10(TypelevelVersioningPlugin.scala:93)
264 at scala.Option.getOrElse(Option.scala:189)
265 at org.typelevel.sbt.TypelevelVersioningPlugin$.$anonfun$buildSettings$6(TypelevelVersioningPlugin.scala:86)
266 at scala.Function1.$anonfun$compose$1(Function1.scala:49)
267 at sbt.internal.util.EvaluateSettings$MixedNode.evaluate0(INode.scala:229)
268 at sbt.internal.util.EvaluateSettings$INode.evaluate(INode.scala:171)
269 at sbt.internal.util.EvaluateSettings.$anonfun$submitEvaluate$1(INode.scala:88)
270 at sbt.internal.util.EvaluateSettings.sbt$internal$util$EvaluateSettings$$run0(INode.scala:100)
271 at sbt.internal.util.EvaluateSettings$$anon$3.run(INode.scala:95)
272 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
273 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
274 at java.base/java.lang.Thread.run(Thread.java:833)
275[error] Your tlBaseVersion 1.0 is behind the latest tag 1.1.0
276[error] Use 'last' for the full log.
277[warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
278[0JSuccessfully applied pattern 'tlBaseVersion := [^,\n]+' in ./build.sbt
279Retrying build, retry 1/2, force Scala version:false, enable migration:
280[sbt_options] declare -a sbt_options=()
281[process_args] java_version = '17'
282[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
283# Executing command line:
284java
285-Dfile.encoding=UTF-8
286-Dcommunitybuild.scala=3.8.0
287-Dcommunitybuild.project.dependencies.add=
288-Xmx7G
289-Xms4G
290-Xss8M
291-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
292-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
293-jar
294/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
295"setCrossScalaVersions 3.8.0"
296"++3.8.0 -v"
297"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
298"set every credentials := Nil"
299"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
300"removeScalacOptionsStartingWith -P:wartremover"
301
302moduleMappings
303"runBuild 3.8.0 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.4"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.4\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" org.typelevel%cats-parse"
304
305[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
306[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
307[info] loading project definition from /build/repo/project
308[info] loading settings for project root from build.sbt...
309[info] set scmInfo to https://github.com/typelevel/cats-parse
310[info] set current project to root (in build file:/build/repo/)
311Execute setCrossScalaVersions: 3.8.0
312[info] set scmInfo to https://github.com/typelevel/cats-parse
313OpenCB::Limitting incorrect crossVersions List() -> List(2.13.14) in root/crossScalaVersions
314OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in coreJVM/crossScalaVersions
315OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in rootNative/crossScalaVersions
316OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in rootJS/crossScalaVersions
317OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in docs/crossScalaVersions
318OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in coreJS/crossScalaVersions
319OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in bench/crossScalaVersions
320OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in coreNative/crossScalaVersions
321OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in rootJVM/crossScalaVersions
322[info] set current project to root (in build file:/build/repo/)
323[info] Setting Scala version to 3.8.0 on 8 projects.
324[info] Switching Scala version on:
325[info] rootJS (2.11.12, 2.12.20, 2.13.14, 3.8.0)
326[info] coreNative (2.12.20, 2.13.14, 3.8.0)
327[info] docs (2.11.12, 2.12.20, 2.13.14, 3.8.0)
328[info] coreJS (2.12.20, 2.13.14, 3.8.0)
329[info] coreJVM (2.11.12, 2.12.20, 2.13.14, 3.8.0)
330[info] rootJVM (2.11.12, 2.12.20, 2.13.14, 3.8.0)
331[info] rootNative (2.11.12, 2.12.20, 2.13.14, 3.8.0)
332[info] bench (2.11.12, 2.12.20, 2.13.14, 3.8.0)
333[info] Excluding projects:
334[info] * root (2.13.14)
335[info] Reapplying settings...
336[info] set scmInfo to https://github.com/typelevel/cats-parse
337[info] set current project to root (in build file:/build/repo/)
338Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
339[info] Reapplying settings...
340[info] set scmInfo to https://github.com/typelevel/cats-parse
341[info] set current project to root (in build file:/build/repo/)
342[info] Defining Global / credentials, bench / credentials and 7 others.
343[info] The new values will be used by Compile / scalafmtOnly, IntegrationTest / scalafmtOnly and 78 others.
344[info] Run `last` for details.
345[info] Reapplying settings...
346[info] set scmInfo to https://github.com/typelevel/cats-parse
347[info] set current project to root (in build file:/build/repo/)
348Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
349[info] Reapplying settings...
350OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
351
352 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
353 Did you mean allExcludeDependencies ?
354 , retry without global scopes
355[info] Reapplying settings...
356[info] set scmInfo to https://github.com/typelevel/cats-parse
357[info] set current project to root (in build file:/build/repo/)
358Execute removeScalacOptionsStartingWith: -P:wartremover
359[info] Reapplying settings...
360[info] set scmInfo to https://github.com/typelevel/cats-parse
361[info] set current project to root (in build file:/build/repo/)
362[success] Total time: 0 s, completed Jan 13, 2026, 3:40:49 PM
363Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.4"],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.4\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
364Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
365Starting build...
366Projects: Set(coreJVM)
367Starting build for ProjectRef(file:/build/repo/,coreJVM) (cats-parse)... [0/1]
368OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
369OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
370OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
371Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
372[info] compiling 14 Scala sources to /build/repo/core/jvm/target/scala-3.8.0/classes ...
373[info] done compiling
374[info] compiling 13 Scala sources to /build/repo/core/jvm/target/scala-3.8.0/test-classes ...
375[info] done compiling
376cats.parse.AccumulatorTest:
377 + intCounter counts how many times it's invoked 0.218s
378 + intCounters newAppender returns a new appender 0.002s
379cats.parse.Rfc5234Test:
380 + alpha parses single valid char 0.008s
381 + alpha rejects single invalid char 0.103s
382 + alpha rejects all but single char 0.008s
383 + bit parses single valid char 0.003s
384 + bit rejects single invalid char 0.014s
385 + bit rejects all but single char 0.005s
386 + char parses single valid char 0.001s
387 + char rejects single invalid char 0.018s
388 + char rejects all but single char 0.006s
389 + cr parses single valid char 0.004s
390 + cr rejects single invalid char 0.012s
391 + cr rejects all but single char 0.006s
392 + ctl parses single valid char 0.003s
393 + ctl rejects single invalid char 0.016s
394 + ctl rejects all but single char 0.006s
395 + digit parses single valid char 0.003s
396 + digit rejects single invalid char 0.008s
397 + digit rejects all but single char 0.005s
398 + dquote parses single valid char 0.004s
399 + dquote rejects single invalid char 0.008s
400 + dquote rejects all but single char 0.005s
401 + hexdig parses single valid char 0.001s
402 + hexdig rejects single invalid char 0.025s
403 + hexdig rejects all but single char 0.002s
404 + htab parses single valid char 0.007s
405 + htab rejects single invalid char 0.006s
406 + htab rejects all but single char 0.002s
407 + lf parses single valid char 0.004s
408 + lf rejects single invalid char 0.002s
409 + lf rejects all but single char 0.005s
410 + octet parses single valid char 0.001s
411 + octet rejects single invalid char 0.002s
412 + octet rejects all but single char 0.006s
413 + sp parses single valid char 0.001s
414 + sp rejects single invalid char 0.004s
415 + sp rejects all but single char 0.002s
416 + vchar parses single valid char 0.004s
417 + vchar rejects single invalid char 0.002s
418 + vchar rejects all but single char 0.004s
419 + wsp parses single valid char 0.001s
420 + wsp rejects single invalid char 0.011s
421 + wsp rejects all but single char 0.005s
422 + crlf accepts \r\n 0.001s
423 + crlf rejects all but \r\n 0.038s
424 + lwsp accepts all linear white space 0.032s
425 + lwsp rejects crlf unless followed by wsp 0.015s
426cats.parse.ErrorShowTest:
427 + ko 0.004s
428 + ko-1 0.003s
429 + ok 0.003s
430 + okmore 0.001s
431 + a 0.002s
432 + okidou 0.001s
433 + ok-1 0.001s
434 + ok-2 0.002s
435 + ko-2 0.006s
436 + l1\nl2\nl3\nl4\nko\nl6\nl7\nl8\nl9\n 0.003s
437 + l1\nko\nl3 0.0s
438 + l1\nko 0.001s
439 + ko\nl2 0.0s
440 + without input 0.006s
441 + error show does not crash 0.253s
442cats.parse.SemVerTest:
443 + semver parses SemVer 0.044s
444cats.parse.StringsTest:
445 + json strings round trip 2.044s
446cats.parse.RepParserConstructionTest:
447 + rep constructs parser with min >= 1, min <= max 0.035s
448 + rep fails to construct parser without min >= 1, min <= max 0.103s
449 + rep constructs parser with min >= 1 0.016s
450 + rep fails to construct parser without min >= 1 0.044s
451 + rep0 constructs parser with min >= 0, (min, 1) <= max 0.028s
452 + rep0 fails to construct parser without min >= 0, (min, 1) <= max 0.084s
453 + rep0 constructs parser with min >= 0 0.015s
454 + rep0 fails to construct parser without min >= 0 0.043s
455 + repAs constructs parser with min >= 1, min <= max 0.028s
456 + repAs fails to construct parser without min >= 1, min <= max 0.065s
457 + repAs constructs parser with min >= 1 0.015s
458 + repAs fails to construct parser without min >= 1 0.044s
459 + repAs0 constructs parser with max >= 1 0.017s
460 + repAs0 fails to construct parser without max >= 1 0.026s
461cats.parse.LocationMapTest:
462 + single line locations 0.648s
463 + position of end-of-line is the same as adding a constant 0.384s
464 + adding more content never changes the Caret of an offset 0.969s
465 + some specific examples 0.008s
466 + we can reassemble input with getLine 0.241s
467 + toLineCol is defined for all valid offsets, and getLine isDefined consistently 0.563s
468 + if a string is not empty, 0 offset is (0, 0) 0.197s
469 + slow toLineCol matches 0.875s
470 + if x > y && toLineCol(x).isDefined, then toLineCol(x) > toLineCol(y) 0.36s
471 + toLineCol toOffset round trips 0.743s
472 + lineCount and getLine are consistent 0.182s
473 + toLineCol and toCaret are consistent 1.264s
474 + Caret ordering matches offset ordering 0.242s
475cats.parse.NumbersTest:
476 + bigInt round trips 0.262s
477 + jsonNumber parses Int 0.076s
478 + jsonNumber parses Long 0.051s
479 + jsonNumber parses Float 0.186s
480 + jsonNumber parses Double 0.213s
481 + jsonNumber parses BigDecimal 0.316s
482 + If jsonNumber parses, then BigDecimal would parse 0.395s
483cats.parse.JvmNumbersTest:
484 + jsonNumber parses if and only if Jawn would parse it as a number 1.113s
485 + jsonNumber parses if and only if Jawn would parse it as a number (valid Double) 0.416s
486 + jsonNumber parses if and only if Jawn would parse it as a number (valid BigDecimal) 0.419s
487 + jsonNumber parses if and only if Jawn would parse it as a number (valid Int) 0.151s
488cats.parse.BitSetTest:
489 + isScalaJs/isScalaJvm is consistent 0.0s
490 + BitSetUtil union works 0.155s
491 + BitSet.isSingleton is correct 0.004s
492cats.parse.JvmStringsTest:
493 + JString(str).render parses 12.205s
494 + Strings.jsonEscape(str) parses in Jawn 0.824s
495 + jsonString parses in exactly the same cases as Jawn 2.197s
496cats.parse.RadixNodeTest:
497 + commonPrefixLength is consistent 0.496s
498 + commonPrefixLength is commutative 0.322s
499 + commonPrefixLength(s, s + r) == s.length 0.347s
500 + commonPrefixLength(s + r, s + t) >= s.length 0.439s
501 + commonPrefixLength is commutative-1 0.336s
502 + If we match, then string is in the set 5.32s
503 + we match everything in the set 3.417s
504 + commonPrefix is associative 0.205s
505 + commonPrefix commutes 0.118s
506 + commonPrefix is finds prefix 0.147s
507 + RadixNode.fromStrings(emptyString :: Nil) matches everything 0.097s
508 + fromString(Nil) matches nothing 0.132s
509 + RadixTree singleton 0.283s
510 + RadixTree union property 5.509s
511 + matchAtOrNull is consistent 1.812s
512 + example from ParserTest 0.0s
513 + RadixNode.allStrings roundTrips 2.895s
514cats.parse.ParserTest:
515 + pure works 0.059s
516 + string tests 0.002s
517 + product tests 0.001s
518 + longest match stringIn 0.002s
519 + biasSmall works 0.044s
520 + Parser0 on success replaces parsed value 0.487s
521 + Parser.start and end work 0.217s
522 + Parser.length0 succeeds when the string is long enough 0.192s
523 + string(x).void == string(x) and withContext 0.007s
524 + voided only changes the result 0.705s
525 + voided only changes the result Parser 0.646s
526 + expected in errors gives valid offsets 0.218s
527 + oneOf0 nesting doesn't change results 4.703s
528 + oneOf nesting doesn't change results 4.99s
529 + oneOf0 composes as expected 0.169s
530 + oneOf composes as expected 0.122s
531 + check some specific oneOf compositions 0.135s
532 + oneOf0 same as foldLeft(fail)(_.orElse(_)) 0.762s
533 + oneOf same as foldLeft(fail)(_.orElse(_)) 1.293s
534 + string can be recovered with index 0.037s
535 + backtrack orElse pure always succeeds 0.024s
536 + backtrack.? pure always succeeds 0.033s
537 + a.backtrack either succeeds or fails at 0 0.027s
538 + a ~ b composes as expected 1.054s
539 + a ~ b composes as expected parser1 0.68s
540 + a.with1 ~ b composes as expected 0.858s
541 + a.soft ~ b composes as expected 1.076s
542 + a1.soft ~ b composes as expected Parser 1.014s
543 + a.with1.soft ~ b1 composes as expected 1.258s
544 + a.flatMap(b) composes as expected parser00 1.459s
545 + a.flatMap(b) composes as expected parser10 0.055s
546 + a.flatMap(b) composes as expected parser01 1.039s
547 + range messages seem to work 0.002s
548 + partial parse fails in rep0 0.001s
549 + defer Parser0 does not run eagerly 0.001s
550 + defer Parser does not run eagerly 0.001s
551 + charIn matches charWhere 0.047s
552 + charIn matches charIn varargs 0.04s
553 + charIn range matches charIn list 1.007s
554 + charIn full range == anyChar 0.001s
555 + Parser.end gives the right error 0.011s
556 + rep0 can be reimplemented with oneOf0 and defer 0.043s
557 + rep0 is consistent with rep 0.045s
558 + repExactlyAs is consistent with repAs 0.056s
559 + rep parses n entries, min <= n <= max 0.051s
560 + rep0 parses n entries, min <= n <= max 0.044s
561 + rep0 parses at most max entries (min == 0) 0.033s
562 + repAs parses max entries when available 0.007s
563 + repAs parses max entries when more is available 0.005s
564 + repAs0 parses max entries when available 0.006s
565 + repAs0 parses max entries when more is available 0.006s
566 + repExactlyAs parses exactly `times` entries when available 0.005s
567 + rep parses max entries when more is available 0.009s
568 + rep0 parses max entries when available 0.007s
569 + rep0 parses max entries when more is available 0.008s
570 + repSep0 with unit sep is the same as rep0 0.137s
571 + repSep without min is the same as repSep with min = 1 0.074s
572 + repSep with sep = fail is the same as parsing 1 0.041s
573 + charsWhile/charsWhere consistency 0.11s
574 + MonoidK[Parser0].empty never succeeds 0.009s
575 + Monad.pure is an identity function 0.007s
576 + p orElse p == p 0.048s
577 + p orElse p == p (0) 0.036s
578 + Parser fails or consumes 1 or more 0.04s
579 + p1.backtrack.orElse(p2) succeeds if either p1 or p2 do (Parser0) 0.058s
580 + p1.backtrack.orElse(p2) succeeds if either p1 or p2 do 0.086s
581 + p1.orElse(p2) == p1 | p2 0.235s
582 + charWhere(_ => true) == anyChar 0.007s
583 + with1 *> and with1 <* work as expected 0.079s
584 + a1 *> b and a1 <* b 0.072s
585 + parse between open and close 1.245s
586 + surroundedBy consistent with between 0.054s
587 + parse between open and close with Parser this 0.085s
588 + surroundedBy consistent with between with Parser this 0.065s
589 + parse soft.between open and close 0.095s
590 + soft.surroundedBy consistent with soft.between 0.058s
591 + parse soft.between open and close with Parser this 0.08s
592 + soft.surroundedBy consistent with between with Parser this 0.066s
593 + parse with1.between open and close with Parser args 0.871s
594 + with1.surroundedBy consistent with between with Parser this 0.056s
595 + parse soft.with1.between open and close with Parser args 0.089s
596 + soft.with1.surroundedBy consistent with between with Parser this 0.077s
597 + exactly one of x or !x parse 0.043s
598 + if x ~ y matches then x ~ y.peek match 0.073s
599 + if x matches then x.peek matches but returns the whole string and unit 0.025s
600 + (a.soft ~ b) == a ~ b in success of expected (not partials) 0.049s
601 + (a.soft ~ b) == softProduct(a, b) 0.072s
602 + (a1.soft ~ b) == softProduct(a, b) 0.101s
603 + Parser.until is like a search 0.096s
604 + Parser.repUntil end Parser succeeds works as expected 0.128s
605 + a.repUntilAs(end) matches a.repUntil(end) 0.128s
606 + parseAll law 0.032s
607 + b.orElse(c) ~ a == (b ~ a).orElse((!b) *> (c ~ a)) 0.109s
608 + b.orElse(c) ~ a == (b ~ a).orElse((!b) *> (c ~ a))-1 0.102s
609 + a ~ b.orElse(c) == (a.soft ~ b).orElse(a ~ c) 0.096s
610 + a ~ b.orElse(c) == (a.soft ~ b).orElse(a ~ c)-1 0.112s
611 + a.backtrack.orElse(b) parses iff b.backtrack.orElse(a) (Parser0) 0.056s
612 + a.backtrack.orElse(b) parses iff b.backtrack.orElse(a) 0.075s
613 + failWith returns the given error message 0.012s
614 + failWith.? returns None 0.01s
615 + a.repAs0[Vector[A]] matches a.rep0.map(_.toVector) 0.058s
616 + a.repAs[Vector[A]] matches a.rep.map(_.toList.toVector) 0.038s
617 + a.string.repAs0[String] matches a.string.rep0.map(_.mkString) 0.039s
618 + a.repAs0[Unit] matches a.rep0.void 0.042s
619 + a.peek == a.peek.peek 0.027s
620 + a.backtrack.peek.orElse(b.peek) == (a.backtrack.orElse(b)).peek 0.057s
621 + a.peek == a.peek *> a.peek 0.03s
622 + !a == (!a) *> (!a) 0.027s
623 + !(!a) == a.peek 0.026s
624 + !(!(!a)) == !a 0.024s
625 + !anyChar == end 0.007s
626 + !fail == unit 0.005s
627 + !pure(_) == fail 0.01s
628 + anyChar.repAs0[String] parses the whole string 0.007s
629 + string.soft ~ string is the same as concatenating the string 0.016s
630 + Parser.string(f).string == Parser.string(f).as(f) 0.008s
631 + char(c).as(c) == charIn(c) 0.013s
632 + select(pa.map(Left(_)))(pf) == (pa, pf).mapN((a, fn) => fn(a)) 0.854s
633 + select1(pa.map(Left(_)))(pf) == (pa, pf).mapN((a, fn) => fn(a)) 0.059s
634 + select(pa.map(Right(_)))(pf) == pa 0.048s
635 + select1(pa.map(Right(_)))(pf) == pa 0.058s
636 + p.filter(_ => true) == p 0.027s
637 + p.filter(_ => false) fails 0.03s
638 + a Parser never succeeds and does not advance 0.039s
639 + select on pure values works as expected 0.012s
640 + mapFilter is the same as filter + map 0.035s
641 + mapFilter is the same as filter + map Parser 0.04s
642 + collect is the same as filter + map 0.036s
643 + collect is the same as filter + map Parser 0.045s
644 + eitherOr Parser0 works as expected 0.056s
645 + eitherOr Parser works as expected 0.077s
646 + p.as(a).map(fn) == p.as(fn(a)) 0.06s
647 + oneOf(string(s)*) success => stringIn(s*) success 0.915s
648 + stringIn(List(s)) == string(s) 0.008s
649 + stringIn(List(s, s)) == string(s) 0.006s
650 + string(s) matches => stringIn(ss) matches if s in ss 0.084s
651 + stringIn(s) is order independent 0.175s
652 + Union parser is stringIn if alternatives have no common prefix 0.241s
653 + stringIn parses longest match 0.141s
654 + stringIn0 parses longest match 0.138s
655 + some stringIn unions with prefixes 0.0s
656 + a.string == a.string.string 0.027s
657 + a.string ~ b.string == (a ~ b).string 0.981s
658 + a.string.soft ~ b.string == (a.soft ~ b).string 1.064s
659 + oneOf0(a.map(_.string)) ~ oneOf0(a).string 0.081s
660 + oneOf(a.map(_.string)) ~ oneOf(a).string 0.134s
661 + InRange expectation merge should work as expected 4.029s
662 + recursive works for a parens or int 0.022s
663 + fromCharMap works as expected 0.139s
664 + fromStringMap works as expected 0.313s
665 + fromStringMap0 works as expected 0.326s
666 + a context0 added is always at the top 0.198s
667 + a context added is always at the top 0.216s
668 + a parser from a set of chars is the same with charWhere/charIn 0.048s
669 + P0.void is idempotent 0.021s
670 + P.void is idempotent 0.028s
671 + P.caret is the same as index + toCaretUnsafe 0.049s
672 + foo.as(()) == foo.void 0.052s
673 + Parsers that always succeed, when we do .as become pure 0.001s
674 + stringIn after skipping test 0.197s
675 + stringIn(s).void.string == stringIn(s) 0.126s
676 + test that some parsers unify with | 1.292s
677 + a | b is associative 0.23s
678 + oneOf0(as :+ unit) ~ b == (oneOf0(as).with1 ~ b) | (unit.with1 ~ b)) 2.513s
679 + a.? ~ b is the same as (a.map(Some(_)) ~ b) | (pure(None).with1 ~ b) 0.081s
680 + check the issue #382 example: p1.? ~ p2 vs (p1 ~ p2) | p2 0.004s
681 + example: series of options: pa.? ~ pb.? ~ pc 0.001s
682 + gen: series of options: pa.? ~ pb.? ~ pc == pa.? ~ (pb.? ~ pc) 0.12s
683 + gen: series of options: pa.? ~ pb.? ~ pc.? ~ pd == pa.? ~ (pb.? ~ (pc.? ~ pd) 0.162s
684 + a.rep0 ~ b is the same as (a.repAs ~ b) | (pure(Nil).with1 ~ b) 0.081s
685 + a.withString0 is the same as index ~ a ~ index + substring 0.029s
686 + a.withString is the same as index ~ a ~ index + substring 0.042s
687
688************************
689Build summary:
690[{
691 "module": "cats-parse",
692 "compile": {"status": "ok", "tookMs": 19559, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
693 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
694 "test-compile": {"status": "ok", "tookMs": 15010, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
695 "test": {"status": "ok", "tookMs": 49516, "passed": 298, "failed": 0, "ignored": 0, "skipped": 0, "total": 298, "byFramework": [{"framework": "munit", "stats": {"passed": 298, "failed": 0, "ignored": 0, "skipped": 0, "total": 298}}]},
696 "publish": {"status": "skipped", "tookMs": 0},
697 "metadata": {
698 "crossScalaVersions": ["2.11.12", "2.12.20", "2.13.14", "3.3.4"]
699}
700}]
701************************
702[success] Total time: 86 s (0:01:26.0), completed Jan 13, 2026, 3:42:15 PM
703[0JChecking patch project/plugins.sbt...
704Checking patch project/build.properties...
705Checking patch build.sbt...
706Applied patch project/plugins.sbt cleanly.
707Applied patch project/build.properties cleanly.
708Applied patch build.sbt cleanly.