On Saturday, April 20, 2024 at 1:01:33 PM UTC-7 Dima Pasechnik wrote: On 20 April 2024 19:34:49 BST, Matthias Koeppe <matthia...@gmail.com> wrote: SageMath is already pip-installable. >That was one of the first deliverables of the modularization project, >completed in 2021. >See https://wiki.sagemath.org/ReleaseTours/sage-9.4#Alternative_installation_methods_using_pip > >It's documented in our README: > https://github.com/sagemath/sage/blob/develop/README.md#alternative-installation-using-pypi > >However, installing Sage in this way is equivalent to installing the full >Sage distribution from source in the normal way.
No, it is not equivalent, far from it. One can read on <https://pypi.org/project/sagemath-standard/#description> Building sagemath-standard has a large number of system packages as prerequisites. See https://doc.sagemath.org/html/en/installation/source.html#linux-recommended-installation for partial lists for various systems. That is, many packages are not built. What's being built is not a Sage distribution, it is sagelib. Dima, as you well know, I designed and implemented all of these facilities related to the PyPI distribution method of SageMath as part of the modularization project. What you quote from https://pypi.org/project/sagemath-standard/#description -- I wrote it. It's hard to understand what the purpose of your message "correcting" me on these things could possibly be. The distribution *sagemath-standard* does provide the Sage library. But it *declares a required build-time and runtime dependency on https://pypi.org/project/sage-conf/*, which when installed, builds the Sage distribution in a subdirectory of ~/.sage. (Note also that one of the disputed PRs, https://github.com/sagemath/sage/pull/37138, seeks to remove this declared dependency that implements this mechanism.) >If you do allow me another example from discrete math: Sage has a lot of >very good code in "sage.graphs" that provides functionality that is not >available from other Python libraries. > >But to potential projects that would need this functionality, the >proposition to have to depend on the monolithic project SageMath, with >hours of compilation time and/or dependencies on system packages that are >obviously unrelated to the needed functionality (boost, brial, ecl, eclib, >ecm, fflas_ffpack, flint, libgd, gap, giac, givaro, glpk, gmp, gsl, iml, >lcalc, libbraiding, libhomfly, libpng, linbox, m4ri, m4rie, mpc, mpfi, >mpfr, ntl, pari, rw, singular, symmetrica), is simply a showstopper. This is not true, either. First, a lot of these packages that you list are available on systems, and thus there is no need to build them. (To "but macOS?" I have a reply: "ask Apple to provide you a package manager, it's the best OS, right, you pay for it a lot of money, or learn to use Homebrew like Mac users usually do...") Note that I wrote "hours of compilation time and/or dependencies on system packages". So there was nothing to correct here. My point stands. What's the purpose of your comment? Anyway, a normal Python pypi-installable package comes with binary wheels, i e. things are pre-built, and it's merely matter of downloading these to get a functional package. Few minutes on a fast network, not hours. By choosing to be an exception in the Python world, Sage obviously does something quite wrong. Also the purpose of this part of your message is not clear to me, Dima. As you well know, *preparing binary wheels is another deliverable of the modularization project. *What Sage may have been doing wrong --- the modularization project has been fixing it. - For the modularized distributions that are already available, these binary wheels have already been up on PyPI for a long time, see https://pypi.org/project/sagemath-objects/#files and https://pypi.org/project/sagemath-categories/#files - https://github.com/sagemath/sage/pull/37503 (to be merged) adds wheels for the macOS arm64 architecture to what it is built and deployed to PyPI on every release - https://github.com/sagemath/sage/pull/37099 (needs review) and https://github.com/sagemath/sage/pull/36525, https://github.com/sagemath/sage/pull/36730 (in prep) add wheels for more distributions An overview of this effort of making wheels available: Meta-PR https://github.com/sagemath/sage/issues/31251 I repeat my invitation for others to join me in this important effort. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/e2ce22d0-07ae-4ae2-94a0-8bb2beaa8e3en%40googlegroups.com.