
.PHONY: setup setup11 pydeps test bench-ci bench test-integration test-all coverate-report
.PHONY: test-resetup lint fix docs kind kind-teardown kuberay kuberay11

setup: kind-teardown kuberay pydeps

setup11: kind-teardown kuberay11 pydeps

pydeps:
	# 2.44 ray hangs in ci
	uv sync --all-groups --all-extras --no-extra prefect --locked

test:
	uv run -m pytest src/tests --runxfail --cov=src/geneva

bench-ci:
	uv run -m pytest src/benches -rx --cov=src/geneva --cov-append -v --benchmark-disable

bench:
	uv run -m pytest src/benches -v --benchmark-compare --benchmark-autosave --benchmark-save-data --benchmark-group-by=name --benchmark-verbose -s

test-integration:
	# force kind cluster recreate for each test
	uv run -m pytest src/integ_tests --cov=src/geneva --cov-append -v -s

test-all: test-unit test-integration

coverage-report:
	uv run coverage xml

test-resetup: setup test

lint:
	uv run ruff format --check src
	uv run ruff check src
	uv run pyright

fix:
	uv run ruff format src
	uv run ruff check --fix src
	uv run pyright

docs:
	# uv sync --extra docs # this blows up other dependencies / e.g. notebooks
	cd docs ; uv run mkdocs serve

kind:
	tools/setup_kind_cluster.sh

kind-teardown:
	kind delete cluster --name geneva

kuberay: kind
	tools/setup_kuberay.sh

kuberay11: kind
	KUBERAY_VERSION=1.1.0 tools/setup_kuberay.sh
