MAKEFLAGS += --always-make

default: uv-sync ruff test

uv-sync:
	uv sync --all-extras
ruff:
	ruff format .
	ruff check .

mypy:
	mypy .

test:
	pytest --doctest-modules

build:
	python -m build --no-isolation

clean:
	rm -rf build/ dist/

pre-release: clean ruff test

push-with-tags:
	git push
	git push --tags

# release-test-pypi: pre-release
# 	twine upload --repository testpypi dist/*
#
upload:
	twine upload --repository pypi dist/*

major-release: pre-release
	./bin/release major

minor-release: pre-release
	./bin/release minor

patch-release: pre-release
	./bin/release patch
