Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
mkoeppe committed Dec 19, 2022
2 parents 8b1cf25 + 573fcfd commit 88e18d0
Show file tree
Hide file tree
Showing 15 changed files with 160 additions and 140 deletions.
41 changes: 0 additions & 41 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -80,46 +80,6 @@ download:
dist: build/make/Makefile
./sage --sdist

pypi-sdists: sage_setup
./sage --sh build/pkgs/sage_conf/spkg-src
./sage --sh build/pkgs/sage_sws2rst/spkg-src
./sage --sh build/pkgs/sage_docbuild/spkg-src
./sage --sh build/pkgs/sage_setup/spkg-src
./sage --sh build/pkgs/sagelib/spkg-src
./sage --sh build/pkgs/sagemath_objects/spkg-src
./sage --sh build/pkgs/sagemath_categories/spkg-src
./sage --sh build/pkgs/sagemath_environment/spkg-src
./sage --sh build/pkgs/sagemath_repl/spkg-src
./sage --sh build/pkgs/sagemath_giac/spkg-src
./sage --sh build/pkgs/sagemath_flint_arb/spkg-src
./sage --sh build/pkgs/sagemath_gap/spkg-src
./sage --sh build/pkgs/sagemath_homfly/spkg-src
@echo "Built sdists are in upstream/"

# Ensuring wheels are present, even for packages that may have been installed
# as editable. Until we have better uninstallation of script packages, we
# just remove the timestamps, which will lead to rebuilds of the packages.
PYPI_WHEEL_PACKAGES = sage_sws2rst sage_setup sagemath_environment sagemath_objects sagemath_repl sagemath_categories sagemath_giac sagemath_flint_arb sagemath_gap sagemath_homfly
pypi-wheels:
for a in $(PYPI_WHEEL_PACKAGES); do \
rm -f venv/var/lib/sage/installed/$$a-*; \
done
for a in $(PYPI_WHEEL_PACKAGES); do \
$(MAKE) SAGE_EDITABLE=no SAGE_WHEELS=yes $$a; \
done
@echo "Built wheels are in venv/var/lib/sage/wheels/"

# sage_docbuild is here, not in PYPI_WHEEL_PACKAGES, because it depends on sagelib
WHEEL_PACKAGES = $(PYPI_WHEEL_PACKAGES) sage_conf sagelib sage_docbuild
wheels:
for a in $(WHEEL_PACKAGES); do \
rm -f venv/var/lib/sage/installed/$$a-*; \
done
for a in $(WHEEL_PACKAGES); do \
$(MAKE) SAGE_EDITABLE=no SAGE_WHEELS=yes $$a; \
done
@echo "Built wheels are in venv/var/lib/sage/wheels/"

###############################################################################
# Cleaning up
###############################################################################
Expand Down Expand Up @@ -384,7 +344,6 @@ list:
@$(MAKE) --silent -f build/make/Makefile SAGE_PKGCONFIG=dummy $@

.PHONY: default build dist install micro_release \
pypi-sdists pypi-wheels wheels \
misc-clean bdist-clean distclean bootstrap-clean maintainer-clean \
test check testoptional testall testlong testoptionallong testallong \
ptest ptestoptional ptestall ptestlong ptestoptionallong ptestallong \
Expand Down
50 changes: 49 additions & 1 deletion build/make/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,27 @@ PIP_PACKAGES = @SAGE_PIP_PACKAGES@
# Packages that use the 'script' package build rules
SCRIPT_PACKAGES = @SAGE_SCRIPT_PACKAGES@


# Packages for which we build wheels for PyPI
PYPI_WHEEL_PACKAGES = \
sage_sws2rst \
sage_setup \
sagemath_environment \
sagemath_objects \
sagemath_repl \
sagemath_categories \
sagemath_giac \
sagemath_flint_arb \
sagemath_gap \
sagemath_homfly

# sage_docbuild is here, not in PYPI_WHEEL_PACKAGES, because it depends on sagelib
WHEEL_PACKAGES = $(PYPI_WHEEL_PACKAGES) \
sage_conf \
sagelib \
sage_docbuild

# Packages for which build sdists for PyPI
PYPI_SDIST_PACKAGES = $(WHEEL_PACKAGES)

