.PHONY: test demo classes generate clean build publish-test publish

test:
	python3 -m unittest discover -s tests -t . -v

demo:
	PYTHONPATH=src python3 -m ssb.cli demo

classes:
	PYTHONPATH=src python3 -m ssb.cli classes

generate:
	PYTHONPATH=src python3 -m ssb.cli generate --limit 500 --out benchmark.json

clean:
	rm -f benchmark.json scorecard.json
	rm -rf build/ dist/ *.egg-info src/*.egg-info
	find . -name __pycache__ -type d -exec rm -rf {} + 2>/dev/null || true

build:
	python3 -m pip install -U build twine
	rm -rf dist/
	python3 -m build

# Dry-run upload (needs TestPyPI API token in ~/.pypirc or TWINE_USERNAME/TWINE_PASSWORD)
publish-test: build
	python3 -m twine upload --repository testpypi dist/*

# Production upload (needs PyPI API token)
publish: build
	python3 -m twine upload dist/*
