Hi, I've recently joined a business intelligence company who uses a python monorepo with hand-rolled tooling. It has issues with circular dependencies, or even just knowing which version of a third-party library any deployed service is using. A large part of the build process is smashing directories into the right location inside a Dockerfile then setting the PYTHONPATH. This makes it hard to know what a deployed unit looks like from the folder structure it's also a pain for non-Linux users (which is about 95% of the company) because of the resources docker takes up on those system when building multiple parts. We also have an issue of not knowing what change impacts what service or library so a full retest and rebuild of all python code happens on every PR which is very slow for most of the team.
Searching around for how to solve these problems in a Python monorepo lead me here 🙂
10/14/2021, 11:49 AM
Hi and Welcome!
I am happy you discovered Pants, as it will have so many areas to help you out with 🙂
10/14/2021, 3:39 PM
Pants has a several commands and options for reasoning about dependencies and changes and acting on them appropriately, so hopefully we can be of help!
You've definitely come to the right project for that. Hit us up with questions, suggestions, requests, etc in #general. The maintainers are very receptive to feedback, so if you find there's some aspect of your use case that Pants isn't addressing yet, do let us know how it could be made more useful for you. Cheers!