Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metals won't boot with a NoClassDefFoundError #4706

Open
nrinaudo opened this issue Dec 7, 2022 · 55 comments
Open

Metals won't boot with a NoClassDefFoundError #4706

nrinaudo opened this issue Dec 7, 2022 · 55 comments
Labels
improvement Not a bug or a feature, but something general we can improve installation Related to how you install Metals

Comments

@nrinaudo
Copy link

nrinaudo commented Dec 7, 2022

Describe the bug

When attempting to boot Metals, I get the following error in the logs:

2022.12.07 13:03:27 INFO  tracing is disabled for protocol LSP, to enable tracing of incoming and outgoing JSON messages create an empty file at c:\JPMC\DEV\TMP\mep-code-gen-unsealed\.metals\lsp.trace.json or C:\Users\D634183\AppData\Local\scalameta\metals\cache\lsp.trace.json
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/lsp4j/jsonrpc/CancelChecker
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at scala.meta.metals.Main$.main(Main.scala:53)
        at scala.meta.metals.Main.main(Main.scala)
Caused by: java.lang.ClassNotFoundException: org.eclipse.lsp4j.jsonrpc.CancelChecker
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 11 more

Expected behavior

I would expect Metals to boot.

Operating system

Windows

Editor/Extension

VS Code

Version of Metals

v0.11.9

Extra context or search terms

Our setup is really rather hostile. On top of running Windows, all Maven requests have to go to an internal repository, which has to be populated manually.

This initially caused troubles far earlier in the installation process (when Metals failed to download its dependencies), but with the help of @tgodzik , I was able to identify which artifacts were missing and make them available.

I suspect the issue is that, somehow, metals is expecting some LSP4J JARs to be on the CLASSPATH but can't find them.

I have made sure that both org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.19.0 and org.eclipse.lsp4j:org.eclipse.lsp4j:0.19.0 were available in our Maven repository.

@ckipp01
Copy link
Member

ckipp01 commented Dec 7, 2022

I have made sure that both org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.19.0 and org.eclipse.lsp4j:org.eclipse.lsp4j:0.19.0 were available in our Maven repository.

This might be a case of the wrong version being there. For example I just checked what should be on the classpath for Metals v.0.11.9 and it actually looks like it'll be looking for 0.15.0:

❯ cs resolve metals:0.11.9 | grep lsp4j
org.eclipse.lsp4j:org.eclipse.lsp4j:0.15.0:default
org.eclipse.lsp4j:org.eclipse.lsp4j.debug:0.15.0:default
org.eclipse.lsp4j:org.eclipse.lsp4j.generator:0.15.0:default
org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.15.0:default
org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc.debug:0.15.0:default

@nrinaudo
Copy link
Author

nrinaudo commented Dec 7, 2022

Good idea, but unfortunately, this doesn't change a thing :/

@ckipp01
Copy link
Member

ckipp01 commented Dec 7, 2022

🤔 alright can you try one more thing. What's the output of the following for you:

cs launch org.scalameta:metals_2.13:0.11.9 -M scala.meta.metals.DownloadDependencies

@nrinaudo
Copy link
Author

nrinaudo commented Dec 7, 2022

I like how optimistic you are about my chance to install cs locally.

I'll give it a shot and let you know :)

@ckipp01
Copy link
Member

ckipp01 commented Dec 7, 2022

I like how optimistic you are about my chance to install cs locally.

Btw just incase the coursier jar is easier to get than cs you can also just use that instead of cs in my example.

@nrinaudo
Copy link
Author

nrinaudo commented Dec 7, 2022

Sure, but even that is problematic. When I say my setup is hostile, I mean it.

I can set the COURSIER_REPOSITORIES env variable, which will work for the coursier CLI. It doesn't work for the coursier launcher though, so I can't even start that.

@tgodzik
Copy link
Contributor

tgodzik commented Dec 9, 2022

I started working on a PR that would detect cs/coursier locally so that you can just use a fully bootstrapped launcher:

scalameta/metals-languageclient#524 (review)

@tgodzik tgodzik added installation Related to how you install Metals improvement Not a bug or a feature, but something general we can improve labels Dec 9, 2022
@nrinaudo
Copy link
Author

nrinaudo commented Dec 9, 2022

@tgodzik there might be a misunderstanding here.

This issue is not about coursier not installing properly, but about Metals not installing properly, in a way that I believe is entirely unrelated to coursier. Metals successfully downloads all of its dependencies (or at least reports it does), it's "just" that it ends up not finding some classes it's expecting on the CLASSPATH.

Coursier, here, is a bit of a tangent: @ckipp01 asked me to run it for diagnostics, which I'm struggling to do because the coursier launcher has hard-coded URLs to maven central, which my environment basically blocks. Improving the way Metals downloads coursier is nice and desirable, but, I think, not related to what we're doing here.

Unless I'm missing something?

@tgodzik
Copy link
Contributor

tgodzik commented Dec 9, 2022

which I'm struggling to do because the coursier launcher has hard-coded URLs to maven central, which my environment basically blocks.

There are two ways to create bootstrapped launcher in coursier, one is minimal which will try to download all the needed jars from maven central (this is used in metals) and the other one will have everything already contained.

For example https://github.com/coursier/coursier/releases/download/v2.1.0-RC2/coursier.jar should not need to download anything.

@nrinaudo
Copy link
Author

nrinaudo commented Dec 9, 2022

Ah. Sorry, I wasn't aware of that.

By running the command @ckipp01 suggested with that JAR, I'm seeing a bunch of download failures that I'll need to fix manually, such as metals. It's weird that when installing metals through the VSCode installer, this wasn't reported - nor did Metals even seem to think anything was wrong.

@tgodzik
Copy link
Contributor

tgodzik commented Dec 9, 2022

Yeah, might be because bootstrapped coursier is lacking a bunch of functionality. That's why I am thinking of allowing users to just use the one on the system and maybe later even makining it download the right one if possible (or printing instructions otherwise)

@nrinaudo
Copy link
Author

nrinaudo commented Dec 9, 2022

The DownloadDependencies tool is proving super useful here. What would be even more useful, in my very specific scenario where I have to wait for all requests to maven central to timeout to identify which artifact is needed, would be a flag to list all dependencies it wants.

But that'd be for future me. Present me has everything he needs for the moment, thank you! Let's see if I can get this to work now.

@nrinaudo
Copy link
Author

nrinaudo commented Dec 9, 2022

It's going to take a while - so many versions of mtags that require a few minutes to timeout, a few minutes to manually upload, and repeat... but, in the meantime: while this is definitely going to help, I'm not sure it's going to fix the issue. My problem is that Metals needs some LSP4J class that's not on the CLASSPATH, but none of the dependencies DownloadDependencies is downloading are LSP4J related.

@tgodzik
Copy link
Contributor

tgodzik commented Dec 9, 2022

Ideally that should be included in the dependencies when querying cs resolve org.scalameta:metals_2.13:0.11.9

@tgodzik
Copy link
Contributor

tgodzik commented Dec 9, 2022

Ach and you only need the mtags versions that are neccessary for a particular Scala version you are using.

@tgodzik
Copy link
Contributor

tgodzik commented Dec 9, 2022

Actually, could you try replacing the coursier used by the extension with the jar you downloaded (~/.vscode/extensions/.../coursier)? It should print everything much easier once the proper jar is used. And faster hopefully.

@nrinaudo
Copy link
Author

nrinaudo commented Dec 9, 2022

You'd think so, but cs fetch org.scalameta:metals_2.13:0.11.9 succeeds, lists all jars as present in my local cache, but I still get the same "class not found CancelChecker" error message...

@nrinaudo
Copy link
Author

nrinaudo commented Dec 9, 2022

Actually, could you try replacing the coursier used by the extension with the jar you downloaded (~/.vscode/extensions/.../coursier)? It should print everything much easier once the proper jar is used. And faster hopefully.

I've just tried that, absolutely no observed difference...

@nrinaudo
Copy link
Author

nrinaudo commented Dec 9, 2022

Ach and you only need the mtags versions that are neccessary for a particular Scala version you are using.

Sure but in order for DownloadDependencies to succeed and move on to the next tool it needs, semanticdb, it will attempt to download all mtags versions and abort if that fails

@tgodzik
Copy link
Contributor

tgodzik commented Dec 9, 2022

Ok, I am adding also a way to print all dependencies #4719

I think it should print everything, but I am not 100% sure. That can be run outside the problematic machine and will print a list like:

