Hello fellow Airflow developers,

Before I go on paternity leave, I wanted to share a tool I've been using
that might help fellow contributors who work on multiple PRs simultaneously.

## What is ABM?

*Airflow Breeze Manager (ABM)* is a CLI tool for managing multiple Airflow
development environments with isolated breeze instances. It uses git
worktrees and port isolation so you can work on multiple branches at the
same time without conflicts.

GitHub: https://github.com/kaxil/abm
PyPI: `uv tool install airflow-breeze-manager`

## The Problem It Solves

When working on multiple Airflow PRs/features simultaneously, we face:
- Port conflicts when running multiple breeze instances
- Container name collisions (all use the same Docker Compose project name)
- Lost context when switching branches
- Waiting for containers to restart every time you switch

## How It Works

ABM creates isolated environments for each branch:
- ✅ Git worktrees (multiple branches checked out simultaneously)
- ✅ Unique port assignments for all services (webserver, flower, postgres,
mysql, redis, ssh)
- ✅ Isolated Docker containers (via unique COMPOSE_PROJECT_NAME)
- ✅ Branch-specific documentation that persists (PROJECT.md, CLAUDE.md)
- ✅ GitHub PR tracking
- ✅ Disk space management (freeze/thaw node_modules)

## Quick Example

```bash
# One-time setup (run from your Airflow repo)
cd ~/airflow
abm init --airflow-repo . --worktree-base ../airflow-wt

# Create projects for different features
abm add feature-async --create-branch
abm add bugfix-scheduler --create-branch

# Work on both simultaneously
abm start-airflow feature-async      # localhost:28180
abm start-airflow bugfix-scheduler   # localhost:28181 (different port!)

# Each has its own isolated environment - no conflicts!
abm list  # See all your projects
```

## Links

- GitHub: https://github.com/kaxil/abm
- Quick Start: https://github.com/kaxil/abm/blob/main/QUICKSTART.md

I hope this helps some of you be more productive with parallel development!

Regards,
Kaxil

Reply via email to