Makefile 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. DESTDIR=/
  8. all: build
  9. doc:: sphinx
  10. sphinx::
  11. $(MAKE) -C docs html
  12. build::
  13. $(SETUP) build
  14. $(SETUP) build_ext -i
  15. install::
  16. $(SETUP) install --root="$(DESTDIR)"
  17. check:: build
  18. $(RUNTEST) tests.test_suite
  19. check-tutorial:: build
  20. $(RUNTEST) tests.tutorial_test_suite
  21. check-nocompat:: build
  22. $(RUNTEST) tests.nocompat_test_suite
  23. check-compat:: build
  24. $(RUNTEST) tests.compat_test_suite
  25. check-pypy:: clean
  26. $(MAKE) check-noextensions PYTHON=pypy
  27. check-noextensions:: clean
  28. $(RUNTEST) tests.test_suite
  29. check-contrib:: clean
  30. $(RUNTEST) -v dulwich.contrib.test_suite
  31. typing:
  32. $(PYTHON) -m mypy dulwich
  33. clean::
  34. $(SETUP) clean --all
  35. rm -f dulwich/*.so
  36. style:
  37. $(RUFF) check .
  38. coverage:
  39. $(COVERAGE) run -m unittest tests.test_suite dulwich.contrib.test_suite
  40. coverage-html: coverage
  41. $(COVERAGE) html
  42. .PHONY: apidocs
  43. apidocs:
  44. $(PYTHON) -m pydoctor --intersphinx http://urllib3.readthedocs.org/en/latest/objects.inv --intersphinx http://docs.python.org/3/objects.inv --docformat=google dulwich --project-url=https://www.dulwich.io/ --project-name=dulwich
  45. fix:
  46. ruff check --fix .
  47. reformat:
  48. ruff format .
  49. .PHONY: codespell
  50. codespell:
  51. codespell --config .codespellrc .