Dependencies...
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mdoc_2.13/2.3.6/mdoc_2.13-2.3.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.9/scala-compiler-2.13.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.9/scala-library-2.13.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mdoc-runtime_2.13/2.3.6/mdoc-runtime_2.13-2.3.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mdoc-cli_2.13/2.3.6/mdoc-cli_2.13-2.3.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalameta_2.13/4.6.0/scalameta_2.13-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/methvin/directory-watcher/0.16.1/directory-watcher-0.16.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/undertow/undertow-core/2.2.19.Final/undertow-core-2.2.19.Final.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jboss/xnio/xnio-nio/3.8.8.Final/xnio-nio-3.8.8.Final.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.3/slf4j-api-2.0.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-typesafe-config_2.13/0.11.1/metaconfig-typesafe-config_2.13-0.11.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_2.13/0.4.0/fansi_2.13-0.4.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_2.13/0.8.0/pprint_2.13-0.8.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.9/scala-reflect-2.13.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline/3.21.0/jline-3.21.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.12.1/jna-5.12.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mdoc-interfaces/2.3.6/mdoc-interfaces-2.3.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/interface/1.0.9/interface-1.0.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-all/0.62.2/flexmark-all-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/parsers_2.13/4.6.0/parsers_2.13-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scalap/2.13.9/scalap-2.13.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jboss/xnio/xnio-api/3.8.8.Final/xnio-api-3.8.8.Final.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jboss/threads/jboss-threads/3.1.0.Final/jboss-threads-3.1.0.Final.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-core_2.13/0.11.1/metaconfig-core_2.13-0.11.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.4.1/config-1.4.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.13/0.3.0/sourcecode_2.13-0.3.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark/0.62.2/flexmark-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-abbreviation/0.62.2/flexmark-ext-abbreviation-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-admonition/0.62.2/flexmark-ext-admonition-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-anchorlink/0.62.2/flexmark-ext-anchorlink-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-aside/0.62.2/flexmark-ext-aside-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-attributes/0.62.2/flexmark-ext-attributes-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-autolink/0.62.2/flexmark-ext-autolink-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-definition/0.62.2/flexmark-ext-definition-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-emoji/0.62.2/flexmark-ext-emoji-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-enumerated-reference/0.62.2/flexmark-ext-enumerated-reference-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-escaped-character/0.62.2/flexmark-ext-escaped-character-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-footnotes/0.62.2/flexmark-ext-footnotes-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-gfm-issues/0.62.2/flexmark-ext-gfm-issues-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-gfm-strikethrough/0.62.2/flexmark-ext-gfm-strikethrough-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-gfm-tasklist/0.62.2/flexmark-ext-gfm-tasklist-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-gfm-users/0.62.2/flexmark-ext-gfm-users-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-gitlab/0.62.2/flexmark-ext-gitlab-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-jekyll-front-matter/0.62.2/flexmark-ext-jekyll-front-matter-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-jekyll-tag/0.62.2/flexmark-ext-jekyll-tag-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-media-tags/0.62.2/flexmark-ext-media-tags-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-macros/0.62.2/flexmark-ext-macros-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-ins/0.62.2/flexmark-ext-ins-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-xwiki-macros/0.62.2/flexmark-ext-xwiki-macros-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-superscript/0.62.2/flexmark-ext-superscript-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-tables/0.62.2/flexmark-ext-tables-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-toc/0.62.2/flexmark-ext-toc-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-typographic/0.62.2/flexmark-ext-typographic-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-wikilink/0.62.2/flexmark-ext-wikilink-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-yaml-front-matter/0.62.2/flexmark-ext-yaml-front-matter-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-ext-youtube-embedded/0.62.2/flexmark-ext-youtube-embedded-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-html2md-converter/0.62.2/flexmark-html2md-converter-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-jira-converter/0.62.2/flexmark-jira-converter-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-pdf-converter/0.62.2/flexmark-pdf-converter-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-profile-pegdown/0.62.2/flexmark-profile-pegdown-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util-ast/0.62.2/flexmark-util-ast-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util-builder/0.62.2/flexmark-util-builder-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util-collection/0.62.2/flexmark-util-collection-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util-data/0.62.2/flexmark-util-data-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util-dependency/0.62.2/flexmark-util-dependency-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util-format/0.62.2/flexmark-util-format-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util-html/0.62.2/flexmark-util-html-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util-misc/0.62.2/flexmark-util-misc-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util-options/0.62.2/flexmark-util-options-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util-sequence/0.62.2/flexmark-util-sequence-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util-visitor/0.62.2/flexmark-util-visitor-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-youtrack-converter/0.62.2/flexmark-youtrack-converter-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/trees_2.13/4.6.0/trees_2.13-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/wildfly/common/wildfly-common/1.5.4.Final/wildfly-common-1.5.4.Final.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/wildfly/client/wildfly-client-config/1.0.1.Final/wildfly-client-config-1.0.1.Final.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-pprint_2.13/0.11.1/metaconfig-pprint_2.13-0.11.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/paiges-core_2.13/0.4.2/paiges-core_2.13-0.4.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.13/2.7.0/scala-collection-compat_2.13-2.7.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/vladsch/flexmark/flexmark-util/0.62.2/flexmark-util-0.62.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/nibor/autolink/autolink/0.6.0/autolink-0.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/openhtmltopdf/openhtmltopdf-core/1.0.0/openhtmltopdf-core-1.0.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/openhtmltopdf/openhtmltopdf-pdfbox/1.0.0/openhtmltopdf-pdfbox-1.0.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/openhtmltopdf/openhtmltopdf-rtl-support/1.0.0/openhtmltopdf-rtl-support-1.0.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/openhtmltopdf/openhtmltopdf-jsoup-dom-converter/1.0.0/openhtmltopdf-jsoup-dom-converter-1.0.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jetbrains/annotations/15.0/annotations-15.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/common_2.13/4.6.0/common_2.13-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/fastparse-v2_2.13/2.3.1/fastparse-v2_2.13-2.3.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/pdfbox/pdfbox/2.0.16/pdfbox-2.0.16.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/pdfbox/xmpbox/2.0.16/xmpbox-2.0.16.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/de/rototor/pdfbox/graphics2d/0.24/graphics2d-0.24.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/ibm/icu/icu4j/59.1/icu4j-59.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/scalapb-runtime_2.13/0.11.11/scalapb-runtime_2.13-0.11.11.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/pdfbox/fontbox/2.0.16/fontbox-2.0.16.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/lenses_2.13/0.11.11/lenses_2.13-0.11.11.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.19.2/protobuf-java-3.19.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mdoc_2.12/2.3.6/mdoc_2.12-2.3.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.17/scala-compiler-2.12.17.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.17/scala-library-2.12.17.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mdoc-runtime_2.12/2.3.6/mdoc-runtime_2.12-2.3.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mdoc-cli_2.12/2.3.6/mdoc-cli_2.12-2.3.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalameta_2.12/4.6.0/scalameta_2.12-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-typesafe-config_2.12/0.11.1/metaconfig-typesafe-config_2.12-0.11.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_2.12/0.4.0/fansi_2.12-0.4.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_2.12/0.8.0/pprint_2.12-0.8.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.17/scala-reflect-2.12.17.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/2.1.0/scala-xml_2.12-2.1.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/parsers_2.12/4.6.0/parsers_2.12-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scalap/2.12.17/scalap-2.12.17.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-core_2.12/0.11.1/metaconfig-core_2.12-0.11.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.12/0.3.0/sourcecode_2.12-0.3.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/trees_2.12/4.6.0/trees_2.12-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-pprint_2.12/0.11.1/metaconfig-pprint_2.12-0.11.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/paiges-core_2.12/0.4.2/paiges-core_2.12-0.4.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.12/2.7.0/scala-collection-compat_2.12-2.7.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/common_2.12/4.6.0/common_2.12-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/fastparse-v2_2.12/2.3.1/fastparse-v2_2.12-2.3.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/scalapb-runtime_2.12/0.11.11/scalapb-runtime_2.12-0.11.11.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/lenses_2.12/0.11.11/lenses_2.12-0.11.11.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mdoc_2.11/2.2.24/mdoc_2.11-2.2.24.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.11.12/scala-compiler-2.11.12.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.11.12/scala-library-2.11.12.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mdoc-runtime_2.11/2.2.24/mdoc-runtime_2.11-2.2.24.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mdoc-cli_2.11/2.2.24/mdoc-cli_2.11-2.2.24.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalameta_2.11/4.4.28/scalameta_2.11-4.4.28.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-typesafe-config_2.11/0.9.10/metaconfig-typesafe-config_2.11-0.9.10.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_2.11/0.2.6/fansi_2.11-0.2.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/methvin/directory-watcher/0.15.0/directory-watcher-0.15.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/undertow/undertow-core/2.2.10.Final/undertow-core-2.2.10.Final.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jboss/xnio/xnio-nio/3.8.4.Final/xnio-nio-3.8.4.Final.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.32/slf4j-api-1.7.32.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.11.12/scala-reflect-2.11.12.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.11/1.0.5/scala-xml_2.11-1.0.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_2.11/1.0.4/scala-parser-combinators_2.11-1.0.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mdoc-interfaces/2.2.24/mdoc-interfaces-2.2.24.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_2.11/0.5.4/pprint_2.11-0.5.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/interface/1.0.4/interface-1.0.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/parsers_2.11/4.4.28/parsers_2.11-4.4.28.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scalap/2.11.12/scalap-2.11.12.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-core_2.11/0.9.10/metaconfig-core_2.11-0.9.10.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.2.1/config-1.2.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.11/0.2.7/sourcecode_2.11-0.2.7.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.7.0/jna-5.7.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jboss/xnio/xnio-api/3.8.4.Final/xnio-api-3.8.4.Final.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/trees_2.11/4.4.28/trees_2.11-4.4.28.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/paiges-core_2.11/0.3.0/paiges-core_2.11-0.3.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.11/2.1.2/scala-collection-compat_2.11-2.1.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/wildfly/common/wildfly-common/1.5.2.Final/wildfly-common-1.5.2.Final.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/common_2.11/4.4.28/common_2.11-4.4.28.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/fastparse-v2_2.11/2.3.1/fastparse-v2_2.11-2.3.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/scalapb-runtime_2.11/0.9.7/scalapb-runtime_2.11-0.9.7.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/geny_2.11/0.1.4/geny_2.11-0.1.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/lenses_2.11/0.9.7/lenses_2.11-0.9.7.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.8.0/protobuf-java-3.8.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse_2.11/2.1.2/fastparse_2.11-2.1.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalafmt-cli_2.13/3.5.3/scalafmt-cli_2.13-3.5.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.10/scala-library-2.13.10.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalafmt-core_2.13/3.5.3/scalafmt-core_2.13-3.5.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalafmt-dynamic_2.13/3.5.3/scalafmt-dynamic_2.13-3.5.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/svm-subs/101.0.0/svm-subs-101.0.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/martiansoftware/nailgun-server/0.9.1/nailgun-server-0.9.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/scopt/scopt_2.13/4.0.1/scopt_2.13-4.0.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.13/1.3.0/scala-xml_2.13-1.3.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalafmt-sysops_2.13/3.5.3/scalafmt-sysops_2.13-3.5.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalafmt-config_2.13/3.5.3/scalafmt-config_2.13-3.5.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalameta_2.13/4.5.5/scalameta_2.13-4.5.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.10/scala-reflect-2.13.10.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalafmt-interfaces/3.5.3/scalafmt-interfaces-3.5.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/interface/0.0.17/interface-0.0.17.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.4.2/config-1.4.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-parallel-collections_2.13/1.0.4/scala-parallel-collections_2.13-1.0.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-core_2.13/0.10.0/metaconfig-core_2.13-0.10.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-typesafe-config_2.13/0.10.0/metaconfig-typesafe-config_2.13-0.10.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/parsers_2.13/4.5.5/parsers_2.13-4.5.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scalap/2.13.8/scalap-2.13.8.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-pprint_2.13/0.10.0/metaconfig-pprint_2.13-0.10.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.13/2.5.0/scala-collection-compat_2.13-2.5.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/trees_2.13/4.5.5/trees_2.13-4.5.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.10/scala-compiler-2.13.10.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_2.13/0.3.0/fansi_2.13-0.3.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/common_2.13/4.5.5/common_2.13-4.5.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.13/0.2.7/sourcecode_2.13-0.2.7.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/geny_2.13/0.6.5/geny_2.13-0.6.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.13.10/0.11.9/mtags_2.13.10-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags-interfaces/0.11.9/mtags-interfaces-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/geny_2.13/0.7.1/geny_2.13-0.7.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/thoughtworks/qdox/qdox/2.0.2/qdox-2.0.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-java8-compat_2.13/1.0.2/scala-java8-compat_2.13-1.0.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jsoup/jsoup/1.15.3/jsoup-1.15.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.13.10/4.6.0/semanticdb-scalac-core_2.13.10-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/lz4/lz4-java/1.8.0/lz4-java-1.8.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/eclipse/lsp4j/org.eclipse.lsp4j/0.15.0/org.eclipse.lsp4j-0.15.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/eclipse/lsp4j/org.eclipse.lsp4j.generator/0.15.0/org.eclipse.lsp4j.generator-0.15.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/eclipse/lsp4j/org.eclipse.lsp4j.jsonrpc/0.15.0/org.eclipse.lsp4j.jsonrpc-0.15.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/eclipse/xtend/org.eclipse.xtend.lib/2.24.0/org.eclipse.xtend.lib-2.24.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.9.1/gson-2.9.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/eclipse/xtext/org.eclipse.xtext.xbase.lib/2.24.0/org.eclipse.xtext.xbase.lib-2.24.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/eclipse/xtend/org.eclipse.xtend.lib.macro/2.24.0/org.eclipse.xtend.lib.macro-2.24.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/guava/guava/27.1-jre/guava-27.1-jre.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.2.0/error_prone_annotations-2.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.12.17/0.11.9/mtags_2.12.17-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/geny_2.12/0.7.1/geny_2.12-0.7.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-java8-compat_2.12/1.0.2/scala-java8-compat_2.12-1.0.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.12.17/4.6.0/semanticdb-scalac-core_2.12.17-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.12.16/0.11.9/mtags_2.12.16-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.16/scala-library-2.12.16.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.12.16/4.6.0/semanticdb-scalac-core_2.12.16-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.16/scala-compiler-2.12.16.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.16/scala-reflect-2.12.16.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.12.15/0.11.9/mtags_2.12.15-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.15/scala-library-2.12.15.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.12.15/4.6.0/semanticdb-scalac-core_2.12.15-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.15/scala-compiler-2.12.15.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.15/scala-reflect-2.12.15.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.12.14/0.11.9/mtags_2.12.14-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.14/scala-library-2.12.14.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.12.14/4.6.0/semanticdb-scalac-core_2.12.14-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.14/scala-compiler-2.12.14.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.14/scala-reflect-2.12.14.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.12.13/0.11.9/mtags_2.12.13-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.13/scala-library-2.12.13.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.12.13/4.6.0/semanticdb-scalac-core_2.12.13-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.13/scala-compiler-2.12.13.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.13/scala-reflect-2.12.13.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.12.12/0.11.9/mtags_2.12.12-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.12/scala-library-2.12.12.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.12.12/4.6.0/semanticdb-scalac-core_2.12.12-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.12/scala-compiler-2.12.12.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.12/scala-reflect-2.12.12.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.13.5/0.11.9/mtags_2.13.5-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.5/scala-library-2.13.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.13.5/4.6.0/semanticdb-scalac-core_2.13.5-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.5/scala-compiler-2.13.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.5/scala-reflect-2.13.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline/3.19.0/jline-3.19.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.13.6/0.11.9/mtags_2.13.6-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.13.6/4.6.0/semanticdb-scalac-core_2.13.6-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.6/scala-compiler-2.13.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.6/scala-reflect-2.13.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.13.7/0.11.9/mtags_2.13.7-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.7/scala-library-2.13.7.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.13.7/4.6.0/semanticdb-scalac-core_2.13.7-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.7/scala-compiler-2.13.7.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.7/scala-reflect-2.13.7.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline/3.20.0/jline-3.20.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.8.0/jna-5.8.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.13.8/0.11.9/mtags_2.13.8-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.13.8/4.6.0/semanticdb-scalac-core_2.13.8-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.13.9/0.11.9/mtags_2.13.9-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.13.9/4.6.0/semanticdb-scalac-core_2.13.9-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.11.12/0.11.9/mtags_2.11.12-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/geny_2.11/0.7.1/geny_2.11-0.7.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-java8-compat_2.11/1.0.2/scala-java8-compat_2.11-1.0.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.11.12/4.6.0/semanticdb-scalac-core_2.11.12-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalameta_2.11/4.6.0/scalameta_2.11-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/parsers_2.11/4.6.0/parsers_2.11-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/trees_2.11/4.6.0/trees_2.11-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/common_2.11/4.6.0/common_2.11-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.11/0.3.0/sourcecode_2.11-0.3.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.12.9/0.11.9/mtags_2.12.9-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.9/scala-library-2.12.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.12.9/4.6.0/semanticdb-scalac-core_2.12.9-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.9/scala-compiler-2.12.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.9/scala-reflect-2.12.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.12.10/0.11.9/mtags_2.12.10-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.10/scala-library-2.12.10.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.12.10/4.6.0/semanticdb-scalac-core_2.12.10-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.10/scala-compiler-2.12.10.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.10/scala-reflect-2.12.10.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.12.11/0.11.9/mtags_2.12.11-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.11/scala-library-2.12.11.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.12.11/4.6.0/semanticdb-scalac-core_2.12.11-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.11/scala-compiler-2.12.11.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.11/scala-reflect-2.12.11.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.13.1/0.11.9/mtags_2.13.1-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.1/scala-library-2.13.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.13.1/4.6.0/semanticdb-scalac-core_2.13.1-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.1/scala-compiler-2.13.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.1/scala-reflect-2.13.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.12/jansi-1.12.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.13.2/0.11.9/mtags_2.13.2-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.2/scala-library-2.13.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.13.2/4.6.0/semanticdb-scalac-core_2.13.2-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.2/scala-compiler-2.13.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.2/scala-reflect-2.13.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline/3.14.1/jline-3.14.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.13.3/0.11.9/mtags_2.13.3-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.3/scala-library-2.13.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.13.3/4.6.0/semanticdb-scalac-core_2.13.3-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.3/scala-compiler-2.13.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.3/scala-reflect-2.13.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline/3.15.0/jline-3.15.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_2.13.4/0.11.9/mtags_2.13.4-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.4/scala-library-2.13.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac-core_2.13.4/4.6.0/semanticdb-scalac-core_2.13.4-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.4/scala-compiler-2.13.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.4/scala-reflect-2.13.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline/3.16.0/jline-3.16.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_3.2.2-RC1/0.11.9/mtags_3.2.2-RC1-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.2.2-RC1/scala3-compiler_3-3.2.2-RC1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.2.2-RC1/scala3-library_3-3.2.2-RC1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/geny_3/0.7.1/geny_3-0.7.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-java8-compat_3/1.0.2/scala-java8-compat_3-1.0.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.2.2-RC1/scala3-interfaces-3.2.2-RC1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.2.2-RC1/tasty-core_3-3.2.2-RC1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.3.0-scala-1/scala-asm-9.3.0-scala-1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_3.2.1/0.11.9/mtags_3.2.1-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.2.1/scala3-compiler_3-3.2.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.2.1/scala3-library_3-3.2.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.2.1/scala3-interfaces-3.2.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.2.1/tasty-core_3-3.2.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_3.2.0/0.11.9/mtags_3.2.0-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.2.0/scala3-compiler_3-3.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.2.0/scala3-library_3-3.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.2.0/scala3-interfaces-3.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.2.0/tasty-core_3-3.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_3.1.3/0.11.9/mtags_3.1.3-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.1.3/scala3-compiler_3-3.1.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.3/scala3-library_3-3.1.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.1.3/scala3-interfaces-3.1.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.1.3/tasty-core_3-3.1.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.2.0-scala-1/scala-asm-9.2.0-scala-1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_3.1.2/0.11.9/mtags_3.1.2-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.1.2/scala3-compiler_3-3.1.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.2/scala3-library_3-3.1.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.1.2/scala3-interfaces-3.1.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.1.2/tasty-core_3-3.1.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_3.1.1/0.11.9/mtags_3.1.1-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.1.1/scala3-compiler_3-3.1.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.1/scala3-library_3-3.1.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.1.1/scala3-interfaces-3.1.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.1.1/tasty-core_3-3.1.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_3.1.0/0.11.9/mtags_3.1.0-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.1.0/scala3-compiler_3-3.1.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.0/scala3-library_3-3.1.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.1.0/scala3-interfaces-3.1.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.1.0/tasty-core_3-3.1.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_3.0.2/0.11.9/mtags_3.0.2-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.2/scala3-compiler_3-3.0.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.2/scala3-interfaces-3.0.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.2/tasty-core_3-3.0.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_3.0.1/0.11.9/mtags_3.0.1-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.1/scala3-compiler_3-3.0.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.1/scala3-interfaces-3.0.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.1/tasty-core_3-3.0.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/mtags_3.0.0/0.11.9/mtags_3.0.0-0.11.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.0/scala3-compiler_3-3.0.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.0/scala3-interfaces-3.0.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.0/tasty-core_3-3.0.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.10/4.6.0/semanticdb-scalac_2.13.10-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.12.17/4.6.0/semanticdb-scalac_2.12.17-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.12.16/4.6.0/semanticdb-scalac_2.12.16-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.12.15/4.6.0/semanticdb-scalac_2.12.15-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.12.14/4.6.0/semanticdb-scalac_2.12.14-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.12.13/4.6.0/semanticdb-scalac_2.12.13-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.12.12/4.6.0/semanticdb-scalac_2.12.12-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.5/4.6.0/semanticdb-scalac_2.13.5-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.6/4.6.0/semanticdb-scalac_2.13.6-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.7/4.6.0/semanticdb-scalac_2.13.7-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.8/4.6.0/semanticdb-scalac_2.13.8-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.9/4.6.0/semanticdb-scalac_2.13.9-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.11.12/4.6.0/semanticdb-scalac_2.11.12-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.12.9/4.6.0/semanticdb-scalac_2.12.9-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.12.10/4.6.0/semanticdb-scalac_2.12.10-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.12.11/4.6.0/semanticdb-scalac_2.12.11-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.1/4.6.0/semanticdb-scalac_2.13.1-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.2/4.6.0/semanticdb-scalac_2.13.2-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.3/4.6.0/semanticdb-scalac_2.13.3-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.4/4.6.0/semanticdb-scalac_2.13.4-4.6.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/sourcegraph/semanticdb-javac/0.7.4/semanticdb-javac-0.7.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.10/scala-library-2.13.10-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.17/scala-library-2.12.17-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.16/scala-library-2.12.16-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.15/scala-library-2.12.15-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.14/scala-library-2.12.14-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.13/scala-library-2.12.13-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.12/scala-library-2.12.12-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.5/scala-library-2.13.5-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.7/scala-library-2.13.7-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.9/scala-library-2.13.9-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.11.12/scala-library-2.11.12-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.9/scala-library-2.12.9-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.10/scala-library-2.12.10-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.11/scala-library-2.12.11-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.1/scala-library-2.13.1-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.2/scala-library-2.13.2-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.3/scala-library-2.13.3-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.4/scala-library-2.13.4-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.2.2-RC1/scala3-library_3-3.2.2-RC1-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.2.1/scala3-library_3-3.2.1-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.2.0/scala3-library_3-3.2.0-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.3/scala3-library_3-3.1.3-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.2/scala3-library_3-3.1.2-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.1/scala3-library_3-3.1.1-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.0/scala3-library_3-3.1.0-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.1/scala3-library_3-3.0.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.1/scala3-library_3-3.0.1-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.0/scala3-library_3-3.0.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.0/scala3-library_3-3.0.0-sources.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-config_2.13/1.5.5/bloop-config_2.13-1.5.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_2.13/2.4.0/jsoniter-scala-core_2.13-2.4.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-launcher-core_2.13/1.5.6/bloop-launcher-core_2.13-1.5.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/sockets/1.5.6/sockets-1.5.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloopgun-core_2.13/1.5.6/bloopgun-core_2.13-1.5.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.12.1/jna-platform-5.12.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/me/vican/jorge/snailgun-cli_2.13/0.4.0/snailgun-cli_2.13-0.4.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/zeroturnaround/zt-exec/1.11/zt-exec-1.11.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-nop/1.7.36/slf4j-nop-1.7.36.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/interface/1.0.6/interface-1.0.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/interface-svm-subs/1.0.6/interface-svm-subs-1.0.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_2.13/2.13.3.2/jsoniter-scala-core_2.13-2.13.3.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/me/vican/jorge/snailgun-core_2.13/0.4.0/snailgun-core_2.13-0.4.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/scopt/scopt_2.13/4.0.0-RC2/scopt_2.13-4.0.0-RC2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-frontend_2.12/1.5.6/bloop-frontend_2.12-1.5.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-shared_2.12/1.5.6/bloop-shared_2.12-1.5.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-backend_2.12/1.5.6/bloop-backend_2.12-1.5.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-core_2.12/7.2.35/scalaz-core_2.12-7.2.35.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix_2.12/3.2.0/monix_2.12-3.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app_2.12/2.0.6/case-app_2.12-2.0.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/scala-debug-adapter_2.12/3.0.5/scala-debug-adapter_2.12-3.0.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-config_2.12/1.5.5/bloop-config_2.12-1.5.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_2.12/2.13.3.2/jsoniter-scala-core_2.12-2.13.3.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-macros_2.12/2.13.3.2/jsoniter-scala-macros_2.12-2.13.3.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bsp4s_2.12/2.1.0-M3/bsp4s_2.12-2.1.0-M3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc_2.12/1.7.2/zinc_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.19.0/log4j-core-2.19.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/net/jpountz/lz4/lz4/1.3.0/lz4-1.3.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/dirs/directories/26/directories-26.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-agent/1.8.0/test-agent-1.8.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_2.12/0.8.1/pprint_2.12-0.8.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/nailgun-server/ee3c4343/nailgun-server-ee3c4343.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-concurrent_2.12/7.2.35/scalaz-concurrent_2.12-7.2.35.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-ivy_2.12/1.1.5/librarymanagement-ivy_2.12-1.1.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/directory-watcher/0.8.0%2B6-f651bd93/directory-watcher-0.8.0%2B6-f651bd93.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/zeroturnaround/zt-zip/1.13/zt-zip-1.13.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/zipkin/brave/brave/5.14.1/brave-5.14.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-sender-urlconnection/2.16.3/zipkin-sender-urlconnection-2.16.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm/9.4/asm-9.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-util/9.4/asm-util-9.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-execution_2.12/3.2.0/monix-execution_2.12-3.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-catnap_2.12/3.2.0/monix-catnap_2.12-3.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-eval_2.12/3.2.0/monix-eval_2.12-3.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-tail_2.12/3.2.0/monix-tail_2.12-3.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-reactive_2.12/3.2.0/monix-reactive_2.12-3.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-java_2.12/3.2.0/monix-java_2.12-3.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-annotations_2.12/2.0.6/case-app-annotations_2.12-2.0.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-util_2.12/2.0.6/case-app-util_2.12-2.0.6.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/com-microsoft-java-debug-core/0.34.0%2B11/com-microsoft-java-debug-core-0.34.0%2B11.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.12/2.8.1/scala-collection-compat_2.12-2.8.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/me/vican/jorge/jsonrpc4s_2.12/0.1.0/jsonrpc4s_2.12-0.1.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-core_2.12/1.7.2/zinc-core_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-persist_2.12/1.7.2/zinc-persist_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-compile-core_2.12/1.7.2/zinc-compile-core_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-classfile_2.12/1.7.2/zinc-classfile_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.26/slf4j-api-1.7.26.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-effect_2.12/7.2.35/scalaz-effect_2.12-7.2.35.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-core_2.12/1.1.5/librarymanagement-core_2.12-1.1.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-core_2.12/0.9.1/sjson-new-core_2.12-0.9.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/ivy/ivy/2.3.0-sbt-b18f59ea3bc914a297bb6f1a4f7fb0ace399e310/ivy-2.3.0-sbt-b18f59ea3bc914a297bb6f1a4f7fb0ace399e310.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter-brave/2.16.3/zipkin-reporter-brave-2.16.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter/2.16.3/zipkin-reporter-2.16.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.4/asm-tree-9.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.4/asm-analysis-9.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/implicitbox_2.12/0.2.0/implicitbox_2.12-0.2.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jctools/jctools-core/2.1.2/jctools-core-2.1.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-effect_2.12/2.1.3/cats-effect_2.12-2.1.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/chuusai/shapeless_2.12/2.3.3/shapeless_2.12-2.3.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.10/gson-2.10.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/reactivex/rxjava2/rxjava/2.2.21/rxjava-2.2.21.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/outr/scribe_2.12/3.5.5/scribe_2.12-3.5.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-apiinfo_2.12/1.7.2/zinc-apiinfo_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-classpath_2.12/1.7.2/zinc-classpath_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.7.2/compiler-interface-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-persist-core-assembly/1.7.2/zinc-persist-core-assembly-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/io_2.12/1.7.0/io_2.12-1.7.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-logging_2.12/1.7.2/util-logging_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-relation_2.12/1.7.2/util-relation_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/sbinary_2.12/0.5.1/sbinary_2.12-0.5.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/launcher-interface/1.3.3/launcher-interface-1.3.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_2.12/1.1.2/scala-parser-combinators_2.12-1.1.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/net/openhft/zero-allocation-hashing/0.10.1/zero-allocation-hashing-0.10.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-control_2.12/1.7.2/util-control_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-okhttp_2.12/0.3.0/gigahorse-okhttp_2.12-0.3.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp-urlconnection/3.7.0/okhttp-urlconnection-3.7.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-position_2.12/1.7.2/util-position_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-cache_2.12/1.1.3/util-cache_2.12-1.1.3.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/io/zipkin/zipkin2/zipkin/2.23.2/zipkin-2.23.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-core_2.12/2.1.1/cats-core_2.12-2.1.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/macro-compat_2.12/1.1.1/macro-compat_2.12-1.1.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/outr/perfolation_2.12/1.2.8/perfolation_2.12-1.2.8.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/outr/moduload_2.12/1.1.5/moduload_2.12-1.1.5.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-bridge_2.12/1.7.2/compiler-bridge_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.7.2/util-interface-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/swoval/file-tree-views/2.1.9/file-tree-views-2.1.9.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/collections_2.12/1.7.2/collections_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/core-macros_2.12/1.7.2/core-macros_2.12-1.7.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/jline/jline/2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493/jline-2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jansi/3.19.0/jline-terminal-jansi-3.19.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lmax/disruptor/3.4.2/disruptor-3.4.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-scalajson_2.12/0.9.1/sjson-new-scalajson_2.12-0.9.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-core_2.12/0.3.0/gigahorse-core_2.12-0.3.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp/3.7.0/okhttp-3.7.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-murmurhash_2.12/0.8.2/sjson-new-murmurhash_2.12-0.8.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-macros_2.12/2.1.1/cats-macros_2.12-2.1.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-kernel_2.12/2.1.1/cats-kernel_2.12-2.1.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/org/fusesource/jansi/jansi/2.1.0/jansi-2.1.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/shaded-jawn-parser_2.12/0.9.1/shaded-jawn-parser_2.12-0.9.1.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/shaded-scalajson_2.12/1.0.0-M4/shaded-scalajson_2.12-1.0.0-M4.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.12/0.2.2/ssl-config-core_2.12-0.2.2.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/squareup/okio/okio/1.12.0/okio-1.12.0.jar
/home/tgodzik/.cache/coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.2.0/config-1.2.0.jar

