[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)