Build Logs

neandertech/langoustine • 3.8.0-RC5:2025-12-31

Errors

18

Warnings

684

Total Lines

1552

1##################################
2Clonning https://github.com/neandertech/langoustine.git into /build/repo using revision v0.0.25
3##################################
4Note: switching to '7f75f6a094fe0e0213bf8b71f8e517c3fa7b2e12'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21Using target Scala version for migration: 3.7.4
22Migrating project for -source:3.4 using Scala 3.7.4
23----
24Preparing build for 3.7.4
25Would try to apply common scalacOption (best-effort, sbt/mill only):
26Append: -rewrite,REQUIRE:-source:3.4-migration
27Remove: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
28----
29Starting build for 3.7.4
30Execute tests: false
31sbt project found:
32Sbt version 1.10.11 is not supported, minimal supported version is 1.11.5
33Enforcing usage of sbt in version 1.11.5
34No prepare script found for project neandertech/langoustine
35##################################
36Scala version: 3.7.4
37Targets: tech.neander%langoustine-app tech.neander%langoustine-lsp tech.neander%langoustine-meta tech.neander%langoustine-tracer tech.neander%langoustine-tracer-shared
38Project projectConfig: {"projects":{"exclude":[],"overrides":{"langoustine-tracer":{"tests":"disabled"}}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}
39##################################
40Using extra scalacOptions: -rewrite,REQUIRE:-source:3.4-migration
41Filtering out scalacOptions: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
42[sbt_options] declare -a sbt_options=()
43[process_args] java_version = '17'
44[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
45# Executing command line:
46java
47-Dfile.encoding=UTF-8
48-Xmx4G
49-Dcommunitybuild.scala=3.7.4
50-Dcommunitybuild.project.dependencies.add=
51-Xmx7G
52-Xms4G
53-Xss8M
54-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
55-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
56-jar
57/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
58"setCrossScalaVersions 3.7.4"
59"++3.7.4 -v"
60"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""
61"set every credentials := Nil"
62"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
63"removeScalacOptionsStartingWith -P:wartremover"
64
65moduleMappings
66"runBuild 3.7.4 """{"projects":{"exclude":[],"overrides":{"langoustine-tracer":{"tests":"disabled"}}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}""" tech.neander%langoustine-app tech.neander%langoustine-lsp tech.neander%langoustine-meta tech.neander%langoustine-tracer tech.neander%langoustine-tracer-shared"
67
68[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
69[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
70[info] loading project definition from /build/repo/project
71[info] compiling 2 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
72[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
73[info] Compilation completed in 8.791s.
74[info] done compiling
75/build/repo/build.sbt:61: warning: method sonatypeOssRepos in class ResolverFunctions is deprecated (since 1.11.2): Sonatype OSS Repository Hosting (OSSRH) was sunset on 2025-06-30; remove this resolver. If snapshots are required, use:
76 resolvers += Resolver.sonatypeCentralSnapshots
77 .sonatypeOssRepos("snapshots")
78 ^
79[info] loading settings for project root from build.sbt...
80[info] resolving key references (28924 settings) ...
81[info]
82[info] _ _ _
83[info] | | | | (_)
84[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
85[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
86[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
87[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
88[info] __/ |
89[info] |___/
90[info]
91[info] 0.0.25+0-7f75f6a0+20251231-2121-SNAPSHOT
92[info]
93[info] Scala 3.3.6
94[info]
95[info] Useful sbt tasks:
96[info] gl. generateLSP - Regenerate LSP definitions
97[info] bw. buildWebsite - Build website
98[info] tt. testTracer - Run Tracer's backend tests
99[info] bt. buildTracer - Build Tracer for local usage
100[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
101[info] fx. preCI - Reformat and apply Scalafix rules
102[info] pl. publishLocal - Publish all modules locally
103Execute setCrossScalaVersions: 3.7.4
104OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in example/crossScalaVersions
105OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in metaJS/crossScalaVersions
106OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in example/crossScalaVersions
107OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in metaNative/crossScalaVersions
108OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in metaJS/crossScalaVersions
109OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in lsp/crossScalaVersions
110OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in exampleNative/crossScalaVersions
111OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in lsp/crossScalaVersions
112OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in exampleNative/crossScalaVersions
113OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in tracer/crossScalaVersions
114OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in tracer/crossScalaVersions
115OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in metaNative/crossScalaVersions
116OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in appNative/crossScalaVersions
117OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in appNative/crossScalaVersions
118OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in tracerSharedJS/crossScalaVersions
119OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in tracerSharedJS/crossScalaVersions
120OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in testsJS/crossScalaVersions
121OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in testsJS/crossScalaVersions
122OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in tests/crossScalaVersions
123OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in tests/crossScalaVersions
124OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in meta/crossScalaVersions
125OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in meta/crossScalaVersions
126OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in app/crossScalaVersions
127OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in app/crossScalaVersions
128OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in e2e-tests/crossScalaVersions
129OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in e2e-tests/crossScalaVersions
130OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in generate/crossScalaVersions
131OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in generate/crossScalaVersions
132OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in testsNative/crossScalaVersions
133OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in testsNative/crossScalaVersions
134OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in tracerFrontendJS/crossScalaVersions
135OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in tracerFrontendJS/crossScalaVersions
136OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in lspJS/crossScalaVersions
137OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in lspJS/crossScalaVersions
138OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in tracerShared/crossScalaVersions
139OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in tracerShared/crossScalaVersions
140OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in docs/crossScalaVersions
141OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in docs/crossScalaVersions
142OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in exampleJS/crossScalaVersions
143OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in exampleJS/crossScalaVersions
144OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in appJS/crossScalaVersions
145OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in appJS/crossScalaVersions
146OpenCB::Changing crossVersion 3.3.6 -> 3.7.4 in lspNative/crossScalaVersions
147OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in lspNative/crossScalaVersions
148[info]
149[info] _ _ _
150[info] | | | | (_)
151[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
152[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
153[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
154[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
155[info] __/ |
156[info] |___/
157[info]
158[info] 0.0.25+0-7f75f6a0+20251231-2121-SNAPSHOT
159[info]
160[info] Scala 3.3.6
161[info]
162[info] Useful sbt tasks:
163[info] gl. generateLSP - Regenerate LSP definitions
164[info] bw. buildWebsite - Build website
165[info] tt. testTracer - Run Tracer's backend tests
166[info] bt. buildTracer - Build Tracer for local usage
167[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
168[info] fx. preCI - Reformat and apply Scalafix rules
169[info] pl. publishLocal - Publish all modules locally
170[info] Setting Scala version to 3.7.4 on 22 projects.
171[info] Switching Scala version on:
172[info] tracerShared (3.7.4)
173[info] e2e-tests (3.7.4)
174[info] appJS (3.7.4)
175[info] lsp (3.7.4)
176[info] generate (3.7.4)
177[info] exampleJS (3.7.4)
178[info] docs (3.7.4)
179[info] metaNative (3.7.4)
180[info] tests (3.7.4)
181[info] metaJS (3.7.4)
182[info] tracerSharedJS (3.7.4)
183[info] tracerFrontendJS (3.7.4)
184[info] lspJS (3.7.4)
185[info] appNative (3.7.4)
186[info] meta (3.7.4)
187[info] testsJS (3.7.4)
188[info] exampleNative (3.7.4)
189[info] tracer (3.7.4)
190[info] app (3.7.4)
191[info] lspNative (3.7.4)
192[info] example (3.7.4)
193[info] testsNative (3.7.4)
194[info] Excluding projects:
195[info] * root (2.12.20)
196[info] Reapplying settings...
197[info]
198[info] _ _ _
199[info] | | | | (_)
200[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
201[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
202[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
203[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
204[info] __/ |
205[info] |___/
206[info]
207[info] 0.0.25+0-7f75f6a0+20251231-2121-SNAPSHOT
208[info]
209[info] Scala 3.3.6
210[info]
211[info] Useful sbt tasks:
212[info] gl. generateLSP - Regenerate LSP definitions
213[info] bw. buildWebsite - Build website
214[info] tt. testTracer - Run Tracer's backend tests
215[info] bt. buildTracer - Build Tracer for local usage
216[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
217[info] fx. preCI - Reformat and apply Scalafix rules
218[info] pl. publishLocal - Publish all modules locally
219Execute 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
220[info] Reapplying settings...
221[info]
222[info] _ _ _
223[info] | | | | (_)
224[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
225[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
226[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
227[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
228[info] __/ |
229[info] |___/
230[info]
231[info] 0.0.25+0-7f75f6a0+20251231-2121-SNAPSHOT
232[info]
233[info] Scala 3.3.6
234[info]
235[info] Useful sbt tasks:
236[info] gl. generateLSP - Regenerate LSP definitions
237[info] bw. buildWebsite - Build website
238[info] tt. testTracer - Run Tracer's backend tests
239[info] bt. buildTracer - Build Tracer for local usage
240[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
241[info] fx. preCI - Reformat and apply Scalafix rules
242[info] pl. publishLocal - Publish all modules locally
243[info] Defining Global / credentials, app / credentials and 21 others.
244[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 230 others.
245[info] Run `last` for details.
246[info] Reapplying settings...
247[info]
248[info] _ _ _
249[info] | | | | (_)
250[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
251[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
252[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
253[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
254[info] __/ |
255[info] |___/
256[info]
257[info] 0.0.25+0-7f75f6a0+20251231-2121-SNAPSHOT
258[info]
259[info] Scala 3.3.6
260[info]
261[info] Useful sbt tasks:
262[info] gl. generateLSP - Regenerate LSP definitions
263[info] bw. buildWebsite - Build website
264[info] tt. testTracer - Run Tracer's backend tests
265[info] bt. buildTracer - Build Tracer for local usage
266[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
267[info] fx. preCI - Reformat and apply Scalafix rules
268[info] pl. publishLocal - Publish all modules locally
269Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
270[info] Reapplying settings...
271OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
272
273 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
274 Did you mean metaNative / allExcludeDependencies ?
275 , retry without global scopes
276[info] Reapplying settings...
277[info]
278[info] _ _ _
279[info] | | | | (_)
280[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
281[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
282[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
283[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
284[info] __/ |
285[info] |___/
286[info]
287[info] 0.0.25+0-7f75f6a0+20251231-2121-SNAPSHOT
288[info]
289[info] Scala 3.3.6
290[info]
291[info] Useful sbt tasks:
292[info] gl. generateLSP - Regenerate LSP definitions
293[info] bw. buildWebsite - Build website
294[info] tt. testTracer - Run Tracer's backend tests
295[info] bt. buildTracer - Build Tracer for local usage
296[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
297[info] fx. preCI - Reformat and apply Scalafix rules
298[info] pl. publishLocal - Publish all modules locally
299Execute removeScalacOptionsStartingWith: -P:wartremover
300[info] Reapplying settings...
301[info]
302[info] _ _ _
303[info] | | | | (_)
304[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
305[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
306[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
307[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
308[info] __/ |
309[info] |___/
310[info]
311[info] 0.0.25+0-7f75f6a0+20251231-2121-SNAPSHOT
312[info]
313[info] Scala 3.3.6
314[info]
315[info] Useful sbt tasks:
316[info] gl. generateLSP - Regenerate LSP definitions
317[info] bw. buildWebsite - Build website
318[info] tt. testTracer - Run Tracer's backend tests
319[info] bt. buildTracer - Build Tracer for local usage
320[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
321[info] fx. preCI - Reformat and apply Scalafix rules
322[info] pl. publishLocal - Publish all modules locally
323[success] Total time: 0 s, completed Dec 31, 2025, 9:21:39 PM
324Build config: {"projects":{"exclude":[],"overrides":{"langoustine-tracer":{"tests":"disabled"}}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}
325Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map(langoustine-tracer -> ProjectOverrides(Some(Disabled)))),CompileOnly,List()))
326Starting build...
327Projects: Set(tracerShared, lsp, meta, tracer, app)
328Starting build for ProjectRef(file:/build/repo/,lsp) (langoustine-lsp)... [0/5]
329OpenCB::Exclude Scala3 specific scalacOption `-rewrite` in Scala 2.12.20 module Global
330OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.4-migration` in Scala 2.12.20 module Global
331Compile scalacOptions: -Xmax-inlines, 64, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
332[info] compiling 22 Scala sources to /build/repo/modules/lsp/target/jvm-3/classes ...
333[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/modules/lsp/src/main/scala/generated/codecs.scala:568:12
334[warn] 568 | v.headOption match
335[warn] | ^^^^^^^^^^^^
336[warn] | match may not be exhaustive.
337[warn] |
338[warn] | It would fail on pattern case: Some(_)
339[warn] |
340[warn] | longer explanation available when compiling with `-explain`
341[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/modules/lsp/src/main/scala/generated/codecs.scala:1437:12
342[warn] 1437 | v.headOption match
343[warn] | ^^^^^^^^^^^^
344[warn] | match may not be exhaustive.
345[warn] |
346[warn] | It would fail on pattern case: Some(_)
347[warn] |
348[warn] | longer explanation available when compiling with `-explain`
349[warn] -- [E030] Match case Unreachable Warning: /build/repo/modules/lsp/src/main/scala/runtime/Opt.scala:63:11
350[warn] 63 | case null => ujson.Null
351[warn] | ^^^^
352[warn] | Unreachable case
353[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/modules/lsp/src/main/scala/generated/aliases.scala:201:15
354[warn] 201 | case c: Map[String, ujson.Value] =>
355[warn] | ^
356[warn] |the type test for Map[String, ujson.Value] cannot be checked at runtime because its type arguments can't be determined from Any
357[warn] |
358[warn] | longer explanation available when compiling with `-explain`
359[warn] four warnings found
360[info] done compiling
361Starting build for ProjectRef(file:/build/repo/,tracerShared) (langoustine-tracer-shared)... [1/5]
362Compile scalacOptions: -Wunused:imports, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
363[info] compiling 7 Scala sources to /build/repo/modules/tracer/shared/target/jvm-3/classes ...
364[warn] -- [E198] Unused Symbol Warning: /build/repo/modules/tracer/shared/src/main/scala/Direction.scala:19:31
365[warn] 19 |import jsonrpclib.InputMessage.*
366[warn] | ^
367[warn] | unused import
368[warn] -- [E198] Unused Symbol Warning: /build/repo/modules/tracer/shared/src/main/scala/LogMessage.scala:21:31
369[warn] 21 |import jsonrpclib.InputMessage.*
370[warn] | ^
371[warn] | unused import
372[warn] -- [E198] Unused Symbol Warning: /build/repo/modules/tracer/shared/src/main/scala/LspMessage.scala:22:31
373[warn] 22 |import jsonrpclib.InputMessage.*
374[warn] | ^
375[warn] | unused import
376[warn] -- [E198] Unused Symbol Warning: /build/repo/modules/tracer/shared/src/main/scala/ReceivedMessage.scala:21:31
377[warn] 21 |import jsonrpclib.InputMessage.*
378[warn] | ^
379[warn] | unused import
380[warn] -- [E198] Unused Symbol Warning: /build/repo/modules/tracer/shared/src/main/scala/Summary.scala:21:31
381[warn] 21 |import jsonrpclib.InputMessage.*
382[warn] | ^
383[warn] | unused import
384[warn] -- [E198] Unused Symbol Warning: /build/repo/modules/tracer/shared/src/main/scala/TracerEvent.scala:21:31
385[warn] 21 |import jsonrpclib.InputMessage.*
386[warn] | ^
387[warn] | unused import
388[info] [patched file /build/repo/modules/tracer/shared/src/main/scala/TracerEvent.scala]
389[info] [patched file /build/repo/modules/tracer/shared/src/main/scala/LogMessage.scala]
390[info] [patched file /build/repo/modules/tracer/shared/src/main/scala/ReceivedMessage.scala]
391[info] [patched file /build/repo/modules/tracer/shared/src/main/scala/Summary.scala]
392[info] [patched file /build/repo/modules/tracer/shared/src/main/scala/LspMessage.scala]
393[info] [patched file /build/repo/modules/tracer/shared/src/main/scala/Direction.scala]
394[warn] 6 warnings found
395[info] done compiling
396[info] compiling 7 Scala sources to /build/repo/modules/tracer/shared/target/jvm-3/classes ...
397[info] done compiling
398Starting build for ProjectRef(file:/build/repo/,meta) (langoustine-meta)... [2/5]
399Compile scalacOptions: -Wunused:imports, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
400[info] compiling 5 Scala sources to /build/repo/modules/meta/target/jvm-3/classes ...
401[warn] -- Warning: /build/repo/modules/meta/src/main/scala/json.scala:49:60 -----------
402[warn] 49 | case None => ParamsType.Many(read[Vector[Type]](js))
403[warn] | ^
404[warn] |Result of implicit search for upickle.default.Reader[langoustine.meta.Type] will change.
405[warn] |Current result langoustine.meta.json.given_Reader_Type will be no longer eligible
406[warn] | because it is not defined before the search position.
407[warn] |Result with new rules: No Matching Implicit.
408[warn] |To opt into the new rules, compile with `-source future` or use
409[warn] |the `scala.language.future` language import.
410[warn] |
411[warn] |To fix the problem without the language import, you could try one of the following:
412[warn] | - use a `given ... with` clause as the enclosing given,
413[warn] | - rearrange definitions so that langoustine.meta.json.given_Reader_Type comes earlier,
414[warn] | - use an explicit argument.
415[warn] |This will be an error in Scala 3.5 and later.
416[warn] -- Warning: /build/repo/modules/meta/src/main/scala/json.scala:50:54 -----------
417[warn] 50 | case Some(o) => ParamsType.Single(read[Type](js))
418[warn] | ^
419[warn] |Result of implicit search for upickle.default.Reader[langoustine.meta.Type] will change.
420[warn] |Current result langoustine.meta.json.given_Reader_Type will be no longer eligible
421[warn] | because it is not defined before the search position.
422[warn] |Result with new rules: No Matching Implicit.
423[warn] |To opt into the new rules, compile with `-source future` or use
424[warn] |the `scala.language.future` language import.
425[warn] |
426[warn] |To fix the problem without the language import, you could try one of the following:
427[warn] | - use a `given ... with` clause as the enclosing given,
428[warn] | - rearrange definitions so that langoustine.meta.json.given_Reader_Type comes earlier,
429[warn] | - use an explicit argument.
430[warn] |This will be an error in Scala 3.5 and later.
431[warn] -- [E197] Potential Issue Warning: /build/repo/modules/meta/src/main/scala/pickle-rick.scala:60:28
432[warn] 60 | m.fromProduct(new Product:
433[warn] | ^
434[warn] | New anonymous class definition will be duplicated at each inline site
435[warn] |
436[warn] | longer explanation available when compiling with `-explain`
437[warn] -- [E197] Potential Issue Warning: /build/repo/modules/meta/src/main/scala/pickle-rick.scala:35:23
438[warn] 35 | val reader = new CaseClassReader[T]:
439[warn] | ^
440[warn] | New anonymous class definition will be duplicated at each inline site
441[warn] |
442[warn] | longer explanation available when compiling with `-explain`
443[warn] four warnings found
444[info] done compiling
445Starting build for ProjectRef(file:/build/repo/,tracer) (langoustine-tracer)... [3/5]
446Compile scalacOptions: -Wunused:imports, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
447[info] compiling 12 Scala sources to /build/repo/modules/tracer/backend/target/jvm-3/classes ...
448[warn] -- [E198] Unused Symbol Warning: /build/repo/modules/tracer/backend/src/main/scala/TracerServer.scala:27:18
449[warn] 27 |import org.http4s.server
450[warn] | ^^^^^^
451[warn] | unused import
452[warn] -- [E198] Unused Symbol Warning: /build/repo/modules/tracer/backend/src/main/scala/state.scala:29:18
453[warn] 29 |import jsonrpclib.Payload
454[warn] | ^^^^^^^
455[warn] | unused import
456[warn] -- [E121] Pattern Match Warning: /build/repo/modules/tracer/backend/src/main/scala/state.scala:135:23
457[warn] 135 | case other =>
458[warn] | ^^^^^
459[warn] |Unreachable case except for null (if this is intentional, consider writing case null => instead).
460[info] [patched file /build/repo/modules/tracer/backend/src/main/scala/state.scala]
461[info] [patched file /build/repo/modules/tracer/backend/src/main/scala/TracerServer.scala]
462[warn] there was 1 deprecation warning; re-run with -deprecation for details
463[warn] four warnings found
464[info] done compiling
465[info] compiling 2 Scala sources to /build/repo/modules/tracer/backend/target/jvm-3/classes ...
466[warn] -- [E121] Pattern Match Warning: /build/repo/modules/tracer/backend/src/main/scala/state.scala:134:23
467[warn] 134 | case other =>
468[warn] | ^^^^^
469[warn] |Unreachable case except for null (if this is intentional, consider writing case null => instead).
470[warn] one warning found
471[info] done compiling
472[info] compiling 7 Scala sources to /build/repo/modules/tracer/shared/target/js-3/classes ...
473[info] done compiling
474[info] compiling 13 Scala sources to /build/repo/modules/tracer/frontend/target/js-3/classes ...
475[warn] -- [E198] Unused Symbol Warning: /build/repo/modules/tracer/frontend/src/main/scala/component.jsonviewer.scala:233:31
476[warn] 233 |import com.raquo.laminar.nodes.ReactiveHtmlElement
477[warn] | ^^^^^^^^^^^^^^^^^^^
478[warn] | unused import
479[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/modules/tracer/frontend/src/main/scala/frontend.main.scala:31:21
480[warn] 31 |def cid(c: CallId) = c match
481[warn] | ^
482[warn] | match may not be exhaustive.
483[warn] |
484[warn] | It would fail on pattern case: NullId
485[warn] |
486[warn] | longer explanation available when compiling with `-explain`
487[info] [patched file /build/repo/modules/tracer/frontend/src/main/scala/component.jsonviewer.scala]
488[warn] two warnings found
489[info] done compiling
490[info] Fast optimizing /build/repo/modules/tracer/frontend/target/js-3/langoustine-tracer-frontend-fastopt
491[info] compiling 1 Scala source to /build/repo/modules/tracer/frontend/target/js-3/classes ...
492[info] done compiling
493[info] Fast optimizing /build/repo/modules/tracer/frontend/target/js-3/langoustine-tracer-frontend-fastopt
494Starting build for ProjectRef(file:/build/repo/,app) (langoustine-app)... [4/5]
495Compile scalacOptions: -Wunused:imports, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
496[info] compiling 4 Scala sources to /build/repo/modules/app/target/jvm-3/classes ...
497[warn] -- [E198] Unused Symbol Warning: /build/repo/modules/app/src/main/scala/LangoustineApp.scala:29:18
498[warn] 29 |import jsonrpclib.Endpoint
499[warn] | ^^^^^^^^
500[warn] | unused import
501[info] [patched file /build/repo/modules/app/src/main/scala/LangoustineApp.scala]
502[warn] there was 1 deprecation warning; re-run with -deprecation for details
503[warn] two warnings found
504[info] done compiling
505[info] compiling 1 Scala source to /build/repo/modules/app/target/jvm-3/classes ...
506[warn] there was 1 deprecation warning; re-run with -deprecation for details
507[warn] one warning found
508[info] done compiling
509
510************************
511Build summary:
512[{
513 "module": "langoustine-lsp",
514 "compile": {"status": "ok", "tookMs": 56237, "warnings": 4, "errors": 0, "sourceVersion": "3.4-migration"},
515 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
516 "test-compile": {"status": "ok", "tookMs": 328, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
517 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
518 "publish": {"status": "skipped", "tookMs": 0},
519 "metadata": {
520 "crossScalaVersions": ["2.12.20"]
521}
522},{
523 "module": "langoustine-tracer-shared",
524 "compile": {"status": "ok", "tookMs": 1912, "warnings": 6, "errors": 0, "sourceVersion": "3.4-migration"},
525 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
526 "test-compile": {"status": "ok", "tookMs": 1384, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
527 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
528 "publish": {"status": "skipped", "tookMs": 0},
529 "metadata": {
530 "crossScalaVersions": ["2.12.20"]
531}
532},{
533 "module": "langoustine-meta",
534 "compile": {"status": "ok", "tookMs": 2394, "warnings": 4, "errors": 0, "sourceVersion": "3.4-migration"},
535 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
536 "test-compile": {"status": "ok", "tookMs": 85, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
537 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
538 "publish": {"status": "skipped", "tookMs": 0},
539 "metadata": {
540 "crossScalaVersions": ["2.12.20"]
541}
542},{
543 "module": "langoustine-tracer",
544 "compile": {"status": "ok", "tookMs": 5122, "warnings": 3, "errors": 0, "sourceVersion": "3.4-migration"},
545 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
546 "test-compile": {"status": "skipped", "tookMs": 0, "warnings": 0, "errors": 0},
547 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
548 "publish": {"status": "skipped", "tookMs": 0},
549 "metadata": {
550 "crossScalaVersions": ["2.12.20"]
551}
552},{
553 "module": "langoustine-app",
554 "compile": {"status": "ok", "tookMs": 1883, "warnings": 1, "errors": 0, "sourceVersion": "3.4-migration"},
555 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
556 "test-compile": {"status": "ok", "tookMs": 1076, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
557 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
558 "publish": {"status": "skipped", "tookMs": 0},
559 "metadata": {
560 "crossScalaVersions": ["2.12.20"]
561}
562}]
563************************
564[success] Total time: 92 s (0:01:32.0), completed Dec 31, 2025, 9:23:12 PM
565[0JChecking patch project/plugins.sbt...
566Checking patch project/build.properties...
567Checking patch build.sbt...
568Applied patch project/plugins.sbt cleanly.
569Applied patch project/build.properties cleanly.
570Applied patch build.sbt cleanly.
571Commit migration rewrites
572Switched to a new branch 'opencb/migrate-source-3.4'
573[opencb/migrate-source-3.4 cce8e3645] Apply Scala compiler rewrites using -source:3.4-migration using Scala 3.7.4
574 10 files changed, 11 deletions(-)
575----
576Preparing build for 3.8.0-RC5
577Scala binary version found: 3.8
578Using configured source version: 3.4
579Scala binary version found: 3.8
580Using configured source version: 3.4
581Would try to apply common scalacOption (best-effort, sbt/mill only):
582Append: ,REQUIRE:-source:3.4
583Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
584----
585Starting build for 3.8.0-RC5
586Execute tests: true
587sbt project found:
588Sbt version 1.10.11 is not supported, minimal supported version is 1.11.5
589Enforcing usage of sbt in version 1.11.5
590No prepare script found for project neandertech/langoustine
591##################################
592Scala version: 3.8.0-RC5
593Targets: tech.neander%langoustine-app tech.neander%langoustine-lsp tech.neander%langoustine-meta tech.neander%langoustine-tracer tech.neander%langoustine-tracer-shared
594Project projectConfig: {"projects":{"exclude":[],"overrides":{"langoustine-tracer":{"tests":"disabled"}}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}
595##################################
596Using extra scalacOptions: ,REQUIRE:-source:3.4
597Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
598[sbt_options] declare -a sbt_options=()
599[process_args] java_version = '17'
600[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
601# Executing command line:
602java
603-Dfile.encoding=UTF-8
604-Xmx4G
605-Dcommunitybuild.scala=3.8.0-RC5
606-Dcommunitybuild.project.dependencies.add=
607-Xmx7G
608-Xms4G
609-Xss8M
610-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
611-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
612-jar
613/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
614"setCrossScalaVersions 3.8.0-RC5"
615"++3.8.0-RC5 -v"
616"mapScalacOptions ",REQUIRE:-source:3.4,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
617"set every credentials := Nil"
618"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
619"removeScalacOptionsStartingWith -P:wartremover"
620
621moduleMappings
622"runBuild 3.8.0-RC5 """{"projects":{"exclude":[],"overrides":{"langoustine-tracer":{"tests":"disabled"}}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}""" tech.neander%langoustine-app tech.neander%langoustine-lsp tech.neander%langoustine-meta tech.neander%langoustine-tracer tech.neander%langoustine-tracer-shared"
623
624[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
625[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
626[info] loading project definition from /build/repo/project
627[info] loading settings for project root from build.sbt...
628[info] resolving key references (28924 settings) ...
629[info]
630[info] _ _ _
631[info] | | | | (_)
632[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
633[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
634[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
635[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
636[info] __/ |
637[info] |___/
638[info]
639[info] 0.0.25+1-cce8e364+20251231-2123-SNAPSHOT
640[info]
641[info] Scala 3.3.6
642[info]
643[info] Useful sbt tasks:
644[info] gl. generateLSP - Regenerate LSP definitions
645[info] bw. buildWebsite - Build website
646[info] tt. testTracer - Run Tracer's backend tests
647[info] bt. buildTracer - Build Tracer for local usage
648[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
649[info] fx. preCI - Reformat and apply Scalafix rules
650[info] pl. publishLocal - Publish all modules locally
651Execute setCrossScalaVersions: 3.8.0-RC5
652OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in exampleNative/crossScalaVersions
653OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in exampleNative/crossScalaVersions
654OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in app/crossScalaVersions
655OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in app/crossScalaVersions
656OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in lsp/crossScalaVersions
657OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in lsp/crossScalaVersions
658OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in generate/crossScalaVersions
659OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in generate/crossScalaVersions
660OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in tracer/crossScalaVersions
661OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in tracer/crossScalaVersions
662OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in e2e-tests/crossScalaVersions
663OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in e2e-tests/crossScalaVersions
664OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in appNative/crossScalaVersions
665OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in appNative/crossScalaVersions
666OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in tracerSharedJS/crossScalaVersions
667OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in tracerSharedJS/crossScalaVersions
668OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in metaJS/crossScalaVersions
669OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in metaJS/crossScalaVersions
670OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in tests/crossScalaVersions
671OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in tests/crossScalaVersions
672OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in metaNative/crossScalaVersions
673OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in meta/crossScalaVersions
674OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in metaNative/crossScalaVersions
675OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in meta/crossScalaVersions
676OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in tracerFrontendJS/crossScalaVersions
677OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in tracerFrontendJS/crossScalaVersions
678OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in testsNative/crossScalaVersions
679OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in testsNative/crossScalaVersions
680OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in lspJS/crossScalaVersions
681OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in lspJS/crossScalaVersions
682OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in tracerShared/crossScalaVersions
683OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in tracerShared/crossScalaVersions
684OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in docs/crossScalaVersions
685OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in docs/crossScalaVersions
686OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in exampleJS/crossScalaVersions
687OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in exampleJS/crossScalaVersions
688OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in lspNative/crossScalaVersions
689OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in lspNative/crossScalaVersions
690OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in example/crossScalaVersions
691OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in example/crossScalaVersions
692OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in appJS/crossScalaVersions
693OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in appJS/crossScalaVersions
694OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC5 in testsJS/crossScalaVersions
695OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC5) in testsJS/crossScalaVersions
696[info]
697[info] _ _ _
698[info] | | | | (_)
699[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
700[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
701[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
702[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
703[info] __/ |
704[info] |___/
705[info]
706[info] 0.0.25+1-cce8e364+20251231-2123-SNAPSHOT
707[info]
708[info] Scala 3.3.6
709[info]
710[info] Useful sbt tasks:
711[info] gl. generateLSP - Regenerate LSP definitions
712[info] bw. buildWebsite - Build website
713[info] tt. testTracer - Run Tracer's backend tests
714[info] bt. buildTracer - Build Tracer for local usage
715[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
716[info] fx. preCI - Reformat and apply Scalafix rules
717[info] pl. publishLocal - Publish all modules locally
718[info] Setting Scala version to 3.8.0-RC5 on 22 projects.
719[info] Switching Scala version on:
720[info] tracerShared (3.8.0-RC5)
721[info] e2e-tests (3.8.0-RC5)
722[info] appJS (3.8.0-RC5)
723[info] lsp (3.8.0-RC5)
724[info] generate (3.8.0-RC5)
725[info] exampleJS (3.8.0-RC5)
726[info] docs (3.8.0-RC5)
727[info] metaNative (3.8.0-RC5)
728[info] tests (3.8.0-RC5)
729[info] metaJS (3.8.0-RC5)
730[info] tracerSharedJS (3.8.0-RC5)
731[info] tracerFrontendJS (3.8.0-RC5)
732[info] lspJS (3.8.0-RC5)
733[info] appNative (3.8.0-RC5)
734[info] meta (3.8.0-RC5)
735[info] testsJS (3.8.0-RC5)
736[info] exampleNative (3.8.0-RC5)
737[info] tracer (3.8.0-RC5)
738[info] app (3.8.0-RC5)
739[info] lspNative (3.8.0-RC5)
740[info] example (3.8.0-RC5)
741[info] testsNative (3.8.0-RC5)
742[info] Excluding projects:
743[info] * root (2.12.20)
744[info] Reapplying settings...
745[info]
746[info] _ _ _
747[info] | | | | (_)
748[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
749[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
750[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
751[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
752[info] __/ |
753[info] |___/
754[info]
755[info] 0.0.25+1-cce8e364+20251231-2123-SNAPSHOT
756[info]
757[info] Scala 3.3.6
758[info]
759[info] Useful sbt tasks:
760[info] gl. generateLSP - Regenerate LSP definitions
761[info] bw. buildWebsite - Build website
762[info] tt. testTracer - Run Tracer's backend tests
763[info] bt. buildTracer - Build Tracer for local usage
764[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
765[info] fx. preCI - Reformat and apply Scalafix rules
766[info] pl. publishLocal - Publish all modules locally
767Execute mapScalacOptions: ,REQUIRE:-source:3.4,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
768[info] Reapplying settings...
769[info]
770[info] _ _ _
771[info] | | | | (_)
772[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
773[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
774[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
775[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
776[info] __/ |
777[info] |___/
778[info]
779[info] 0.0.25+1-cce8e364+20251231-2123-SNAPSHOT
780[info]
781[info] Scala 3.3.6
782[info]
783[info] Useful sbt tasks:
784[info] gl. generateLSP - Regenerate LSP definitions
785[info] bw. buildWebsite - Build website
786[info] tt. testTracer - Run Tracer's backend tests
787[info] bt. buildTracer - Build Tracer for local usage
788[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
789[info] fx. preCI - Reformat and apply Scalafix rules
790[info] pl. publishLocal - Publish all modules locally
791[info] Defining Global / credentials, app / credentials and 21 others.
792[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 230 others.
793[info] Run `last` for details.
794[info] Reapplying settings...
795[info]
796[info] _ _ _
797[info] | | | | (_)
798[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
799[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
800[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
801[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
802[info] __/ |
803[info] |___/
804[info]
805[info] 0.0.25+1-cce8e364+20251231-2123-SNAPSHOT
806[info]
807[info] Scala 3.3.6
808[info]
809[info] Useful sbt tasks:
810[info] gl. generateLSP - Regenerate LSP definitions
811[info] bw. buildWebsite - Build website
812[info] tt. testTracer - Run Tracer's backend tests
813[info] bt. buildTracer - Build Tracer for local usage
814[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
815[info] fx. preCI - Reformat and apply Scalafix rules
816[info] pl. publishLocal - Publish all modules locally
817Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
818[info] Reapplying settings...
819OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
820
821 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
822 Did you mean metaNative / allExcludeDependencies ?
823 , retry without global scopes
824[info] Reapplying settings...
825[info]
826[info] _ _ _
827[info] | | | | (_)
828[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
829[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
830[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
831[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
832[info] __/ |
833[info] |___/
834[info]
835[info] 0.0.25+1-cce8e364+20251231-2123-SNAPSHOT
836[info]
837[info] Scala 3.3.6
838[info]
839[info] Useful sbt tasks:
840[info] gl. generateLSP - Regenerate LSP definitions
841[info] bw. buildWebsite - Build website
842[info] tt. testTracer - Run Tracer's backend tests
843[info] bt. buildTracer - Build Tracer for local usage
844[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
845[info] fx. preCI - Reformat and apply Scalafix rules
846[info] pl. publishLocal - Publish all modules locally
847Execute removeScalacOptionsStartingWith: -P:wartremover
848[info] Reapplying settings...
849[info]
850[info] _ _ _
851[info] | | | | (_)
852[info] | | __ _ _ __ __ _ ___ _ _ ___| |_ _ _ __ ___
853[info] | | / _` | '_ \ / _` |/ _ \| | | / __| __| | '_ \ / _ \
854[info] | |___| (_| | | | | (_| | (_) | |_| \__ \ |_| | | | | __/
855[info] |______\__,_|_| |_|\__, |\___/ \__,_|___/\__|_|_| |_|\___|
856[info] __/ |
857[info] |___/
858[info]
859[info] 0.0.25+1-cce8e364+20251231-2123-SNAPSHOT
860[info]
861[info] Scala 3.3.6
862[info]
863[info] Useful sbt tasks:
864[info] gl. generateLSP - Regenerate LSP definitions
865[info] bw. buildWebsite - Build website
866[info] tt. testTracer - Run Tracer's backend tests
867[info] bt. buildTracer - Build Tracer for local usage
868[info] te. testE2E - Run LangoustineApp E2E tests that launch a separate process
869[info] fx. preCI - Reformat and apply Scalafix rules
870[info] pl. publishLocal - Publish all modules locally
871[success] Total time: 0 s, completed Dec 31, 2025, 9:23:34 PM
872Build config: {"projects":{"exclude":[],"overrides":{"langoustine-tracer":{"tests":"disabled"}}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}
873Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map(langoustine-tracer -> ProjectOverrides(Some(Disabled)))),Full,List()))
874Starting build...
875Projects: Set(tracerShared, lsp, meta, tracer, app)
876Starting build for ProjectRef(file:/build/repo/,lsp) (langoustine-lsp)... [0/5]
877OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.4` in Scala 2.12.20 module Global
878Compile scalacOptions: -Xmax-inlines, 64, -Wconf:msg=can be rewritten automatically under:s, -source:3.4
879[info] compiling 22 Scala sources to /build/repo/modules/lsp/target/jvm-3/classes ...
880[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/modules/lsp/src/main/scala/generated/codecs.scala:568:12
881[warn] 568 | v.headOption match
882[warn] | ^^^^^^^^^^^^
883[warn] | match may not be exhaustive.
884[warn] |
885[warn] | It would fail on pattern case: Some(_)
886[warn] |
887[warn] | longer explanation available when compiling with `-explain`
888[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/modules/lsp/src/main/scala/generated/codecs.scala:1437:12
889[warn] 1437 | v.headOption match
890[warn] | ^^^^^^^^^^^^
891[warn] | match may not be exhaustive.
892[warn] |
893[warn] | It would fail on pattern case: Some(_)
894[warn] |
895[warn] | longer explanation available when compiling with `-explain`
896[warn] -- [E030] Match case Unreachable Warning: /build/repo/modules/lsp/src/main/scala/runtime/Opt.scala:63:11
897[warn] 63 | case null => ujson.Null
898[warn] | ^^^^
899[warn] | Unreachable case
900[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/modules/lsp/src/main/scala/generated/aliases.scala:201:15
901[warn] 201 | case c: Map[String, ujson.Value] =>
902[warn] | ^
903[warn] |the type test for Map[String, ujson.Value] cannot be checked at runtime because its type arguments can't be determined from Any
904[warn] |
905[warn] | longer explanation available when compiling with `-explain`
906[warn] four warnings found
907[info] done compiling
908Starting build for ProjectRef(file:/build/repo/,tracerShared) (langoustine-tracer-shared)... [1/5]
909Compile scalacOptions: -Wunused:imports, -Wconf:msg=can be rewritten automatically under:s, -source:3.4
910[info] compiling 7 Scala sources to /build/repo/modules/tracer/shared/target/jvm-3/classes ...
911[info] done compiling
912Starting build for ProjectRef(file:/build/repo/,meta) (langoustine-meta)... [2/5]
913Compile scalacOptions: -Wunused:imports, -Wconf:msg=can be rewritten automatically under:s, -source:3.4
914[info] compiling 5 Scala sources to /build/repo/modules/meta/target/jvm-3/classes ...
915[warn] -- Warning: /build/repo/modules/meta/src/main/scala/json.scala:49:60 -----------
916[warn] 49 | case None => ParamsType.Many(read[Vector[Type]](js))
917[warn] | ^
918[warn] |Result of implicit search for upickle.default.Reader[langoustine.meta.Type] will change.
919[warn] |Current result langoustine.meta.json.given_Reader_Type will be no longer eligible
920[warn] | because it is not defined before the search position.
921[warn] |Result with new rules: No Matching Implicit.
922[warn] |To opt into the new rules, compile with `-source future` or use
923[warn] |the `scala.language.future` language import.
924[warn] |
925[warn] |To fix the problem without the language import, you could try one of the following:
926[warn] | - use a `given ... with` clause as the enclosing given,
927[warn] | - rearrange definitions so that langoustine.meta.json.given_Reader_Type comes earlier,
928[warn] | - use an explicit argument.
929[warn] |This will be an error in Scala 3.5 and later.
930[warn] -- Warning: /build/repo/modules/meta/src/main/scala/json.scala:50:54 -----------
931[warn] 50 | case Some(o) => ParamsType.Single(read[Type](js))
932[warn] | ^
933[warn] |Result of implicit search for upickle.default.Reader[langoustine.meta.Type] will change.
934[warn] |Current result langoustine.meta.json.given_Reader_Type will be no longer eligible
935[warn] | because it is not defined before the search position.
936[warn] |Result with new rules: No Matching Implicit.
937[warn] |To opt into the new rules, compile with `-source future` or use
938[warn] |the `scala.language.future` language import.
939[warn] |
940[warn] |To fix the problem without the language import, you could try one of the following:
941[warn] | - use a `given ... with` clause as the enclosing given,
942[warn] | - rearrange definitions so that langoustine.meta.json.given_Reader_Type comes earlier,
943[warn] | - use an explicit argument.
944[warn] |This will be an error in Scala 3.5 and later.
945[warn] -- [E197] Potential Issue Warning: /build/repo/modules/meta/src/main/scala/pickle-rick.scala:60:28
946[warn] 60 | m.fromProduct(new Product:
947[warn] | ^
948[warn] | New anonymous class definition will be duplicated at each inline site
949[warn] |
950[warn] | longer explanation available when compiling with `-explain`
951[warn] -- [E197] Potential Issue Warning: /build/repo/modules/meta/src/main/scala/pickle-rick.scala:35:23
952[warn] 35 | val reader = new CaseClassReader[T]:
953[warn] | ^
954[warn] | New anonymous class definition will be duplicated at each inline site
955[warn] |
956[warn] | longer explanation available when compiling with `-explain`
957[warn] four warnings found
958[info] done compiling
959Starting build for ProjectRef(file:/build/repo/,tracer) (langoustine-tracer)... [3/5]
960Compile scalacOptions: -Wunused:imports, -Wconf:msg=can be rewritten automatically under:s, -source:3.4
961[info] compiling 12 Scala sources to /build/repo/modules/tracer/backend/target/jvm-3/classes ...
962[warn] -- [E222] Syntax Warning: /build/repo/modules/tracer/backend/src/main/scala/browser.open.scala:17:20
963[warn] 17 |package langoustine.tracer
964[warn] |^
965[warn] |The package name `browser.open$package` will be encoded on the classpath, and can lead to undefined behaviour.
966[warn] 18 |import scala.util.Try
967[warn] 19 |import cats.effect.IO
968[warn] 20 |import com.indoorvivants.detective.Platform
969[warn] 21 |import com.indoorvivants.detective.Platform.OS.Linux
970[warn] 22 |import com.indoorvivants.detective.Platform.OS.MacOS
971[warn] 23 |import com.indoorvivants.detective.Platform.OS.Unknown
972[warn] 24 |import com.indoorvivants.detective.Platform.OS.Windows
973[warn] 25 |import org.http4s.Uri
974[warn] 26 |def openBrowser(url: Uri): IO[Unit] =
975[warn] 27 | val stringUri = url.renderString
976[warn] 28 | def cmd(args: String*) =
977[warn] 29 | Try(sys.process.Process.apply(args).!!)
978[warn] 30 | val mac = cmd("open", stringUri)
979[warn] 31 | val linux =
980[warn] 32 | cmd("xdg-open", stringUri)
981[warn] 33 | .orElse(cmd("gnome-open", stringUri))
982[warn] 34 | .orElse(cmd("kde-open", stringUri))
983[warn] 35 | Platform.os match
984[warn] 36 | case Windows => Logging.error("Cannot open the browser on windows")
985[warn] 37 | case MacOS => IO.fromTry(mac).void
986[warn] 38 | case Linux => IO.fromTry(linux).void
987[warn] 39 | case Unknown =>
988[warn] 40 | Logging.error("Cannot open the browser on unknown platform")
989[warn] 41 |end openBrowser
990[warn] 42 |def canOpenBrowser = Platform.os != Platform.OS.Windows
991[warn] |
992[warn] | longer explanation available when compiling with `-explain`
993[warn] -- [E222] Syntax Warning: /build/repo/modules/tracer/backend/src/main/scala/command.replay.scala:17:20
994[warn] 17 |package langoustine.tracer
995[warn] |^
996[warn] |The package name `command.replay$package` will be encoded on the classpath, and can lead to undefined behaviour.
997[warn] 18 |import cats.effect.*
998[warn] 19 |import com.github.plokhotnyuk.jsoniter_scala.core.*
999[warn] 20 |import fs2.*
1000[warn] 21 |import fs2.concurrent.*
1001[warn] 22 |import jsonrpclib.Message
1002[warn] 23 |def Replay(
1003[warn] 24 | inBytes: Topic[IO, Message],
1004[warn] 25 | outBytes: Topic[IO, Message],
1005[warn] 26 | errBytes: Topic[IO, Chunk[Byte]],
1006[warn] 27 | replayConfig: ReplayConfig,
1007[warn] 28 | bindConfig: BindConfig,
1008[warn] 29 | summary: Summary
1009[warn] 30 |) =
1010[warn] 31 | def runServer(latch: Deferred[IO, Boolean]) =
1011[warn] 32 | TracerServer
1012[warn] 33 | .create(
1013[warn] 34 | inBytes.subscribe(1),
1014[warn] 35 | outBytes.subscribe(1),
1015[warn] 36 | errBytes.subscribe(1).unchunks
1016[warn] 37 | )
1017[warn] 38 | .run(
1018[warn] 39 | bindConfig,
1019[warn] 40 | summary,
1020[warn] 41 | await = server =>
1021[warn] 42 | Logging.info(s"Server is ready at ${server.baseUri}") *> latch
1022[warn] 43 | .complete(true) *> IO.never
1023[warn] 44 | )
1024[warn] 45 | def sendStuff(latch: Deferred[IO, Boolean]) =
1025[warn] 46 | fs2.Stream.eval(latch.get) >>
1026[warn] 47 | fs2.io.file
1027[warn] 48 | .readAll[IO](replayConfig.file.toNioPath, 2048)
1028[warn] 49 | .through(fs2.compression.Compression[IO].gunzip())
1029[warn] 50 | .flatMap(_.content)
1030[warn] 51 | .through(fs2.text.utf8.decode)
1031[warn] 52 | .through(fs2.text.lines)
1032[warn] 53 | .evalMap { line =>
1033[warn] 54 | IO(readFromStringReentrant[SnapshotItem](line))
1034[warn] 55 | }
1035[warn] 56 | .evalMap {
1036[warn] 57 | case SnapshotItem.Message(msg) =>
1037[warn] 58 | inline def redirect(stream: Topic[IO, Message]) =
1038[warn] 59 | msg.raw.toMessage match
1039[warn] 60 | case None =>
1040[warn] 61 | Logging.error(
1041[warn] 62 | s"Failed to construct a jsonrpclib Message from ${msg.raw}"
1042[warn] 63 | )
1043[warn] 64 | case Some(m) => stream.publish1(m)
1044[warn] 65 | msg.decoded match
1045[warn] 66 | case rq: LspMessage.Request =>
1046[warn] 67 | rq.direction match
1047[warn] 68 | case Direction.ToServer =>
1048[warn] 69 | redirect(inBytes)
1049[warn] 70 | case Direction.ToClient =>
1050[warn] 71 | redirect(outBytes)
1051[warn] 72 | case rp: LspMessage.Response =>
1052[warn] 73 | rp.direction match
1053[warn] 74 | case Direction.ToServer =>
1054[warn] 75 | redirect(inBytes)
1055[warn] 76 | case Direction.ToClient =>
1056[warn] 77 | redirect(outBytes)
1057[warn] 78 | case LspMessage.Notification(generatedId, method, direction) =>
1058[warn] 79 | direction match
1059[warn] 80 | case Direction.ToServer => redirect(inBytes)
1060[warn] 81 | case Direction.ToClient => redirect(outBytes)
1061[warn] 82 | end match
1062[warn] 83 | case SnapshotItem.Log(msg) =>
1063[warn] 84 | msg match
1064[warn] 85 | case LogMessage.Stderr(value, timestamp) =>
1065[warn] 86 | errBytes.publish1(Chunk.array((value + "\n").getBytes))
1066[warn] 87 | }
1067[warn] 88 | fs2.Stream.eval(IO.deferred[Boolean]).flatMap { latch =>
1068[warn] 89 | runServer(latch).concurrently(sendStuff(latch))
1069[warn] 90 | }
1070[warn] 91 |end Replay
1071[warn] |
1072[warn] | longer explanation available when compiling with `-explain`
1073[warn] -- [E222] Syntax Warning: /build/repo/modules/tracer/backend/src/main/scala/command.trace.scala:17:20
1074[warn] 17 |package langoustine.tracer
1075[warn] |^
1076[warn] |The package name `command.trace$package` will be encoded on the classpath, and can lead to undefined behaviour.
1077[warn] 18 |import scala.util.NotGiven
1078[warn] 19 |import cats.effect.*
1079[warn] 20 |import cats.syntax.all.*
1080[warn] 21 |import fs2.*
1081[warn] 22 |import fs2.concurrent.*
1082[warn] 23 |import jsonrpclib.Message
1083[warn] 24 |import jsonrpclib.Payload
1084[warn] 25 |import langoustine.lsp.Communicate
1085[warn] 26 |extension (s: fs2.Stream[IO, Payload])
1086[warn] 27 | def debugAs(name: String) =
1087[warn] 28 | s.evalTap(el =>
1088[warn] 29 | Logging.debug(
1089[warn] 30 | s"[$name (payload)]: ${el.stripNull.map(a => new String(a.array)).getOrElse("null")}"
1090[warn] 31 | )
1091[warn] 32 | )
1092[warn] 33 |extension [A](s: fs2.Stream[IO, A])
1093[warn] 34 | inline def debugAs(name: String)(using NotGiven[A =:= Payload]) =
1094[warn] 35 | s.evalTap(el => Logging.debug(s"[$name]: $el"))
1095[warn] 36 | inline def debugAs[B](name: String, f: A => B)(using
1096[warn] 37 | NotGiven[A =:= Payload]
1097[warn] 38 | ) =
1098[warn] 39 | s.evalTap(el => Logging.debug(s"[$name]: ${f(el)}"))
1099[warn] 40 |def Trace(
1100[warn] 41 | in: fs2.Stream[IO, Byte],
1101[warn] 42 | out: fs2.Pipe[IO, Byte, Nothing],
1102[warn] 43 | err: fs2.Pipe[IO, Byte, Nothing],
1103[warn] 44 | inBytes: Topic[IO, Message],
1104[warn] 45 | outBytes: Topic[IO, Message],
1105[warn] 46 | errBytes: Topic[IO, Chunk[Byte]],
1106[warn] 47 | outLatch: Deferred[IO, org.http4s.Uri],
1107[warn] 48 | exits: Deferred[IO, Boolean],
1108[warn] 49 | traceConfig: TraceConfig,
1109[warn] 50 | bindConfig: BindConfig,
1110[warn] 51 | summary: Summary
1111[warn] 52 |) =
1112[warn] 53 | fs2.Stream.eval(IO.deferred[Communicate[IO]]).flatMap { comms =>
1113[warn] 54 | langoustine.ChildProcess
1114[warn] 55 | .spawn[IO](traceConfig.cmd.toList*)
1115[warn] 56 | .flatMap { child =>
1116[warn] 57 | def log(msg: String) =
1117[warn] 58 | errBytes.publish1(Chunk.array(("[tracer] " + msg + "\n").getBytes))
1118[warn] 59 | import jsonrpclib.fs2.*
1119[warn] 60 | val inPayloads = inBytes.subscribe(1024)
1120[warn] 61 | val outPayloads = outBytes.subscribe(1024)
1121[warn] 62 | val errStream = errBytes.subscribe(1024)
1122[warn] 63 | val channel = FS2Channel[IO](2048, None).flatMap { rpcChannel =>
1123[warn] 64 | val communicate = Communicate.channel(rpcChannel, IO.unit)
1124[warn] 65 | val readIn = inPayloads
1125[warn] 66 | .debugAs("payloads coming in")
1126[warn] 67 | .filter {
1127[warn] 68 | case msg: jsonrpclib.InputMessage =>
1128[warn] 69 | msg.method.startsWith("langoustine/")
1129[warn] 70 | case _ => true
1130[warn] 71 | }
1131[warn] 72 | .through(rpcChannel.input)
1132[warn] 73 | val writeOut = rpcChannel.output
1133[warn] 74 | .debugAs("payloads going out")
1134[warn] 75 | .through(outBytes.publish)
1135[warn] 76 | fs2.Stream.eval(comms.complete(communicate)) ++
1136[warn] 77 | readIn
1137[warn] 78 | .concurrently(writeOut)
1138[warn] 79 | }
1139[warn] 80 | val captureStdin =
1140[warn] 81 | in.chunks
1141[warn] 82 | .debugAs(
1142[warn] 83 | "chunks coming from stdin",
1143[warn] 84 | chunk => new String(chunk.toArray)
1144[warn] 85 | )
1145[warn] 86 | .unchunks
1146[warn] 87 | .through(lsp.decodeMessages)
1147[warn] 88 | .evalMap {
1148[warn] 89 | case Left(err) =>
1149[warn] 90 | Logging
1150[warn] 91 | .error(s"Failed to decode message from stdin: $err")
1151[warn] 92 | .as(None)
1152[warn] 93 | case Right(payload) => IO.pure(Some(payload))
1153[warn] 94 | }
1154[warn] 95 | .unNone
1155[warn] 96 | .debugAs("stdin LSP payloads")
1156[warn] 97 | .through(inBytes.publish)
1157[warn] 98 | .onFinalize(
1158[warn] 99 | Logging.info("process stdin finished, shutting down tracer") *>
1159[warn] 100 | child.terminate *>
1160[warn] 101 | exits.complete(true).void
1161[warn] 102 | )
1162[warn] 103 | val redirectStdin =
1163[warn] 104 | inPayloads
1164[warn] 105 | .debugAs("writing to child stdin")
1165[warn] 106 | .through(lsp.encodeMessages)
1166[warn] 107 | .through(child.stdin)
1167[warn] 108 | val captureStdout =
1168[warn] 109 | child.stdout.chunks
1169[warn] 110 | .debugAs(
1170[warn] 111 | "chunks coming from stdout",
1171[warn] 112 | chunk => new String(chunk.toArray)
1172[warn] 113 | )
1173[warn] 114 | .unchunks
1174[warn] 115 | .through(lsp.decodeMessages)
1175[warn] 116 | .evalMap {
1176[warn] 117 | case Left(err) =>
1177[warn] 118 | Logging
1178[warn] 119 | .error(
1179[warn] 120 | s"Failed to decode message from target LSP's stdout: $err"
1180[warn] 121 | )
1181[warn] 122 | .as(None)
1182[warn] 123 | case Right(payload) => IO.pure(Some(payload))
1183[warn] 124 | }
1184[warn] 125 | .unNone
1185[warn] 126 | .debugAs("reading from child's stdout")
1186[warn] 127 | .through(outBytes.publish)
1187[warn] 128 | val redirectStdout =
1188[warn] 129 | outPayloads
1189[warn] 130 | .debugAs("writing to real stdout")
1190[warn] 131 | .through(lsp.encodeMessages)
1191[warn] 132 | .through(out)
1192[warn] 133 | .onFinalize(Logging.info("process stdout finished").void)
1193[warn] 134 | val captureStderr =
1194[warn] 135 | child.stderr.chunks
1195[warn] 136 | .through(errBytes.publish)
1196[warn] 137 | .onFinalize(Logging.info("process stderr finished").void)
1197[warn] 138 | val redirectStderr =
1198[warn] 139 | errStream
1199[warn] 140 | .debugAs(
1200[warn] 141 | "writing to real stderr",
1201[warn] 142 | chunk => new String(chunk.toArray)
1202[warn] 143 | )
1203[warn] 144 | .unchunks
1204[warn] 145 | .through(err)
1205[warn] 146 | val server =
1206[warn] 147 | TracerServer
1207[warn] 148 | .create(
1208[warn] 149 | inPayloads,
1209[warn] 150 | outPayloads,
1210[warn] 151 | errStream.unchunks
1211[warn] 152 | )
1212[warn] 153 | .run(
1213[warn] 154 | bindConfig,
1214[warn] 155 | summary,
1215[warn] 156 | await = server =>
1216[warn] 157 | outLatch.complete(server.baseUri).attempt.void *>
1217[warn] 158 | Logging.info(s"Server started at ${server.baseUri}") *>
1218[warn] 159 | exits.get.void
1219[warn] 160 | )
1220[warn] 161 | val redirects = fs2
1221[warn] 162 | .Stream(
1222[warn] 163 | captureStdin.void,
1223[warn] 164 | captureStdout.void,
1224[warn] 165 | captureStderr.void,
1225[warn] 166 | redirectStdin.void,
1226[warn] 167 | redirectStderr.void,
1227[warn] 168 | redirectStdout.void
1228[warn] 169 | )
1229[warn] 170 | .parJoinUnbounded
1230[warn] 171 | server
1231[warn] 172 | .concurrently(fs2.Stream.eval(outLatch.get).void ++ redirects)
1232[warn] 173 | .concurrently(channel)
1233[warn] 174 | .concurrently(
1234[warn] 175 | fs2.Stream.eval(comms.get.parProduct(outLatch.get)).evalMap {
1235[warn] 176 | (comm, serverUri) =>
1236[warn] 177 | import langoustine.lsp.all.*
1237[warn] 178 | if canOpenBrowser then
1238[warn] 179 | val open =
1239[warn] 180 | MessageActionItem(
1240[warn] 181 | s"Open $serverUri in the browser"
1241[warn] 182 | )
1242[warn] 183 | val nothing = MessageActionItem("Nothing")
1243[warn] 184 | comm
1244[warn] 185 | .request(
1245[warn] 186 | window.showMessageRequest,
1246[warn] 187 | ShowMessageRequestParams(
1247[warn] 188 | langoustine.lsp.enumerations.MessageType.Info,
1248[warn] 189 | message =
1249[warn] 190 | s"Langoustine tracer has started on $serverUri, what would you like to do?",
1250[warn] 191 | actions = Opt(
1251[warn] 192 | Vector(
1252[warn] 193 | open,
1253[warn] 194 | nothing
1254[warn] 195 | )
1255[warn] 196 | )
1256[warn] 197 | )
1257[warn] 198 | )
1258[warn] 199 | .flatTap { out =>
1259[warn] 200 | Logging.info(out.toString) >> {
1260[warn] 201 | if out == Opt(open) then
1261[warn] 202 | openBrowser(serverUri).attempt
1262[warn] 203 | .flatMap(r => Logging.info(r.toString))
1263[warn] 204 | else IO.unit
1264[warn] 205 | }
1265[warn] 206 | }
1266[warn] 207 | else
1267[warn] 208 | comm.notification(
1268[warn] 209 | window.showMessage,
1269[warn] 210 | ShowMessageParams(
1270[warn] 211 | `type` = MessageType.Info,
1271[warn] 212 | message = s"Langoustine tracer is live at $serverUri"
1272[warn] 213 | )
1273[warn] 214 | )
1274[warn] 215 | end if
1275[warn] 216 | }
1276[warn] 217 | )
1277[warn] 218 | }
1278[warn] 219 | }
1279[warn] |
1280[warn] | longer explanation available when compiling with `-explain`
1281[warn] -- [E222] Syntax Warning: /build/repo/modules/tracer/backend/src/main/scala/routes.api.scala:17:20
1282[warn] 17 |package langoustine.tracer
1283[warn] |^
1284[warn] |The package name `routes.api$package` will be encoded on the classpath, and can lead to undefined behaviour.
1285[warn] 18 |import cats.effect.*
1286[warn] 19 |import cats.syntax.all.*
1287[warn] 20 |import com.github.plokhotnyuk.jsoniter_scala.core.*
1288[warn] 21 |import com.github.plokhotnyuk.jsoniter_scala.macros.*
1289[warn] 22 |import jsonrpclib.CallId
1290[warn] 23 |import org.http4s.*
1291[warn] 24 |import org.http4s.dsl.io.*
1292[warn] 25 |import org.http4s.headers.*
1293[warn] 26 |import org.http4s.server.*
1294[warn] 27 |import org.http4s.server.websocket.*
1295[warn] 28 |import org.http4s.websocket.*
1296[warn] 29 |import org.typelevel.ci.*
1297[warn] 30 |import concurrent.duration.*
1298[warn] 31 |object SnapshotNameMatcher
1299[warn] 32 | extends OptionalQueryParamDecoderMatcher[String]("name")
1300[warn] 33 |object codecs:
1301[warn] 34 | given msgCodec: JsonValueCodec[Vector[LspMessage]] = JsonCodecMaker.make
1302[warn] 35 | given rawCodec: JsonValueCodec[Vector[RawMessage]] = JsonCodecMaker.make
1303[warn] 36 | given JsonValueCodec[Vector[String]] = JsonCodecMaker.make
1304[warn] 37 | given jsonEncoder[T: JsonValueCodec]: EntityEncoder[IO, T] =
1305[warn] 38 | EntityEncoder
1306[warn] 39 | .byteArrayEncoder[IO]
1307[warn] 40 | .contramap((data: T) => writeToArray(data))
1308[warn] 41 | .withContentType(
1309[warn] 42 | `Content-Type`(MediaType.application.json, Some(Charset.`UTF-8`))
1310[warn] 43 | )
1311[warn] 44 | given jsonDecoder[T: JsonValueCodec]: EntityDecoder[IO, T] =
1312[warn] 45 | EntityDecoder.byteArrayDecoder[IO].map(readFromArray[T](_))
1313[warn] 46 |end codecs
1314[warn] 47 |def api(
1315[warn] 48 | wbs: WebSocketBuilder2[IO],
1316[warn] 49 | state: State,
1317[warn] 50 | summary: Summary
1318[warn] 51 |) =
1319[warn] 52 | import state.*
1320[warn] 53 | import codecs.given
1321[warn] 54 | val apiRoutes = HttpRoutes.of[IO] {
1322[warn] 55 | case GET -> Root / "summary" =>
1323[warn] 56 | Ok(summary)
1324[warn] 57 | case GET -> Root / "ws" / "events" =>
1325[warn] 58 | val continuous =
1326[warn] 59 | messages.discrete
1327[warn] 60 | .as(TracerEvent.Update)
1328[warn] 61 | .merge(messages.discrete.as(TracerEvent.Update))
1329[warn] 62 | .merge(
1330[warn] 63 | logBuf.discrete.map(TracerEvent.LogLines(_))
1331[warn] 64 | )
1332[warn] 65 | val out = fs2.Stream.eval(logBuf.get).map(TracerEvent.LogLines(_))
1333[warn] 66 | val updates =
1334[warn] 67 | (out ++ continuous)
1335[warn] 68 | .map(ev =>
1336[warn] 69 | WebSocketFrame.Text(writeToStringReentrant[TracerEvent](ev))
1337[warn] 70 | )
1338[warn] 71 | val pings =
1339[warn] 72 | fs2.Stream.repeatEval(IO(WebSocketFrame.Ping())).metered(1.second)
1340[warn] 73 | wbs
1341[warn] 74 | .withFilterPingPongs(false)
1342[warn] 75 | .build(updates.merge(pings), _.map(_ => ()))
1343[warn] 76 | case GET -> Root / "all" =>
1344[warn] 77 | messages.get.map(_.sortBy(_.timestamp).map(_.decoded)).flatMap(Ok(_))
1345[warn] 78 | case GET -> Root / "logs" =>
1346[warn] 79 | logBuf.get.flatMap(Ok(_))
1347[warn] 80 | case GET -> Root / "raw" / "all" =>
1348[warn] 81 | messages.get.map(_.sortBy(_.timestamp).map(_.raw)).flatMap(Ok(_))
1349[warn] 82 | case GET -> Root / "snapshot" :? SnapshotNameMatcher(nameMaybe) =>
1350[warn] 83 | given JsonValueCodec[Vector[ReceivedMessage]] = JsonCodecMaker.make
1351[warn] 84 | val filename = nameMaybe
1352[warn] 85 | .getOrElse("langoustine-tracer-snapshot")
1353[warn] 86 | + ".jsonl.gz"
1354[warn] 87 | val lspMessages = messages.get
1355[warn] 88 | .map(_.map { rm =>
1356[warn] 89 | // 1. Remove generated IDs from notifications, so they stop looking like
1357[warn] 90 | // requests
1358[warn] 91 | // 2. Remove request/response pair matching
1359[warn] 92 | rm.decoded match
1360[warn] 93 | case _: LspMessage.Notification =>
1361[warn] 94 | rm.copy(raw = rm.raw.copy(id = None))
1362[warn] 95 | case req: LspMessage.Request =>
1363[warn] 96 | rm.copy(decoded = req.copy(responded = false))
1364[warn] 97 | case resp: LspMessage.Response =>
1365[warn] 98 | rm.copy(decoded = resp.copy(method = None))
1366[warn] 99 | }.map(SnapshotItem.Message.apply))
1367[warn] 100 | val logs = logBuf.get.map(_.collect { case log: LogMessage.Stderr =>
1368[warn] 101 | SnapshotItem.Log(log)
1369[warn] 102 | })
1370[warn] 103 | lspMessages.product(logs).map(_ ++ _).map(_.sortBy(_.timestamp)).flatMap {
1371[warn] 104 | received =>
1372[warn] 105 | val bytes = fs2.Stream
1373[warn] 106 | .emits(received)
1374[warn] 107 | .covary[IO]
1375[warn] 108 | .evalMap(m => IO(writeToStringReentrant[SnapshotItem](m)))
1376[warn] 109 | .intersperse("\n")
1377[warn] 110 | .through(fs2.text.utf8.encode)
1378[warn] 111 | .through(fs2.compression.Compression[IO].gzip())
1379[warn] 112 | Ok(
1380[warn] 113 | bytes,
1381[warn] 114 | org.http4s.headers.`Content-Disposition`(
1382[warn] 115 | s"attachment",
1383[warn] 116 | Map(ci"filename" -> filename)
1384[warn] 117 | )
1385[warn] 118 | )
1386[warn] 119 | }
1387[warn] 120 | case GET -> Root / "raw" / "request" / id =>
1388[warn] 121 | val asLong = id.toLongOption.map(CallId.NumberId.apply)
1389[warn] 122 | val asStr = CallId.StringId(id)
1390[warn] 123 | inline def idMatches(idOpt: Option[CallId]) =
1391[warn] 124 | (asLong == idOpt || idOpt.contains(asStr))
1392[warn] 125 | messages.get.flatMap { messages =>
1393[warn] 126 | val found = messages.collectFirst {
1394[warn] 127 | case rm if idMatches(rm.raw.id) && rm.raw.method.nonEmpty =>
1395[warn] 128 | rm.raw
1396[warn] 129 | }
1397[warn] 130 | found match
1398[warn] 131 | case Some(rm) => Ok(rm)
1399[warn] 132 | case None => NotFound()
1400[warn] 133 | }
1401[warn] 134 | case GET -> Root / "raw" / "response" / id =>
1402[warn] 135 | val asLong = id.toLongOption.map(CallId.NumberId.apply)
1403[warn] 136 | val asStr = CallId.StringId(id)
1404[warn] 137 | inline def idMatches(idOpt: Option[CallId]) =
1405[warn] 138 | (asLong == idOpt || idOpt.contains(asStr))
1406[warn] 139 | messages.get.flatMap { messages =>
1407[warn] 140 | val found = messages.collectFirst {
1408[warn] 141 | case rm if idMatches(rm.raw.id) && rm.raw.method.isEmpty =>
1409[warn] 142 | rm.raw
1410[warn] 143 | }
1411[warn] 144 | found match
1412[warn] 145 | case Some(rm) => Ok(rm)
1413[warn] 146 | case None => NotFound()
1414[warn] 147 | }
1415[warn] 148 | case GET -> Root / "raw" / "notification" / id =>
1416[warn] 149 | val asStr = CallId.StringId(id)
1417[warn] 150 | inline def idMatches(idOpt: Option[CallId]) =
1418[warn] 151 | idOpt.contains(asStr)
1419[warn] 152 | messages.get.flatMap { messages =>
1420[warn] 153 | val found = messages.collectFirst {
1421[warn] 154 | case rm if idMatches(rm.raw.id) => rm.raw
1422[warn] 155 | }
1423[warn] 156 | found match
1424[warn] 157 | case Some(rm) => Ok(rm)
1425[warn] 158 | case None => NotFound()
1426[warn] 159 | }
1427[warn] 160 | }
1428[warn] 161 | Router("/api" -> apiRoutes) <+> Static.routes
1429[warn] 162 |end api
1430[warn] |
1431[warn] | longer explanation available when compiling with `-explain`
1432[warn] -- [E121] Pattern Match Warning: /build/repo/modules/tracer/backend/src/main/scala/state.scala:134:23
1433[warn] 134 | case other =>
1434[warn] | ^^^^^
1435[warn] |Unreachable case except for null (if this is intentional, consider writing case null => instead).
1436[warn] there was 1 deprecation warning; re-run with -deprecation for details
1437[warn] 6 warnings found
1438[info] done compiling
1439[info] compiling 7 Scala sources to /build/repo/modules/tracer/shared/target/js-3/classes ...
1440
1441 unhandled exception while running genSJSIR on /build/repo/modules/tracer/shared/src/main/scala/Direction.scala
1442
1443 An unhandled exception was thrown in the compiler.
1444 Please file a crash report here:
1445 https://github.com/scala/scala3/issues/new/choose
1446 For non-enriched exceptions, compile with -Xno-enrich-error-messages.
1447
1448
1449 while compiling: /build/repo/modules/tracer/shared/src/main/scala/Direction.scala
1450 during phase: genSJSIR
1451 mode: Mode(ImplicitsEnabled)
1452 library version: version 3.8.0-RC5
1453 compiler version: version 3.8.0-RC5
1454 settings: -Wconf List(msg=can be rewritten automatically under:s) -Wunused List(imports) -classpath /build/repo/modules/tracer/shared/target/js-3/classes:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_sjs1_3/3.8.0-RC5/scala3-library_sjs1_3-3.8.0-RC5.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-library_2.13/1.19.0/scalajs-library_2.13-1.19.0.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_sjs1_3/2.28.4/jsoniter-scala-core_sjs1_3-2.28.4.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-macros_sjs1_3/2.28.4/jsoniter-scala-macros_sjs1_3-2.28.4.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/tech/neander/jsonrpclib-core_sjs1_3/0.0.7/jsonrpclib-core_sjs1_3-0.0.7.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-scalalib_2.13/3.8.0-RC5/scalajs-scalalib_2.13-3.8.0-RC5.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/3.8.0-RC5/scala-library-3.8.0-RC5.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-javalib/1.20.1/scalajs-javalib-1.20.1.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/cquiroz/scala-java-time_sjs1_3/2.5.0/scala-java-time_sjs1_3-2.5.0.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.8.0-RC5/scala3-library_3-3.8.0-RC5.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/portable-scala/portable-scala-reflect_sjs1_2.13/1.1.2/portable-scala-reflect_sjs1_2.13-1.1.2.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/cquiroz/scala-java-locales_sjs1_3/1.5.1/scala-java-locales_sjs1_3-1.5.1.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/cquiroz/cldr-api_sjs1_3/4.0.0/cldr-api_sjs1_3-4.0.0.jar -d /build/repo/modules/tracer/shared/target/js-3/classes -scalajs true -source 3.4
1455
1456[error] ## Exception when compiling 7 sources to /build/repo/modules/tracer/shared/target/js-3/classes
1457[error] dotty.tools.dotc.core.TypeError$$anon$1: object LinkingInfo does not have a member method linkTimeIf
1458[error]
1459[error]
1460[error] dotty.tools.dotc.core.TypeError$$anon$1: object LinkingInfo does not have a member method linkTimeIf
1461[error] (tracerSharedJS / Compile / compileIncremental) dotty.tools.dotc.core.TypeError$$anon$1: object LinkingInfo does not have a member method linkTimeIf
1462[info] compiling 7 Scala sources to /build/repo/modules/tracer/shared/target/js-3/classes ...
1463
1464 unhandled exception while running genSJSIR on /build/repo/modules/tracer/shared/src/main/scala/Direction.scala
1465
1466 An unhandled exception was thrown in the compiler.
1467 Please file a crash report here:
1468 https://github.com/scala/scala3/issues/new/choose
1469 For non-enriched exceptions, compile with -Xno-enrich-error-messages.
1470
1471
1472 while compiling: /build/repo/modules/tracer/shared/src/main/scala/Direction.scala
1473 during phase: genSJSIR
1474 mode: Mode(ImplicitsEnabled)
1475 library version: version 3.8.0-RC5
1476 compiler version: version 3.8.0-RC5
1477 settings: -Wconf List(msg=can be rewritten automatically under:s) -Wunused List(imports) -classpath /build/repo/modules/tracer/shared/target/js-3/classes:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_sjs1_3/3.8.0-RC5/scala3-library_sjs1_3-3.8.0-RC5.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-library_2.13/1.19.0/scalajs-library_2.13-1.19.0.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_sjs1_3/2.28.4/jsoniter-scala-core_sjs1_3-2.28.4.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-macros_sjs1_3/2.28.4/jsoniter-scala-macros_sjs1_3-2.28.4.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/tech/neander/jsonrpclib-core_sjs1_3/0.0.7/jsonrpclib-core_sjs1_3-0.0.7.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-scalalib_2.13/3.8.0-RC5/scalajs-scalalib_2.13-3.8.0-RC5.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/3.8.0-RC5/scala-library-3.8.0-RC5.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-javalib/1.20.1/scalajs-javalib-1.20.1.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/cquiroz/scala-java-time_sjs1_3/2.5.0/scala-java-time_sjs1_3-2.5.0.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.8.0-RC5/scala3-library_3-3.8.0-RC5.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/portable-scala/portable-scala-reflect_sjs1_2.13/1.1.2/portable-scala-reflect_sjs1_2.13-1.1.2.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/cquiroz/scala-java-locales_sjs1_3/1.5.1/scala-java-locales_sjs1_3-1.5.1.jar:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/cquiroz/cldr-api_sjs1_3/4.0.0/cldr-api_sjs1_3-4.0.0.jar -d /build/repo/modules/tracer/shared/target/js-3/classes -scalajs true -source 3.4
1478
1479[error] ## Exception when compiling 7 sources to /build/repo/modules/tracer/shared/target/js-3/classes
1480[error] dotty.tools.dotc.core.TypeError$$anon$1: object LinkingInfo does not have a member method linkTimeIf
1481[error]
1482[error]
1483[error] dotty.tools.dotc.core.TypeError$$anon$1: object LinkingInfo does not have a member method linkTimeIf
1484[error] (tracerSharedJS / Compile / compileIncremental) dotty.tools.dotc.core.TypeError$$anon$1: object LinkingInfo does not have a member method linkTimeIf
1485Starting build for ProjectRef(file:/build/repo/,app) (langoustine-app)... [4/5]
1486Compile scalacOptions: -Wunused:imports, -Wconf:msg=can be rewritten automatically under:s, -source:3.4
1487[info] compiling 4 Scala sources to /build/repo/modules/app/target/jvm-3/classes ...
1488[warn] there was 1 deprecation warning; re-run with -deprecation for details
1489[warn] one warning found
1490[info] done compiling
1491
1492************************
1493Build summary:
1494[{
1495 "module": "langoustine-lsp",
1496 "compile": {"status": "ok", "tookMs": 57290, "warnings": 4, "errors": 0, "sourceVersion": "3.4"},
1497 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1498 "test-compile": {"status": "ok", "tookMs": 421, "warnings": 0, "errors": 0, "sourceVersion": "3.4"},
1499 "test": {"status": "ok", "tookMs": 266, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1500 "publish": {"status": "skipped", "tookMs": 0},
1501 "metadata": {
1502 "crossScalaVersions": ["2.12.20"]
1503}
1504},{
1505 "module": "langoustine-tracer-shared",
1506 "compile": {"status": "ok", "tookMs": 1941, "warnings": 0, "errors": 0, "sourceVersion": "3.4"},
1507 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1508 "test-compile": {"status": "ok", "tookMs": 100, "warnings": 0, "errors": 0, "sourceVersion": "3.4"},
1509 "test": {"status": "ok", "tookMs": 106, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1510 "publish": {"status": "skipped", "tookMs": 0},
1511 "metadata": {
1512 "crossScalaVersions": ["2.12.20"]
1513}
1514},{
1515 "module": "langoustine-meta",
1516 "compile": {"status": "ok", "tookMs": 2503, "warnings": 4, "errors": 0, "sourceVersion": "3.4"},
1517 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1518 "test-compile": {"status": "ok", "tookMs": 98, "warnings": 0, "errors": 0, "sourceVersion": "3.4"},
1519 "test": {"status": "ok", "tookMs": 99, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1520 "publish": {"status": "skipped", "tookMs": 0},
1521 "metadata": {
1522 "crossScalaVersions": ["2.12.20"]
1523}
1524},{
1525 "module": "langoustine-tracer",
1526 "compile": {"status": "ok", "tookMs": 5384, "warnings": 5, "errors": 0, "sourceVersion": "3.4"},
1527 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1528 "test-compile": {"status": "skipped", "tookMs": 0, "warnings": 0, "errors": 0},
1529 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1530 "publish": {"status": "skipped", "tookMs": 0},
1531 "metadata": {
1532 "crossScalaVersions": ["2.12.20"]
1533}
1534},{
1535 "module": "langoustine-app",
1536 "compile": {"status": "ok", "tookMs": 1461, "warnings": 0, "errors": 0, "sourceVersion": "3.4"},
1537 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1538 "test-compile": {"status": "ok", "tookMs": 166, "warnings": 0, "errors": 0, "sourceVersion": "3.4"},
1539 "test": {"status": "ok", "tookMs": 172, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
1540 "publish": {"status": "skipped", "tookMs": 0},
1541 "metadata": {
1542 "crossScalaVersions": ["2.12.20"]
1543}
1544}]
1545************************
1546[success] Total time: 80 s (0:01:20.0), completed Dec 31, 2025, 9:24:55 PM
1547[0JChecking patch project/plugins.sbt...
1548Checking patch project/build.properties...
1549Checking patch build.sbt...
1550Applied patch project/plugins.sbt cleanly.
1551Applied patch project/build.properties cleanly.
1552Applied patch build.sbt cleanly.