Makefile 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. PYTHON = python3
  2. RUFF ?= $(PYTHON) -m ruff
  3. SETUP = $(PYTHON) setup.py
  4. TESTRUNNER ?= unittest
  5. RUNTEST = PYTHONHASHSEED=random PYTHONPATH=$(shell pwd)$(if $(PYTHONPATH),:$(PYTHONPATH),) $(PYTHON) -m $(TESTRUNNER) $(TEST_OPTIONS)
  6. COVERAGE = python3-coverage
  7. PYDOCTOR_ARGS ?=
  8. DESTDIR=/
  9. all: build
  10. doc:: sphinx
  11. sphinx::
  12. $(MAKE) -C docs html
  13. build::
  14. $(SETUP) build
  15. $(SETUP) build_ext -i
  16. install::
  17. $(SETUP) install --root="$(DESTDIR)"
  18. check:: build
  19. $(RUNTEST) tests.test_suite
  20. check-tutorial:: build
  21. $(RUNTEST) tests.tutorial_test_suite
  22. check-nocompat:: build
  23. $(RUNTEST) tests.nocompat_test_suite
  24. check-compat:: build
  25. $(RUNTEST) tests.compat_test_suite
  26. check-pypy:: clean
  27. $(MAKE) check-noextensions PYTHON=pypy
  28. check-noextensions:: clean
  29. $(RUNTEST) tests.test_suite
  30. check-contrib:: clean
  31. $(RUNTEST) -v dulwich.contrib.test_suite
  32. typing:
  33. $(PYTHON) -m mypy dulwich
  34. clean::
  35. $(SETUP) clean --all
  36. rm -f dulwich/*.so
  37. style:
  38. $(RUFF) check .
  39. coverage:
  40. $(COVERAGE) run -m unittest tests.test_suite dulwich.contrib.test_suite
  41. coverage-html: coverage
  42. $(COVERAGE) html
  43. .PHONY: apidocs
  44. apidocs:
  45. $(PYTHON) -m pydoctor $(PYDOCTOR_ARGS) --intersphinx https://www.dulwich.io/api/objects.inv --intersphinx http://docs.python.org/3/objects.inv --docformat=google dulwich --project-url=https://www.dulwich.io/ --project-name=dulwich
  46. fix:
  47. ruff check --fix .
  48. reformat:
  49. ruff format .
  50. .PHONY: codespell
  51. codespell:
  52. codespell --config .codespellrc .