-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Merge 2.11 to 2.12 [ci: last-only] #5237
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
Conversation
lrytz
commented
Jun 19, 2016
Cherry-picked c5f3d3f Edited comment: in stringOf, let GenIterable subsume both Iterable and ParIterable. This change is required for Scala.js compatibility as it does not support parallel collections. Conflicts: src/library/scala/runtime/ScalaRunTime.scala
Fresh name for catcher gets a dollar. "Here, have a dollar." Test due to retronym demonstrates possible conflict. Over the lifetime of the universe, surely at least one code monkey would type in that identifier to catch a banana.
Typo fix build.sbt
SI-9737 [no-merge] Backport stringOf ParIterable
SI-9245 Fresher name in Try and test
- Support directories in `-doc-external-doc`: It is documented as accepting a “classpath_entry_path” for the keys but this only worked for JARs and not for individual class files. When checking for external-doc mappings for a Symbol, we now find the root directory relative to a class file instead of using the full class file path. The corresponding tests for SI-191 and SI8557 are also fixed to support individual class files instead of JARs in partest. This is required for the sbt build which runs partest on “quick” instead of “pack”. - Fix version and repository handling for bootstrapping. The bootstrap `scalaInstance` can now be resolved from any repository added to the project (not just the bootstrap repositories) by using a different workaround for sbt/sbt#1872. - Workaround for sbt/sbt#2640 (putting the wrong `scalaInstance` on partest’s classpath). The required `ScalaInstance` constructor is deprecated, so we have to disable deprecation warnings and fatal warnings until there is a better fix. - Add MiMa to the sbt build (port of the old `test.bc` ant task). The sbt-mima plugin doesn’t have all the features we need, so we do it manually in a similar way to what the plugin does. Checks are done in both directions for the `library` and `compiler` projects. The base version has to be set in `build.sbt`. When set to `None`, MiMa checks are skipped. MiMa checks are run sequentially to avoid spurious errors (see lightbend-labs/mima#115). - Port the OSGi tests to the sbt build. The set of JARs that gets copied into build/osgi as bundles is a bit different from the ant build. We omit the source JARs but add additional modules that are part of the Scala distribution, which seems more correct. - Get rid up `pull-binary-libs.sh` for the sbt build. Add artifacts are resolved from the special bootstrap repository through Ivy. The special `code.jar` and `instrumented.jar` artifacts are copied to the location where partest expects them (because these paths are hardcoded in partest). Other extra JARs for partest in `test/files/lib` are referenced directly from the Ivy cache. - Move common settings that should be available with unqualified names in local `.sbt` files and on the command line into an auto-plugin. - Add an `antStyle` setting to sbt to allow users to easily enable ant-style incremental compilation instead of sbt’s standard name hashing with `set antStyle := true`. - Disable verbose `info`-level logging during sbt startup for both, `validate/test` and `validate/publish-core` jobs. Update logging is no longer disabled when running locally (where it is useful and doesn’t generate excessive output). - Pass optimization flags for scalac down to partest, using the new partest version 1.0.15\6. - Call the new sbt-based PR validation from `scripts/jobs/validate/test`. - Disable the tests `run/t7843-jsr223-service` and `run/t7933` from scala#4959 for now. We need to set up a new test project (either partest or junit) that can run them on a packaged version of Scala, or possibly move them into a separate project that would naturally run from a packaged Scala as part of the community build.
Use sbt for PR validation [ci: last-only]
|
review by @szeiger |
3302852 to
badeb34
Compare
| "test" \ | ||
| "partest run pos neg jvm" \ | ||
| "partest res scalap specialized scalacheck" \ | ||
| "partest instrumented presentation" \ |
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.
I've only seen PermGen errors on 2.11 when running too many partest tests in one go, but the heap error here looks similar. Splitting this up into two runs may work better:
"partest instrumented" \
"partest presentation" \
badeb34 to
6be982e
Compare
|
hmm, no, that didn't help.. |
|
I can reproduce the OOME locally, when running the I'm not sure that partest correctly picks up the java options defined here: f2d0f1e#diff-fdc3abdfd754eeb24090dbd90aeec2ceR691. They do show up in the log output: but when I change them to something larger ( |
|
to reproduce, run note that |
|
@lrytz perhaps try passing invalid JVM options to make sure they are passed down? |
|
Good idea, I tried that. However the result is the same, we still get OOMEs while compiling the first tests. After that error, the other tests are compiled an run, and they do fail because of the invalid flag. So it seems that the jvm flags are only passed when running the test, but not to the JVM that compiles the tests. |
6be982e to
e4c2d68
Compare
|
just saw that there's a separate setting for the java options of the JVM that's running partest, changing this helped locally. added a commit 62035e9. |
|
If it's the actual |
|
IRC, partest runs the compiler (actually multiple instances of it) in its own JVM |
|
Ah, I think you're right. It still uses |
|
it helped, all partest tests passed. now we just need to fix osgi :) |
|
I haven't cross-checked with 2.11.x yet but this looks suspicious: Maybe we broke something in the bundle creation with an earlier merge of the OSGi functionality into 2.12.x? |
|
So far unable to reproduce this locally. I had some other errors (indicating duplicate bundles) because I didn't run |
|
same here, after |
|
It shouldn't be needed on CI. There shouldn't be anything in the folder that we don't want. The error message when this occured locally was also pretty much the opposite from what we've seen on CI (multiple instances of a bundle instead of |
|
/rebuild Partest failures in: Can't reproduce locally. Spurious errors? |
|
it would be great if the jenkins output would show the partest log output of failed tests (see https://scala-ci.typesafe.com/job/scala-2.12.x-validate-test/2389/consoleFull), it used to be the case with ant. not sure what flags we need to pass to partest for that.. |
|
@lrytz |
|
Okay, now we got a totally different set of failing tests... |
|
@lrytz I'm trying to figure out why ant shows more output. I'll push a commit to enable it in sbt, too. Maybe this will give us an idea of what the failures are. |
|
Now that I've added the failure logging in #5242, partest succeeds (as expected). But I was finally able to reproduce the OSGi failure locally. I'm trying to narrow it down. |
|
I was able to reproduce the failure on every test run locally. Upgrading to newer versions of the OSGi test frameworks (same as in the ant build on 2.12.x) seems to fix it. Let's see what Jenkins has to say... |
|
OSGi tests working again! Now disabling MiMa and hoping for a green build (or some of those spurious errors, now with more debug output) |
|
cool! closing this one in favor of #5242 |