Open frioux opened 2 years ago
Thanks for the report @frioux. Just to tie these all together (and for visibility, let's continue the conversation here, not on Discord), I hit on the same issue that @dos65 mentioned on Discord. When I opened App.scala
while it did correctly identify root in nvim-metals as example/spark/
the import fails with the following:
2022.06.02 12:16:42 ERROR > Could not get unknown property 'repoRootDir' for build of type org.gradle.invocation.DefaultGradle.
2022.06.02 12:16:42 ERROR
2022.06.02 12:16:42 ERROR * Try:
2022.06.02 12:16:42 ERROR Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
2022.06.02 12:16:42 ERROR
2022.06.02 12:16:42 ERROR * Get more help at https://help.gradle.org
2022.06.02 12:16:42 ERROR
2022.06.02 12:16:42 ERROR BUILD FAILED in 587ms
2022.06.02 12:16:42 INFO time: ran 'gradle bloopInstall' in 1.06s
2022.06.02 12:16:42 ERROR Gradle command failed: /Users/ckipp/Documents/scala-workspace/metalsBug/examples/spark/gradlew --console=plain --init-script /var/folders/fq/nx_jsnyd6550xp03czx898d40000gn/T/metals17476371495373258339/init-script.gradle bloopInstall
Same question as @dos65, where do these variables come from?
Ah sorry about that. First you need to symlink ~/.gradle/init.d/init-repos.gradle to the path of https://github.com/frioux/metalsBug/blob/main/common/gradle/init-repos.gradle, then set the env var STARTERVIEW to the root of your repo. That should unblock you.
On Thu, Jun 2, 2022, at 4:23 AM, Chris Kipp wrote:
Thanks for the report @frioux https://github.com/frioux. Just to tie these all together (and for visibility, let's continue the conversation here, not on Discord), I hit on the same issue that @dos65 https://github.com/dos65 mentioned on Discord. When I opened
App.scala
while it did correctly identify root in nvim-metals asexample/spark/
the import fails with the following:
2022.06.02 12:16:42 ERROR > Could not get unknown property 'repoRootDir' for build of type org.gradle.invocation.DefaultGradle. 2022.06.02 12:16:42 ERROR 2022.06.02 12:16:42 ERROR * Try: 2022.06.02 12:16:42 ERROR Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. 2022.06.02 12:16:42 ERROR 2022.06.02 12:16:42 ERROR * Get more help at https://help.gradle.org 2022.06.02 12:16:42 ERROR 2022.06.02 12:16:42 ERROR BUILD FAILED in 587ms 2022.06.02 12:16:42 INFO time: ran 'gradle bloopInstall' in 1.06s 2022.06.02 12:16:42 ERROR Gradle command failed: /Users/ckipp/Documents/scala-workspace/metalsBug/examples/spark/gradlew --console=plain --init-script /var/folders/fq/nx_jsnyd6550xp03czx898d40000gn/T/metals17476371495373258339/init-script.gradle bloopInstall
Same question as @dos65 https://github.com/dos65, where do these variables come from?— Reply to this email directly, view it on GitHub https://github.com/scalameta/metals/issues/3975#issuecomment-1144750943, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAB7Y6W3H4Y5WHO3W33R43VNCKUJANCNFSM5XS6S5EA. You are receiving this because you were mentioned.Message ID: @.***>
-- fREW Schmidt https://blog.afoolishmanifesto.com
Alright, more issues. After doing the steps I still wasn't able to do a bloop install.
2022.06.02 15:06:13 ERROR
2022.06.02 15:06:13 INFO See https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings
2022.06.02 15:06:13 ERROR * What went wrong:
2022.06.02 15:06:13 ERROR A problem occurred evaluating root project 'spark_example'.
2022.06.02 15:06:13 ERROR > Failed to apply plugin 'bloop'.
2022.06.02 15:06:13 ERROR > Cannot add extension with name 'bloop', as there is an extension already registered with that name.
2022.06.02 15:06:13 ERROR
2022.06.02 15:06:13 ERROR * Try:
2022.06.02 15:06:13 ERROR Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
2022.06.02 15:06:13 ERROR
2022.06.02 15:06:13 ERROR * Get more help at https://help.gradle.org
2022.06.02 15:06:13 ERROR
2022.06.02 15:06:13 ERROR BUILD FAILED in 4s
After removing all of the Bloop stuff from your build definition and letting Metals just handle the import I was able to get the import to succeed, however it doesn't recognize your com.ziprecruiter
dependency, which causes compilation not to work in your project. The only reference I see to this dep in your setup is in dependencies.gradle
in this line:
dependencies {
compileOnly(
[group: 'org.scala-lang', name: 'scala-compiler',version: "2.12.15"],
[group: 'org.scala-lang', name: 'scala-library', version: "2.12.15"],
)
implementation "com.ziprecruiter:zr-config"
}
However, how does that work? When looking for any com.ziprecruiter
deps, I don't see any.
❯ cs complete-dep com.zip
com.zipfworks
com.zippoy
com.zipwhip
Are these hosted privately by your company?
Total aside, since I don't know Gradle well, but why in dependencies.gradle
are you including 2.12
artifacts of the scala compiler, but then in your build.gradle
you're including 2.13
artifacts?
I am surprised that the bloop config caused issues, but who knows. The dep you are not seeing is present in the repo and should be configured by https://github.com/frioux/metalsBug/blob/main/examples/spark/settings.gradle.
Maybe go into examples/spark and run ./gradlew build , to see it working?
On Thu, Jun 2, 2022, at 6:14 AM, Chris Kipp wrote:
Alright, more issues. After doing the steps I still wasn't able to do a bloop install.
2022.06.02 15:06:13 ERROR 2022.06.02 15:06:13 INFO See https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings 2022.06.02 15:06:13 ERROR * What went wrong: 2022.06.02 15:06:13 ERROR A problem occurred evaluating root project 'spark_example'. 2022.06.02 15:06:13 ERROR > Failed to apply plugin 'bloop'. 2022.06.02 15:06:13 ERROR > Cannot add extension with name 'bloop', as there is an extension already registered with that name. 2022.06.02 15:06:13 ERROR 2022.06.02 15:06:13 ERROR * Try: 2022.06.02 15:06:13 ERROR Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. 2022.06.02 15:06:13 ERROR 2022.06.02 15:06:13 ERROR * Get more help at https://help.gradle.org 2022.06.02 15:06:13 ERROR 2022.06.02 15:06:13 ERROR BUILD FAILED in 4s
After removing all of the Bloop stuff from your build definition and letting Metals just handle the import I was able to get the import to succeed, however it doesn't recognize yourcom.ziprecruiter
dependency, which causes compilation not to work in your project. The only reference I see to this dep in your setup is independencies.gradle
in this line:
dependencies { compileOnly( [group: 'org.scala-lang', name: 'scala-compiler',version: "2.12.15"], [group: 'org.scala-lang', name: 'scala-library', version: "2.12.15"], ) implementation "com.ziprecruiter:zr-config" }
However, how does that work? When looking for anycom.ziprecruiter
deps, I don't see any.
❯ cs complete-dep com.zip com.zipfworks com.zippoy com.zipwhip
Are these hosted privately by your company?— Reply to this email directly, view it on GitHub https://github.com/scalameta/metals/issues/3975#issuecomment-1144850130, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAB7Y7YIEOH2EYUNEVAGC3VNCXUDANCNFSM5XS6S5EA. You are receiving this because you were mentioned.Message ID: @.***>
-- fREW Schmidt https://blog.afoolishmanifesto.com
🤔 weird after running ./gradlew build , to see it working?
I was able to get it to compile, and then looking at the classpath
entry in the .bloop/spark-example.json
I do see "/Users/ckipp/Documents/scala-workspace/metalsBug/common/scala/config/build/classes/scala/main",
listed there where the classes should be located, but I really don't know what's going on without really digging in further.
Looking at this on my phone so it's a bit tricky.
The way gradle works is that it always builds the jars for projects and sub projects.
This appears to be a multi project build and the project that doesn't compile is depending on the zr-config project.
Normally you'd depend on another project using something like implementation project(':zr-config')
This would be fine in bloop as the project would have the zr-config
classes dir in its classpath.
But the way the dependency has been declared is telling gradle to use the jar that the zr-config
project builds as it's declared as implementation "com.ziprecruiter:zr-config"
as though it was downloading it from maven
This will never work in bloop as bloop doesn't build jars
Is there any reason you can't change the build to use the standard project dependency declaration as above?
Just to be 100% clear: bloop does successfully compile this project. It may not surface metadata to metals as expected or hoped for, but it builds just fine.
As for why the weird structure, I honestly couldn't tell you. People who've worked on Scala and Java projects much more than I have set it up this way. It may be related to the fact that it's a monorepo with over 300 gradle based subprojects in it.
On Thu, Jun 2, 2022, at 8:49 AM, Arthur McGibbon wrote:
Looking at this on my phone so it's a bit tricky.
The way gradle works is that it always builds the jars for projects and sub projects.
This appears to be a multi project build and the project that doesn't compile is depending on the zr-config project.
Normally you'd depend on another project using something like
implementation project(':zr-config')
This would be fine in bloop as the project would have thezr-config
classes dir in its classpath. But the way the dependency has been declared is telling gradle to use the jar that thezr-config
project builds as it's declared asimplementation "com.ziprecruiter:zr-config"
as though it was downloading it from mavenThis will never work in bloop as bloop doesn't build jars
Is there any reason you can't change the build to use the standard project dependency declaration as above?
— Reply to this email directly, view it on GitHub https://github.com/scalameta/metals/issues/3975#issuecomment-1145018565, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAB7Y5I5HAUHSV5NQMY253VNDJXDANCNFSM5XS6S5EA. You are receiving this because you were mentioned.Message ID: @.***>
-- fREW Schmidt https://blog.afoolishmanifesto.com
I can't examine the files locally but I imagine the reason bloop compiles is because you've already created the jar using gradle and that is what bloop is using. In the workspace .bloop
, there should be a number of JSON files. Can you post them here? I suspect the classpath is referring to the jar instead of the classes dir of the zr-config project.
Here's the main one, I think you're right:
{
"version": "1.4.0",
"project": {
"name": "spark_example",
"directory": "/home/frew/code/eg/examples/spark",
"workspaceDir": "/home/frew/code/eg/examples/spark",
"sources": [
"/home/frew/code/eg/examples/spark/src/main/scala",
"/home/frew/code/eg/examples/spark/src/main/java"
],
"dependencies": [
],
"classpath": [
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.12.15/f90aef0503d858da15b4ecb3de24e6a92df73f34/scala-compiler-2.12.15.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.12.15/3eca572cf97238683a8a545dabb22b52781547c8/scala-reflect-2.12.15.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.12.15/f2e89c89340282c9625ac57efb451056f31af57/scala-library-2.12.15.jar",
"/home/frew/code/eg/common/scala/config/build/classes/java/main",
"/home/frew/code/eg/common/scala/config/build/classes/scala/main",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/29.0-jre/801142b4c3d0f0770dd29abea50906cacfddd447/guava-29.0-jre.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.12/1.0.6/e22de3366a698a9f744106fb6dda4335838cf6a7/scala-xml_2.12-1.0.6.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.guava/failureaccess/1.0.1/1dcf1de382a0bf95a3d8b0849546c88bac1292c9/failureaccess-1.0.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/b421526c5f297295adef1c886e5246c39d4ac629/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.2/25ea2e8b0c338a877313bd4672d3fe056ea78f0d/jsr305-3.0.2.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-qual/2.11.1/8c43bf8f99b841d23aadda6044329dad9b63c185/checker-qual-2.11.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.3.4/dac170e4594de319655ffb62f41cbd6dbb5e601e/error_prone_annotations-2.3.4.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.3/ba035118bc8bac37d7eff77700720999acd9986d/j2objc-annotations-1.3.jar"
],
"out": "/home/frew/code/eg/examples/spark/.bloop/spark_example/build",
"classesDir": "/home/frew/code/eg/examples/spark/.bloop/spark_example/build/classes",
"resources": [
"/home/frew/code/eg/examples/spark/src/main/resources"
],
"scala": {
"organization": "org.scala-lang",
"name": "scala-compiler",
"version": "2.12.15",
"options": [
"-deprecation",
"-encoding",
"utf8",
"-feature",
"-target:jvm-1.8",
"-unchecked"
],
"jars": [
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.12.15/f90aef0503d858da15b4ecb3de24e6a92df73f34/scala-compiler-2.12.15.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-sbt/compiler-bridge_2.12/1.3.5/7970db798162352a0424936b1b1680b7478ecd5d/compiler-bridge_2.12-1.3.5-sources.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-sbt/compiler-interface/1.3.5/1f7379ff56b1795b523838cd06ff24272104c380/compiler-interface-1.3.5.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.12.15/3eca572cf97238683a8a545dabb22b52781547c8/scala-reflect-2.12.15.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.12.15/f2e89c89340282c9625ac57efb451056f31af57/scala-library-2.12.15.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.12/1.0.6/e22de3366a698a9f744106fb6dda4335838cf6a7/scala-xml_2.12-1.0.6.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java/3.7.0/dbb5e9230a91f2a6d011096c2b9c10a5a6e5f7f2/protobuf-java-3.7.0.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-sbt/util-interface/1.3.0/edc7556e112da142bf7e9ead1440d024fd3314c4/util-interface-1.3.0.jar"
],
"setup": {
"order": "java->scala",
"addLibraryToBootClasspath": true,
"addCompilerToClasspath": false,
"addExtraJarsToClasspath": false,
"manageBootClasspath": true,
"filterLibraryFromClasspath": true
}
},
"java": {
"options": [
"-source",
"1.8",
"-target",
"1.8",
"-h",
"/home/frew/code/eg/examples/spark/build/generated/sources/headers/java/main",
"-g",
"-sourcepath",
"",
"-proc:none",
"-XDuseUnsharedTable=true"
]
},
"platform": {
"name": "jvm",
"config": {
"home": "/usr/lib/jvm/java-8-openjdk-amd64",
"options": [
]
},
"mainClass": [
"spark_example.App"
],
"classpath": [
"/home/frew/code/eg/common/scala/config/build/libs/zr-config.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/29.0-jre/801142b4c3d0f0770dd29abea50906cacfddd447/guava-29.0-jre.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-jackson_2.12/3.6.10/7ca4c3ca9e6d88a23a8df5352ce06b74ec49c350/json4s-jackson_2.12-3.6.10.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-core_2.12/3.6.10/c71012a951922389e476e9171511951698a96db7/json4s-core_2.12-3.6.10.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.outr/profig_2.12/2.3.5/c6ca625f3ee768db64f6ab5e57f9f869f43ace77/profig_2.12-2.3.5.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-ast_2.12/3.6.10/41f27fc8233ca4d91d72a05a6718837a141bfb1/json4s-ast_2.12-3.6.10.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-scalap_2.12/3.6.10/26fdfe0cb7a86c12f641af9f9b95ad5722e4dd8/json4s-scalap_2.12-3.6.10.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.outr/profig-macros_2.12/2.3.5/65cbc551446b233d1bfd72a1142a3976bc242be0/profig-macros_2.12-2.3.5.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-generic-extras_2.12/0.11.1/6e886f3b77de9c7a596d35b85ecf8d87ef5a80ac/circe-generic-extras_2.12-0.11.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-generic_2.12/0.11.1/825bc9539589a769f54dd3403f720e6318032eab/circe-generic_2.12-0.11.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-parser_2.12/0.11.1/d1344e494eae02303ca6dc2c6dbec5d9fdca61c1/circe-parser_2.12-0.11.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-jawn_2.12/0.11.1/66614df65c269b8fb909fa141419ddb641231e8e/circe-jawn_2.12-0.11.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-yaml_2.12/0.9.0/ccef49aa20eb64ee3e3affe41dc3fb944fa3b285/circe-yaml_2.12-0.9.0.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-core_2.12/0.11.1/537b5544654d031aebc849777caae6938e07eba8/circe-core_2.12-0.11.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.akka-js/shocon-parser_2.12/0.4.1/b98e43a96a8f97dd56f6e198cf3ebd55a980e211/shocon-parser_2.12-0.4.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.12/1.1.1/f56ecaf2e5b7138c87449303c763fd1654543fde/scala-xml_2.12-1.1.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/cats-core_2.12/1.5.0/f0c04b4e58a26a73c2c5d35b41f2e12932903686/cats-core_2.12-1.5.0.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/cats-macros_2.12/1.5.0/8b396ee93c26acd438329e3951b76d327be3201d/cats-macros_2.12-1.5.0.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/machinist_2.12/0.6.6/4086874ad28be846916347dd74ba5395c63eaf50/machinist_2.12-0.6.6.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.12.8/682d33402cdae50258afa2c0860eb54688dab610/scala-reflect-2.12.8.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-numbers_2.12/0.11.1/312278e28d8b58659dcf02133e8c783bae168b40/circe-numbers_2.12-0.11.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.chuusai/shapeless_2.12/2.3.3/6041e2c4871650c556a9c6842e43c04ed462b11f/shapeless_2.12-2.3.3.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.lihaoyi/fastparse_2.12/1.0.0/2473a344aa1200fd50b7ff78281188c172f9cfcb/fastparse_2.12-1.0.0.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/jawn-parser_2.12/0.14.1/dfd46f09c332100fcaa9daa4bf3468714b4543b1/jawn-parser_2.12-0.14.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/cats-kernel_2.12/1.5.0/d651570f029d32ff30424c2562cffa4ce719a479/cats-kernel_2.12-1.5.0.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/macro-compat_2.12/1.1.1/ed809d26ef4237d7c079ae6cf7ebd0dfa7986adf/macro-compat_2.12-1.1.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.lihaoyi/fastparse-utils_2.12/1.0.0/2900ec8460abec27913f4154b338e61fd482607/fastparse-utils_2.12-1.0.0.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.lihaoyi/sourcecode_2.12/0.1.4/ef9a771975cb0860f2b42778c5cf1f5d76818979/sourcecode_2.12-0.1.4.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.12.11/1a0634714a956c1aae9abefc83acaf6d4eabfa7d/scala-library-2.12.11.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.guava/failureaccess/1.0.1/1dcf1de382a0bf95a3d8b0849546c88bac1292c9/failureaccess-1.0.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/b421526c5f297295adef1c886e5246c39d4ac629/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.2/25ea2e8b0c338a877313bd4672d3fe056ea78f0d/jsr305-3.0.2.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-qual/2.11.1/8c43bf8f99b841d23aadda6044329dad9b63c185/checker-qual-2.11.1.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.3.4/dac170e4594de319655ffb62f41cbd6dbb5e601e/error_prone_annotations-2.3.4.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.3/ba035118bc8bac37d7eff77700720999acd9986d/j2objc-annotations-1.3.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.9.10.6/fbe40c0535b836082be7e3f8cac79275b9c8ff4a/jackson-databind-2.9.10.6.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.thoughtworks.paranamer/paranamer/2.8/619eba74c19ccf1da8ebec97a2d7f8ba05773dd6/paranamer-2.8.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.9.10/53ab2f0f92e87ea4874c8c6997335c211d81e636/jackson-annotations-2.9.10.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.9.10/66b715dec9dd8b0f39f3296e67e05913bf422d0c/jackson-core-2.9.10.jar",
"/home/frew/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.23/ec62d74fe50689c28c0ff5b35d3aebcaa8b5be68/snakeyaml-1.23.jar"
]
},
"resolution": {
"modules": [
{
"organization": "org.typelevel",
"name": "cats-kernel_2.12",
"version": "1.5.0",
"artifacts": [
{
"name": "cats-kernel_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/cats-kernel_2.12/1.5.0/d651570f029d32ff30424c2562cffa4ce719a479/cats-kernel_2.12-1.5.0.jar"
},
{
"name": "cats-kernel_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/cats-kernel_2.12/1.5.0/bfc841bc458a3329b9a47aae06287df631df1b68/cats-kernel_2.12-1.5.0-sources.jar"
}
]
},
{
"organization": "io.circe",
"name": "circe-jawn_2.12",
"version": "0.11.1",
"artifacts": [
{
"name": "circe-jawn_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-jawn_2.12/0.11.1/4c506d4e0dd21747c1e97de958c36740b3d8ffd6/circe-jawn_2.12-0.11.1-sources.jar"
},
{
"name": "circe-jawn_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-jawn_2.12/0.11.1/66614df65c269b8fb909fa141419ddb641231e8e/circe-jawn_2.12-0.11.1.jar"
}
]
},
{
"organization": "org.typelevel",
"name": "machinist_2.12",
"version": "0.6.6",
"artifacts": [
{
"name": "machinist_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/machinist_2.12/0.6.6/1aafa2c22a3fb1e2c1385a1c2b796340a166ff0b/machinist_2.12-0.6.6-sources.jar"
},
{
"name": "machinist_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/machinist_2.12/0.6.6/4086874ad28be846916347dd74ba5395c63eaf50/machinist_2.12-0.6.6.jar"
}
]
},
{
"organization": "com.lihaoyi",
"name": "sourcecode_2.12",
"version": "0.1.4",
"artifacts": [
{
"name": "sourcecode_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.lihaoyi/sourcecode_2.12/0.1.4/ffb135dacaf0d989c260a486c8b86867bcab2e22/sourcecode_2.12-0.1.4-sources.jar"
},
{
"name": "sourcecode_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.lihaoyi/sourcecode_2.12/0.1.4/ef9a771975cb0860f2b42778c5cf1f5d76818979/sourcecode_2.12-0.1.4.jar"
}
]
},
{
"organization": "org.scalatestplus",
"name": "junit-4-12_2.13",
"version": "3.2.0.0",
"artifacts": [
{
"name": "junit-4-12_2.13",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scalatestplus/junit-4-12_2.13/3.2.0.0/ac557bb3f52704e02ea4024a6fed85a92cc4369a/junit-4-12_2.13-3.2.0.0.jar"
},
{
"name": "junit-4-12_2.13",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scalatestplus/junit-4-12_2.13/3.2.0.0/c2ae6abadf359356d56c6b3db2620b6b11590c9/junit-4-12_2.13-3.2.0.0-sources.jar"
}
]
},
{
"organization": "com.chuusai",
"name": "shapeless_2.12",
"version": "2.3.3",
"artifacts": [
{
"name": "shapeless_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.chuusai/shapeless_2.12/2.3.3/6041e2c4871650c556a9c6842e43c04ed462b11f/shapeless_2.12-2.3.3.jar"
},
{
"name": "shapeless_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.chuusai/shapeless_2.12/2.3.3/2511271188a92962fcf31a9a217b8122f75453a/shapeless_2.12-2.3.3-sources.jar"
}
]
},
{
"organization": "com.outr",
"name": "profig-macros_2.12",
"version": "2.3.5",
"artifacts": [
{
"name": "profig-macros_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.outr/profig-macros_2.12/2.3.5/28860c5b010fe7075fe7b0e156b3a7ea4356c194/profig-macros_2.12-2.3.5-sources.jar"
},
{
"name": "profig-macros_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.outr/profig-macros_2.12/2.3.5/65cbc551446b233d1bfd72a1142a3976bc242be0/profig-macros_2.12-2.3.5.jar"
}
]
},
{
"organization": "org.typelevel",
"name": "jawn-parser_2.12",
"version": "0.14.1",
"artifacts": [
{
"name": "jawn-parser_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/jawn-parser_2.12/0.14.1/dfd46f09c332100fcaa9daa4bf3468714b4543b1/jawn-parser_2.12-0.14.1.jar"
},
{
"name": "jawn-parser_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/jawn-parser_2.12/0.14.1/6741fcada49796505b1e61f86b1baea7acca4ba1/jawn-parser_2.12-0.14.1-sources.jar"
}
]
},
{
"organization": "org.scalatest",
"name": "scalatest-core_2.13",
"version": "3.2.0",
"artifacts": [
{
"name": "scalatest-core_2.13",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scalatest/scalatest-core_2.13/3.2.0/29eb9344c741ca67459381d8cbd0c7765d9f20ef/scalatest-core_2.13-3.2.0.jar"
},
{
"name": "scalatest-core_2.13",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scalatest/scalatest-core_2.13/3.2.0/9dea3c566abcedbd4f77290dc0b5e0df03e7d112/scalatest-core_2.13-3.2.0-sources.jar"
}
]
},
{
"organization": "org.scala-lang",
"name": "scala-library",
"version": "2.13.2",
"artifacts": [
{
"name": "scala-library",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.13.2/280d2a51b3130cf869cb416404b2c0e44e433f3e/scala-library-2.13.2.jar"
},
{
"name": "scala-library",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.13.2/3486811eaca109f05fd7c8a3d772c141ab9d368f/scala-library-2.13.2-sources.jar"
}
]
},
{
"organization": "com.lihaoyi",
"name": "fastparse_2.12",
"version": "1.0.0",
"artifacts": [
{
"name": "fastparse_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.lihaoyi/fastparse_2.12/1.0.0/2473a344aa1200fd50b7ff78281188c172f9cfcb/fastparse_2.12-1.0.0.jar"
},
{
"name": "fastparse_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.lihaoyi/fastparse_2.12/1.0.0/b1fdfd4c95bdb3f49ec78837be78d657a5ac86c0/fastparse_2.12-1.0.0-sources.jar"
}
]
},
{
"organization": "org.typelevel",
"name": "macro-compat_2.12",
"version": "1.1.1",
"artifacts": [
{
"name": "macro-compat_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/macro-compat_2.12/1.1.1/ed809d26ef4237d7c079ae6cf7ebd0dfa7986adf/macro-compat_2.12-1.1.1.jar"
},
{
"name": "macro-compat_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/macro-compat_2.12/1.1.1/ade6d6ec81975cf514b0f9e2061614f2799cfe97/macro-compat_2.12-1.1.1-sources.jar"
}
]
},
{
"organization": "io.circe",
"name": "circe-generic-extras_2.12",
"version": "0.11.1",
"artifacts": [
{
"name": "circe-generic-extras_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-generic-extras_2.12/0.11.1/6e886f3b77de9c7a596d35b85ecf8d87ef5a80ac/circe-generic-extras_2.12-0.11.1.jar"
},
{
"name": "circe-generic-extras_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-generic-extras_2.12/0.11.1/c8a20967b654bc1fdd547e7d2848ecbb3087b28b/circe-generic-extras_2.12-0.11.1-sources.jar"
}
]
},
{
"organization": "org.checkerframework",
"name": "checker-qual",
"version": "2.11.1",
"artifacts": [
{
"name": "checker-qual",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-qual/2.11.1/8c43bf8f99b841d23aadda6044329dad9b63c185/checker-qual-2.11.1.jar"
},
{
"name": "checker-qual",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-qual/2.11.1/81dbb91c8dc3c53ae7066ce9e70ed7efb0551261/checker-qual-2.11.1-sources.jar"
}
]
},
{
"organization": "com.outr",
"name": "profig_2.12",
"version": "2.3.5",
"artifacts": [
{
"name": "profig_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.outr/profig_2.12/2.3.5/b592bf6c30ccbeb1c42b97b6249e30bde9ca6c8c/profig_2.12-2.3.5-sources.jar"
},
{
"name": "profig_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.outr/profig_2.12/2.3.5/c6ca625f3ee768db64f6ab5e57f9f869f43ace77/profig_2.12-2.3.5.jar"
}
]
},
{
"organization": "com.fasterxml.jackson.core",
"name": "jackson-databind",
"version": "2.9.10.6",
"artifacts": [
{
"name": "jackson-databind",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.9.10.6/fbe40c0535b836082be7e3f8cac79275b9c8ff4a/jackson-databind-2.9.10.6.jar"
},
{
"name": "jackson-databind",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.9.10.6/a1c52c114891471c86da0b2c742badc4a3a0f63/jackson-databind-2.9.10.6-sources.jar"
}
]
},
{
"organization": "org.scala-lang",
"name": "scala-reflect",
"version": "2.12.15",
"artifacts": [
{
"name": "scala-reflect",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.12.15/3eca572cf97238683a8a545dabb22b52781547c8/scala-reflect-2.12.15.jar"
},
{
"name": "scala-reflect",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.12.15/2dba219f833d494a920c8d884d68788e2c508f18/scala-reflect-2.12.15-sources.jar"
}
]
},
{
"organization": "com.google.guava",
"name": "guava",
"version": "29.0-jre",
"artifacts": [
{
"name": "guava",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/29.0-jre/33e6868bc0fcb9b4b493123eeec78d1352934e87/guava-29.0-jre-sources.jar"
},
{
"name": "guava",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/29.0-jre/801142b4c3d0f0770dd29abea50906cacfddd447/guava-29.0-jre.jar"
}
]
},
{
"organization": "com.google.guava",
"name": "failureaccess",
"version": "1.0.1",
"artifacts": [
{
"name": "failureaccess",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.google.guava/failureaccess/1.0.1/1d064e61aad6c51cc77f9b59dc2cccc78e792f5a/failureaccess-1.0.1-sources.jar"
},
{
"name": "failureaccess",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.google.guava/failureaccess/1.0.1/1dcf1de382a0bf95a3d8b0849546c88bac1292c9/failureaccess-1.0.1.jar"
}
]
},
{
"organization": "org.scala-lang",
"name": "scala-reflect",
"version": "2.13.2",
"artifacts": [
{
"name": "scala-reflect",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.13.2/11f47bb48cc482aee6a47fb058eca05e576e7411/scala-reflect-2.13.2-sources.jar"
},
{
"name": "scala-reflect",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.13.2/2a6dd4989a27aba0dd43bc297045cff633d70064/scala-reflect-2.13.2.jar"
}
]
},
{
"organization": "com.google.guava",
"name": "listenablefuture",
"version": "9999.0-empty-to-avoid-conflict-with-guava",
"artifacts": [
{
"name": "listenablefuture",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/b421526c5f297295adef1c886e5246c39d4ac629/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar"
}
]
},
{
"organization": "org.scalactic",
"name": "scalactic_2.13",
"version": "3.2.0",
"artifacts": [
{
"name": "scalactic_2.13",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scalactic/scalactic_2.13/3.2.0/8b4aa21937d3de4b0396bc503231f4a7560d8908/scalactic_2.13-3.2.0-sources.jar"
},
{
"name": "scalactic_2.13",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scalactic/scalactic_2.13/3.2.0/3935d8629ea203fbfa7d3a3b1599d21646ea32f6/scalactic_2.13-3.2.0.jar"
}
]
},
{
"organization": "org.json4s",
"name": "json4s-jackson_2.12",
"version": "3.6.10",
"artifacts": [
{
"name": "json4s-jackson_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-jackson_2.12/3.6.10/7ca4c3ca9e6d88a23a8df5352ce06b74ec49c350/json4s-jackson_2.12-3.6.10.jar"
},
{
"name": "json4s-jackson_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-jackson_2.12/3.6.10/26993f8a527cdce2be25cbe63101567aa0f470fb/json4s-jackson_2.12-3.6.10-sources.jar"
}
]
},
{
"organization": "com.google.j2objc",
"name": "j2objc-annotations",
"version": "1.3",
"artifacts": [
{
"name": "j2objc-annotations",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.3/ba035118bc8bac37d7eff77700720999acd9986d/j2objc-annotations-1.3.jar"
},
{
"name": "j2objc-annotations",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.3/d26c56180205cbb50447c3eca98ecb617cf9f58b/j2objc-annotations-1.3-sources.jar"
}
]
},
{
"organization": "org.scala-lang",
"name": "scala-library",
"version": "2.12.15",
"artifacts": [
{
"name": "scala-library",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.12.15/5e789d895ee2b8b02577db7b6bbb5409798b7daf/scala-library-2.12.15-sources.jar"
},
{
"name": "scala-library",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.12.15/f2e89c89340282c9625ac57efb451056f31af57/scala-library-2.12.15.jar"
}
]
},
{
"organization": "org.json4s",
"name": "json4s-core_2.12",
"version": "3.6.10",
"artifacts": [
{
"name": "json4s-core_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-core_2.12/3.6.10/4a96f7fb1b91201efbfc70c53c80e904fcc6884c/json4s-core_2.12-3.6.10-sources.jar"
},
{
"name": "json4s-core_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-core_2.12/3.6.10/c71012a951922389e476e9171511951698a96db7/json4s-core_2.12-3.6.10.jar"
}
]
},
{
"organization": "org.json4s",
"name": "json4s-scalap_2.12",
"version": "3.6.10",
"artifacts": [
{
"name": "json4s-scalap_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-scalap_2.12/3.6.10/26fdfe0cb7a86c12f641af9f9b95ad5722e4dd8/json4s-scalap_2.12-3.6.10.jar"
},
{
"name": "json4s-scalap_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-scalap_2.12/3.6.10/a8435f89698e55aaa70dc5c027befe3c0784ac9c/json4s-scalap_2.12-3.6.10-sources.jar"
}
]
},
{
"organization": "org.typelevel",
"name": "cats-core_2.12",
"version": "1.5.0",
"artifacts": [
{
"name": "cats-core_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/cats-core_2.12/1.5.0/f0c04b4e58a26a73c2c5d35b41f2e12932903686/cats-core_2.12-1.5.0.jar"
},
{
"name": "cats-core_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/cats-core_2.12/1.5.0/888ee4094820ead6cde31add3f2f41d4ea14d681/cats-core_2.12-1.5.0-sources.jar"
}
]
},
{
"organization": "org.scala-lang",
"name": "scala-compiler",
"version": "2.12.15",
"artifacts": [
{
"name": "scala-compiler",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.12.15/e0a6ec991859c91fc40204bb478f85f076365424/scala-compiler-2.12.15-sources.jar"
},
{
"name": "scala-compiler",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.12.15/f90aef0503d858da15b4ecb3de24e6a92df73f34/scala-compiler-2.12.15.jar"
}
]
},
{
"organization": "io.circe",
"name": "circe-numbers_2.12",
"version": "0.11.1",
"artifacts": [
{
"name": "circe-numbers_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-numbers_2.12/0.11.1/9929b114b0eb57732bbf98ba0bae6491f2ae0ea2/circe-numbers_2.12-0.11.1-sources.jar"
},
{
"name": "circe-numbers_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-numbers_2.12/0.11.1/312278e28d8b58659dcf02133e8c783bae168b40/circe-numbers_2.12-0.11.1.jar"
}
]
},
{
"organization": "org.hamcrest",
"name": "hamcrest-core",
"version": "1.3",
"artifacts": [
{
"name": "hamcrest-core",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar"
},
{
"name": "hamcrest-core",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b/hamcrest-core-1.3-sources.jar"
}
]
},
{
"organization": "org.scala-lang.modules",
"name": "scala-xml_2.12",
"version": "1.1.1",
"artifacts": [
{
"name": "scala-xml_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.12/1.1.1/f56ecaf2e5b7138c87449303c763fd1654543fde/scala-xml_2.12-1.1.1.jar"
},
{
"name": "scala-xml_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.12/1.1.1/556a78441b13aea4f2f4eebe0b4bcd6e9e4975f9/scala-xml_2.12-1.1.1-sources.jar"
}
]
},
{
"organization": "io.circe",
"name": "circe-yaml_2.12",
"version": "0.9.0",
"artifacts": [
{
"name": "circe-yaml_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-yaml_2.12/0.9.0/1e7e95b99dc9aac98f8bffa4365cb3cb74adb445/circe-yaml_2.12-0.9.0-sources.jar"
},
{
"name": "circe-yaml_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-yaml_2.12/0.9.0/ccef49aa20eb64ee3e3affe41dc3fb944fa3b285/circe-yaml_2.12-0.9.0.jar"
}
]
},
{
"organization": "org.scalatest",
"name": "scalatest-compatible",
"version": "3.2.0",
"artifacts": [
{
"name": "scalatest-compatible",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scalatest/scalatest-compatible/3.2.0/1e6b13866e543f4637fe36c956ef61d1eb9b4a8a/scalatest-compatible-3.2.0-sources.jar"
},
{
"name": "scalatest-compatible",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scalatest/scalatest-compatible/3.2.0/29c6b56040fdd0fe1af3255d7acacd691a960ff3/scalatest-compatible-3.2.0.jar"
}
]
},
{
"organization": "org.akka-js",
"name": "shocon-parser_2.12",
"version": "0.4.1",
"artifacts": [
{
"name": "shocon-parser_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.akka-js/shocon-parser_2.12/0.4.1/7e850870fe4e91089c21bc460cfefac69f59a6c5/shocon-parser_2.12-0.4.1-sources.jar"
},
{
"name": "shocon-parser_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.akka-js/shocon-parser_2.12/0.4.1/b98e43a96a8f97dd56f6e198cf3ebd55a980e211/shocon-parser_2.12-0.4.1.jar"
}
]
},
{
"organization": "org.scala-lang.modules",
"name": "scala-xml_2.12",
"version": "1.0.6",
"artifacts": [
{
"name": "scala-xml_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.12/1.0.6/e22de3366a698a9f744106fb6dda4335838cf6a7/scala-xml_2.12-1.0.6.jar"
},
{
"name": "scala-xml_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.12/1.0.6/429925530fb0f9a6fb26e5160532b7b3426557c0/scala-xml_2.12-1.0.6-sources.jar"
}
]
},
{
"organization": "junit",
"name": "junit",
"version": "4.12",
"artifacts": [
{
"name": "junit",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/a6c32b40bf3d76eca54e3c601e5d1470c86fcdfa/junit-4.12-sources.jar"
},
{
"name": "junit",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar"
}
]
},
{
"organization": "org.scala-lang",
"name": "scala-reflect",
"version": "2.12.8",
"artifacts": [
{
"name": "scala-reflect",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.12.8/682d33402cdae50258afa2c0860eb54688dab610/scala-reflect-2.12.8.jar"
},
{
"name": "scala-reflect",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.12.8/2b4a5bbdc19f8ab34d474f30dbca957addc8ae09/scala-reflect-2.12.8-sources.jar"
}
]
},
{
"organization": "com.fasterxml.jackson.core",
"name": "jackson-annotations",
"version": "2.9.10",
"artifacts": [
{
"name": "jackson-annotations",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.9.10/53ab2f0f92e87ea4874c8c6997335c211d81e636/jackson-annotations-2.9.10.jar"
},
{
"name": "jackson-annotations",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.9.10/62d22990d6d2798103792f6edcd54714c2f6fbf4/jackson-annotations-2.9.10-sources.jar"
}
]
},
{
"organization": "io.circe",
"name": "circe-generic_2.12",
"version": "0.11.1",
"artifacts": [
{
"name": "circe-generic_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-generic_2.12/0.11.1/825bc9539589a769f54dd3403f720e6318032eab/circe-generic_2.12-0.11.1.jar"
},
{
"name": "circe-generic_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-generic_2.12/0.11.1/a4bcb5b3c7611d1cdd6dfab68e5035361bf09a9a/circe-generic_2.12-0.11.1-sources.jar"
}
]
},
{
"organization": "org.scala-lang",
"name": "scala-library",
"version": "2.12.11",
"artifacts": [
{
"name": "scala-library",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.12.11/1a0634714a956c1aae9abefc83acaf6d4eabfa7d/scala-library-2.12.11.jar"
},
{
"name": "scala-library",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.12.11/10a1c93ef50b6f1ca7c2223c8d84fab484222731/scala-library-2.12.11-sources.jar"
}
]
},
{
"organization": "org.scala-lang.modules",
"name": "scala-xml_2.13",
"version": "1.2.0",
"artifacts": [
{
"name": "scala-xml_2.13",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.13/1.2.0/f6abd60d28c189f05183b26c5363713d1d126b83/scala-xml_2.13-1.2.0.jar"
},
{
"name": "scala-xml_2.13",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.13/1.2.0/7a7c99769f3823091a150378f37a1d7b7ed73055/scala-xml_2.13-1.2.0-sources.jar"
}
]
},
{
"organization": "com.google.code.findbugs",
"name": "jsr305",
"version": "3.0.2",
"artifacts": [
{
"name": "jsr305",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.2/b19b5927c2c25b6c70f093767041e641ae0b1b35/jsr305-3.0.2-sources.jar"
},
{
"name": "jsr305",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.2/25ea2e8b0c338a877313bd4672d3fe056ea78f0d/jsr305-3.0.2.jar"
}
]
},
{
"organization": "com.google.errorprone",
"name": "error_prone_annotations",
"version": "2.3.4",
"artifacts": [
{
"name": "error_prone_annotations",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.3.4/950adf6dcd7361e3d1e544a6e13b818587f95d14/error_prone_annotations-2.3.4-sources.jar"
},
{
"name": "error_prone_annotations",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.3.4/dac170e4594de319655ffb62f41cbd6dbb5e601e/error_prone_annotations-2.3.4.jar"
}
]
},
{
"organization": "com.lihaoyi",
"name": "fastparse-utils_2.12",
"version": "1.0.0",
"artifacts": [
{
"name": "fastparse-utils_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.lihaoyi/fastparse-utils_2.12/1.0.0/2900ec8460abec27913f4154b338e61fd482607/fastparse-utils_2.12-1.0.0.jar"
},
{
"name": "fastparse-utils_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.lihaoyi/fastparse-utils_2.12/1.0.0/891f76cff455350adc2f122421b67855f93c8dc3/fastparse-utils_2.12-1.0.0-sources.jar"
}
]
},
{
"organization": "io.circe",
"name": "circe-parser_2.12",
"version": "0.11.1",
"artifacts": [
{
"name": "circe-parser_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-parser_2.12/0.11.1/7c9359746dad4db38ced3b9fc9e39aa359302dff/circe-parser_2.12-0.11.1-sources.jar"
},
{
"name": "circe-parser_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-parser_2.12/0.11.1/d1344e494eae02303ca6dc2c6dbec5d9fdca61c1/circe-parser_2.12-0.11.1.jar"
}
]
},
{
"organization": "org.typelevel",
"name": "cats-macros_2.12",
"version": "1.5.0",
"artifacts": [
{
"name": "cats-macros_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/cats-macros_2.12/1.5.0/8b396ee93c26acd438329e3951b76d327be3201d/cats-macros_2.12-1.5.0.jar"
},
{
"name": "cats-macros_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.typelevel/cats-macros_2.12/1.5.0/6349985de0e1c25781d5ec4824b840d585e1ed56/cats-macros_2.12-1.5.0-sources.jar"
}
]
},
{
"organization": "io.circe",
"name": "circe-core_2.12",
"version": "0.11.1",
"artifacts": [
{
"name": "circe-core_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-core_2.12/0.11.1/537b5544654d031aebc849777caae6938e07eba8/circe-core_2.12-0.11.1.jar"
},
{
"name": "circe-core_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/io.circe/circe-core_2.12/0.11.1/c48b3ec3ec7b9fd210f6fc6d7269122bee5283a3/circe-core_2.12-0.11.1-sources.jar"
}
]
},
{
"organization": "org.yaml",
"name": "snakeyaml",
"version": "1.23",
"artifacts": [
{
"name": "snakeyaml",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.23/1186bcf89d33080275bab74a0b0f495af5c812ef/snakeyaml-1.23-sources.jar"
},
{
"name": "snakeyaml",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.23/ec62d74fe50689c28c0ff5b35d3aebcaa8b5be68/snakeyaml-1.23.jar"
}
]
},
{
"organization": "com.fasterxml.jackson.core",
"name": "jackson-core",
"version": "2.9.10",
"artifacts": [
{
"name": "jackson-core",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.9.10/66b715dec9dd8b0f39f3296e67e05913bf422d0c/jackson-core-2.9.10.jar"
},
{
"name": "jackson-core",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.9.10/2bbe05a007ca22ecf0ed3d3b0b0d8cd9726271c2/jackson-core-2.9.10-sources.jar"
}
]
},
{
"organization": "com.thoughtworks.paranamer",
"name": "paranamer",
"version": "2.8",
"artifacts": [
{
"name": "paranamer",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.thoughtworks.paranamer/paranamer/2.8/619eba74c19ccf1da8ebec97a2d7f8ba05773dd6/paranamer-2.8.jar"
},
{
"name": "paranamer",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/com.thoughtworks.paranamer/paranamer/2.8/8f3421a8203053a6ab4b74f76a0550d21eee8cfe/paranamer-2.8-sources.jar"
}
]
},
{
"organization": "org.json4s",
"name": "json4s-ast_2.12",
"version": "3.6.10",
"artifacts": [
{
"name": "json4s-ast_2.12",
"classifier": "sources",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-ast_2.12/3.6.10/ed48911bf40b6e93e48ef0c03182b24a183e77e9/json4s-ast_2.12-3.6.10-sources.jar"
},
{
"name": "json4s-ast_2.12",
"path": "/home/frew/.gradle/caches/modules-2/files-2.1/org.json4s/json4s-ast_2.12/3.6.10/41f27fc8233ca4d91d72a05a6718837a141bfb1/json4s-ast_2.12-3.6.10.jar"
}
]
}
]
},
"tags": [
"library"
]
}
}
but I imagine the reason bloop compiles is because you've already created the jar using gradle
Exactly this. This is why when I first tried I had compilation issues until I used gradle to build the project.
Looking around more:
But the way the dependency has been declared is telling gradle to use the jar that the zr-config project builds as it's declared as implementation "com.ziprecruiter:zr-config" as though it was downloading it from maven
This will never work in bloop as bloop doesn't build jars
This also seems to be correct, for example you can change some stuff in commons, and it won't be reflected when you're trying to use it in your example project unless you compile it with gradle and then it will pick that up and compile with Bloop.
OK, thanks for figuring this out folks.
Is it worth opening an issue with Bloop about this do you think?
The /home/frew/code/eg/common/scala/config/build/libs/zr-config.jar"
line shows bloop thinks this is a dependency jar and the fact that the dependencies
section is empty shows it doesn't think this is a project dependency. Both of which are wrong
You can try changing your build definition to use implementation project(':zr-config')
and re-importing the build. If that works then great - that's how you'd normally define a project dependency in gradle.
If not - I can look when I'm back from holiday on Thursday. If gradle recognises this as a project dependency in its dependency tree then we should be able to handle this case. I'd be surprised if it does. If it doesn't, then I'd recommend changing your build to a project dependency as I can't see how you wouldn't run into occasional issues as gradle wouldn't know it needed to compile the zr-config
project before the main project
I'll try that stuff @Arthurm1; I'm not totally sure how to do it so it might take a bit.
OK @Arthurm1 I verified that I cannot simply switch to the more typical way of declaring cross library dependencies as you suggested. I can also confirm that at least IntelliJ knows how to follow these kinds of deps, so being able to follow them with Metals would be useful. I'm trying to simplify my example for you in the meantime.
@frioux I've had a proper look at your setup and I don't think there's anything wrong with it. It's fine to setup composite builds to manage large codebases.
However includeBuild
is currently not supported. The bloop gradle plugin doesn't interrogate included builds so you're left with the classes output of zr-config
on the classpath of spark-example
but no zr-config
project managing the sources of zr-config
. Hence no building of zr-config
and no goto-definition
I can't currently think of a nice way to support this without first https://github.com/scalameta/metals/issues/5188 being implemented. I'll have a delve more into the Gradle API but I'm not hopeful.
Thanks for checking
On Sun, Jun 12, 2022, at 2:23 AM, Arthur McGibbon wrote:
@frioux https://github.com/frioux I've had a proper look at your setup and I don't think there's anything wrong with it. It's fine to setup composite builds to manage large codebases.
However
includeBuild
is currently not supported. The bloop gradle plugin doesn't interrogate included builds so you're left with the classes output ofzr-config
on the classpath ofspark-example
but nozr-config
project managing the sources ofzr-config
. Hence no building ofzr-config
and nogoto-definition
I can't currently think of a nice way to support this without first scalameta/metals#5188 https://github.com/scalameta/metals/issues/5188 being implemented. I'll have a delve more into the Gradle API but I'm not hopeful.
— Reply to this email directly, view it on GitHub https://github.com/scalameta/metals/issues/3975#issuecomment-1153111768, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAB7Y7G6VHT325OXLX6GELVOWUCLANCNFSM5XS6S5EA. You are receiving this because you were mentioned.Message ID: @.***>
-- fREW Schmidt https://blog.afoolishmanifesto.com
Describe the bug
At work we use Gradle. It seems like any types that we import via an
includeBuild
cannot be followed by metals. This means you can't go to those definitions, you can't autocomplete them, etc.I made a reproduction by taking a very small slice of our monorepo to try. If I knew gradle more it'd be smaller, apologies for that. The repro is in https://github.com/frioux/metalsBug, if you open
examples/spark/src/main/scala/spark_example/App.scala
and try to goto defintion of ZRConfig it doesn't work, but other things (like String, or Config or whatever) do in fact work.Let me know how I can help if you can't figure out how to proceed from here.
I wouldn't be surprised if this were in fact a Bloop bug but I really do not know what I am doing here so I'm starting with this ticket
Expected behavior
Goto definition should work.
Operating system
Linux
Editor/Extension
Nvim/Vim (other)
Version of Metals
v0.11.5
Extra context or search terms