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.
Links from the show
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.
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
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