Hasty Briefsbeta

双语

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,极大改善了开发体验。