{"podcast":{"title":"Talk Python To Me","slug":"talk-python-to-me","podcast_index_feed_id":742305,"rss_url":"https://talkpython.fm/episodes/rss","website_url":"https://talkpython.fm/","image_url":"https://cdn-podcast.talkpython.fm/static/img/talk-python-3000.jpg","author":"Michael Kennedy","episode_count":546,"summary":"Talk Python to Me is a weekly podcast hosted by developer and entrepreneur Michael Kennedy. We dive deep into the popular packages and software developers, data scientists, and incredible hobbyists doing amazing things with Python. If you're new to Python, you'll quickly learn the ins and outs of the community by hearing from the leaders. And if you've been Pythoning for years, you'll learn about your favorite packages and the hot new ones coming out of open source.","last_synced_at":null,"page_url":"https://stenobird.com/podcast/talk-python-to-me"},"episode":{"title":"#540: Modern Python monorepo with uv and prek","slug":"540-modern-python-monorepo-with-uv-and-prek","published_at":"2026-03-13T21:17:50+00:00","page_url":"https://stenobird.com/podcast/talk-python-to-me/540-modern-python-monorepo-with-uv-and-prek","show_page_url":"https://stenobird.com/podcast/talk-python-to-me","url":"https://talkpython.fm/episodes/show/540/modern-python-monorepo-with-uv-and-prek","audio_url":"https://talkpython.fm/episodes/download/540/modern-python-monorepo-with-uv-and-prek.mp3","summary":"Learn how the Apache Airflow team manages a massive Python monorepo containing over a million lines of code and 100+ sub-packages. Discover how modern tooling like uv and pre-commit has eliminated the traditional friction of monorepo maintenance.","meta_description":"Explore the architecture of Apache Airflow's Python monorepo using uv, pyproject.toml, and modern packaging standards to manage large-scale codebases.","key_points":["Main idea: Modern Python packaging standards (PEPs) and tools like uv have made monorepos viable by simplifying dependency management","Practical takeaway: Use uv workspaces to ensure sub-packages are isolated and cross-imports are caught easily during development","Practical takeaway: Leverage inline script metadata and dependency groups to simplify pre-commit configurations and environment setup","Failure mode: Avoid the old 'multi-repo' complexity; the benefits of testing everything together in one place now outweigh the overhead of a monorepo","Main idea: The shift toward standardized, tool-agnostic metadata allows for better interoperability between tools like uv, hatch, and pre-commit"],"chapters":[{"start_ms":60000,"title":"Introduction to Airflow's Monorepo","summary":"An introduction to the scale of the Apache Airflow codebase and the challenges of managing hundreds of interconnected sub-packages."},{"start_ms":625000,"title":"Monolith vs. Sub-packages","summary":"Discussing the architectural decision to use a monorepo structure rather than a single monolithic repository or fragmented separate repos."},{"start_ms":1475000,"title":"The Role of uv and Astral","summary":"How the uv toolchain and collaboration with the Astral team enabled better integration for large-scale Python projects."},{"start_ms":2025000,"title":"Modern Packaging Standards","summary":"Deep dive into how PEPs regarding dependency groups and inline script metadata simplify development and pre-commit hooks."},{"start_ms":2580000,"title":"Pre-commit and Rust-based Tooling","summary":"The synergy between uv and Rust-based tools like pre-commit in maintaining high-quality code in a large-scale environment."},{"start_ms":3160000,"title":"Automated Vendoring and Distribution","summary":"How modern standards allow for automatic vendoring of shared libraries during the build process."},{"start_ms":3730000,"title":"Final Verdict: Just Do It","summary":"A concluding recommendation for developers to adopt monorepos now that the tooling has matured."}],"topics":["Python","Monorepo","Apache Airflow","uv","Software Architecture","Package Management","DevOps","Python Packaging"],"duration_seconds":3733,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/talk-python-to-me/episodes/540-modern-python-monorepo-with-uv-and-prek/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/talk-python-to-me/540-modern-python-monorepo-with-uv-and-prek.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]}}