Skip to content

Shapeless build fails in recent 2.11.x builds #202

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

Closed
SethTisue opened this issue Jan 14, 2016 · 24 comments
Closed

Shapeless build fails in recent 2.11.x builds #202

SethTisue opened this issue Jan 14, 2016 · 24 comments
Assignees

Comments

@SethTisue
Copy link
Member

[shapeless] [error] **** Missing dependency: the library org.scalamacros#paradise is not provided (in space "default") by any project in this configuration file.
[shapeless] [error] In order to control which version is used, please add the corresponding project to the build file
[shapeless] [error] (or use "check-missing:false" to ignore (not recommended)).
[shapeless] java.lang.RuntimeException: Required dependency not found
  • last 2.11.x-jdk6 success: d6a4f56e0783655c48244ec23c4f4c2d98401a72 (Jan 4)
  • first 2.11.x-jdk6 failure: 7c0a87364c5d990fc50923dfd0af8aaada4683c2 (Jan 14)
  • last 2.11.x-jdk8 success: same as above
  • first 2.11.x-jdk8 failure: 2ce5d7dfa1fac107b277bee862708ff0c9ac71ca (Jan 13)
% git hist 2ce5d7dfa1fac107b277bee862708ff0c9ac71ca ^d6a4f56e0783655c48244ec23c4f4c2d98401a72
* 2ce5d7d - Revert "Updated Sonatype realm." (26 hours ago) <Miles Sabin>
*   8075ac4 - Merge pull request #531 from dwijnand/non-fatal-console (26 hours ago) <Miles Sabin>
|\  
| * 454c51a - Disable -Xfatal-warnings in console (28 hours ago) <Dale Wijnand>
|/  
*   23ace5c - Merge pull request #528 from dwijnand/CompatContext-is-a-runtime.Context (34 hours ago) <Miles Sabin>
|\  
| * 07f4aba - Drop c2 in CaseClassMacrosMixin (compat.scala) (2 days ago) <Dale Wijnand>
|/  
* 495e275 - Updated Sonatype realm. (2 days ago) <Miles Sabin>
* 0e2a141 - Refreshed Travis env vars. (2 days ago) <Miles Sabin>
* d16892e - Merge pull request #515 from dwijnand/uni (2 days ago) <Miles Sabin>
* e387788 - Add myself (Dale) to compat.scala copyright holders (2 days ago) <Dale Wijnand>
* 93413fc - Switch to contiguous copyright date ranges (2 days ago) <Dale Wijnand>
* aede308 - Add macro-compat to enable Scala 2.10 in master (3 days ago) <Dale Wijnand>
* 81274d7 - Misc cleanups (3 days ago) <Dale Wijnand>
@SethTisue SethTisue self-assigned this Jan 14, 2016
@SethTisue
Copy link
Member Author

looks like milessabin/shapeless@aede308 is the culprit

@SethTisue
Copy link
Member Author

note that scalamacros/paradise used to be part of the community build, but was removed in ecae16d

@SethTisue
Copy link
Member Author

@SethTisue
Copy link
Member Author

adding paradise wasn't enough, needed to add milessabin/macro-compat as well.

this led to (in this run):

[macro-compat] [error] **** Missing dependency: the library org.scalamacros#quasiquotes is not provided (in space "default") by any project in this configuration file.
[macro-compat] [error] In order to control which version is used, please add the corresponding project to the build file
[macro-compat] [error] (or use "check-missing:false" to ignore (not recommended)).

for reasons I don't understand. the logic in https://github.com/milessabin/macro-compat/blob/master/build.sbt for only including the quasiquotes dependency on 2.10 seems correct to me:

