Python Tooling at Scale: LlamaIndex’s Monorepo Overhaul
1–10 of 13 posts
Re: Python Tooling at Scale: LlamaIndex’s Monorepo Overhaul
#2Re: Python Tooling at Scale: LlamaIndex’s Monorepo Overhaul
#3I 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
I saw workspaces require all dependencies to agree with eachother, which isn't quite possible in our repo
Re: Python Tooling at Scale: LlamaIndex’s Monorepo Overhaul
#4Re: Python Tooling at Scale: LlamaIndex’s Monorepo Overhaul
#5So just to let me get this straight: Does this new setup aim to make it easier to contribute to llamaindex submodules specifically?
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!
Re: Python Tooling at Scale: LlamaIndex’s Monorepo Overhaul
#6I 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
edit: spell out GHA
Re: Python Tooling at Scale: LlamaIndex’s Monorepo Overhaul
#7I 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
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
Re: Python Tooling at Scale: LlamaIndex’s Monorepo Overhaul
#8Earlier quoted context omitted.
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
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)
Re: Python Tooling at Scale: LlamaIndex’s Monorepo Overhaul
#9Earlier quoted context omitted.
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)
Was bazel an option?