将 opam-repository 推送到一个可持续的存储库中

主要观点:

  • Opam 是 OCaml 包管理系统,其默认仓库 opam-repository 由社区维护,随着 OCaml 和 opam 越来越受欢迎,仓库中的包数量从 2013 年的 10,000 个增长到 2025 年的 33,000 个,导致构建仓库索引的 CI 系统耗时 3 小时,小电脑因内存消耗无法使用,且 opam 打包在多个发行版中,升级需大量时间。
  • 经过讨论和多次视频会议,得出需要向后兼容的解决方案,依赖包作者声明维护意图,不删除仍被其他包依赖的包,创建一个单独的归档仓库。
  • 2024 年制定了归档政策和计划,包括三个阶段,第一阶段于 2025 年 1 月 1 日完成,将 4170 个不可用包移至归档仓库;第二阶段于 2 月 1 日完成,归档了 5855 个使用 OCaml < 4.08 的包和 915 个更精确的包;第三阶段因工具未准备好和语义讨论延迟至 2025 年 5 月,最终确定了要归档的 4735 个包。
  • 已归档约 1/3 的 opam 文件,期待继续归档更多包,项目部分由 OCSF 资助,也接受捐赠和赞助。

关键信息:

  • Opam 自 2013 年发布 1.0 版本以来,是社区服务,解决包依赖问题,其默认仓库 opam-repository 中包数量增长,构建耗时内存消耗大。
  • 讨论得出的解决方案及相关政策,如向后兼容、不删除依赖包等。
  • 2024 年的归档计划及各阶段进展,包括开发工具、发现可归档包等。
  • 已归档约 10940 个包,部分资金来自 OCSF 资助及捐赠赞助。

重要细节:

  • 开发的 archive-opam 工具用于检测不可用包等,在各阶段发挥作用。
  • 因“setup-ocaml”问题和 opam-repository 抓取的大差异,第三阶段延迟至 2025 年 5 月。
  • 已归档包约占 opam-repository 中 opam 文件的 1/3 。
阅读 7
0 条评论