> eval CrossVersion.partialVersion("2.11.8-dbuildx1df2747ab4cf758a246c29f4688c6bdee4ad043d")
[info] ans: Option[(Int, Int)] = Some((2,11))
> ++2.11.8-dbuildx1df2747ab4cf758a246c29f4688c6bdee4ad043d show libraryDependencies
[info] Setting version to 2.11.8-dbuildx1df2747ab4cf758a246c29f4688c6bdee4ad043d
[info] Reapplying settings...
[info] Set current project to test (in build file:/Users/tisue/macro-compat/)
[info] List(org.scala-lang:scala-library:2.11.8-dbuildx1df2747ab4cf758a246c29f4688c6bdee4ad043d, org.scala-lang:scala-reflect:2.11.8-dbuildx1df2747ab4cf758a246c29f4688c6bdee4ad043d:provided, org.scala-lang:scala-compiler:2.11.8-dbuildx1df2747ab4cf758a246c29f4688c6bdee4ad043d:provided, org.scalamacros:paradise:2.1.0:plugin->default(compile), org.scalatest:scalatest:3.0.0-M12:test, org.scalacheck:scalacheck:1.12.5:test)

no quasiquotes! so why does it end up as a dependency in the context of the community build?

@SethTisue
Copy link
Member Author

fyi @milessabin

@SethTisue
Copy link
Member Author

to get the build green again, in #204 I froze Shapeless at d6a4f56e0783655c48244ec23c4f4c2d98401a72 for now

@SethTisue
Copy link
Member Author

@gkossakowski any insight?

@milessabin
Copy link

The change in milessabin/shapeless@aede308 is a switch from a multi-branch build (ie. separate branches for 2.10.x and 2.11.x+) to a single branch build using macro-compat. macro-compat is needed as a dependency for 2.11.x+ but that should be incredibly lightweight ... just enough to completely eliminate an @bundle annotation.

We're currently cross-building for 2.12.0-M3 without a problem ... I'm not clear what the issue is here?

@milessabin
Copy link

Is macro-compat itself part of the community build?

@dwijnand
Copy link
Member

It's a shame macro-compat isn't in the community builds as I guess it would also be broken, and would've broken long before this ticket. And it would've either been broken when trying to add it, or we would've been able to bisect to what broke it..

@dwijnand
Copy link
Member

@milessabin
Copy link

Any more info on this?

@dwijnand
Copy link
Member

I heard a rumour that you can't have builds in the community build without all its dependencies also in the community build. So perhaps the next step is to add macro-compat?

@SethTisue
Copy link
Member Author

Is macro-compat itself part of the community build

it wasn't, but I tried adding it as part of my attempt to fix this. I already said so in #202 (comment), you might want to give that comment a closer re-read in order to understand where we stand with this.

@dwijnand
Copy link
Member

@SethTisue One suspect, to me at least, is the log line:

[macro-compat] [info] Setting version to 2.10.6

It looks to me like it wants to test building everything against scala version 2.11.8-dbuildx1df2747ab4cf758a246c29f4688c6bdee4ad043d but then for some reason it switches the macro-compat project to 2.10.6.. and then fails to find quasiquotes?

Does that looks suspect to you? Do you know why it might be doing that?

@milessabin
Copy link

macro-compat has a .sbtrc which contains,

alias boot = ;reload ;project testJVM ;++2.10.6 ;iflast shell

Could that be the issue? It doesn't cause a problem on Travis.

@dwijnand
Copy link
Member

Good find, yeah it could very well be.

For reference that's there for the development convenience of test compiling and running tests under 2.10.6.

@dwijnand
Copy link
Member

Oh and the convenience of test compiling and running tests only for the JVM, not Scala.js, during development.

@milessabin
Copy link

@SethTisue That's been merged now ... could you give it another try?

@SethTisue
Copy link
Member Author

@dwijnand
Copy link
Member

That seems to have worked?

[macro-compat] Publishing: testJVM
[macro-compat] --== End Building macro-compat ==--
[shapeless] Publishing: shapeless
[shapeless] --== End Building shapeless ==--

SethTisue added a commit to SethTisue/community-build that referenced this issue Jan 19, 2016
because latest Shapeless needs them. fixes scala#202
@SethTisue
Copy link
Member Author

merged #206. thanks, Dale and Miles! nice not just to get the regression fixed, but to get two new projects in.

@dwijnand
Copy link
Member

Cool :)

rssh pushed a commit to rssh/community-builds that referenced this issue Jan 21, 2016
because latest Shapeless needs them. fixes scala#202
SethTisue referenced this issue in com-lihaoyi/fastparse Jan 26, 2016
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