@nrinaudo
Copy link
Author

Right, so I'm done running the command suggested by @ckipp01. It looks successful:

$ java -jar ~/Downloads/coursier.jar launch org.scalameta:metals_2.13:0.11.9 -M scala.meta.metals.DownloadDependencies
2022.12.12 09:53:49 INFO  Downloading mdoc
2022.12.12 09:53:54 INFO  Downloading scalafmt
2022.12.12 09:53:54 INFO  Downloading mtags
2022.12.12 09:53:57 INFO  Downloading semanticdb-scalac
2022.12.12 09:54:17 INFO  Downloading semanticdb-javac
2022.12.12 09:54:17 INFO  Downloading scala library and sources
2022.12.12 09:54:35 INFO  Downloading bloop
Starting the bsp launcher for bloop...
Attempting a connection to the server...
No server running at 127.0.0.1:8212, let's fire one...
Resolving ch.epfl.scala:bloop-frontend_2.12:1.5.4...
Starting bloop server at 127.0.0.1:8212...
Attempting a connection to the server...
Attempting a connection to the server...
bloop v1.5.4

Using Scala v2.12.15 and Zinc v1.6.0
Running on Java JDK v11.0.17 (C:\JPMC\DEV\TMP\ds\tools\jdk11\latest)
  -> Supports debugging user code, Java Debug Interface (JDI) is available.
