![]() The support we had from our client Kaiko,įor which we did most of the work described in this series of blog posts. In this post, we describe a design for a Python monorepo: how we structure it which tools we favor alternatives that were considered and some possible improvements.īefore diving into the details, we would like to acknowledge Is required for a monorepo to stay performant as a team grows. In addition, monorepos come with their own scaling challenges. It means that all code in a monorepo depends on the code that is next to it on disk,Īs opposed to depending on released versions of the code in the same repository.ĭesigning a monorepo can be challenging, as it impacts the development workflow of all engineers. Living at HEAD is a term popularized by Titus Winters,įrom Google. Which causes mistakes to be caught later, rather than sooner, and causesĪtomic changes are implemented in our setup, thanks to a living at HEAD setup. This avoids the usual workflow of cascading updates, Up automatically by CI, without any manual interaction, ensuring uniformity and best practices.Ītomic changes: because all libraries and projects are in one place, a large changeĬan be implemented in one PR. Uniformity smooths the onboarding of newcomers as well as the reassignment of engineersĮasier continuous integration: new code is picked ![]() To use the same code style and documentation standards. The configuration of linters, formatters, etc. Uniformity: by working in one central repository, it is easier to share ![]() Visibility: by seeing the pull requests (PRs) of colleagues, you are easily informed Systems that foster cross-team communication. ![]() For a software team to be successful, you need excellent communication. ![]()
0 Comments
Leave a Reply. |