.PHONY: clean-build sync provider create-provider env fmt chk snt tst type_inference dead-code bump build format check sanity test clean-build: @rm -rf dist/ build/ @for provider in $(shell ls -d providers/*); do\ rm -rf build $$provider/dist $$provider/build;\ done sync: @uv sync @uv pip install -e . provider: @for provider in $(shell ls -d providers/*); do\ uv pip install $$provider;\ done create-provider: @if [ -z "$(name)" ]; then\ echo "Please provide a provider name: make create-provider name= [agentic=true] [output=]";\ exit 1;\ fi @ARGS="$(name)";\ if [ "$(agentic)" = "true" ]; then\ ARGS="$$ARGS --agentic";\ fi;\ if [ ! -z "$(output)" ]; then\ ARGS="$$ARGS --output-dir $(output)";\ fi;\ bash scripts/create-provider.sh $$ARGS env: @echo "* creating new environment" @if [ -z "$$VIRTUAL_ENV" ];\ then\ uv venv --seed --prompt composio --python 3.12;\ uv sync;\ uv sync --dev;\ make provider;\ uv pip install -e .;\ echo "* enter virtual environment with all development dependencies now";\ else\ uv sync;\ uv pip install -e .;\ echo "* already in a virtual environment (exit first ('deactivate') to create a new environment)";\ fi @echo "* run 'source .venv/bin/activate' to enter the development environment." fmt: @nox -s fmt chk: @nox -s chk dead-code: @nox -s dead_code snt: @nox -s snt tst: @nox -s tst type_inference: @nox -s type_inference # Friendly aliases for the short session names above (e.g. `make test` == `make tst`). format: fmt check: chk sanity: snt test: tst bump: clean-build @uv run python scripts/bump.py build: clean-build @./.venv/bin/python -m build @for provider in $(shell ls -d providers/*); do\ ./.venv/bin/python -m build $$provider;\ cp $$provider/dist/* dist/;\ done