Maintained by the Scala Center and the community.

But then, when trying to load a project in VS Code (after uninstalling and reinstalling the Metals extension) I get:

2022.12.12 09:56:41 INFO  tracing is enabled: path\to\project\.metals\lsp.trace.json
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/lsp4j/jsonrpc/CancelChecker
        at scala.meta.metals.Main$.main(Main.scala:53)
        at scala.meta.metals.Main.main(Main.scala)
Caused by: java.lang.ClassNotFoundException: org.eclipse.lsp4j.jsonrpc.CancelChecker
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 2 more

Happy to try anything else you might need to understand what's going on, but I'm personally way out of my depths here.

@tgodzik
Copy link
Contributor

tgodzik commented Dec 12, 2022

This is highly unexpected, looks like the classpath being printed is incomplete and does not contain the LSP Java library.

What do you get as output of:
coursier fetch -p --ttl Inf org.scalameta:metals_2.13:0.11.9 -r sonatype:public -r sonatype:snapshots -p
?

@nrinaudo
Copy link
Author

I’ll check asap but is this even going to work? If I specify an infinite ttl and a list of repositories that will timeout on my environment, I feel like I might be setting myself up for a long, long wi

@nrinaudo
Copy link
Author

There you go (with some post-processing for anonymization and readability).
I'm definitely seeing the LSP4j artifacts in there, if that's what you're looking for.

