gap-system / gap

Main development repository for GAP - Groups, Algorithms, Programming, a System for Computational Discrete Algebra
https://www.gap-system.org
GNU General Public License v2.0
810 stars 160 forks source link

Add a third bootstrap variant which is "minimal" plus PackageManager #3913

Open fingolfin opened 4 years ago

fingolfin commented 4 years ago

This way, one has just enough to be able to install other missing packages, via PackageManager.

Alternatively, one could add PackageManager to the "minimal" bootstrap set, even though it is not strictly needed for that.

I would use this for GAP.jl and I am sure some other people might be interested, too. For GAP.jl, I would probably patch the PKGMAN_DownloadURL to call into Julia to perform the download, so that it'd work on systems without wget or curl as well).

olexandr-konovalov commented 4 years ago

This means either adding two new targets or modifying existing in https://github.com/gap-system/gap-distribution/blob/master/DistributionUpdate/PackageUpdate/Makefile. With a small size of PackageManager, I'd just add it to the "minimal" bootstrap set. Maybe also renaming archives to replace packages-required-... by packages-minimal-...?

ChrisJefferson commented 4 years ago

I would be happy to add PackageManager and requirements to minimal. We get to define minimal, and defining it as the smallest set which lets someone then install any other package seems like a nice choice.

olexandr-konovalov commented 4 years ago

So I am only waiting to have a consensus regarding the number (2 or 3) and naming of the archive(s).

fingolfin commented 4 years ago

I am fine with both 2 and 3, and any name. (On the long run, I hope we can turn primgrp/transgrp/smallgrp non-essential packages, as they quadruple the download size from ~15 MB (for the gap-4.11.0-core.zip file recompressed to .tar.bz2) to ~60 MB; in contrast, GAPDoc and PackageManager are tiny. Of course the full GAP 4.11.0 release is ~360 MB, another factor of ~6.

fingolfin commented 4 years ago

One more thing: I'd also like to have a .tar.bz2 (actually, ideally a .tar.xz or .tar.lz) which contains just GAP and the essential packages plus PackageManager.

That way, I only need to download a single tarball instead of 2 (resp. 3 right now). But for now, I can also create such archives myself and host them somewhere.