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

Chipyard/SBT Fat JAR & CustomMergeStrategy Error #1663

Open
3 tasks done
KarlJoad opened this issue Oct 27, 2023 · 0 comments
Open
3 tasks done

Chipyard/SBT Fat JAR & CustomMergeStrategy Error #1663

KarlJoad opened this issue Oct 27, 2023 · 0 comments
Labels
bug Something isn't working

Comments

@KarlJoad
Copy link

Background Work

FireSim Version and Hash

1.17.1-128-g06bc1c243

OS Setup

<!-- copy/paste the output of `uname -a; lsb_release -a` below -->

Linux roquefort 5.15.0-86-generic #96-Ubuntu SMP Wed Sep 20 08:23:49 UTC 2023 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy

Other Setup

Fresh Chipyard clone, which clones FireSim: f42435985182f1f3a484605ba9ae7a287c0a9b10.
Then manually fetch & checkout upstream main branch, which is AFTER: 2f13158e0ee8f5880db993d1a50e1d87c32ebe31 (Initial support for Fat JARs).

Custom Chipyard environment which branches from commit 4a1189693d8134973010ac91abf7f085bbf0b49d and has only minor alterations.
Development environment with Nix:
Nix:
nix (Nix) 2.18.0

Java, Scala, SBT versions:
Java: 17.0.7 & 19.0.2
Scala: 2.13.10
SBT: 1.7.3, 1.8.3, 1.9.2

Current Behavior

Running any SBT command in Chipyard (which is older, but does not seem related) causes SBT to stop and ask for user input on whether to load the project or not.

Expected Behavior

Any SBT command should load the project correctly, even if FireSim is not used for simulation acceleration.

Other Information