path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\metals_2.13\0.11.9\metals_2.13-0.11.9.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scala-lang\scala-library\2.13.9\scala-library-2.13.9.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\mtags_2.13.9\0.11.9\mtags_2.13.9-0.11.9.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\google\guava\guava\31.1-jre\guava-31.1-jre.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\geirsson\metaconfig-core_2.13\0.11.1\metaconfig-core_2.13-0.11.1.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\openjdk\jol\jol-core\0.16\jol-core-0.16.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\swoval\file-tree-views\2.1.9\file-tree-views-2.1.9.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\io\undertow\undertow-core\2.2.19.Final\undertow-core-2.2.19.Final.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\jboss\xnio\xnio-nio\3.8.8.Final\xnio-nio-3.8.8.Final.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\flywaydb\flyway-core\9.4.0\flyway-core-9.4.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\h2database\h2\2.1.214\h2-2.1.214.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scala-sbt\ipcsocket\ipcsocket\1.5.0\ipcsocket-1.5.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\ch\epfl\scala\bsp4j\2.1.0-M1\bsp4j-2.1.0-M1.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\ch\epfl\scala\bloop-launcher_2.13\1.5.4\bloop-launcher_2.13-1.5.4.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\lsp4j\org.eclipse.lsp4j\0.15.0\org.eclipse.lsp4j-0.15.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\lsp4j\org.eclipse.lsp4j.debug\0.15.0\org.eclipse.lsp4j.debug-0.15.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\dev\dirs\directories\26\directories-26.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\jdt\org.eclipse.jdt.core\3.25.0\org.eclipse.jdt.core-3.25.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.ant.core\3.5.500\org.eclipse.ant.core-3.5.500.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.compare.core\3.6.600\org.eclipse.compare.core-3.6.600.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.core.commands\3.9.500\org.eclipse.core.commands-3.9.500.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.core.contenttype\3.7.500\org.eclipse.core.contenttype-3.7.500.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.core.expressions\3.6.500\org.eclipse.core.expressions-3.6.500.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.core.filesystem\1.7.500\org.eclipse.core.filesystem-1.7.500.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.core.jobs\3.10.500\org.eclipse.core.jobs-3.10.500.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.core.resources\3.13.500\org.eclipse.core.resources-3.13.500.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.core.runtime\3.16.0\org.eclipse.core.runtime-3.16.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.core.variables\3.4.600\org.eclipse.core.variables-3.4.600.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.equinox.app\1.4.300\org.eclipse.equinox.app-1.4.300.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.equinox.common\3.10.600\org.eclipse.equinox.common-3.10.600.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.equinox.preferences\3.7.600\org.eclipse.equinox.preferences-3.7.600.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.equinox.registry\3.8.600\org.eclipse.equinox.registry-3.8.600.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.osgi\3.15.0\org.eclipse.osgi-3.15.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.team.core\3.8.700\org.eclipse.team.core-3.8.700.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\platform\org.eclipse.text\3.9.0\org.eclipse.text-3.9.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\mdoc-interfaces\2.3.5\mdoc-interfaces-2.3.5.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\scalafmt-dynamic_2.13\3.5.3\scalafmt-dynamic_2.13-3.5.3.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\ch\epfl\scala\scalafix-interfaces\0.10.3\scalafix-interfaces-0.10.3.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\io\get-coursier\interface\1.0.9\interface-1.0.9.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\io\get-coursier\versions_2.13\0.3.1\versions_2.13-0.3.1.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\outr\scribe_2.13\3.10.3\scribe_2.13-3.10.3.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\outr\scribe-file_2.13\3.10.3\scribe-file_2.13-3.10.3.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\outr\scribe-slf4j_2.13\3.10.3\scribe-slf4j_2.13-3.10.3.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\lihaoyi\ujson_2.13\2.0.0\ujson_2.13-2.0.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\lihaoyi\requests_2.13\0.7.1\requests_2.13-0.7.1.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\scalameta_2.13\4.6.0\scalameta_2.13-4.6.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\semanticdb-scalac-core_2.13.9\4.6.0\semanticdb-scalac-core_2.13.9-4.6.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\io\github\alexarchambault\ammonite\ammonite-runner_2.13\0.4.0\ammonite-runner_2.13-0.4.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scala-lang\modules\scala-xml_2.13\2.1.0\scala-xml_2.13-2.1.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scala-lang\modules\scala-parallel-collections_2.13\1.0.4\scala-parallel-collections_2.13-1.0.4.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\virtuslab\scala-cli\scala-cli-bsp\0.1.15\scala-cli-bsp-0.1.15.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\mtags-interfaces\0.11.9\mtags-interfaces-0.11.9.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\lihaoyi\geny_2.13\0.7.1\geny_2.13-0.7.1.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\thoughtworks\qdox\qdox\2.0.2\qdox-2.0.2.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scala-lang\modules\scala-java8-compat_2.13\1.0.2\scala-java8-compat_2.13-1.0.2.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\jsoup\jsoup\1.15.3\jsoup-1.15.3.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\googlecode\java-diff-utils\diffutils\1.3.0\diffutils-1.3.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\lz4\lz4-java\1.8.0\lz4-java-1.8.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\checkerframework\checker-qual\3.12.0\checker-qual-3.12.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\google\errorprone\error_prone_annotations\2.11.0\error_prone_annotations-2.11.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\geirsson\metaconfig-pprint_2.13\0.11.1\metaconfig-pprint_2.13-0.11.1.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\typelevel\paiges-core_2.13\0.4.2\paiges-core_2.13-0.4.2.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scala-lang\modules\scala-collection-compat_2.13\2.8.1\scala-collection-compat_2.13-2.8.1.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scala-lang\scala-reflect\2.13.9\scala-reflect-2.13.9.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\jboss\logging\jboss-logging\3.4.1.Final\jboss-logging-3.4.1.Final.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\jboss\xnio\xnio-api\3.8.8.Final\xnio-api-3.8.8.Final.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\jboss\threads\jboss-threads\3.1.0.Final\jboss-threads-3.1.0.Final.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\net\java\dev\jna\jna\5.12.0\jna-5.12.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\net\java\dev\jna\jna-platform\5.12.0\jna-platform-5.12.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\lsp4j\org.eclipse.lsp4j.jsonrpc.debug\0.15.0\org.eclipse.lsp4j.jsonrpc.debug-0.15.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\scalafmt-interfaces\3.5.3\scalafmt-interfaces-3.5.3.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\typesafe\config\1.4.2\config-1.4.2.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\outr\perfolation_2.13\1.2.9\perfolation_2.13-1.2.9.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\lihaoyi\sourcecode_2.13\0.3.0\sourcecode_2.13-0.3.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\outr\moduload_2.13\1.1.5\moduload_2.13-1.1.5.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\jline\jline\3.21.0\jline-3.21.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\fusesource\jansi\jansi\2.4.0\jansi-2.4.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\lihaoyi\upickle-core_2.13\2.0.0\upickle-core_2.13-2.0.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\parsers_2.13\4.6.0\parsers_2.13-4.6.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scala-lang\scalap\2.13.9\scalap-2.13.9.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scala-lang\scala-compiler\2.13.9\scala-compiler-2.13.9.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\io\get-coursier\coursier-launcher_2.13\2.0.16\coursier-launcher_2.13-2.0.16.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\lihaoyi\fansi_2.13\0.3.0\fansi_2.13-0.3.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\wildfly\common\wildfly-common\1.5.4.Final\wildfly-common-1.5.4.Final.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\wildfly\client\wildfly-client-config\1.0.1.Final\wildfly-client-config-1.0.1.Final.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\xtend\org.eclipse.xtend.lib\2.24.0\org.eclipse.xtend.lib-2.24.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\google\code\gson\gson\2.9.1\gson-2.9.1.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\trees_2.13\4.6.0\trees_2.13-4.6.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\io\github\java-diff-utils\java-diff-utils\4.12\java-diff-utils-4.12.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\xtext\org.eclipse.xtext.xbase.lib\2.24.0\org.eclipse.xtext.xbase.lib-2.24.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\eclipse\xtend\org.eclipse.xtend.lib.macro\2.24.0\org.eclipse.xtend.lib.macro-2.24.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\common_2.13\4.6.0\common_2.13-4.6.0.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\org\scalameta\fastparse-v2_2.13\2.3.1\fastparse-v2_2.13-2.3.1.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\thesamet\scalapb\scalapb-runtime_2.13\0.11.11\scalapb-runtime_2.13-0.11.11.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\thesamet\scalapb\lenses_2.13\0.11.11\lenses_2.13-0.11.11.jar
path-to-coursier\cache\v1\https\my-repo\artifactory\maven\com\google\protobuf\protobuf-java\3.19.2\protobuf-java-3.19.2.jar

