X Tutup
######### # BUILD # ######### .PHONY: develop develop: ## setup project for development python -m pip install -e .[develop] .PHONY: build-py build-cpp build build-py: python -m build -w -n build-cpp: python -m hatchling build --hooks-only build-cibw: python -m cibuildwheel --output-dir dist build: build-cpp build-py ## build the project .PHONY: install install: ## install python library python -m pip install . ######### # LINTS # ######### .PHONY: lint-py lint-cpp lint-docs lint lints lint-py: ## run python linter with ruff python -m ruff check python_template_cpp python -m ruff format --check python_template_cpp lint-cpp: ## run cpp linter clang-format --dry-run -Werror -i -style=file `find ./cpp -name "*.*pp"` lint-docs: ## lint docs with mdformat and codespell python -m mdformat --check README.md docs/wiki/ python -m codespell_lib README.md docs/wiki/ lint: lint-cpp lint-py ## run project linters # alias lints: lint .PHONY: fix-py fix-cpp fix format fix-py: ## fix python formatting with ruff python -m ruff check --fix python_template_cpp python -m ruff format python_template_cpp fix-cpp: ## fix cpp formatting clang-format -i -style=file `find ./cpp -name "*.*pp"` fix-docs: ## autoformat docs with mdformat and codespell python -m mdformat README.md docs/wiki/ python -m codespell_lib --write README.md docs/wiki/ fix: fix-cpp fix-py fix-docs ## run project autoformatters # alias format: fix ################ # Other Checks # ################ .PHONY: check-dist check-types checks check check-dist: ## check python sdist and wheel with check-dist check-dist -v check-types: ## check python types with ty ty check --python $$(which python) checks: check-dist # alias check: checks ######### # TESTS # ######### .PHONY: test-py tests-py coverage-py test-py: ## run python tests python -m pytest -v python_template_cpp/tests # alias tests-py: test-py coverage-py: ## run python tests and collect test coverage python -m pytest -v python_template_cpp/tests --cov=python_template_cpp --cov-report term-missing --cov-report xml .PHONY: test coverage tests test: test-py ## run all tests coverage: coverage-py ## run all tests and collect test coverage # alias tests: test ########### # VERSION # ########### .PHONY: show-version patch minor major show-version: ## show current library version @bump-my-version show current_version patch: ## bump a patch version @bump-my-version bump patch minor: ## bump a minor version @bump-my-version bump minor major: ## bump a major version @bump-my-version bump major ######## # DIST # ######## .PHONY: dist dist-py dist-check publish dist-py: ## build python dists python -m build -w -s dist-check: ## run python dist checker with twine python -m twine check dist/* dist: clean build dist-js dist-py dist-check ## build all dists publish: dist ## publish python assets ######### # CLEAN # ######### .PHONY: deep-clean clean deep-clean: ## clean everything from the repository git clean -fdx clean: ## clean the repository rm -rf .coverage coverage cover htmlcov logs build dist *.egg-info ############################################################################################ .PHONY: help # Thanks to Francoise at marmelab.com for this .DEFAULT_GOAL := help help: @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' print-%: @echo '$*=$($*)'
X Tutup