BTW. One of the things I want to fix - I know how to easily remove that limitation:
Postgres: ⚠️ Projects share the same database container (e.g., one postgres container for all) Breeze has a somewhat prepared feature for that - that we use to run our tests in CI in parallel for multiple test types - there we have several "full breeze docker-compose instances" running on the same machine (including Postgres or MySQL databases). We can reuse that one. J. On Fri, Oct 31, 2025 at 7:33 PM Jarek Potiuk <[email protected]> wrote: > Excellent tool Kaxil !!!! > > I love it. I already installed it and I am giving it a go (and I might > have some PRs soon - I already see one thing I would like to change :D) > > I do manage a lot of those manually - but it is certainly worth trying to > automate some of that especially if you work on many PRs in parallel. I > have a feeling that this is going to be my new best friend. > > > On Fri, Oct 31, 2025 at 2:12 PM Kaxil Naik <[email protected]> wrote: > >> 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 >> >
