A quick overview of the status of the modularization effort of Meta-ticket #29705 in Sage 9.3.beta9.
A source tarball of the Sage distribution (or a worktree of the Sage git repository after running the ./bootstrap script) contains several self-contained source trees of Python distribution packages in build/pkgs/*/src/, which can be packaged, built and installed by standard Python procedures:
setup.py sdist builds a source distribution (it is invoked by the convenience script build/pkgs/*/spkg-src), which can afterwards be installed using pip.
setup.py install installs the package directly (this is legacy use of setuptools and is not recommended).
setup.py bdist_wheel builds a wheel, which can afterwards be installed using pip.
Note, however, that pip install . does not work. In order to keep the monolithic structure of the SAGE_ROOT/src tree unchanged (for the convenience of Sage developers), the source trees of the Python distribution packages make use of symlinks. These symlinks are not compatible with pip install .. However, setup.py sdist follows the symlinks - the resulting source distribution contains ordinary files only and is therefore pip-installable.
The following Python distribution packages exist in Sage 9.3:
The Sage library is built from build/pkgs/sagelib/src. Since 9.3.beta8, the resulting source distribution sagemath-standard is available on PyPI.
build/pkgs/sage_docbuild/src contains a distribution that provides the Python package sage_docbuild, moved from sage_setup.docbuild in #30476. Since 9.3.beta9, the resulting source distribution sage-docbuild is available on PyPI.
build/pkgs/sage_sws2rst/src contains the source of https://pypi.org/project/sage-sws2rst/
build/pkgs/sage_conf/src (after running the top-level configure script) contains the source of the Sage configuration package, which provides:
a single Python module, sage_conf, providing configuration information to the SageMath library at the time of its installation and at its runtime
a console script sage-config, for querying the variables of sage_conf from the shell
the sourcable shell script sage-env-config, providing additional configuration information in the form of environment variables.
I hope that we can still merge the following tickets in Sage 9.3, which are waiting for review:
(see https://trac.sagemath.org/ticket/29705 for more details)
A quick overview of the status of the modularization effort of Meta-ticket #29705 in Sage 9.3.beta9.
El lunes, 15 de marzo de 2021 a las 1:44:19 UTC+1, Matthias Koeppe escribió:A quick overview of the status of the modularization effort of Meta-ticket #29705 in Sage 9.3.beta9.
What are the plans for the top-level setup.py?
It would be nice if it could be turned into a sort of meta-script that installed everything or, better yet, if one could specify which parts to install (eg. 'python setup.py build sagelib docbuild')
I am looking at moving to the modular setup for sage-on-gentoo during the 9.4 cycle. [...]
I now have some idea on how to build the documentation in sage-on-gentoo. But the doc
folder is not distributed in sage math-standard. Could we have at least a tarball for
the doc sources currently sitting under “src/doc”?
I guess right now I am just after sagemath-doc-src as defined on https://trac.sagemath.org/ticket/29868
although I am not excluding using sagemath-doc-html and sagemath-doc-pdf once they become available,
especially for stable releases.
But right now I am still doing stuff by source building.
Also, I was expecting sagemath-standard to be a sdist for sagelib.
I noticed a few differences,
most notably the use of a file called `sage_setup/setenv.py`. I cannot find it anywhere else but
that pypi tarball. Is it something that disappeared in 9.3rc3 or something that lives somewhere else?