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

Using sbt-typelevel 0.7.3 by itself raises java.lang.NoSuchMethodError #750

Open
takapi327 opened this issue Sep 29, 2024 · 5 comments
Open

Comments

@takapi327
Copy link

Hi 👋
First of all, I would like to thank you for your constant maintenance.

Oddly enough, using the latest version that was recently released seems to cause a java.lang.NoSuchMethodError.
Specifically, when I run Test with sbt-typelevel 0.7.3 by itself, I get java.lang.NoSuchMethodError.

I had no problems when using 0.7.2.

Environment

Here is the environment where I encountered this error.

  • Scala Version: 3.3.4
  • Java Version: 11, 17
  • sbt Version: 1.10.2
  • sbt-typelevel: 0.7.3

Error

This is the actual error that occurred.

[error] java.lang.NoSuchMethodError: 'scala.Option org.typelevel.sbt.gha.GitHubActionsPlugin$.appendToStepSummary(java.lang.String)'
[error] 	at org.typelevel.sbt.TypelevelCiPlugin$.$anonfun$projectSettings$1(TypelevelCiPlugin.scala:199)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] 	at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:63)
[error] 	at sbt.std.Transform$$anon$4.work(Transform.scala:69)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
[error] 	at sbt.Execute.work(Execute.scala:292)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[error] 	at java.base/java.lang.Thread.run(Thread.java:840)

You can also refer to the actual error here.

https://github.com/takapi327/ldbc/actions/runs/11092834144/job/30818362773?pr=288

I looked at the difference from 0.7.2 to 0.7.3 and it looks like only the name of the appendToStepSummary method that is causing the error has changed only slightly.

Workaround

Looking at the updates of other Typelevel projects, sbt-typelevel-site was also used in conjunction. I did not see the same error in that project.
When I tried using sbt-typelevel-site together, the error did not occur.

  • sbt-typelevel: 0.7.3
  • sbt-typelevel-site: 0.7.3

Is there anything we missed or something that needs to be addressed in the new version?

Thank you.

@mzuehlke
Copy link
Collaborator

com.armanbilge:sbt-scala-native-config-brew-github-actions:0.3.0 adds
"org.typelevel" % "sbt-typelevel-github-actions" % "0.7.0"

and this leads to the problem https://github.com/armanbilge/scala-native-config-brew/blob/main/build.sbt#L74C18-L74C76

(A dependencyTree in the metabuild shows the error): sbt "reload plugins;dependencyTree"

I think the only way would be to update https://github.com/armanbilge/scala-native-config-brew (by merging a bunch or open PRs ans making a release)

@armanbilge
Copy link
Member

v0.7.3 is backwards-compatible with v0.7.0. sbt should be evicting v0.7.0 automatically in favor of v0.7.3. But I don't see that happening in the evictions ...