@tgodzik
Copy link
Contributor

tgodzik commented Dec 15, 2022

Looks like the classpath is indeed missing org.eclipse.lsp4j.jsonrpc-0.19.0.jar which should be there 🤔

Are you able to bring in that library maybe if it's not available? It's a transitive library of lsp4j so should be fine

@nrinaudo
Copy link
Author

This might be a symptom of me not truly understanding what's going on here. In particular, I do not know what the -p and -r flags you had me use do, and couldn't find the information either in the fetch documentation, or in coursier's -h.

But. I've had coursier fetch org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrc:0.15.0, and restarted VS Code / metals with the exact same error.

I've ran that mysterious fetch -p command again, and I'm still not seeing jsonrpc in there.

My probably incorrect interpretation here is that this is expected: I guess fetch -p prints the dependency tree, and me adding JARs to coursier's local cache has no impact on that.

So I probably just misunderstood what you meant by "bring in that library".

@tgodzik
Copy link
Contributor

tgodzik commented Dec 22, 2022

I thought that maybe an error was somehow being swallowed and jsonrpc was not being brought in. Coming back to the topic maybe the artifacts locally are somehow broken and don't refer to transitive dependencies? It seems that jsonrpc does depend on generator and that in term on jsonrpc, so this all should be brought in. And it seems some transitive ones are missing.

@nrinaudo
Copy link
Author

Well, I got tired of this, trashed my entire coursier cache and restarted VS Code. I'm getting much further now, although still blocked.

At least this time, the problem is pretty clear: bloop installation.
Here's what Metals is trying to find: ch/epfl/scala/sbt_bloop_2.12_1.0/1.5.4/sbt-bloop-1.5.4.pom
Here's what's actually in the repo: ch/epfl/scala/sbt_bloop_2.12_1.0/1.5.4/sbt-bloop-1.5.4_2.12_1.0.pom

Notice how the artifact names are different. I can't help but feel that this is related to sbt/sbt#3410

@tgodzik
Copy link
Contributor

tgodzik commented Dec 27, 2022

Is it when running build import? It should be resolved correctly the same way any other sbt plugin. Just running sbt works for you?

@ckipp01
Copy link
Member

ckipp01 commented Dec 27, 2022

This is probably due to how we include the plugin. @nrinaudo if you look into your metals.sbt file I'm assuming you see:

addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "1.5.4")

which is done by default. I'm assuming if this was

libraryDependencies += "ch.epfl.scala" % "sbt-bloop_2.12_1.0" % "1.5.4"

like sbt-vspp explains, then it'd work. In theory a workaround for you in this case could be to manually make sure the metals.sbt has what I put up above and also set bloopSbtAlreadyInstalled to true in your settings. However, this would require you to manually do this for all projects. Another potential solution is to use Metals: Switch Build Server and instead just use sbt as your build server. But then you'll probably hit on the same thing trying to resolve sbt-metals.

@nrinaudo
Copy link
Author

@ckipp01 that's exactly it, yes. I suspect I could get that step to work by:

  • getting sbt-bloop published "properly" by submitting a PR that adds sbt-vspp
  • manually adding the plugin to my project's build (or, more comfortably, to my global plugins)
  • setting each project to bloopSbtAlreadyInstalled := true

This isn't super realistic though: even if step 1 were to be achieved, there's need to be a new version of sbt-bloop published, then a new version of metals depending on that new version of sbt-bloop, then...

@nrinaudo
Copy link
Author

Actually, hang on. Does Metals particularly care which version of sbt-bloop is installed, provided it supports the right tasks? Would there really need to be a new release of Metals?

@ckipp01
Copy link
Member

ckipp01 commented Dec 27, 2022

getting sbt-bloop published "properly" by submitting a PR that adds sbt-vspp

sbt-vspp is actually already included in the Bloop build I see and has been as of 1.5.4.

@nrinaudo
Copy link
Author

Ah, you're right. Manually adding the libraryDependencies to my plugins.sbt and asking metals not to generate metals.sbt did the trick.

And on to the next issue: bsp won't start:

2022.12.27 16:28:26 ERROR Starting the bsp launcher for bloop...
2022.12.27 16:28:26 ERROR Opening a bsp server connection with 'bsp --protocol tcp --port 19185'...
2022.12.27 16:28:26 ERROR Waiting for the bsp connection to come up...
2022.12.27 16:28:26 ERROR error: The command bsp --protocol tcp --port 19185 returned with an error
2022.12.27 16:28:26 ERROR >
2022.12.27 16:28:26 ERROR error: The launcher failed to establish a bsp connection, aborting...
2022.12.27 16:28:26 ERROR Failed to connect with build server, no functionality will work.java.lang.RuntimeException: The server did not start, got FailedToOpenBspConnection
        at bloop.launcher.LauncherMain.failPromise$1(Launcher.scala:92)
        at bloop.launcher.LauncherMain.runLauncher(Launcher.scala:119)
        at scala.meta.internal.metals.BloopServers$$anon$2.run(BloopServers.scala:496)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.lang.Thread.run(Thread.java:834)

I'm about ready to give up...
Note: I'm very clear this is not a metals issue, but an environment one. Using metals in a sane environment is dead easy.

@tgodzik
Copy link
Contributor

tgodzik commented Dec 27, 2022

Bloop downloads a bunch of jars and additional files, maybe you can switch to sbt BSP ?

@ckipp01
Copy link
Member

ckipp01 commented Dec 27, 2022

Bloop downloads a bunch of jars and additional files, maybe you can switch to sbt BSP ?

I'm assuming in that env he's going to hit on the same thing since he needs the plugin to be published also using sbt-vspp, and we don't publish metals-sbt with that. So we'd need to switch that as well, but then that'd mean you'd need to test with a snapshot @nrinaudo... which in your env sounds like hell.

@adpi2 's work on sbt plugin coordinates is going to be o so so sweet to help with all this nonsense.

@nrinaudo
Copy link
Author

Maybe I could at least try to see which artifacts? is there a way to start bsp manually, so that I can try and trace what's going on?

@ckipp01
Copy link
Member

ckipp01 commented Dec 27, 2022

Maybe I could at least try to see which artifacts? is there a way to start bsp manually, so that I can try and trace what's going on?

Well from your trace it looks like you have your Bloop files generated so you could try something like

bloop --verbose --debug all compile <a module of yours>

And see what happens. 💣 . I think if this would work, then in reality the server should be able to start.

@tgodzik
Copy link
Contributor

tgodzik commented Dec 27, 2022

Maybe I could at least try to see which artifacts? is there a way to start bsp manually, so that I can try and trace what's going on?

Is there anything else in the logs? It should say something about unable to download dependencies. Alternatively, there might be a problem creating a Bloop server?

Potentially, you should have on your system Bloop deps ( this is for 1.5.5):

ch.epfl.scala:bloop-backend_2.12:1.5.5:default
ch.epfl.scala:bloop-config_2.12:1.5.5:default
ch.epfl.scala:bloop-frontend_2.12:1.5.5:default
ch.epfl.scala:bloop-shared_2.12:1.5.5:default
ch.epfl.scala:bsp4s_2.12:2.1.0-M3:default
ch.epfl.scala:com-microsoft-java-debug-core:0.34.0+11:default
ch.epfl.scala:directory-watcher:0.8.0+6-f651bd93:default
ch.epfl.scala:nailgun-server:ee3c4343:default
ch.epfl.scala:scala-debug-adapter_2.12:3.0.5:default
ch.epfl.scala:sockets:1.5.5:default
com.chuusai:shapeless_2.12:2.3.3:default
com.eed3si9n:gigahorse-core_2.12:0.3.0:default
com.eed3si9n:gigahorse-okhttp_2.12:0.3.0:default
com.eed3si9n:shaded-jawn-parser_2.12:0.9.1:default
com.eed3si9n:shaded-scalajson_2.12:1.0.0-M4:default
com.eed3si9n:sjson-new-core_2.12:0.9.1:default
com.eed3si9n:sjson-new-murmurhash_2.12:0.8.2:default
com.eed3si9n:sjson-new-scalajson_2.12:0.9.1:default
com.github.alexarchambault:case-app-annotations_2.12:2.0.6:default
com.github.alexarchambault:case-app-util_2.12:2.0.6:default
com.github.alexarchambault:case-app_2.12:2.0.6:default
com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-core_2.12:2.13.3.2:default
com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-macros_2.12:2.13.3.2:default
com.google.code.gson:gson:2.10:default
com.googlecode.java-diff-utils:diffutils:1.3.0:default
com.jcraft:jsch:0.1.54:default
com.lihaoyi:fansi_2.12:0.4.0:default
com.lihaoyi:pprint_2.12:0.8.1:default
com.lihaoyi:sourcecode_2.12:0.3.0:default
com.lmax:disruptor:3.4.2:default
com.outr:moduload_2.12:1.1.5:default
com.outr:perfolation_2.12:1.2.8:default
com.outr:scribe_2.12:3.5.5:default
com.squareup.okhttp3:okhttp:3.7.0:default
com.squareup.okhttp3:okhttp-urlconnection:3.7.0:default
com.squareup.okio:okio:1.12.0:default
com.swoval:file-tree-views:2.1.9:default
com.typesafe:config:1.2.0:default
com.typesafe:ssl-config-core_2.12:0.2.2:default
commons-io:commons-io:2.11.0:default
dev.dirs:directories:26:default
io.get-coursier:interface:1.0.6:default
io.monix:implicitbox_2.12:0.2.0:default
io.monix:monix-catnap_2.12:3.2.0:default
io.monix:monix-eval_2.12:3.2.0:default
io.monix:monix-execution_2.12:3.2.0:default
io.monix:monix-java_2.12:3.2.0:default
io.monix:monix-reactive_2.12:3.2.0:default
io.monix:monix-tail_2.12:3.2.0:default
io.monix:monix_2.12:3.2.0:default
io.reactivex.rxjava2:rxjava:2.2.21:default
io.zipkin.brave:brave:5.14.1:default
io.zipkin.reporter2:zipkin-reporter:2.16.3:default
io.zipkin.reporter2:zipkin-reporter-brave:2.16.3:default
io.zipkin.reporter2:zipkin-sender-urlconnection:2.16.3:default
io.zipkin.zipkin2:zipkin:2.23.2:default
me.vican.jorge:jsonrpc4s_2.12:0.1.0:default
net.java.dev.jna:jna:5.12.1:default
net.java.dev.jna:jna-platform:5.12.1:default
net.jpountz.lz4:lz4:1.3.0:default
net.openhft:zero-allocation-hashing:0.10.1:default
org.apache.commons:commons-lang3:3.12.0:default
org.apache.logging.log4j:log4j-api:2.19.0:default
org.apache.logging.log4j:log4j-core:2.19.0:default
org.fusesource.jansi:jansi:2.1.0:default
org.jctools:jctools-core:2.1.2:default
org.jline:jline-terminal:3.19.0:default
org.jline:jline-terminal-jansi:3.19.0:default
org.jline:jline-terminal-jna:3.19.0:default
org.ow2.asm:asm:9.4:default
org.ow2.asm:asm-analysis:9.4:default
org.ow2.asm:asm-tree:9.4:default
org.ow2.asm:asm-util:9.4:default
org.reactivestreams:reactive-streams:1.0.4:default
org.scala-lang:scala-compiler:2.12.16:default
org.scala-lang:scala-library:2.12.17:default
org.scala-lang:scala-reflect:2.12.16:default
org.scala-lang.modules:scala-collection-compat_2.12:2.8.1:default
org.scala-lang.modules:scala-parser-combinators_2.12:1.1.2:default
org.scala-lang.modules:scala-xml_2.12:1.0.6:default
org.scala-sbt:collections_2.12:1.7.2:default
org.scala-sbt:compiler-bridge_2.12:1.7.2:default
org.scala-sbt:compiler-interface:1.7.2:default
org.scala-sbt:core-macros_2.12:1.7.2:default
org.scala-sbt:io_2.12:1.7.0:default
org.scala-sbt:launcher-interface:1.3.3:default
org.scala-sbt:librarymanagement-core_2.12:1.1.5:default
org.scala-sbt:librarymanagement-ivy_2.12:1.1.5:default
org.scala-sbt:sbinary_2.12:0.5.1:default
org.scala-sbt:test-agent:1.8.0:default
org.scala-sbt:test-interface:1.0:default
org.scala-sbt:util-cache_2.12:1.1.3:default
org.scala-sbt:util-control_2.12:1.7.2:default
org.scala-sbt:util-interface:1.7.2:default
org.scala-sbt:util-logging_2.12:1.7.2:default
org.scala-sbt:util-position_2.12:1.7.2:default
org.scala-sbt:util-relation_2.12:1.7.2:default
org.scala-sbt:zinc-apiinfo_2.12:1.7.2:default
org.scala-sbt:zinc-classfile_2.12:1.7.2:default
org.scala-sbt:zinc-classpath_2.12:1.7.2:default
org.scala-sbt:zinc-compile-core_2.12:1.7.2:default
org.scala-sbt:zinc-core_2.12:1.7.2:default
org.scala-sbt:zinc-persist-core-assembly:1.7.2:default
org.scala-sbt:zinc-persist_2.12:1.7.2:default
org.scala-sbt:zinc_2.12:1.7.2:default
org.scala-sbt.ivy:ivy:2.3.0-sbt-b18f59ea3bc914a297bb6f1a4f7fb0ace399e310:default
org.scala-sbt.jline:jline:2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493:default
org.scalaz:scalaz-concurrent_2.12:7.2.35:default
org.scalaz:scalaz-core_2.12:7.2.35:default
org.scalaz:scalaz-effect_2.12:7.2.35:default
org.slf4j:slf4j-api:1.7.26:default
org.typelevel:cats-core_2.12:2.1.1:default
org.typelevel:cats-effect_2.12:2.1.3:default
org.typelevel:cats-kernel_2.12:2.1.1:default
org.typelevel:cats-macros_2.12:2.1.1:default
org.typelevel:macro-compat_2.12:1.1.1:default
org.zeroturnaround:zt-zip:1.13:default

