From ce799549f0335c64a159d273136fc0233cd53e04 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 13 Jul 2020 14:03:42 -0700 Subject: [PATCH] build/pkgs/sage_setup_docbuild: New --- build/make/Makefile.in | 2 +- build/pkgs/sage_setup_docbuild/dependencies | 1 + .../sage_setup_docbuild/package-version.txt | 1 + build/pkgs/sage_setup_docbuild/spkg-install | 6 ++++ build/pkgs/sage_setup_docbuild/spkg-src | 21 +++++++++++++ build/pkgs/sage_setup_docbuild/src/README.md | 3 ++ .../sage_setup_docbuild/src/requirements.txt | 3 ++ .../src/sage_setup/docbuild | 1 + build/pkgs/sage_setup_docbuild/src/setup.cfg | 8 +++++ build/pkgs/sage_setup_docbuild/src/setup.py | 7 +++++ build/pkgs/sage_setup_docbuild/src/tox.ini | 30 +++++++++++++++++++ build/pkgs/sage_setup_docbuild/type | 1 + src/sage_setup/__init__.py | 0 13 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 build/pkgs/sage_setup_docbuild/dependencies create mode 120000 build/pkgs/sage_setup_docbuild/package-version.txt create mode 100755 build/pkgs/sage_setup_docbuild/spkg-install create mode 100755 build/pkgs/sage_setup_docbuild/spkg-src create mode 100644 build/pkgs/sage_setup_docbuild/src/README.md create mode 100644 build/pkgs/sage_setup_docbuild/src/requirements.txt create mode 120000 build/pkgs/sage_setup_docbuild/src/sage_setup/docbuild create mode 100644 build/pkgs/sage_setup_docbuild/src/setup.cfg create mode 100644 build/pkgs/sage_setup_docbuild/src/setup.py create mode 100644 build/pkgs/sage_setup_docbuild/src/tox.ini create mode 100644 build/pkgs/sage_setup_docbuild/type delete mode 100644 src/sage_setup/__init__.py diff --git a/build/make/Makefile.in b/build/make/Makefile.in index dc3b741d3ce..560e26e905c 100644 --- a/build/make/Makefile.in +++ b/build/make/Makefile.in @@ -287,7 +287,7 @@ base: $(inst_patch) $(inst_pkgconf) # Building the documentation has many dependencies, because all # documented modules are imported and because we use matplotlib to # produce plots. -DOC_DEPENDENCIES = sagelib $(inst_sphinx) \ +DOC_DEPENDENCIES = sagelib sage_setup_docbuild $(inst_sphinx) \ | $(SAGERUNTIME) $(inst_maxima) $(inst_networkx) $(inst_scipy) $(inst_sympy) \ $(inst_matplotlib) $(inst_pillow) $(inst_mathjax) $(inst_mpmath) \ $(inst_ipykernel) $(inst_jupyter_client) $(inst_conway_polynomials) \ diff --git a/build/pkgs/sage_setup_docbuild/dependencies b/build/pkgs/sage_setup_docbuild/dependencies new file mode 100644 index 00000000000..757e8c9f683 --- /dev/null +++ b/build/pkgs/sage_setup_docbuild/dependencies @@ -0,0 +1 @@ +$(PYTHON) sagelib sphinx six | $(PYTHON_TOOLCHAIN) diff --git a/build/pkgs/sage_setup_docbuild/package-version.txt b/build/pkgs/sage_setup_docbuild/package-version.txt new file mode 120000 index 00000000000..cf10fe4b4e4 --- /dev/null +++ b/build/pkgs/sage_setup_docbuild/package-version.txt @@ -0,0 +1 @@ +../sagelib/package-version.txt \ No newline at end of file diff --git a/build/pkgs/sage_setup_docbuild/spkg-install b/build/pkgs/sage_setup_docbuild/spkg-install new file mode 100755 index 00000000000..666796dc2cd --- /dev/null +++ b/build/pkgs/sage_setup_docbuild/spkg-install @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +cd src +. sage-dist-helpers +# We install directly with setuptools, not with pip, because pip does not handle our symlinks correctly. +# An alternative would be to build an sdist and then to install the sdist using pip. +sage-python23 -u setup.py --no-user-cfg install --single-version-externally-managed --root=/ diff --git a/build/pkgs/sage_setup_docbuild/spkg-src b/build/pkgs/sage_setup_docbuild/spkg-src new file mode 100755 index 00000000000..69c5e7c190b --- /dev/null +++ b/build/pkgs/sage_setup_docbuild/spkg-src @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sage_setup +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sage_setup_docbuild/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sage_setup_docbuild + +cd src +sage-python23 -u setup.py --no-user-cfg sdist --dist-dir "$SAGE_DISTFILES" diff --git a/build/pkgs/sage_setup_docbuild/src/README.md b/build/pkgs/sage_setup_docbuild/src/README.md new file mode 100644 index 00000000000..bc5466846a9 --- /dev/null +++ b/build/pkgs/sage_setup_docbuild/src/README.md @@ -0,0 +1,3 @@ +# sage_setup.docbuild # + +This is the build system of the Sage documentation, based on sphinx. diff --git a/build/pkgs/sage_setup_docbuild/src/requirements.txt b/build/pkgs/sage_setup_docbuild/src/requirements.txt new file mode 100644 index 00000000000..2dedc630e98 --- /dev/null +++ b/build/pkgs/sage_setup_docbuild/src/requirements.txt @@ -0,0 +1,3 @@ +#sage +sphinx +six diff --git a/build/pkgs/sage_setup_docbuild/src/sage_setup/docbuild b/build/pkgs/sage_setup_docbuild/src/sage_setup/docbuild new file mode 120000 index 00000000000..8d56bfb043c --- /dev/null +++ b/build/pkgs/sage_setup_docbuild/src/sage_setup/docbuild @@ -0,0 +1 @@ +../../../../../src/sage_setup/docbuild \ No newline at end of file diff --git a/build/pkgs/sage_setup_docbuild/src/setup.cfg b/build/pkgs/sage_setup_docbuild/src/setup.cfg new file mode 100644 index 00000000000..e35edbad114 --- /dev/null +++ b/build/pkgs/sage_setup_docbuild/src/setup.cfg @@ -0,0 +1,8 @@ +[metadata] +name = sage_setup.docbuild +description = Sage: Open Source Mathematics Software: Build system of the Sage documentation +long_description = file: README.md +license = GNU General Public License (GPL) v2 or later +author = The Sage Developers +author_email = https://groups.google.com/group/sage-support +url = https://www.sagemath.org diff --git a/build/pkgs/sage_setup_docbuild/src/setup.py b/build/pkgs/sage_setup_docbuild/src/setup.py new file mode 100644 index 00000000000..120ea63bbbb --- /dev/null +++ b/build/pkgs/sage_setup_docbuild/src/setup.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +from setuptools import setup, find_namespace_packages + +setup( + packages=find_namespace_packages() +) diff --git a/build/pkgs/sage_setup_docbuild/src/tox.ini b/build/pkgs/sage_setup_docbuild/src/tox.ini new file mode 100644 index 00000000000..99031e0578b --- /dev/null +++ b/build/pkgs/sage_setup_docbuild/src/tox.ini @@ -0,0 +1,30 @@ +# First pip-install tox: +# +# ./sage -pip install tox +# +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd build/pkgs/sage_setup_docbuild/src && tox)' +# +# To test interactively: +# +# build/pkgs/sage_setup_docbuild/src/.tox/python/bin/python +# +[tox] + +[testenv] +deps = -rrequirements.txt + +setenv = + # Sage scripts like to use $HOME/.sage + HOME={envdir} + +whitelist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. + #python -c 'import sys; "" in sys.path and sys.path.remove(""); import sage_setup.docbuild' + +# TODO: Add tests after adding the dependency on sagelib to +# requirements.txt diff --git a/build/pkgs/sage_setup_docbuild/type b/build/pkgs/sage_setup_docbuild/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/sage_setup_docbuild/type @@ -0,0 +1 @@ +standard diff --git a/src/sage_setup/__init__.py b/src/sage_setup/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000