Skip to content

Commit

Permalink
make check: Get rid of practices predating PEP 517/518
Browse files Browse the repository at this point in the history
  • Loading branch information
Matthias Koeppe committed Oct 8, 2023
1 parent 6c78418 commit 969b693
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 69 deletions.
73 changes: 6 additions & 67 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@ DOCTEST = $(PYTHON) -B rundoctests.py
all: build doc

build: configure
$(PYTHON) setup.py build
$(PIP) install build
$(PYTHON) -m build

install: configure
$(PIP) install --no-build-isolation --no-index --ignore-installed --no-deps .
$(PIP) install .

dist: configure
$(PIP) install build
Expand Down Expand Up @@ -68,73 +69,13 @@ check-doctest: install
$(DOCTEST) src/cysignals/*.pyx

check-example: install
cd example && $(PYTHON) setup.py clean build
$(PYTHON) -m pip install -U build setuptools Cython
cd example && $(PYTHON) -m build --no-isolation .

check-gdb: install
$(PYTHON) testgdb.py


#####################
# Check installation
#####################
#
# Test 2 installation scenarios without a real installation
# - prefix (with --prefix and --root)
# - user (with --user)

check-tmp:
$(MAKE) check-prefix
$(MAKE) check-user

prefix-install: configure
rm -rf tmp/local tmp/build tmp/site-packages
$(PYTHON) setup.py install --prefix="`pwd`/tmp/local" --root=tmp/build
cd tmp && mv "build/`pwd`/local" local
cd tmp && cp -R local/lib*/python*/site-packages site-packages

check-prefix: check-prefix-doctest check-prefix-example

check-prefix-doctest: prefix-install
export PYTHONPATH="`pwd`/tmp/site-packages" && $(DOCTEST) src/cysignals/*.pyx

check-prefix-example: prefix-install
rm -rf example/build
export PYTHONPATH="`pwd`/tmp/site-packages" && cd example && $(PYTHON) setup.py clean build

check-user: check-user-doctest check-user-example

user-install: configure
rm -rf tmp/user
export PYTHONUSERBASE="`pwd`/tmp/user" && $(PYTHON) setup.py install --user --old-and-unmanageable

check-user-doctest: user-install
export PYTHONUSERBASE="`pwd`/tmp/user" && $(DOCTEST) src/cysignals/*.pyx

check-user-example: user-install
export PYTHONUSERBASE="`pwd`/tmp/user" && cd example && $(PYTHON) setup.py clean build

distcheck: dist
rm -rf dist/check
mkdir -p dist/check
cd dist/check && tar xzf ../cysignals-$(VERSION).tar.gz
cd dist/check/cysignals-$(VERSION) && $(LS_R) >../dist0.ls
cd dist/check/cysignals-$(VERSION) && $(MAKE) all
cd dist/check/cysignals-$(VERSION) && $(MAKE) distclean
cd dist/check/cysignals-$(VERSION) && $(LS_R) >../dist1.ls
cd dist/check; diff -u dist0.ls dist1.ls || { echo >&2 "Error: distclean after all leaves garbage"; exit 1; }
cd dist/check/cysignals-$(VERSION) && $(MAKE) check-user
cd dist/check/cysignals-$(VERSION) && ./configure --enable-debug
cd dist/check/cysignals-$(VERSION) && $(MAKE) check-prefix
cd dist/check/cysignals-$(VERSION) && $(MAKE) distclean
cd dist/check/cysignals-$(VERSION) && $(LS_R) >../dist2.ls
cd dist/check; diff -u dist0.ls dist2.ls || { echo >&2 "Error: distclean after check-tmp leaves garbage"; exit 1; }
cd dist/check/cysignals-$(VERSION) && $(MAKE) dist
cd dist/check/cysignals-$(VERSION) && tar xzf dist/cysignals-$(VERSION).tar.gz
cd dist/check/cysignals-$(VERSION)/cysignals-$(VERSION) && $(LS_R) >../../dist3.ls
cd dist/check; diff -u dist0.ls dist3.ls || { echo >&2 "Error: sdist is not reproducible"; exit 1; }
rm -rf dist/check


#####################
# Maintain
#####################
Expand All @@ -146,6 +87,4 @@ configure: configure.ac

.PHONY: all build doc install dist doc clean clean-build clean-doc \
distclean test check check-all check-tmp check-install \
check-doctest check-example \
check-prefix prefix-install check-prefix-doctest check-prefix-example \
check-user user-install check-user-doctest check-user-example
check-doctest check-example
3 changes: 3 additions & 0 deletions example/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ['setuptools', 'Cython>=0.28', 'cysignals']
build-backend = "setuptools.build_meta"
3 changes: 1 addition & 2 deletions example/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ def cythonize(self, extensions):
name="cysignals_example",
version='1.0',
license='Public Domain',
setup_requires=["cysignals"],
ext_modules=["cysignals_example.pyx"],
ext_modules=[Extension("cysignals_example.pyx")],
cmdclass=dict(build=build),
)

0 comments on commit 969b693

Please sign in to comment.