VENV ?= venv
PYTHON ?= python

ifeq ($(OS),Windows_NT)
VENV_PYTHON := $(VENV)/Scripts/python.exe
else
VENV_PYTHON := $(VENV)/bin/python
endif

.PHONY: venv test coverage-html build check publish bump-patch

venv:
	$(PYTHON) -m venv $(VENV)
	$(VENV_PYTHON) -m pip install -r requirements-dev.txt

test: venv
	$(VENV_PYTHON) -m pytest --cov=dgc_core --cov-report=term-missing

coverage-html: test
	$(VENV_PYTHON) -m coverage html

build: venv
	$(PYTHON) scripts/release.py clean-build
	$(VENV_PYTHON) -m build

check: build
	$(VENV_PYTHON) -m twine check dist/*

publish: check
	$(VENV_PYTHON) -m twine upload dist/*

bump-patch:
	$(PYTHON) scripts/release.py bump-patch