chipyard $ sbt
...
[info] loading project definition from /tmp/chipyard/sims/firesim/sim/project
[info] Updating
https://repo1.maven.org/maven2/ch/epfl/scala/sbt-bloop_2.12_1.0/1.5.6/sbt-bloop-1.5.6.pom
  100.0% [##########] 2.2 KiB (10.5 KiB / s)
https://repo1.maven.org/maven2/ch/epfl/scala/sbt-scalafix_2.12_1.0/0.10.4/sbt-scalafix-0.10.4.pom
  100.0% [##########] 3.1 KiB (14.6 KiB / s)
https://repo1.maven.org/maven2/com/eed3si9n/sbt-assembly_2.12_1.0/2.1.1/sbt-assembly-2.1.1.pom
  100.0% [##########] 2.2 KiB (10.5 KiB / s)
https://repo1.maven.org/maven2/ch/epfl/scala/bloop-config_2.12/1.5.5/bloop-config_2.12-1.5.5.pom
  100.0% [##########] 2.1 KiB (75.1 KiB / s)
https://repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_2.12/2.4.0/jsoniter-scala-c…
  100.0% [##########] 2.3 KiB (162.9 KiB / s)
[info] Resolved  dependencies
[info] Fetching artifacts of
https://repo1.maven.org/maven2/ch/epfl/scala/bloop-config_2.12/1.5.5/bloop-config_2.12-1.5.5.jar
  100.0% [##########] 186.2 KiB (5.3 MiB / s)
https://repo1.maven.org/maven2/ch/epfl/scala/sbt-bloop_2.12_1.0/1.5.6/sbt-bloop-1.5.6.jar
  100.0% [##########] 102.0 KiB (2.8 MiB / s)
https://repo1.maven.org/maven2/ch/epfl/scala/sbt-scalafix_2.12_1.0/0.10.4/sbt-scalafix-0.10.4.jar
  100.0% [##########] 264.6 KiB (7.4 MiB / s)
https://repo1.maven.org/maven2/com/eed3si9n/sbt-assembly_2.12_1.0/2.1.1/sbt-assembly-2.1.1.jar
  100.0% [##########] 122.2 KiB (3.4 MiB / s)
https://repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_2.12/2.4.0/jsoniter-scala-c…
  100.0% [##########] 164.5 KiB (4.6 MiB / s)
[info] Fetched artifacts of
/tmp/chipyard/sims/firesim/sim/build.sbt:40: warning: method sonatypeRepo in class ResolverFunctions is deprecated (since 1.7.0): Use sonatypeOssRepos instead e.g. `resolvers ++= Resolver.sonatypeOssRepos("snapshots")`
    Resolver.sonatypeRepo("snapshots"),
             ^
/tmp/chipyard/sims/firesim/sim/build.sbt:41: warning: method sonatypeRepo in class ResolverFunctions is deprecated (since 1.7.0): Use sonatypeOssRepos instead e.g. `resolvers ++= Resolver.sonatypeOssRepos("snapshots")`
    Resolver.sonatypeRepo("releases"),
             ^
java.lang.NoSuchMethodError: 'sbtassembly.CustomMergeStrategy$ sbtassembly.AssemblyPlugin$autoImport$.CustomMergeStrategy()'
        at $8fe2db090412190b99c4$.<init>(build.sbt:6)
        at $8fe2db090412190b99c4$.<clinit>(build.sbt)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:495)
        at java.base/java.lang.Class.forName(Class.java:474)
        at sbt.compiler.Eval$.getModule(Eval.scala:607)
        at sbt.compiler.EvalDefinitions.values(Eval.scala:58)
        at sbt.internal.DefinedSbtValues.$anonfun$values$1(LoadedSbtFile.scala:50)
        at scala.collection.immutable.List.flatMap(List.scala:366)
        at sbt.internal.DefinedSbtValues.values(LoadedSbtFile.scala:50)
        at sbt.internal.EvaluateConfigurations$.$anonfun$evaluateSbtFile$4(EvaluateConfigurations.scala:166)
        at sbt.internal.Load$.loadSettingsFile$1(Load.scala:1119)
        at sbt.internal.Load$.$anonfun$discoverProjects$2(Load.scala:1128)
        at scala.collection.MapLike.getOrElse(MapLike.scala:131)
        at scala.collection.MapLike.getOrElse$(MapLike.scala:129)
        at scala.collection.AbstractMap.getOrElse(Map.scala:65)
        at sbt.internal.Load$.memoLoadSettingsFile$1(Load.scala:1127)
        at sbt.internal.Load$.$anonfun$discoverProjects$4(Load.scala:1135)
        at scala.collection.immutable.List.map(List.scala:293)
        at sbt.internal.Load$.loadFiles$1(Load.scala:1135)
        at sbt.internal.Load$.discoverProjects(Load.scala:1149)
        at sbt.internal.Load$.discover$1(Load.scala:901)
        at sbt.internal.Load$.loadTransitive(Load.scala:955)
        at sbt.internal.Load$.loadProjects$1(Load.scala:738)
        at sbt.internal.Load$.$anonfun$loadUnit$12(Load.scala:741)
        at sbt.internal.Load$.timed(Load.scala:1406)
        at sbt.internal.Load$.$anonfun$loadUnit$1(Load.scala:741)
        at sbt.internal.Load$.timed(Load.scala:1406)
        at sbt.internal.Load$.loadUnit(Load.scala:694)
        at sbt.internal.Load$.$anonfun$builtinLoader$4(Load.scala:492)
        at sbt.internal.BuildLoader$.$anonfun$componentLoader$5(BuildLoader.scala:180)
        at sbt.internal.BuildLoader.apply(BuildLoader.scala:245)
        at sbt.internal.Load$.loadURI$1(Load.scala:554)
        at sbt.internal.Load$.loadAll(Load.scala:570)
        at sbt.internal.Load$.loadURI(Load.scala:500)
        at sbt.internal.Load$.load(Load.scala:479)
        at sbt.internal.Load$.$anonfun$apply$1(Load.scala:241)
        at sbt.internal.Load$.timed(Load.scala:1406)
        at sbt.internal.Load$.apply(Load.scala:241)
        at sbt.internal.Load$.defaultLoad(Load.scala:56)
        at sbt.BuiltinCommands$.liftedTree1$1(Main.scala:961)
        at sbt.BuiltinCommands$.doLoadProject(Main.scala:961)
        at sbt.BuiltinCommands$.$anonfun$loadProjectImpl$2(Main.scala:914)
        at sbt.Command$.$anonfun$applyEffect$4(Command.scala:150)
        at sbt.Command$.$anonfun$applyEffect$2(Command.scala:145)
        at sbt.Command$.process(Command.scala:189)
        at sbt.MainLoop$.$anonfun$processCommand$5(MainLoop.scala:245)
        at scala.Option.getOrElse(Option.scala:189)
        at sbt.MainLoop$.process$1(MainLoop.scala:245)
        at sbt.MainLoop$.processCommand(MainLoop.scala:278)
        at sbt.MainLoop$.$anonfun$next$5(MainLoop.scala:163)
        at sbt.State$StateOpsImpl$.runCmd$1(State.scala:289)
        at sbt.State$StateOpsImpl$.process$extension(State.scala:325)
        at sbt.MainLoop$.$anonfun$next$4(MainLoop.scala:163)
        at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
        at sbt.MainLoop$.next(MainLoop.scala:163)
        at sbt.MainLoop$.run(MainLoop.scala:144)
        at sbt.MainLoop$.$anonfun$runWithNewLog$1(MainLoop.scala:119)
        at sbt.io.Using.apply(Using.scala:27)
        at sbt.MainLoop$.runWithNewLog(MainLoop.scala:112)
        at sbt.MainLoop$.runAndClearLast(MainLoop.scala:66)
        at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:51)
        at sbt.MainLoop$.runLogged(MainLoop.scala:42)
        at sbt.StandardMain$.runManaged(Main.scala:223)
        at sbt.xMain$.$anonfun$run$11(Main.scala:133)
        at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
        at scala.Console$.withIn(Console.scala:230)
        at sbt.internal.util.Terminal$.withIn(Terminal.scala:578)
        at sbt.internal.util.Terminal$.$anonfun$withStreams$1(Terminal.scala:358)
        at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
        at scala.Console$.withOut(Console.scala:167)
        at sbt.internal.util.Terminal$.$anonfun$withOut$2(Terminal.scala:568)
        at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
        at scala.Console$.withErr(Console.scala:196)
        at sbt.internal.util.Terminal$.withOut(Terminal.scala:568)
        at sbt.internal.util.Terminal$.withStreams(Terminal.scala:358)
        at sbt.xMain$.withStreams$1(Main.scala:87)
        at sbt.xMain$.run(Main.scala:121)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:578)
        at sbt.internal.XMainConfiguration.run(XMainConfiguration.java:57)
        at sbt.xMain.run(Main.scala:46)
        at xsbt.boot.Launch$.$anonfun$run$1(Launch.scala:149)
        at xsbt.boot.Launch$.withContextLoader(Launch.scala:176)
        at xsbt.boot.Launch$.run(Launch.scala:149)
        at xsbt.boot.Launch$.$anonfun$apply$1(Launch.scala:44)
        at xsbt.boot.Launch$.launch(Launch.scala:159)
        at xsbt.boot.Launch$.apply(Launch.scala:44)
        at xsbt.boot.Launch$.apply(Launch.scala:21)
        at xsbt.boot.Boot$.runImpl(Boot.scala:78)
        at xsbt.boot.Boot$.run(Boot.scala:73)
        at xsbt.boot.Boot$.main(Boot.scala:21)
        at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.NoSuchMethodError: 'sbtassembly.CustomMergeStrategy$ sbtassembly.AssemblyPlugin$autoImport$.CustomMergeStrategy()'
[error] Use 'last' for the full log.
[warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
@KarlJoad KarlJoad added the bug Something isn't working label Oct 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant