Monitor errors and performance issues with Sentry.io

Monorepos in Python

Episode #399, published Wed, Jan 18, 2023, recorded Fri, Jan 13, 2023

Monorepos are contrary to how many of us have been taught to use source control. To start a project or app, the first thing we do is create a git repo for it. This leads to many focused and small repositories. A quick check of my GitHub account shows there are 179 non-fork repositories. That's a lot but I think many of us work that way.

But it's not like this with monorepos. There you create one (or a couple) repositories for your entire company. This might have 100s or 1,000s of employees working on multiple projects within the single repo. Famously, Google, Meta, Microsoft, and Airbnb all employ very large monorepos with varying strategies of coordination.

On this episode, we have David Vujic here to give us his perspective on monorepos as well as highlight an architectural pattern and set of tools for accomplishing this in Python.

Watch this episode on YouTube
Play on YouTube
Watch the live stream


Links from the show

David on Twitter: @davidvujic
David on Mastodon: @davidvujic@mastodon.nu
Monorepo definition: wikipedia.org
git-sizer tool for large repos: github.com
git partial clones: docs.gitlab.com
git sparse checkout: git-scm.com
Polylith architecture: polylith.gitbook.io
Article: A simple & scalable Python project structure: davidvujic.blogspot.com
The last Python Architecture you will ever need?: davidvujic.blogspot.com
python-polylith plugin for poetry: github.com
Watch this episode on YouTube: youtube.com
Episode transcripts: talkpython.fm

--- Stay in touch with us ---
Subscribe to us on YouTube: youtube.com
Follow Talk Python on Mastodon: talkpython
Follow Michael on Mastodon: mkennedy

Want to go deeper? Check out our courses

David Vujic
David Vujic
David is a software developer. Friends may know him as an early adopter of agile ideas and test driven development. He's passionate about things like that, and shares the things he learns regularly to the community. His current favorite programming languages are Python and Clojure. In his spare time, he practices outdoor Parkour and contributes to Open Source, currently focusing on adding features to the Python tools for the Polylith Architecture.
Episode sponsored by
Ads served ethically
Talk Python's Mastodon Michael Kennedy's Mastodon