-
-
Notifications
You must be signed in to change notification settings - Fork 613
Meson: test void linux on CI and add devcontainer for it #40089
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
base: develop
Are you sure you want to change the base?
Conversation
I've no idea what this is supposed to be testing. This is definitely not the way a user would be installing sagemath on void linux, or is it?
☝️ my head is about to explode. BTW, once I'm not opposing to anything here, just stating an opinion. I thought the point of the meson build was to get rid of this nonsense. Installing sagemath "by hand" should be simpler than that. PS: I'm ready to switch to meson build for our package once it's ready. Is there a follow up to #39015? |
As far as I know, you don't have a void develop branch that follows the Sage develop branch, and, anyway, how do you test our develop/PRs ? I'm sure you don't re-write all the packages and what not involved in void install scripts (not sure how they are called), right? I assume this creates a container in which we have
I hear you -- now I am getting back to rational curves and schemes over
OK, perhaps @tobiasdiez got carried away - as in e.g. Fedora and Debian many packages are not present, so one has to deal with it. Tobias, do I make sense here?
Arch, Gentoo, and Void are outliers, as they try to be up to date, as opposed to "big tech Linux" Fedora/Debian/Suse.
|
It's supposed to be the new way of developing sagemath: install all system packages and run In general, I would agree in that these tests for void have limited value as you usual follow pretty closely the current develop branch of sage and provide up-to-date system dependencies. Things are harder for other linux distros.
Mine too. It's the typical syntactic sugar of sage-the-distro ;-)
Sure, you can also run uv with
What do you think should/can be improved?
Awesome! Yes, @antonio-rojas still made a few nice improvements to the CLI https://github.com/sagemath/sage/issues?q=is%3Apr%20author%3Aantonio-rojas
Void provides recent-enough versions for all system packages and meson uses all of them. sage-the-distro actually rejects a few of these dependencies and rebuilt them. So that's another win for meson ;-) |
I can build sagemath-standard "in place" from source (git checkout) using standard python tooling which works assuming all dependencies are available. In fact, I have a script to run bootstrap and fix everything (sagemath-standard), this allows me to work on the tree. Also, at some point in the release cycle I create a draft PR for void-packages in which I track the beta releases using the build template we will later use to create our packages, so usually I'm able to release the void linux package very quickly after a release of sagemath.
All the dependencies are already available from other packages.
Every necessary dependency can (and should) be installed from void. Then
should work? Everything builds without a glitch, but how do I run it now??? The only thing I was able to do is
which fails miserably with Where are the build instructions for the meson build?
🤷 I'll shut up and retreat to my outlier corner. You are welcome to join https://docs.voidlinux.org/installation/index.html |
You can just (btw, did you saw my previous message above?) |
I do have mesonpy:
On the contrary, given that we have all dependencies, it's very useful that there's a simple instruction on how to build and run sagemath from source on void linux using all system dependencies, and the integration test should be checking that it really works.
So, is this testing sage-the-distro or is this testing sagelib?
I understand, my point is that then you are not testing if the meson build works with void linux packages, but you are only testing that the meson build works with the packages you install with uv. But those should be more or less "the same" regardless of distro, no?
Right now the Ideally, IMO, the test script should be a (maybe not user friendly but still useful) set of instructions on what is the recommended way to build sagemath on each given distro. I still don't know what is the recommended way to build sagemath on a reasonable distro that has all dependencies available (there are at least three of those, afaik). I think it's very important to have an "official" way to build & install sagemath that is simple, uses standard tooling, and is acceptable for distros. Then distros will follow.
Nice.
We don't need a replacement for sage-the-distro, we need a replacement for sagemath-standard (aka sagelib, i.e. the python distribution that ships the |
pip is not distro-friendly (I'd say it's not friendly at all but YMMV).
yes, thanks Here's my log, following the instructions(starting always from a clean git checkout of 10.7.beta3):
It seems |
@tornaria - the docs in the current beta say that you have to run
but you haven't used That's from a recent change:
|
Packaging should work like in any other Python package - see https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD.meson?h=sagemath-git for the Arch script. |
Sorry, it should have been:
These instructions have been added in #40124, and the CI added here is exactly testing these installations steps.
This is testing the meson build of sagelib. But in order to install the system packages, it queries the information part of sage-the-distro. This translates to
Yes, we only test here the non-python packages of void. We could also install the python packages, but that information is mostly missing in the build directory (someone would need to create a lot of
The meson sdist is also completely independent of sage-the-distro and the
|
Add a CI test for Void Linux building sage with meson (similar to #40038 for Fedora). A few minor bugs in the system package installation are fixed: a missing
--yes
for the package index update, and adding a few missing void packages.📝 Checklist
⌛ Dependencies