# Generate the actual inst_<pkgname> variables; for each package that is
# actually built this generates a line like:
Expand Down Expand Up @@ -198,6 +218,7 @@ SAGE_I_TARGETS = sagelib doc
# Tell make not to look for files with these names:
.PHONY: all all-sage all-toolchain all-build all-sageruntime \
all-start build-start base toolchain toolchain-deps base-toolchain \
pypi-sdists pypi-wheels wheels \
sagelib \
doc doc-html doc-html-jsmath doc-html-mathjax doc-pdf \
doc-uninstall \
Expand Down Expand Up @@ -418,6 +439,26 @@ list-broken-packages: auditwheel_or_delocate
echo >&2 "$$fix_broken_packages"; \
fi

pypi-sdists: $(PYPI_SDIST_PACKAGES:%=%-sdist)
@echo "Built sdists are in upstream/"

# Ensuring wheels are present, even for packages that may have been installed
# as editable. Until we have better uninstallation of script packages, we
# just remove the timestamps, which will lead to rebuilds of the packages.
PYPI_WHEEL_PACKAGES = sage_sws2rst sage_setup sagemath_environment sagemath_objects sagemath_repl sagemath_categories
pypi-wheels:
for a in $(PYPI_WHEEL_PACKAGES); do \
rm -f venv/var/lib/sage/installed/$$a-*; \
done
$(MAKE_REC) SAGE_EDITABLE=no SAGE_WHEELS=yes $(PYPI_WHEEL_PACKAGES)
@echo "Built wheels are in venv/var/lib/sage/wheels/"

wheels:
for a in $(WHEEL_PACKAGES); do \
rm -f venv/var/lib/sage/installed/$$a-*; \
done
$(MAKE_REC) SAGE_EDITABLE=no SAGE_WHEELS=yes $(WHEEL_PACKAGES)
@echo "Built wheels are in venv/var/lib/sage/wheels/"

#==============================================================================
# Setting SAGE_CHECK... variables
Expand Down Expand Up @@ -711,6 +752,13 @@ $(1)-uninstall: $(1)-$(4)-uninstall

$(1)-clean: $(1)-uninstall

$(1)-sdist: FORCE python_build sage_setup cython
$(AM_V_at) cd '$$(SAGE_ROOT)' && \
. '$$(SAGE_ROOT)/src/bin/sage-src-env-config' && \
. '$$(SAGE_ROOT)/src/bin/sage-env-config' && \
. '$$(SAGE_ROOT)/src/bin/sage-env' && \
'$$(SAGE_ROOT)/build/pkgs/$(1)/spkg-src'

# Recursive tox invocation (note - we do not set the environment here).
# Setting SAGE_SPKG_WHEELS is for the benefit of sagelib's tox.ini
$(1)-tox-%: FORCE
Expand Down
5 changes: 4 additions & 1 deletion build/pkgs/sage_conf/spkg-src
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,7 @@ fi
set -e

cd pkgs/sage-conf_pypi
python3 -u setup.py --no-user-cfg sdist --dist-dir "$SAGE_DISTFILES"
# Get rid of old *.egg-info/SOURCES.txt
rm -Rf *.egg-info

python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
5 changes: 4 additions & 1 deletion build/pkgs/sage_docbuild/spkg-src
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ set -e
cd build/pkgs/sage_docbuild

cd src
python3 -u setup.py --no-user-cfg sdist --dist-dir "$SAGE_DISTFILES"
# Get rid of old *.egg-info/SOURCES.txt
rm -Rf *.egg-info

python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
5 changes: 4 additions & 1 deletion build/pkgs/sage_setup/spkg-src
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ set -e
cd build/pkgs/sage_setup

cd src
python3 -u setup.py --no-user-cfg sdist --dist-dir "$SAGE_DISTFILES"
# Get rid of old *.egg-info/SOURCES.txt
rm -Rf *.egg-info

python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
5 changes: 4 additions & 1 deletion build/pkgs/sage_sws2rst/spkg-src
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ set -e
cd build/pkgs/sage_sws2rst

cd src
python3 -u setup.py --no-user-cfg sdist --dist-dir "$SAGE_DISTFILES"
# Get rid of old *.egg-info/SOURCES.txt
rm -Rf *.egg-info

