-
Notifications
You must be signed in to change notification settings - Fork 19
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
split libpolymake_julia and use artifacts #308
Conversation
disabled custom path for polymake / libpolymake-julia for now
only the libcxxwrap version used at build-time seems relevant here
try to run on ubuntu 20.04 as well
and bump normaliz
no build.jl anymore
add ubuntu 16.04 for testing temporarily add manifest for deps
@benlorenz great! Perhaps turn JuliaPackaging/Yggdrasil@master...benlorenz:polymake into a draft PR? Then one could use the GitHub review features to comment on it (also, it doesn't hurt to see the result of the build tests there). As to instructions for using |
Concerning the use of Yes, I have tried this at the department in Aachen, in order to reduce the space/maintenance overhead for users, as follows.
(for GAP),
(for cxxwrap), etc.
This worked without problems. If one wants to be more general, one should mention how to customize the path Where would be an appropriate place for such instructions? |
First off, we have to decide whether to put the instructions into a single place, and then link to that from everywhere, or whether we want to duplicate it in each involved package. The former has the advantage of improvements and fixes only having to be made in a single place. Moreover, it could talk about how to do this for multiple packages at once etc. The latter has the advantage that the instructions can be customized for the relevant package. I think Anyway, lots of options... I suggest this: we start by putting the instructions into a page on the Oscar.jl wiki. There, it is easy for multiple of us to edit it until we like it. Once it is "good enough", we can still worry about duplicating it to each package or moving it into a file in the Oscar.jl repo, or ... But that decision shouldn't delay just writing the whole thing ;-). CC @fieker in case he wants to add some more bike shed color options :-) |
I wanted to do this before I went away for two weeks but was somewhat short of free time, I will try to do this until the beginning of August. The instructions I was referring to (cmake build + override) should be put in the currently empty readme of the |
I've written this simple script to find the artifacts and their hashes for a given Julia package (which must have been added with using Pkg, Pkg.Artifacts
for pkg in ARGS
eval(Meta.parse("using $(pkg)"))
end
for pkg in ARGS
println("Artifacts for $(pkg):")
artifacts_toml = find_artifacts_toml(pathof(eval(Symbol(pkg))))
if artifacts_toml === nothing
println(" none")
else
artifacts = Pkg.Artifacts.load_artifacts_toml(artifacts_toml)
for (artifact, meta) in artifacts
println(" $(artifact) => $(meta["git-tree-sha1"])")
end
end
end Example use:
This gives you the hash to plug into |
Draft for polymake_jll created: JuliaPackaging/Yggdrasil#1368 |
update many dependencies to jll based binaries, but using legacy installation as building the interface and wrappers wont work otherwise (at least for now) flint_jll currently at 0.0.2 (which corresponds to pre 2.6) for compatibility reasons
moved scripts, json dirs and resources
and bump Manifest for testing
4125356
to
1a0baba
Compare
7f8c616
to
4d3ee1a
Compare
All todo items should be done:
So I think this is ready. Probably we should add a short guide for a development workflow somewhere but this can be done later. Maybe someone else can experiment a little. |
tearing those apart must have been a serious job! 🎉 |
That went surprisingly quick, adjusting the cmake stuff was the most annoying part. Still a lot less work than getting perl and polymake to build and run with the artifacts. One thing that remains is a github workflow file for the libpolymake-julia repo: It should build the library, add overrides and run some tests. Probably the Polymake.jl testsuite, maybe we can run the (small) polymake testsuite ( = examples) as well. |
Since I don't really want to spend more time on making the old build-system nicer (e.g. support custom installation paths), this is an updated version of #304 using artifacts.
At the moment this comes with a fixed
Manifest.toml
to fetch thepolymake_jll
andlibpolymake_julia_jll
from my github repos, but it does already test successfully even on an old Ubuntu 16.04 that we couldn't support withoutlibpolymake-julia
separately.libpolymake-julia lives here: https://github.com/oscar-system/libpolymake-julia
binaries: https://github.com/benlorenz/libpolymake_julia_jll.jl and https://github.com/benlorenz/polymake_jll.jl
It would be great if @kalmarek or @saschatimme can have a look, also at the builders, and especially the
init_block
.I can give some details / explanations for the builders later.
advantages:
Overrides.toml
(for all Artifacts-enabled packages at once)disadvantages:
TODO:
libcxxwrap-julia
version withinlibpolymake-julia
for the check insrc/setup_types.jl
libpolymake-julia
and usingOverrides.toml
ENV["POLYMAKE_CONFIG"]
is set