Modern Python monorepo with uv and prek - Talk Python to Me Ep. 540
Monorepos -- you've heard the talks, you've read the blog posts, maybe you've seen a few tantalizing glimpses into how Google or Meta organize their massive codebases. But it's often in the abstract and behind closed doors. What if you could crack open a real, production monorepo, one with over a million lines of Python and over 100 of sub-packages, and actually see how it's built, step by step, using modern tools and standards? That's exactly what Apache Airflow gives us. On this episode, I sit down with Jarek Potiuk and Amogh Desai, two of Airflow's top contributors, to go inside one of the largest open-source Python monorepos in the world and learn how they manage it with uv, pyproject.toml, and the latest packaging standards, so you can apply those same patterns to your own projects. ▬▬▬▬ About the podcast ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ This video is the uncut, live recording of the Talk Python To Me podcast ( https://talkpython.fm ). We cover Python-focused topics every week and publish the edited and polished version in audio form. Subscribe in your podcast player of choice (100% free) at https://talkpython.fm/subscribe. ▬▬▬▬ Guests ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Amogh Desai Jarek Potiuk ▬▬▬▬ Links and resources from the show ▬▬▬▬▬▬▬▬▬▬▬▬ definition of a monorepo: https://monorepo.tools airflow: https://airflow.apache.org Activity: https://github.com/apache/airflow/pulse OpenAI: https://airflowsummit.org/sessions/2025/airflow-openai/ Part 1. Pains of big modular Python projects: https://medium.com/apache-airflow/modern-python-monorepo-for-apache-airflow-part-1-1fe84863e1e1 Part 2. Modern Python packaging standards and tools for monorepos: https://medium.com/apache-airflow/modern-python-monorepo-for-apache-airflow-part-2-9b53e21bcefc Part 3. Monorepo on steroids - modular prek hooks: https://medium.com/apache-airflow/modern-python-monorepo-for-apache-airflow-part-3-77373d7c45a6 Part 4. Shared “static” libraries in Airflow monorepo: https://medium.com/apache-airflow/modern-python-monorepo-for-apache-airflow-part-4-c9d9393a696a PEP-440: https://peps.python.org/pep-0440/ PEP-517: https://peps.python.org/pep-0517/ PEP-518: https://peps.python.org/pep-0518/ PEP-566: https://peps.python.org/pep-0566/ PEP-561: https://peps.python.org/pep-0561/ PEP-660: https://peps.python.org/pep-0660/ PEP-621: https://peps.python.org/pep-0621/ PEP-685: https://peps.python.org/pep-0685/ PEP-723: https://peps.python.org/pep-0732/ PEP-735: https://peps.python.org/pep-0735/ uv: https://docs.astral.sh/uv/ uv workspaces: https://blobs.talkpython.fm/airflow-workspaces.png?cache_id=294f57 prek.j178.dev: https://prek.j178.dev your presentation at FOSDEM26: https://fosdem.org/2026/schedule/event/WE7NHM-modern-python-monorepo-apache-airflow/ Tallyman: https://github.com/mikeckennedy/tallyman ▬▬▬▬ Dive deeper ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Listen to the Talk Python To Me podcast at https://talkpython.fm and explore over 275 hours of Python courses at https://training.talkpython.fm/courses. ▬▬▬▬ Follow us on Social ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Mastodon: Michael - https://fosstodon.org/@mkennedy & Talk Python - https://fosstodon.org/@talkpython Bluesky: Michael - https://bsky.app/profile/mkennedy.codes & Talk Python - https://bsky.app/profile/talkpython.fm X: Michael - https://x.com/mkennedy & Talk Python - https://x.com/talkpython