python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
8 changes: 6 additions & 2 deletions build/pkgs/sagelib/spkg-src
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# This script is not used during build.
#
# HOW TO MAKE THE TARBALL:
# ./sage --sh build/pkgs/sagelib/spkg-src
# make python_build && ./sage --sh build/pkgs/sagelib/spkg-src

if [ -z "$SAGE_ROOT" ] ; then
echo >&2 "Error - SAGE_ROOT undefined ... exiting"
Expand All @@ -18,4 +18,8 @@ set -e
cd "$SAGE_ROOT"/build/pkgs/sagelib

cd src
python3 -u setup.py --no-user-cfg sdist --dist-dir "$SAGE_DISTFILES"

# Get rid of old *.egg-info/SOURCES.txt
rm -Rf *.egg-info

python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
5 changes: 4 additions & 1 deletion build/pkgs/sagemath_categories/spkg-src
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ set -e
cd build/pkgs/sagemath_categories

cd src
python3 -u setup.py --no-user-cfg sdist --dist-dir "$SAGE_DISTFILES"
# Get rid of old *.egg-info/SOURCES.txt
rm -Rf *.egg-info

python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
5 changes: 4 additions & 1 deletion build/pkgs/sagemath_environment/spkg-src
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ set -e
cd build/pkgs/sagemath_environment

cd src
python3 -u setup.py --no-user-cfg sdist --dist-dir "$SAGE_DISTFILES"
# Get rid of old *.egg-info/SOURCES.txt
rm -Rf *.egg-info

python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
6 changes: 5 additions & 1 deletion build/pkgs/sagemath_objects/spkg-src
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,8 @@ set -e
cd build/pkgs/sagemath_objects

cd src
python3 -u setup.py --no-user-cfg sdist --dist-dir "$SAGE_DISTFILES"

# Get rid of old *.egg-info/SOURCES.txt
rm -Rf *.egg-info

python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
5 changes: 4 additions & 1 deletion build/pkgs/sagemath_repl/spkg-src
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ set -e
cd build/pkgs/sagemath_repl

cd src
python3 -u setup.py --no-user-cfg sdist --dist-dir "$SAGE_DISTFILES"
# Get rid of old *.egg-info/SOURCES.txt
rm -Rf *.egg-info

python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES"
57 changes: 22 additions & 35 deletions pkgs/sagemath-objects/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,41 +14,28 @@
import sys
sys.path.insert(0, os.path.dirname(__file__))

if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"):
sdist = True
else:
sdist = False

if sdist:
cmdclass = {}
else:
from sage_setup.excepthook import excepthook
sys.excepthook = excepthook

from sage_setup.setenv import setenv
setenv()

import sage.env
sage.env.default_required_modules = sage.env.default_optional_modules = ()

from sage_setup.command.sage_build_cython import sage_build_cython
from sage_setup.command.sage_build_ext import sage_build_ext

cmdclass = dict(build_cython=sage_build_cython,
build_ext=sage_build_ext)

if sdist:
python_packages = []
python_modules = []
cython_modules = []
else:
from sage_setup.find import find_python_sources
python_packages, python_modules, cython_modules = find_python_sources(
'.', ['sage']) # for now, we do the filtering using MANIFEST

log.warn('python_packages = {0}'.format(python_packages))
log.warn('python_modules = {0}'.format(python_modules))
log.warn('cython_modules = {0}'.format(cython_modules))
from sage_setup.excepthook import excepthook
sys.excepthook = excepthook

from sage_setup.setenv import setenv
setenv()

import sage.env
sage.env.default_required_modules = sage.env.default_optional_modules = ()

from sage_setup.command.sage_build_cython import sage_build_cython
from sage_setup.command.sage_build_ext import sage_build_ext

cmdclass = dict(build_cython=sage_build_cython,
build_ext=sage_build_ext)

from sage_setup.find import find_python_sources
python_packages, python_modules, cython_modules = find_python_sources(
'.', ['sage']) # for now, we do the filtering using MANIFEST

log.warn('python_packages = {0}'.format(python_packages))
log.warn('python_modules = {0}'.format(python_modules))
log.warn('cython_modules = {0}'.format(cython_modules))

setup(
cmdclass = cmdclass,
Expand Down
Loading

0 comments on commit 88e18d0

Please sign in to comment.