💡
原文英文,约800词,阅读约需3分钟。
📝
内容提要
crates.io限制每个crate版本最多只能有300个features,以避免影响依赖解析和下载速度。团队希望用户参与解决这些问题的讨论。
🎯
关键要点
- crates.io限制每个crate版本最多只能有300个features,以避免影响依赖解析和下载速度。
- 用户报告shields.io徽章停止工作,问题出在API请求上,导致响应负载过大。
- 某个crate使用了近23000个features,每个图标对应一个feature,导致API响应超过20MB。
- crates.io API没有对已发布版本进行分页,导致响应数据过大。
- 包索引文件也变得庞大,9个版本的索引文件已达到11MB。
- features影响依赖解析,cargo依赖于features的可用性,无法删除空的feature声明。
- 大多数Rust用户使用稀疏包索引,只有使用该图标crate的用户需要下载所有元数据。
- crates.io团队在2023年10月16日实施了限制,新的crate/版本最多只能有300个features。
- 团队邀请用户参与讨论解决方案,最佳讨论地点为crates.io Zulip流。
- 感谢用户Charles Edward Gagnon提出问题,强调责任在于crates.io团队未能提前设限。
➡️