-
Notifications
You must be signed in to change notification settings - Fork 28.5k
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
[ SPARK-1812] Adjust build system and tests to work with scala 2.11+ repl port. #2615
Conversation
QA tests have started for PR 2615 at commit
|
QA tests have finished for PR 2615 at commit
|
Test FAILed. |
QA tests have started for PR 2615 at commit
|
Test FAILed. |
Tests timed out for PR 2615 at commit |
Test FAILed. |
Hey @ScrapCodes thanks for posting the whole thing here. In terms of the way this interacts with the build - I really think we'll need to write a maven plugin to make this all work. The reason is that we need to publish separate artifacts for Scala 2.11 and 2.10 - we can't publish a single artifact that relies on profile activation. The reason is that most build tools (Maven, SBT) won't respect profiles from other pom's you are linking against. To test this yourself you can publish locally for Scala 2.11 and then try to write a project that links against it - does it work? My guess is that it won't work. Really I think what we need is a build plug-in that re-writes our published poms to do two things:
You said earlier that it's not possible for maven build plug-ins to modify the build, but I'm pretty sure it is - because the |
Hey Patrick, thanks for looking at this. I did not say it is not possible. I just said the best(easiest ) way I could come up was to modify the maven install plugin. |
And this https://github.com/ScrapCodes/scala-install-plugin plugin takes care of publishing correct poms too. |
So now to try this patch just `mvn install - this plugin. After that look at the published poms. |
Test FAILed. |
I think you mean to try |
Ahh wait, I would still need to alter maven-install-plugin. Because, there has to be someway to tell install plugin that it has to install at location which has _2.10 at the end. Which means we will anyway substitute install plugin with something that does this. And I guess then best thing to do is use scala-install-plugin. |
213aded
to
812db5b
Compare
Hey @pwendell, I have updated this patch to include effective pom changes. So that you can try it out. Also I think this is ready for review ! |
@@ -264,6 +284,10 @@ | |||
<scope>test</scope> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.twitter</groupId> | |||
<artifactId>chill-java</artifactId> | |||
</dependency> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note to self: remove it.
QA tests have started for PR 2615 at commit
|
Tests timed out for PR 2615 at commit |
Test FAILed. |
Was any other design other than a wholesale copy/paste of the REPL considered? The commit message doesn't reveal much. We'd be happy to help out over in scala-internals if you want to find a better way. |
Hey Jason, |
It is a pity that we didn't realise that the finally accepted PR was insufficient for Spark. Would you be interested in proposing another PR against scala/scala to open things up sufficiently? Perhaps collaborate with @som-snytt to make this happen? My interest in this is making future Scala-version upgrades in Spark decoupled from compiler implementation details. |
I had a version for that SI-7747 that moved the scripting logic to a separate compiler phase which could be replaced by a user plugin. (But that also moved the repl away from text-based templating to tree transforms, so it was broader scope. Also, not sure if a plugin satisfies "decoupled from compiler details.") The work for the PR was only to satisfy Spark's needs as a repl consumer, so why not reopen the issue. |
812db5b
to
897ec60
Compare
QA tests have started for PR 2615 at commit
|
Sure @retronym and @som-snytt, I will give it an another try soon. |
case None => backwardCompatibility | ||
case Some(v) => | ||
if (backwardCompatibility.nonEmpty) | ||
println("Note: We ignore environment variables, when use of profile is detected in " + | ||
"conjunction with environment variable.") | ||
v.split("(\\s+|,)").filterNot(_.isEmpty).map(_.trim.replaceAll("-P", "")).toSeq | ||
} | ||
if(profiles.exists(_.contains("scala"))) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note to self: scala-
Test build #22353 has started for PR 2615 at commit
|
Test build #22353 has finished for PR 2615 at commit
|
Test FAILed. |
Test build #22356 has started for PR 2615 at commit
|
Jenkins, retest this please. |
Test build #22358 has started for PR 2615 at commit
|
Test build #22356 timed out for PR 2615 at commit |
Test FAILed. |
Test build #22358 timed out for PR 2615 at commit |
Test FAILed. |
Test build #22436 has started for PR 2615 at commit
|
95c2e8e
to
df2b19e
Compare
Test build #22441 has started for PR 2615 at commit
|
Test build #22441 has finished for PR 2615 at commit
|
Test FAILed. |
Test build #22444 has started for PR 2615 at commit
|
Test build #22444 has finished for PR 2615 at commit
|
Test FAILed. |
Jenkins, retest this please. (I might get lucky this time, Looks like the compilation failure is random.) |
Test build #22445 has started for PR 2615 at commit
|
Test build #22445 has finished for PR 2615 at commit
|
Test FAILed. |
Test build #22436 timed out for PR 2615 at commit |
Test FAILed. |
No description provided.