博客
2023 年 4 月 7 日
依赖项 API 弃用延迟
作者 André Arko
更新:基于社区成员的额外反馈,我们已将移除时间推迟两周,并为 Java 用户添加了一项例外,直至 8 月 8 日。新的中断日期为 5 月 12 日、15 日、17 日、19 日和 22 日,移除日期从 5 月 10 日移至 5 月 24 日。
Tl;dr:依赖项 API 将延迟一个月继续使用,为下游项目提供更多时间处理此更改。新的中断日期:4 月 10 日、17 日、24 日,5 月 1 日、3 日、5 日、12 日、15 日、17 日、19 日、22 日。新的移除日期:5 月 24 日。
发生了什么
早在 2 月份,我们发布了一篇关于移除依赖项 API 的计划的帖子。在 4 月 3 日的整日中断期间,我们开始从 Artifactory 和 Nexus 等第三方软件用户那里了解到他们无法安装宝石。
事实证明,Artifactory 和 Nexus(至少有时)会从 RubyGems.org 获取一个 404 未找到
响应,但随后向 Bundler 或 RubyGems 返回一个 200 确定
响应。遗憾的是,200 确定
响应阻止了 Bundler 回退到完整索引,并中断了宝石的安装。
我们在返回一个 404 之后,绝对没有想到 Artifactory 或 Nexus 会告诉 Bundler API 请求已成功,但为空!
我们的处理方式
由于这给最终用户带来了意外影响,我们决定将移除依赖项 API 的时间推迟一个月,即 5 月 10 日。以下时间将进行 24 小时的额外中断:
- 4 月 10 日 00:00:01 至 23:59:59(UTC)
- 4 月 17 日 00:00:01 至 23:59:59(UTC)
- 4 月 24 日 00:00:01 至 23:59:59(UTC)
- 5 月 01 日 00:00:01 至 23:59:59(UTC)
- 5 月 03 日 00:00:01 至 23:59:59(UTC)
- 5 月 05 日 00:00:01 至 23:59:59(UTC)
- 5 月 12 日 00:00:01 至 23:59:59(UTC)
- 5 月 15 日 00:00:01 至 23:59:59(UTC)
- 5 月 17 日 00:00:01 至 23:59:59(UTC)
- 5 月 19 日 00:00:01 至 23:59:59(UTC)
- 5 月 22 日 00:00:01 至 23:59:59(UTC)
依赖项 API 将于 2023 年 5 月 24 日 00:00:01(UTC)禁用。
Gemfile 替代方案
如果您正在使用 Bundler,最简单的解决方法是在 Gemfile 中为从 RubyGems.org 安装的任何 gem 使用 RubyGems.org 源块。以下是示例。
source "https://rubygems.org.cn" do
gem "from_rubygems"
end
source "my.internal.artifactory" do
gem "private_gem"
end
Artifactory 问题
JFrog 已发布针对此问题的官方解决方案,该解决方案包括在 Artifactory 中启用单个配置文件标志,以提供较新的精简索引格式。
有一个公共 Jira 工单,其中包括对这个问题的讨论,以及也可以应用的 nginx 或基于 apache 的解决方法。
如果您在使用 Artifactory 时遇到问题,请联系JFrog 支持。
Nexus 问题
有一个公共 Nexus Jira 工单,其中包括对这个问题的讨论,以及暂时可以应用的基于 nginx 的解决方法。
如果您在使用 Nexus 时遇到问题,请联系Sonatype 支持。
其他问题
如果您在使用 Artifactory、Nexus、Chef、Puppet 或任何其他依赖于 RubyGems 的软件时遇到了问题,请联系该产品的供应商以直接获得支持。
如果您直接在 RubyGems.org 中遇到问题,请打开我们公共工单追踪器中的工单,而不是要求获得私密支持。请避免联系维护人员以直接寻求帮助。
RubyGems.org 团队只有少数几个人,我们之中没有一个人能够将 RubyGems 作为我们的全职工作。我们提供的服务是免费的,因为我们热爱 Ruby 社区,但我们不是商业化产品,无法获得收入,从而我们无法拥有全职员工来协助解决问题。
我们很乐意倾听您的反馈,并尝试与您合作为您找到最适合您、Ruby 社区和 RubyGems 维护人员的解决方案。