-
Notifications
You must be signed in to change notification settings - Fork 17
deal with classpath issues during bootstrapping #5
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
Comments
or:
|
Won't the first method result in picking up Scala version used by sbt itself? |
What does it mean? For a while I thought that the problem is that a module (let's say scala-xml) defines a project "org.scala-lang.modules" %% "scala-xml" % xxx but then this project depends on scala-tools configuration (to resolve scala compiler) and scala-compiler depends on scala-xml so we get a circular dependency. I thought that the solution would be to resolve scala-tools configuration in isolation from the project so Ivy wouldn't see the dependency and wouldn't complain. This is safe because scala-tools consits of JARs used at runtime of scala compiler/scaladoc/repl. They should never be part of the classpath used for compiling. |
This is unrelated to the testing issues we were talking about. This is about bootstrapping a release, and this is confirmed to resolve the problem. The current workaround is: https://github.com/scala/jenkins-scripts/blob/master/job/scala-release-2.11.x#L124 -- set a dummy version for scala-xml, build docs, then set real version and build the release. The dummy version is needed because ivy drops jars involved in a circular dependency from the classpath and thus scaladoc fails because it can't find any scala-xml classes. The cycle occurs because scaladoc depends on the very same version of scala-xml that it's documenting. |
@szeiger is this no longer an issue in the 2.12 build? |
It's the first time I look at this ticket and I don't understand what it's about. The link above is not stable. I tried to look in the history but it wasn't obvious to me what it's supposed to point at. Since the dependencies on scala-xml haven't changed in 2.12, I have no reason to believe that it would behave any differently than in 2.11. |
It would affect 2.12 in the same way as 2.11. My recollection is that we had to put temporary version number hacks in place in the bootstrap script when documenting the modules because we would be depending on scala-xml (for running scaladoc) while documenting scala-xml (same version). This cycle caused ivy to drop this artifact from the class path, which would cause scaladoc to fail. The same hack that resolved this in 2.11 is also in place for 2.12 AFAIK |
Is this the same issue that causes scala/scala-xml#112 (among others)? Or a different one? |
I haven't investigated closely, but that looks unrelated.
…On Thu, Dec 1, 2016 at 13:19 Aaron S. Hawley ***@***.***> wrote:
Is this the same issue that causes scala/scala-xml#112
<scala/scala-xml#112> (among others)? Or a
different one?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#5 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAFjy3IZPYC8PEoVHnJazz6d8gvsOCyaks5rDznHgaJpZM4Bn9ix>
.
|
I am closing this, because I think the solution is to finally just cut the remaining thin dependency of the scaladoc tool on scala-xml, and forbid any such circular dependencies between scala and it modules from ever arising again. circular dependencies are what Pandora's box was full of |
core dependencies are dropped by ivy because of faux circular dependencies
to avoid problem with circular dependency when bootstrapping the modules
The text was updated successfully, but these errors were encountered: