Infra: Remove GNU make-specific directive from Makefile (#3891)

* Remove GNU make-specific directive from Makefile
* Remove deprecated 'make check-links'
This commit is contained in:
Hugo van Kemenade 2024-08-04 18:31:04 +03:00 committed by GitHub
parent 81c5900f25
commit de536ac430
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 21 additions and 17 deletions

View File

@ -3,12 +3,14 @@
# You can set these variables from the command line. # You can set these variables from the command line.
PYTHON = python3 PYTHON = python3
VENVDIR = .venv VENVDIR = .venv
UV = uv
# synchronise with render.yml -> deploy step # synchronise with render.yml -> deploy step
BUILDDIR = build BUILDDIR = build
SPHINXBUILD = PATH=$(VENVDIR)/bin:$$PATH sphinx-build SPHINXBUILD = PATH=$(VENVDIR)/bin:$$PATH sphinx-build
BUILDER = html BUILDER = html
JOBS = auto JOBS = auto
SOURCES = SOURCES =
REQUIREMENTS = requirements.txt
SPHINXERRORHANDLING = --fail-on-warning --keep-going --warning-file sphinx-warnings.txt SPHINXERRORHANDLING = --fail-on-warning --keep-going --warning-file sphinx-warnings.txt
ALLSPHINXOPTS = --builder $(BUILDER) \ ALLSPHINXOPTS = --builder $(BUILDER) \
@ -36,7 +38,7 @@ htmllive: SPHINXBUILD = $(VENVDIR)/bin/sphinx-autobuild
# Arbitrarily selected ephemeral port between 4915265535 # Arbitrarily selected ephemeral port between 4915265535
# to avoid conflicts with other processes: # to avoid conflicts with other processes:
htmllive: SPHINXERRORHANDLING = --re-ignore="/\.idea/|/venv/|/pep-0000.rst|/topic/" --open-browser --delay 0 --port 55302 htmllive: SPHINXERRORHANDLING = --re-ignore="/\.idea/|/venv/|/pep-0000.rst|/topic/" --open-browser --delay 0 --port 55302
htmllive: ensure-sphinx-autobuild html htmllive: _ensure-sphinx-autobuild html
## dirhtml to render PEPs to "index.html" files within "pep-NNNN" directories ## dirhtml to render PEPs to "index.html" files within "pep-NNNN" directories
.PHONY: dirhtml .PHONY: dirhtml
@ -48,11 +50,6 @@ dirhtml: html
linkcheck: BUILDER = linkcheck linkcheck: BUILDER = linkcheck
linkcheck: html linkcheck: html
## check-links (deprecated: use 'make linkcheck' alias instead)
.PHONY: pages
check-links: linkcheck
@echo "\033[0;33mWarning:\033[0;31m 'make check-links' \033[0;33mis deprecated, use\033[0;32m 'make linkcheck' \033[0;33malias instead\033[0m"
## clean to remove the venv and build files ## clean to remove the venv and build files
.PHONY: clean .PHONY: clean
clean: clean-venv clean: clean-venv
@ -71,29 +68,36 @@ venv:
echo "To recreate it, remove it first with \`make clean-venv'."; \ echo "To recreate it, remove it first with \`make clean-venv'."; \
else \ else \
echo "Creating venv in $(VENVDIR)"; \ echo "Creating venv in $(VENVDIR)"; \
if uv --version > /dev/null; then \ if $(UV) --version >/dev/null 2>&1; then \
uv venv $(VENVDIR); \ $(UV) venv $(VENVDIR); \
VIRTUAL_ENV=$(VENVDIR) uv pip install -r requirements.txt; \ VIRTUAL_ENV=$(VENVDIR) $(UV) pip install -r $(REQUIREMENTS); \
else \ else \
$(PYTHON) -m venv $(VENVDIR); \ $(PYTHON) -m venv $(VENVDIR); \
$(VENVDIR)/bin/python3 -m pip install --upgrade pip; \ $(VENVDIR)/bin/python3 -m pip install --upgrade pip; \
$(VENVDIR)/bin/python3 -m pip install -r requirements.txt; \ $(VENVDIR)/bin/python3 -m pip install -r $(REQUIREMENTS); \
fi; \ fi; \
echo "The venv has been created in the $(VENVDIR) directory"; \ echo "The venv has been created in the $(VENVDIR) directory"; \
fi fi
define ensure_package .PHONY: _ensure-package
if uv --version > /dev/null; then \ _ensure-package: venv
$(VENVDIR)/bin/python3 -m $(1) --version > /dev/null || VIRTUAL_ENV=$(VENVDIR) uv pip install $(1); \ if $(UV) --version >/dev/null 2>&1; then \
VIRTUAL_ENV=$(VENVDIR) $(UV) pip install $(PACKAGE); \
else \ else \
$(VENVDIR)/bin/python3 -m $(1) --version > /dev/null || $(VENVDIR)/bin/python3 -m pip install $(1); \ $(VENVDIR)/bin/python3 -m pip install $(PACKAGE); \
fi fi
endef
.PHONY: _ensure-pre-commit
_ensure-pre-commit:
make _ensure-package PACKAGE=pre-commit
.PHONY: _ensure-sphinx-autobuild
_ensure-sphinx-autobuild:
make _ensure-package PACKAGE=sphinx-autobuild
## lint to lint all the files ## lint to lint all the files
.PHONY: lint .PHONY: lint
lint: venv lint: _ensure-pre-commit
$(call ensure_package,pre_commit)
$(VENVDIR)/bin/python3 -m pre_commit run --all-files $(VENVDIR)/bin/python3 -m pre_commit run --all-files
## test to test the Sphinx extensions for PEPs ## test to test the Sphinx extensions for PEPs