@nrinaudo
Copy link
Author

Well, installing the bloop CLI is apparently going to take quite a while again - coursier fails, and I'll probably need to manually track down all dependencies and make them available one after the other.

I've already spent more time than I had on this today, so I need to give up for a bit. Will get back to you if I manage to make progress.

If you'd like to just close this ticket as WONTFIX, that seems fair. My locked down environment is shooting holes in a whole bunch of unrelated tools, it's not at all clear it's to do with Metals. Metals is just the last domino in the sequence.

@tgodzik
Copy link
Contributor

tgodzik commented Dec 27, 2022

If you'd like to just close this ticket as WONTFIX, that seems fair. My locked down environment is shooting holes in a whole bunch of unrelated tools, it's not at all clear it's to do with Metals. Metals is just the last domino in the sequence.

It would be great to have Metals work in even most closed down environments, so think it's good to keep the issue open. Thanks for your patience!

@nrinaudo
Copy link
Author

Oh no, thank you for being so patient and walking me through this, one baby step at a time!

@ScalaWilliam
Copy link

ScalaWilliam commented Jan 2, 2023

Managed to get it resolved in a locked down environment!

It was not very straightforward, but the last hurdle was bloop-launcher. I noticed that it also does a Coursier fetch. I would add into consideration 2 things that would help getting this running in locked down environments in general:

  • Detail out into the extension log what commands are executed (args, env, cwd). This would help reproduce any issues of things that are being called from the JS code.
  • It would be great if artifact fetching is done at the top-most level by a single responsible party. I appreciate this might not be easy to implement: the sub-process tells the parent which dependency it wants to launch, then the parent does the fetching, and re-launches the sub-process with the full classpath info now.

While this might not be popular, I'd like to float if something like OSGi would begin to make sense in SBT/Bloop/Metals, as process launching across different environments is tricky business.

@ckipp01
Copy link
Member

ckipp01 commented Jan 2, 2023

I'm happy to hear you finally got it all figured out! I'm confident that if you can get it to work in the environment, it will work anywhere 😆 .

It would be great if artifact fetching is done at the top-most level by a single responsible party.

That's tricky since the last issues you hit on should in theory be an implementation detail of the build server, and Metals really should even care what build server is being used. In theory you can use any build server that works with your build, it's just that Bloop is chosen by default here. I understand the pain, but I think the more modular approach that Metals takes by is probably something we want to keep. Again, I understand that's tricky in your case, but maybe it's a good indication that some of the other tools in the ecosystem, like Bloop, could also be improved here to work better / log better in these types of situations.

Either way, this is great feedback @ScalaWilliam and something we can for sure discuss/think on more. Thanks!

@ScalaWilliam
Copy link

@ckipp01 a couple more details to help get this resolved:

  • BspBridge has a random port generator in the launcher. It would help with debugging better if it would be possible to pass this port through somewhere. I managed to launch a BSP server directly via coursier (bloop.Server), but launching via bloop.bloopgun.Bloopgun crashes with exit code 131. It does get as far as Validation but afterwards blows up, not clear yet why.
  • Cannot find logging working in Bloopgun (especially with the crash, it is very challenging). BloopLogger in quite a few places by default sets verbose = false, ie at(name, out, err, false, colorOutput, filter). Setting --debug all and --verbose true doesn't seem to create/update files in .bloop which is the default directory.
  • bloopgun has no testing coverage - and ServerStatus has multiple status defined that are not even used, such as AvailableWithCommand. I got the impression based on your comments above that you can use a local bsp binary, but the code tells me otherwise.

There might be more. At the moment during the debugging, it seems that there's a problem somewhere between Validation and launching the actual JVM process.

@ckipp01
Copy link
Member

ckipp01 commented Jan 3, 2023

It would help with debugging better if it would be possible to pass this port through somewhere.

You actually can. For example Metals will look for a system property metals.bloop-port and will use that to pass to Bloop when launching. It's not really documented because there normally isn't a good usecase to switch it or override it. So it's sort of a hidden power feature.

Cannot find logging working in Bloopgun

How are you using Bloopgun? Again I think the experience you're sort of looking for here is the Bloop CLI, which is essentially bloopgun. When using this, doing things like

I managed to launch a BSP server directly via coursier (bloop.Server)

I've never actually launched bloop this way, but instead if the goal is to launch Bloop manually, the using the Bloop CLI would be the recommended way to do this. Then flags like --verbose --debug all should give you quite a bit of info.

Setting --debug all and --verbose true doesn't seem to create/update files in .bloop which is the default directory.

Again, depending on how you're using this, but if you're using Bloop CLI, this should indeed be happening. The CLI should essentially be being treated as another BSP client.

I got the impression based on your comments above that you can use a local bsp binary, but the code tells me otherwise.

My comment was much more generic than Bloop. In general yes, any BSP server that is running should be able to be used, as long as it follows BSP discovery and Metals knows how to connect to it. Unfortunately in the case of Bloop, it doesn't follow BSP discovery, which is why Metals has quite a bit of specific stuff just to handle launching Bloop.

I'm curious during all this testing, have you instead just given sbt as your BSP server a try? I know there is some issues probably with resolving the Metals sbt plugin, but just using sbt in your scenario may simplify things greatly. We can address the plugin thing to make that easier.

@tgodzik
Copy link
Contributor

tgodzik commented Apr 18, 2023

Update that might help out some people: Metals VS Code extension in the latest prerelease will try to find cs or coursier on the PATH and use that. This makes it a bit easier for corporate envs, since we wouldn't need to download coursier jars from Maven Central.

Next step would be to have a way to automatically download coursier binaries somehow, which could setup things such as Java etc.

@jpassaro
Copy link

jpassaro commented May 17, 2023

encountered a version of this with metals 0.11.12 on VSCode.

Based on @ckipp01 's advice above, I ran

$ coursier launch org.scalameta:metals_2.13:0.11.12 -M scala.meta.metals.DownloadDependencies
Exception in thread "main" java.lang.NoClassDefFoundError: scribe/LoggerSupport

the command works fine with 0.11.11.

I finally figured out how to downgrade but please let me know if there's a better workaround so I can stay up to date!

@tgodzik
Copy link
Contributor

tgodzik commented May 18, 2023

LoggerSupport

I think you are missing the latest scribe version? We are using https://github.com/outr/scribe/releases/tag/3.11.1

Not sure why it wouldn't just be mentioned by coursier 🤔

@jpassaro
Copy link

I'll try a manual install later, but if it's a declared dependency, why wouldn't coursier have installed it and added it to the classpath?

@tgodzik
Copy link
Contributor

tgodzik commented May 18, 2023

I'll try a manual install later, but if it's a declared dependency, why wouldn't coursier have installed it and added it to the classpath?

That's what I don't understand either.

@ScalaWilliam
Copy link

@jpassaro is this is a proxy environment or on a personal machine?

@jpassaro
Copy link

personal!

@jpassaro
Copy link

jpassaro commented May 19, 2023

a bit of investigation after verifying the problem still exists reveals even more mystery: coursier knows the scribe jar is needed and also it is definitely on my disk with the LoggerSupport .class file

$ coursier resolve org.scalameta:metals_2.13:0.11.12 | grep scribe
com.outr:scribe-file_2.13:3.11.1:default
com.outr:scribe-slf4j_2.13:3.11.1:default
com.outr:scribe_2.13:3.11.1:default
$ unzip -l /Users/jpassaro/coursier-cache/https/repo1.maven.org/maven2/com/outr/scribe_2.13/3.11.1/scribe_2.13-3.11.1.jar | grep LoggerSupport
warning [/Users/jpassaro/coursier-cache/https/repo1.maven.org/maven2/com/outr/scribe_2.13/3.11.1/scribe_2.13-3.11.1.jar]:  147456 extra bytes at beginning or within zipfile
  (attempting to process anyway)
     6401  01-01-2010 00:00   scribe/LoggerSupport$.class
    10387  01-01-2010 00:00   scribe/LoggerSupport.class

does that mean this is a coursier bug?

@tgodzik
Copy link
Contributor

tgodzik commented May 19, 2023

Looks like maybe a bug wihj coursier launch, what's your version?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement Not a bug or a feature, but something general we can improve installation Related to how you install Metals
Projects
None yet
Development

No branches or pull requests

5 participants