Python Tooling at Scale: LlamaIndex’s Monorepo Overhaul
a year ago
- #Python
- #Monorepo
- #Tooling
- LlamaIndex管理着一个包含650多个Python包的单体仓库,主要包括集成包和功能包。
- 每个包都有独立的pyproject.toml文件,用于定义依赖项、版本控制和工具配置。
- 核心包llama-index-core是仓库中大多数其他包的依赖基础。
- 初始工具链采用Poetry管理单个包,用Pants进行构建编排。
- 原有方案存在依赖解析慢、CI调试复杂、维护成本高等挑战。
- 团队迁移至更快的Python项目管理工具uv,并开发了专用于单体仓库的LlamaDev工具。
- LlamaDev显著提升了测试速度、日志清晰度和本地复现性,缩短了CI反馈周期。
- 贡献者现在可以轻松在本地运行LlamaDev,极大改善了开发体验。