Quick Start for Developers

Get started with development in 5 minutes using our modern Python 3.13 + UV setup.

Prerequisites

  • Git
  • Python 3.13 (uv can install it for you if needed)
  • Basic knowledge of Python and machine learning

Step 1: Install UV (30 seconds)

# macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# Add to PATH
export PATH="$HOME/.local/bin:$PATH"

# Verify installation
uv --version

Step 2: Clone and Setup (2 minutes)

# Clone the repository
git clone <repository-url>
cd mlops-with-mlflow

# One command to set up everything!
uv sync

# This automatically:
# - Creates a virtual environment (.venv)
# - Installs Python 3.13 if needed
# - Installs all dependencies
# - Installs all packages in development mode

Step 3: Build and Test (2 minutes)

# Build all packages
make build

# Run all tests
make test

# Or do both
make all

Step 4: Start Developing! 🚀

# Run Python scripts (no activation needed!)
uv run python your_script.py

# Run tests for a specific package
cd src/doe-library
uv run pytest tests/

# Run Jupyter notebook
uv run jupyter notebook

# Start MLflow UI
uv run mlflow ui

Common Tasks

Adding a Dependency

# Add to root project
uv add package-name

# Add to specific package
cd src/my-package
uv add package-name

Running Tests

# All tests
uv run pytest

# Specific test file
uv run pytest tests/test_feature.py

# With coverage
uv run pytest --cov=src

Code Quality

# Format code
uv run ruff format .

# Check code
uv run ruff check .

# Fix issues
uv run ruff check --fix .

Working with MLflow

# Start MLflow UI
uv run mlflow ui

# Open http://localhost:5000 in your browser

# Run a training script
uv run python src/mlflow-sklearn/train.py

Project Structure

mlops-with-mlflow/
├── .venv/                  # Virtual environment (auto-generated)
├── pyproject.toml          # Root configuration
├── uv.lock                 # Locked dependencies
├── src/                    # Source packages
│   ├── doe-library/        # Design of experiments
│   ├── io-library/         # I/O utilities
│   ├── feature-library/    # Feature engineering
│   ├── metrics-library/    # ML metrics
│   ├── plot-library/       # Plotting
│   ├── mlflow-sklearn/     # Scikit-learn + MLflow
│   ├── mlflow-tf/          # TensorFlow + MLflow
│   ├── mlflow-torch/       # PyTorch + MLflow
│   └── hurricane-landfall/ # Hurricane prediction
├── docs/                   # Documentation (you're here!)
├── tests/                  # Integration tests
└── deploy/                 # Deployment configs

Next Steps

  1. Read the UV Guide - Learn uv in depth
  2. Review Architecture - Understand the system design
  3. Check Contributing Guidelines - Learn best practices
  4. Explore Shared Libraries - Understand available utilities
  5. Run a Hurricane Pipeline - Try a real example

Helpful Resources

Documentation

Troubleshooting

UV not found

# Add to PATH
export PATH="$HOME/.local/bin:$PATH"

# Add to shell config
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Python 3.13 not available

# UV can install it for you
uv python install 3.13

Build fails

# Clean and rebuild
make clean
uv sync
make build

Tests fail

# Make sure you built first
make build
make test

# Run with verbose output
uv run pytest -v

Getting Help


Welcome to the team! Happy coding! 🎉