💡
原文英文,约900词,阅读约需4分钟。
📝
内容提要
今天在升级Python依赖时,我分享了使用Nix修补Python包的解决方案。通过创建补丁覆盖DRF包,避免了维护分支的麻烦。Nix的智能构建确保了依赖的安全性,提高了开发效率。
🎯
关键要点
- 今天在升级Python依赖时遇到问题,分享了使用Nix修补Python包的解决方案。
- Nix的学习曲线较陡,但一旦掌握,其强大、灵活和可靠性令人惊叹。
- 维护的Python代码库基于Django和Django REST Framework (DRF),使用Nix进行开发、测试和CI/CD。
- DRF相对稳定,主要关注bug修复和与新版本Django的兼容性。
- 升级到DRF v3.16.0后,测试失败,问题与UniqueTogetherValidator和可空字段有关。
- 最近合并的PR修复了UniqueTogetherValidator的一个边缘案例,但DRF没有新版本发布。
- 考虑的解决方案包括使用DRF的主分支、为DRF创建分支或将PR的更改应用为补丁。
- 选择将PR的更改作为补丁应用,使用Nix使得修补Python包变得简单。
- 创建补丁的步骤包括使用git diff生成补丁文件。
- 在Nix包集中覆盖DRF,应用补丁以创建修补版本,无需维护开发版本或自定义分支。
- Nix的智能构建确保了依赖的安全性,更新后重建所有依赖包,避免潜在问题。
➡️