sbt:project> evicted
[warn] Found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[warn]  * org.scala-native:sbt-scala-native:0.4.17 is selected over 0.3.7
[warn]      +- default:project:0.1.0-SNAPSHOT (sbtVersion=1.0, scalaVersion=2.12) (depends on 0.4.17)
[warn]      +- com.armanbilge:sbt-scala-native-config-brew:0.3.0 (scalaVersion=2.12, sbtVersion=1.0) (depends on 0.4.17)
[warn]      +- org.portable-scala:sbt-scala-native-crossproject:1.3.2 (scalaVersion=2.12, sbtVersion=1.0) (depends on 0.3.7)
[warn]  * org.scala-js:sbt-scalajs:1.17.0 is selected over {0.6.23, 1.13.2}
[warn]      +- default:project:0.1.0-SNAPSHOT (sbtVersion=1.0, scalaVersion=2.12) (depends on 1.17.0)
[warn]      +- org.typelevel:sbt-typelevel-github:0.7.3 (scalaVersion=2.12, sbtVersion=1.0) (depends on 1.13.2)
[warn]      +- org.portable-scala:sbt-scalajs-crossproject:1.3.2 (scalaVersion=2.12, sbtVersion=1.0) (depends on 0.6.23)
[warn]  * com.google.guava:guava:18.0 is selected over 16.0.1
[warn]      +- com.google.jimfs:jimfs:1.1                         (depends on 18.0)
[warn]      +- org.sonatype.spice.zapper:spice-zapper:1.3         (depends on 16.0.1)
[warn]  * org.slf4j:slf4j-api:2.0.9 is selected over {1.7.36, 2.0.5, 1.7.30, 1.7.7}
[warn]      +- org.webjars:webjars-locator-core:0.55              (depends on 2.0.9)
[warn]      +- org.sonatype.spice.zapper:spice-zapper:1.3         (depends on 1.7.7)
[warn]      +- org.slf4j:jcl-over-slf4j:1.7.7                     (depends on 1.7.7)
[warn]      +- org.eclipse.jgit:org.eclipse.jgit:5.13.1.202206130422-r (depends on 1.7.30)
[warn]      +- org.eclipse.jetty:jetty-xml:11.0.13                (depends on 2.0.5)
[warn]      +- org.eclipse.jetty:jetty-webapp:11.0.13             (depends on 2.0.5)
[warn]      +- org.eclipse.jetty:jetty-util:11.0.13               (depends on 2.0.5)
[warn]      +- org.eclipse.jetty:jetty-servlet:11.0.13            (depends on 2.0.5)
[warn]      +- org.eclipse.jetty:jetty-server:11.0.13             (depends on 2.0.5)
[warn]      +- org.eclipse.jetty:jetty-security:11.0.13           (depends on 2.0.5)
[warn]      +- org.eclipse.jetty:jetty-io:11.0.13                 (depends on 2.0.5)
[warn]      +- org.eclipse.jetty:jetty-http:11.0.13               (depends on 2.0.5)
[warn]      +- com.softwaremill.sttp.client4:slf4j-backend_2.12:4.0.0-M16 (depends on 1.7.36)
[info] Here are other dependency conflicts that were resolved:
[info]  * com.github.sbt:sbt-git:2.0.1 is selected over {2.0.0}
[info]      +- com.github.sbt:sbt-ghpages:0.8.0 (sbtVersion=1.0, scalaVersion=2.12) (depends on 2.0.1)
[info]      +- org.typelevel:sbt-typelevel-versioning:0.7.3 (scalaVersion=2.12, sbtVersion=1.0) (depends on 2.0.0)
[info]      +- org.typelevel:sbt-typelevel-settings:0.7.3 (scalaVersion=2.12, sbtVersion=1.0) (depends on 2.0.0)
[info]      +- org.typelevel:sbt-typelevel-github:0.7.3 (scalaVersion=2.12, sbtVersion=1.0) (depends on 2.0.0)
[info]  * org.jsoup:jsoup:1.16.1 is selected over 1.12.1
[info]      +- com.lightbend.paradox:paradox_2.12:0.10.6          (depends on 1.16.1)
[info]      +- org.scalameta:sbt-mdoc:2.6.1 (sbtVersion=1.0, scalaVersion=2.12) (depends on 1.12.1)
[info]  * org.portable-scala:sbt-platform-deps:1.0.2 is selected over 1.0.1
[info]      +- org.scala-js:sbt-scalajs:1.17.0 (sbtVersion=1.0, scalaVersion=2.12) (depends on 1.0.2)
[info]      +- org.portable-scala:sbt-crossproject:1.3.2 (scalaVersion=2.12, sbtVersion=1.0) (depends on 1.0.2)
[info]      +- org.portable-scala:sbt-crossproject:1.3.2 (scalaVersion=2.12, sbtVersion=1.0) (depends on 1.0.2)
[info]      +- org.scala-native:sbt-scala-native:0.4.17 (sbtVersion=1.0, scalaVersion=2.12) (depends on 1.0.1)
[info]  * org.ow2.asm:asm:9.2 is selected over 9.0
[info]      +- org.parboiled:parboiled-java:1.4.1                 (depends on 9.2)
[info]      +- org.ow2.asm:asm-tree:9.2                           (depends on 9.2)
[info]      +- org.ow2.asm:asm-util:9.2                           (depends on 9.2)
[info]      +- org.openjdk.jmh:jmh-generator-asm:1.37             (depends on 9.0)
[info]  * com.github.sbt:sbt-site:1.7.0 is selected over 1.5.0
[info]      +- com.github.sbt:sbt-site-paradox:1.7.0 (sbtVersion=1.0, scalaVersion=2.12) (depends on 1.7.0)
[info]      +- com.github.sbt:sbt-ghpages:0.8.0 (sbtVersion=1.0, scalaVersion=2.12) (depends on 1.5.0)
[info]  * commons-codec:commons-codec:1.15 is selected over 1.6
[info]      +- ws.unfiltered:unfiltered_2.12:0.12.0               (depends on 1.15)
[info]      +- org.apache.httpcomponents:httpclient:4.3.5         (depends on 1.6)
[info]  * junit:junit:4.13.2 is selected over 4.11
[info]      +- org.scala-native:test-runner_2.12:0.4.17           (depends on 4.13.2)
[info]      +- com.novocode:junit-interface:0.11                  (depends on 4.11)
[info]  * org.parboiled:parboiled-java:1.4.1 is selected over 1.1.7
[info]      +- com.lightbend.paradox:paradox_2.12:0.10.6          (depends on 1.4.1)
[info]      +- org.pegdown:pegdown:1.6.0                          (depends on 1.1.7)

I'm not sure what's happening, but at the moment this seems like an sbt bug.

@armanbilge
Copy link
Member

armanbilge commented Sep 30, 2024

@takapi327 As a workaround, try adding an explicit dependency:

addSbtPlugin("org.typelevel" % "sbt-typelevel-github-actions" % "0.7.3")

I think this will make eviction work properly.

[info]  * org.typelevel:sbt-typelevel-github-actions:0.7.3 is selected over 0.7.0
[info]      +- default:project:0.1.0-SNAPSHOT (sbtVersion=1.0, scalaVersion=2.12) (depends on 0.7.3)
[info]      +- com.armanbilge:sbt-scala-native-config-brew-github-actions:0.3.0 (sbtVersion=1.0, scalaVersion=2.12) (depends on 0.7.0)

@armanbilge
Copy link
Member

@takapi327
Copy link
Author

@armanbilge Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants