Skip to content

Working with Make Targets

This guide explains the Makefile structure and how to use the available targets across components.

The Makefile pattern

Each component has its own Makefile with operational targets. There is no root Makefile. You always run commands from within a component directory or use make -C <component> from the repository root.

Running targets

# From the repository root
make -C hub deploy-infra
make -C mock_data seed-shared-data
make -C projects/pudo deploy-schema

# Or from within the component directory
cd projects/pudo
make deploy-schema

Hub targets

Target Command Description
deploy-infra uv run python scripts/deploy_infra.py Bootstrap all Snowflake platform infrastructure.

Mock data targets

Target Command Description
seed-shared-data uv run python scripts/seed_shared_data.py Initial bulk load of PUDO data.
add-morning-data uv run pudo-generate add-day morning Simulate morning arrivals.
add-evening-data uv run pudo-generate add-day evening Simulate evening completions.
simulation-status uv run pudo-generate simulation-status Show simulation state.
reset-simulation uv run pudo-generate reset-simulation Reset simulation clock.

PUDO project targets

Deployment targets

Target Command Description
deploy-schema uv run python scripts/deploy_schema.py Create project schema.
deploy-feature-store uv run python scripts/deploy_feature_store.py Register entities and feature views.
deploy-training-dag uv run python scripts/deploy_training_dag.py Deploy training task graph.
deploy-inference-dag uv run python scripts/deploy_inference_dag.py Deploy inference task graph.

Execution targets

Target Command Description
run-training-dag uv run python scripts/run_training_dag.py Execute training pipeline.
run-inference-dag uv run python scripts/run_inference_dag.py Execute inference pipeline.

CLI targets

Target Command Description
run-inference uv run pudo-inference run Run batch inference via CLI.
evaluate-predictions uv run pudo-inference evaluate Evaluate predictions vs actuals.
inference-alerts uv run pudo-inference alerts Check alert conditions.
inference-summary uv run pudo-inference summary Print prediction summary.

Common patterns

First-time setup

make -C hub deploy-infra
make -C mock_data seed-shared-data
make -C projects/pudo deploy-schema
make -C projects/pudo deploy-feature-store

Training cycle

make -C projects/pudo deploy-training-dag
make -C projects/pudo run-training-dag

Inference cycle

make -C projects/pudo deploy-inference-dag
make -C projects/pudo run-inference-dag

Daily simulation cycle

make -C mock_data add-morning-data
make -C projects/pudo run-inference
make -C mock_data add-evening-data
make -C projects/pudo evaluate-predictions
make -C projects/pudo inference-alerts
make -C projects/pudo inference-summary

Adding new targets

To add a new target to a component's Makefile:

.PHONY: new-target

new-target:
    uv run python scripts/new_script.py

Follow the existing pattern:

  • Use .PHONY for all targets.
  • Use uv run to execute scripts (handles the virtual environment).
  • Keep targets atomic. Each target does one thing.