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
gap: install libgap, add packageSet option #54127
Conversation
So that I'll be notified on changes which likely impact sage.
Notably, gap now defaults to keep only standard packages instead of all packages. That is way less radical than my approach in #38754 and still saves 1G of space. |
Just to say, I could never get NixOS to work properly, so I don't use it any more. I am a GAP developer so I can answer any GAP-specific questions, independant of NixOS. |
Okay. The main question of this PR is: Is it reasonable to default to only keeping "standard" packages, that is:
While also offering the option to either keep all packages (current default behaviour but very large) or keep the absolute minimal package set:
|
809ba6f
to
e75a6ef
Compare
@ChrisJefferson I guess you also don't use Nix outside NixOS now; do you want to be removed from the list of maintainers (given that maintainers get pinged for Nix-level-only changes)? |
I have now
|
e75a6ef
to
6764202
Compare
If @ChrisJefferson doesn't mind getting pinged on potentially uninteresting changes every once in a while, I think its useful to have someone on board who is involved upstream. |
By default, I would put a code comment above maintainer list:
«# We are also grateful to @ChrisJefferson for previous work on the package and the contiunuing help with GAP-related questions from the upstream point of view»
As we know, pinging maintainers is only likely to become more active with the increase in tooling…
|
There are some starts of a `make install`, but nothing complete yet. Upstream now ships a `libgap` as a replacement of the custom one used by sagemath.
Two reasons for this: - more fine-grained space/functionality tradeoff - preparation for the sage 8.6 update, which finally doesn't need a downgraded gap anymore but does break when unexpected (non-standard) packages are installed. Details: https://trac.sagemath.org/ticket/26983 The proper way to deal with gap packages would be to create a package set, package each one individually and have something like gap equivalent of `python.withPackages`. I am not willing to do that however.
6764202
to
cf63a8c
Compare
Didn't properly fix gap-libgap-compatible after all, should work now. I still have to test that sage is also happy with it. I can't wait to remove it altogether. I'm fine with either the maintainer list or a comment. |
I would strongly recommend making the "default" be the set of autoloaded packages. While you can operate GAP with just GAPDoc, primgrp, SmallGrp and transgrp, that setup isn't well tested or debugged. Of course, offering it as an option for users who know what they are doing is reasonable, but it shouldn't be any kind of "default". |
Yes, that is the case. With this PR there are 3 options: gap-minimaloffers the bare necessities (->~400MB), i.e.
gap (the default)additionally offers the autoloaded packages (->~700MB)
gap-fullOffers all the packages shipped with the gap distribution (->1.7G) Does that look good? |
I'll take this as a yes. Rushing this along a bit because the sage 8.5 build has a transient issue on hydra right now that I'm hoping 8.6 will fix. At least there is no point in debugging 8.5 issues anymore. |
3 Commits:
add timokau as maintainer
So that I'll be notified on changes which likely impact sage.
install libgap
There are some starts of a
make install
, but nothing complete yet.Upstream now ships a
libgap
as a replacement of the custom one used bysagemath.
add packageSet option
Two reasons for this:
more fine-grained space/functionality tradeoff
preparation for the sage 8.6 update, which finally doesn't need a
downgraded gap anymore but does break when unexpected (non-standard)
packages are installed. Details: 0ttps://trac.sagemath.org/ticket/26983
The proper way to deal with gap packages would be to create a package
set, package each one individually and have something like gap
equivalent of
python.withPackages
. I am not willing to do thathowever.
Previous discussion about package sets here: #38754
CC @7c6f434c @ChrisJefferson
Things done
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)