-
Notifications
You must be signed in to change notification settings - Fork 22
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
Add CI job against GAP master #995
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #995 +/- ##
=======================================
Coverage 75.75% 75.75%
=======================================
Files 51 51
Lines 4190 4191 +1
=======================================
+ Hits 3174 3175 +1
Misses 1016 1016
|
The helpsystem tests fail. @fingolfin do you have any idea whats going on there? |
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.
Thank you for making a start on this!
We need some addition tweaks. For example, we should force JuliaInterface
being rebuilt. It could be as simple as doing echo >> pkg/JuliaInterface/src/JuliaInterface.c
which modifies that file in a trivial
The test failures are there because etc/setup_override_dir.jl
does not install the GAP documentation. So we either skip those tests. Or we need to build and install the GAP docs. That could be done by doing make doc
(but that requires latex, and runs quite a bit; and it also needs GAPDoc.... so one would have to install at least that...) and then replace
run(`make install-bin install-headers install-libgap install-sysinfo install-gaproot`)
by
run(`make install`)
A much simpler and faster solution might be to take the docs from the GAP_lib_jll
(e.g. adding a symlink to the doc
dir in there into the right subdir of /tmp/gap_jll_override
... might be /tmp/gap_jll_override/share/gap/doc
but I'd have to look it up).
BTW do you have any idea what might cause these warnings?
#I The Julia package 'Downloads' cannot be loaded.
20244e1
to
af9f651
Compare
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.
it now works more or less for ubuntu. for macos there is some issue with JuliaInterface that I don't know how to handle
Pkg.develop(path=dirname(dirname(@__FILE__))) | ||
Pkg.add(["GAP_jll", "GAP_lib_jll"]) |
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.
This changed order of additions makes a little bit faster to precompile
pkgid = Base.identify_package("$(pkgname)_jll") | ||
uuid = string(pkgid.uuid) | ||
# does not work with julia 1.12-dev | ||
# pkguuid = string(pkgid.uuid) |
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.
This threw some (seemingly random) segfaults with nightly. But only if running from the console, not if copying everything to the reply.
Thus I took the easy solution and added the UUID to the arguments instead
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.
Just tried with Julia master and when running this code I actually got
ERROR: LoadError: type Nothing has no field uuid
which would suggest pkgid === nothing
, but then also the touch
below would be borked?
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.
if you print the pkgid, this succeeds (and prints something non-trivial), but i then get a segfault instead of a LoadError when accessing pkgid.uuid
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.
Indeed: printing the pkgid
makes it proceed -- that seems like a big regression in Julia, printing a value shouldn't change it form nothing
to something, should it? In particular since this works in the REPL (without printing):
pkgid = Base.identify_package("GAP_jll"); pkgid.uuid
Perhaps we should open an issue?
Anyway, so I inserted the print
and it proceeds, but I don't get a crash, I get this:
[ Info: Created temporary depot at /var/folders/d_/1zss2fnd6xdgclqnj8jj_27m0000gp/T/jl_7ABU3q
pkgname GAP has pkgid Base.PkgId(Base.UUID("5cd7a574-2c56-5be2-91dc-c8bc375b9ddf"), "GAP_jll")
pkgname GAP_lib has pkgid Base.PkgId(Base.UUID("de1ad85e-c930-5cd4-919d-ccd3fcafd1a3"), "GAP_lib_jll")
Precompiling GAP...
Info Given GAP was explicitly requested, output will be shown live
ERROR: LoadError: ArgumentError: Package GAP_jll [5cd7a574-2c56-5be2-91dc-c8bc375b9ddf] is required but does not seem to be installed:
- Run `Pkg.instantiate()` to install all recorded dependencies.
which makes no sense, as we run Pkg.instantiate()
. But I've inserted another Pkg.instantiate()
invocation right after the add_jll_override
calls.
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.
Thanks for reporting it upstream, it seems we've hit an IMHO rather serious looking code generation bug in Julia.
For now we can keep this workaround, but let's remove it again when they fix their bug.
For the macOS failures you basically need to insert |
a5f3b8a
to
2191928
Compare
Co-authored-by: Max Horn <max@quendi.de>
Co-authored-by: Max Horn <max@quendi.de>
This is shaping up quite well, thank you @lgoettgens |
I now reduced the number of jobs to 6 ubuntu ([master, stable-4.13] x [1.6, 1, nightly]) and 2 macOS ([master, stable-4.13] x [1]). |
Resolves the GAP.jl part of #994
This now seems to work.
This currently contains #999, and should be rebased once merged.