Build Logs
xebia-functional/fetch • 3.8.1-RC1:2026-01-13
Errors
0
Warnings
66
Total Lines
332
1##################################
2Clonning https://github.com/xebia-functional/fetch.git into /build/repo using revision v3.2.0
3##################################
4Note: switching to '20a4b1d12cb65db7e7fd1c3ddc52296dbf9408df'.
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.7.0
22----
23Preparing build for 3.8.1-RC1
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.7.0"
35Replacement: val scala3Version = "3.8.1-RC1"
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.7.0"' in build.sbt
40----
41Starting build for 3.8.1-RC1
42Execute tests: true
43sbt project found:
44Sbt version 1.10.11 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 xebia-functional/fetch
47##################################
48Scala version: 3.8.1-RC1
49Targets: com.47deg%fetch com.47deg%fetch-debug
50Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3Version = \"3.7.0\"","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-Dfile.encoding=UTF-8
60-Dcommunitybuild.scala=3.8.1-RC1
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.1-RC1"
70"++3.8.1-RC1 -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.1-RC1 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3Version = \"3.7.0\"","replaceWith":"val scala3Version = \"<SCALA_VERSION>\""}]}""" com.47deg%fetch com.47deg%fetch-debug"
78
79[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
80[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
81[info] loading project definition from /build/repo/project
82[info] compiling 3 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
83[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
84[info] Compilation completed in 8.659s.
85[info] done compiling
86[info] loading settings for project repo from build.sbt...
87[info] set current project to repo (in build file:/build/repo/)
88Execute setCrossScalaVersions: 3.8.1-RC1
89OpenCB::Changing crossVersion 3.8.1-RC1 -> 3.8.1-RC1 in fetch-debugJVM/crossScalaVersions
90OpenCB::Changing crossVersion 3.8.1-RC1 -> 3.8.1-RC1 in fetchJVM/crossScalaVersions
91[info] set current project to repo (in build file:/build/repo/)
92[info] Setting Scala version to 3.8.1-RC1 on 2 projects.
93[info] Switching Scala version on:
94[info] fetch-debugJVM (2.12.20, 2.13.16, 3.8.1-RC1)
95[info] fetchJVM (2.12.20, 2.13.16, 3.8.1-RC1)
96[info] Excluding projects:
97[info] fetchJS (2.12.20, 2.13.16)
98[info] documentation (2.12.20, 2.13.16)
99[info] microsite (2.12.20, 2.13.16)
100[info] fetch-examples (2.12.20, 2.13.16)
101[info] fetch-debugJS (2.12.20, 2.13.16)
102[info] * repo (2.13.16)
103[info] Reapplying settings...
104[info] set current project to repo (in build file:/build/repo/)
105Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
106[info] Reapplying settings...
107[info] set current project to repo (in build file:/build/repo/)
108[info] Defining Global / credentials, credentials and 6 others.
109[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 63 others.
110[info] Run `last` for details.
111[info] Reapplying settings...
112[info] set current project to repo (in build file:/build/repo/)
113Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
114[info] Reapplying settings...
115OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
116
117 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
118 Did you mean allExcludeDependencies ?
119 , retry without global scopes
120[info] Reapplying settings...
121[info] set current project to repo (in build file:/build/repo/)
122Execute removeScalacOptionsStartingWith: -P:wartremover
123[info] Reapplying settings...
124[info] set current project to repo (in build file:/build/repo/)
125[success] Total time: 0 s, completed Jan 13, 2026, 7:29:15 PM
126Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3Version = \"3.7.0\"","replaceWith":"val scala3Version = \"<SCALA_VERSION>\""}]}
127Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
128Starting build...
129Projects: Set(fetchJVM, fetch-debugJVM)
130Starting build for ProjectRef(file:/build/repo/,fetchJVM) (fetch)... [0/2]
131OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
132OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
133OpenCB::Filter out '-source:3.0-migration', matches setting pattern '^-?-source(:.*)?'
134Compile scalacOptions: -unchecked, -Ywarn-dead-code, -language:higherKinds, -language:existentials, -language:postfixOps, -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
135[info] compiling 6 Scala sources to /build/repo/fetch/.jvm/target/scala-3.8.1-RC1/classes ...
136[warn] bad option '-Ywarn-dead-code' was ignored
137[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
138[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/fetch/src/main/scala/fetch.scala:164:12
139[warn] 164 | case (a: FetchOne[Any, Any], b: FetchOne[Any, Any]) =>
140[warn] | ^
141[warn] |the type test for fetch.FetchOne[Any, Any] cannot be checked at runtime because its type arguments can't be determined from fetch.FetchRequest
142[warn] |
143[warn] | longer explanation available when compiling with `-explain`
144[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/fetch/src/main/scala/fetch.scala:164:35
145[warn] 164 | case (a: FetchOne[Any, Any], b: FetchOne[Any, Any]) =>
146[warn] | ^
147[warn] |the type test for fetch.FetchOne[Any, Any] cannot be checked at runtime because its type arguments can't be determined from fetch.FetchRequest
148[warn] |
149[warn] | longer explanation available when compiling with `-explain`
150[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/fetch/src/main/scala/fetch.scala:191:35
151[warn] 191 | case (a: FetchOne[Any, Any], b: Batch[Any, Any]) =>
152[warn] | ^
153[warn] |the type test for fetch.Batch[Any, Any] cannot be checked at runtime because its type arguments can't be determined from fetch.FetchRequest
154[warn] |
155[warn] | longer explanation available when compiling with `-explain`
156[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/fetch/src/main/scala/fetch.scala:211:12
157[warn] 211 | case (a: Batch[Any, Any], b: FetchOne[Any, Any]) =>
158[warn] | ^
159[warn] |the type test for fetch.Batch[Any, Any] cannot be checked at runtime because its type arguments can't be determined from fetch.FetchRequest
160[warn] |
161[warn] | longer explanation available when compiling with `-explain`
162[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/fetch/src/main/scala/fetch.scala:211:32
163[warn] 211 | case (a: Batch[Any, Any], b: FetchOne[Any, Any]) =>
164[warn] | ^
165[warn] |the type test for fetch.FetchOne[Any, Any] cannot be checked at runtime because its type arguments can't be determined from fetch.FetchRequest
166[warn] |
167[warn] | longer explanation available when compiling with `-explain`
168[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/fetch/src/main/scala/fetch.scala:230:32
169[warn] 230 | case (a: Batch[Any, Any], b: Batch[Any, Any]) =>
170[warn] | ^
171[warn] |the type test for fetch.Batch[Any, Any] cannot be checked at runtime because its type arguments can't be determined from fetch.FetchRequest
172[warn] |
173[warn] | longer explanation available when compiling with `-explain`
174[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/fetch/src/main/scala/fetch.scala:652:13
175[warn] 652 | case q: FetchOne[Any, Any] => runFetchOne[F](q, ds, blocked.result, cache, log)
176[warn] | ^
177[warn] |the type test for fetch.FetchOne[Any, Any] cannot be checked at runtime because its type arguments can't be determined from fetch.FetchRequest
178[warn] |
179[warn] | longer explanation available when compiling with `-explain`
180[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/fetch/src/main/scala/fetch.scala:653:13
181[warn] 653 | case q: Batch[Any, Any] => runBatch[F](q, ds, blocked.result, cache, log)
182[warn] | ^
183[warn] |the type test for fetch.Batch[Any, Any] cannot be checked at runtime because its type arguments can't be determined from fetch.FetchRequest
184[warn] |
185[warn] | longer explanation available when compiling with `-explain`
186[warn] there was 1 deprecation warning; re-run with -deprecation for details
187[warn] 11 warnings found
188[info] done compiling
189[info] compiling 7 Scala sources to /build/repo/fetch/.jvm/target/scala-3.8.1-RC1/test-classes ...
190[warn] bad option '-Ywarn-dead-code' was ignored
191[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
192[warn] two warnings found
193[info] done compiling
194[info] FetchAsyncQueryTests:
195[info] - We can interpret an async fetch into an IO
196[info] - We can combine several async data sources and interpret a fetch into an IO
197[info] - We can use combinators in a for comprehension and interpret a fetch from async sources into an IO
198[info] - We can use combinators and multiple sources in a for comprehension and interpret a fetch from async sources into an IO
199[info] FetchReportingTests:
200[info] - Plain values have no rounds of execution
201[info] - Single fetches are executed in one round
202[info] - Single fetches are executed in one round per binding in a for comprehension
203[info] - Single fetches for different data sources are executed in multiple rounds if they are in a for comprehension
204[info] - Single fetches combined with cartesian are run in one round
205[info] - Single fetches combined with traverse are run in one round
206[info] - Single fetches combined with Fetch.batchAll are run in one round
207[info] - The product of two fetches from the same data source implies batching
208[info] - The product of concurrent fetches of the same type implies everything fetched in batches
209[info] FetchTests:
210[info] - We can lift plain values to Fetch
211[info] - We can lift values which have a Data Source to Fetch
212[info] - We can map over Fetch values
213[info] - We can use fetch inside a for comprehension
214[info] - We can mix data sources
215[info] - We can use Fetch as a cartesian
216[info] - We can use Fetch as an applicative
217[info] - We can traverse over a list with a Fetch for each element
218[info] - We can depend on previous computations of Fetch values
219[info] - We can collect a list of Fetch into one
220[info] - We can collect a list of Fetches with heterogeneous sources
221[info] - We can collect the results of a traversal
222[info] - Monadic bind implies sequential execution
223[info] - Traversals are implicitly batched
224[info] - Sequencing is implicitly batched
225[info] - Identities are deduped when batched
226[info] - The product of two fetches implies parallel fetching
227[info] - Concurrent fetching calls batches only when it can
228[info] - Concurrent fetching performs requests to multiple data sources in parallel
229[info] - The product of concurrent fetches implies everything fetched concurrently
230[info] - The product of concurrent fetches of the same type implies everything fetched in a single batch
231[info] - Every level of joined concurrent fetches is combined and batched
232[info] - Every level of batched, concurrent fetches is batched
233[info] - The product of two fetches from the same data source implies batching
234[info] - Sequenced fetches are run concurrently
235[info] - Manually batched fetches are run concurrently
236[info] - Sequenced fetches are deduped
237[info] - Manually batched fetches are deduped
238[info] - Traversals are batched
239[info] - Duplicated sources are only fetched once
240[info] - Sources that can be fetched concurrently inside a for comprehension will automatically be concurrent
241[info] - Sources that are manually batched will be fetched concurrently
242[info] - Pure Fetches allow to explore further in the Fetch
243[info] - Elements are cached and thus not fetched more than once
244[info] - Batched elements are cached and thus not fetched more than once
245[info] - Elements that are cached won't be fetched
246[info] - Fetch#run accepts a cache as the second (optional) parameter
247[info] - Fetch#runCache accepts a cache as the second (optional) parameter
248[info] - Fetch#runCache works without the optional cache parameter
249[info] - We can use a custom cache that discards elements
250[info] - We can use a custom cache that discards elements together with concurrent fetches
251[info] - Data sources with errors throw fetch failures
252[info] - Data sources with errors throw fetch failures that can be handled
253[info] - Data sources with errors won't fail if they're cached
254[info] - We can lift errors to Fetch
255[info] - We can lift handle and recover from errors in Fetch
256[info] - If a fetch fails in the left hand of a product the product will fail
257[info] - If a fetch fails in the right hand of a product the product will fail
258[info] - If there is a missing identity in the left hand of a product the product will fail
259[info] - If there is a missing identity in the right hand of a product the product will fail
260[info] - If there are multiple failing identities the fetch will fail
261[info] - We can run optional fetches
262[info] - We can run optional fetches with Fetch.batchAll
263[info] - We can run optional fetches with other data sources
264[info] - We can make fetches that depend on optional fetch results when they aren't defined
265[info] - We can make fetches that depend on optional fetch results when they are defined
266[info] - We can lift IO actions into Fetch
267[info] - A failed IO action lifted into Fetch will cause a Fetch to fail
268[info] - A IO action can be combined with data fetches
269[info] - We can lift Concurrent actions into Fetch
270[info] - A failed Concurrent action lifted into Fetch will cause a Fetch to fail
271[info] - A Concurrent action can be combined with data fetches
272[info] FetchSyntaxTests:
273[info] - `fetch` syntax allows lifting of any value to the context of a fetch
274[info] - `fetch` syntax allows lifting of any `Throwable` as a failure on a fetch
275[info] - `batchAll` syntax allows batching sequences of fetches and is equivalent to Fetch.batchAll
276[info] FetchBatchingTests:
277[info] - A large fetch to a datasource with a maximum batch size is split and executed in sequence
278[info] - A large fetch to a datasource with a maximum batch size is split and executed in parallel
279[info] - Fetches to datasources with a maximum batch size should be split and executed in parallel and sequentially when using productR
280[info] - Fetches to datasources with a maximum batch size should be split and executed in parallel and sequentially when using productL
281[info] - A large (many) fetch to a datasource with a maximum batch size is split and executed in sequence
282[info] - A large (many) fetch to a datasource with a maximum batch size is split and executed in parallel
283[info] - Very deep fetches don't overflow stack or heap
284[info] - Fetches produced across unrelated fetches to a DataSource that is NOT batched across fetch executions should NOT be bundled together
285[info] - Fetches produced across unrelated fetches to a DataSource that is batched across fetch executions should be bundled together
286Starting build for ProjectRef(file:/build/repo/,fetch-debugJVM) (fetch-debug)... [1/2]
287Compile scalacOptions: -unchecked, -Ywarn-dead-code, -language:higherKinds, -language:existentials, -language:postfixOps, -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
288[info] compiling 2 Scala sources to /build/repo/fetch-debug/.jvm/target/scala-3.8.1-RC1/classes ...
289[warn] bad option '-Ywarn-dead-code' was ignored
290[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
291[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/fetch-debug/src/main/scala/document.scala:50:6
292[warn] 50 | state match {
293[warn] | ^^^^^
294[warn] | match may not be exhaustive.
295[warn] |
296[warn] | It would fail on pattern case: List((_, _, _), _*)
297[warn] |
298[warn] | longer explanation available when compiling with `-explain`
299[warn] three warnings found
300[info] done compiling
301
302************************
303Build summary:
304[{
305 "module": "fetch",
306 "compile": {"status": "ok", "tookMs": 10888, "warnings": 8, "errors": 0, "sourceVersion": "3.8"},
307 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
308 "test-compile": {"status": "ok", "tookMs": 8973, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
309 "test": {"status": "ok", "tookMs": 3512, "passed": 87, "failed": 0, "ignored": 0, "skipped": 0, "total": 87, "byFramework": [{"framework": "unknown", "stats": {"passed": 87, "failed": 0, "ignored": 0, "skipped": 0, "total": 87}}]},
310 "publish": {"status": "skipped", "tookMs": 0},
311 "metadata": {
312 "crossScalaVersions": ["2.12.20", "2.13.16", "3.7.0"]
313}
314},{
315 "module": "fetch-debug",
316 "compile": {"status": "ok", "tookMs": 1718, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
317 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
318 "test-compile": {"status": "ok", "tookMs": 184, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
319 "test": {"status": "ok", "tookMs": 167, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
320 "publish": {"status": "skipped", "tookMs": 0},
321 "metadata": {
322 "crossScalaVersions": ["2.12.20", "2.13.16", "3.7.0"]
323}
324}]
325************************
326[success] Total time: 28 s, completed Jan 13, 2026, 7:29:43 PM
327[0JChecking patch project/plugins.sbt...
328Checking patch project/build.properties...
329Checking patch build.sbt...
330Applied patch project/plugins.sbt cleanly.
331Applied patch project/build.properties cleanly.
332Applied patch build.sbt cleanly.