[HN Gopher] Python Tooling at Scale: LlamaIndex's Monorepo Overhaul
___________________________________________________________________
Python Tooling at Scale: LlamaIndex's Monorepo Overhaul
Author : cheesyFish
Score : 28 points
Date : 2025-05-21 17:20 UTC (5 hours ago)
(HTM) web link (www.llamaindex.ai)
(TXT) w3m dump (www.llamaindex.ai)
| lyjackal wrote:
| I recently did something similar. Using uv workspaces, I used the
| uv CLI's dependency graph to analyze the dependency tree then
| conditionally trigger CI workflows for affected projects. I wish
| there was a better way to access the uv dependency worktree other
| than parsing the `tree` like output
| cheesyFish wrote:
| I agree! I hope uv introduces more tools for monorepos or
| refines the workspaces concept.
|
| I saw workspaces require all dependencies to agree with
| eachother, which isn't quite possible in our repo
| esafak wrote:
| I use Github Actions triggers to pass flags to a monorepo
| dagger script to build and test the affected components. For
| example, if a commit touches the front- and back ends, rebuild
| both. If it only touches the front end, run integration tests
| using the latest backend without rebuilding it.
|
| edit: spell out GHA
| cheesyFish wrote:
| Yea this definitely makes sense for smaller monorepos. For
| us, we ended up writing our own dependency graph parser to
| figure out what tests to run (which is easy enough with a
| single language like python honestly)
| esafak wrote:
| Was bazel an option?
| cheesyFish wrote:
| We used pants initially (which I believe is similar to
| bazel). And indeed the dependency graphing it does was
| very helpful, but other parts of the tool motivated us to
| create something more bespoke and debuggable (we were
| only using like 20% or less of the features pants offers)
| chrisweekly wrote:
| GHA - GitHub Actions, right?
| tuanacelik wrote:
| So just to let me get this straight: Does this new setup aim to
| make it easier to contribute to llamaindex submodules
| specifically?
| cheesyFish wrote:
| Yes! For example, previously with pants, users would hit a lot
| of weird errors since how tests run with pants is different
| than running tests locally with pytest
|
| We did not expect users to learn pants, but this often meant a
| lot of back and forth with maintainers to get PR tests working.
|
| Should be much easier now!
| SlimIon729 wrote:
| Interesting to see LlamaIndex's journey from Poetry+Pants to
| uv+LlamaDev for managing their extensive monorepo. The speed
| improvements and better developer experience with `uv` are
| compelling. It's a good reminder of how tooling choices evolve
| with scale.
___________________________________________________________________
(page generated 2025-05-21 23:01 UTC)