Help with 1.1 release!

The Julia 1.1 release is being prepared. As part of that process, PkgEval is run on all registered packages and we investigate any package that has gone from passing on 1.0 to failing on the 1.1 release branch. If you’d like to get involved and help make the release happen, the inestimable @kristoffer.carlsson has prepared a list of these packages:

https://github.com/JuliaLang/julia/issues/30374

Join in the fun and help figure out why some package may have broken.

15 Likes

Is there some kind of bisection tool available somewhere? It would be nice if I could just run a script and it will try out commits between 1.0 and 1.1, build Julia and test my package until it finds a commit such that tests fail on that commit but pass on the previous.

(If not, I’ll write it myself…)

1 Like

If you’re building julia from source, then you can use the git bisect command to do exactly that.

3 Likes

On one of my computers, I got this error while trying to build Julia 1.1:

-- Installing: /home/chriselrod/Documents/languages/jnext/usr-staging/llvm-6.0.1/build_Release/home/chriselrod/Documents/languages/jnext/usr/tools/yaml-bench
-- Installing: /usr/lib/ocaml/llvm/llvm.mli
CMake Error at bindings/ocaml/llvm/cmake_install.cmake:49 (file):
  file INSTALL cannot copy file
  "/home/chriselrod/Documents/languages/jnext/deps/scratch/llvm-6.0.1/build_Release/bindings/ocaml/llvm/llvm.mli"
  to "/usr/lib/ocaml/llvm/llvm.mli".
Call Stack (most recent call first):
  bindings/ocaml/cmake_install.cmake:42 (include)
  cmake_install.cmake:64 (include)


make[1]: *** [/home/chriselrod/Documents/languages/jnext/deps/llvm.mk:481: /home/chriselrod/Documents/languages/jnext/usr-staging/llvm-6.0.1/build_Release.tgz] Error 1
make: *** [Makefile:57: julia-deps] Error 2

I can’t reproduce it on another computer on the same commit (git checkout release-1.1 && git pull). This is a fresh clone.

The error is in trying:

CMake Error at bindings/ocaml/llvm/cmake_install.cmake:49 (file):
  file INSTALL cannot copy file
  "/home/chriselrod/Documents/languages/jnext/deps/scratch/llvm-6.0.1/build_Release/bindings/ocaml/llvm/llvm.mli"
  to "/usr/lib/ocaml/llvm/llvm.mli".

it of course does not have permission to write to “/usr/lib/ocaml/llvm/llvm.mli”. Why would it try to write there while compiling Julia?

On the computer where I tried to reproduce this (but failed) there is no “/usr/lib/ocaml”.
I am getting the error with Antergos. Everything works as it should on Fedora.

I don’t want to compile with root privileges, but I did try sudo make anyway. Then the build worked.

I compiled 1.1 from source, and started checking to see if my unregistered package https://github.com/mcreel/Econometrics.jl would work. It seems to work quite well. This package has a fair number of dependencies, but fairly widely used ones, so I don’t know if I can generate much useful information.

One thing I have noticed is that Plots.jl is in the REQUIRE file, and “using Plots” is in the main module file, but Plots was not installed when the package was installed, via ] dev /home/michael/git/Econometrics.jl . Doing ] resolve did not cause it to be added. Many dependencies were installed when the dev statement was issued. I expected them to all be installed.

Adding Plots manually did solve the problem.

Today I start having a strange failure with nightly builds. If you see here the tests with 1.0.3 pass but those with nightly fails. This is a very recent issue since my last commit from a day or two had passed with nightly. The failure seems simple to track but I cannot reproduce it locally.

StaticNumbers.jl#master passes tests on 1.1-dev as of 2018-12-1920T08:26-5:00

:sunny:

Please open an issue about this.

I have found a regression with 1.1DEV.
Test case is here:

It depends on StaticArrays, LinearAlgebra, BenchmarkTools

I’m testing two functions (they are event shapes at particle colliders).

Julia Version 1.0.4-pre.0
Commit 5b7e8d9d4e (2018-12-19 09:38 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, haswell)

gives:

  35.604 ms (3009 allocations: 305.02 KiB)
  3.304 s (1003006 allocations: 30.83 MiB)

With

Julia Version 1.1.0-DEV.840
Commit 6329be9aab (2018-12-20 04:39 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, haswell)

I am getting

  35.885 ms (3005 allocations: 304.95 KiB)
  6.061 s (1003006 allocations: 30.83 MiB)

So, the second function slows down by 80%.

I can not reproduce this on master. Likely fixed by https://github.com/JuliaLang/julia/pull/30420 which is also the backport branch.

Good to know! Thanks for the quick check.

Done
https://github.com/JuliaLang/julia/issues/30462

1 Like