【问题标题】:How to fix a RubyGems.org project page after yanking a gem?提取 gem 后如何修复 RubyGems.org 项目页面?
【发布时间】:2013-05-12 22:01:13
【问题描述】:

我在这里发布了一个 gem:https://rubygems.org/gems/rangy-rails/

当我在 2013 年 3 月第一次发布它时,我后来意识到我设置了一个错误的版本。

我立即抽出 gem 并使用正确的版本重新提交。不幸的是,RubyGems 没有删除被拉出的 gem,这导致了两个问题:

  1. 版本列表排序不正确(yanked gem 位于顶部):https://rubygems.org/gems/rangy-rails/versions

  2. 我的 gem 在 RubyGems 上的主页:https://rubygems.org/gems/rangy-rails/ 使用的是关于被拉出的 gem 的描述,而不是 gemspec 的描述。

我该如何解决这个问题?

到目前为止,我唯一的选择似乎是联系 RubyGems,但他们明确表示如下:

我们的政策是只永久删除真正需要它的宝石,例如 可能包含密码、恶意/有害代码等的 gem。 宝石有效地将其从被发现中移除,并将在 99% 的情况。

(来源:http://help.rubygems.org/kb/gemcutter/removing-a-published-rubygem

【问题讨论】:

    标签: ruby rubygems gem yank gemcutter


    【解决方案1】:

    问题 2 是可以解决的。描述取自 gem 的最新非预发布版本(不包括 yanked 版本)。 (请参阅有关预发布 gem 版本的更多信息 here。)现在,您的 gem 有 3 个版本,并且两个非 yanked 都是预发布的(它们在 gem 版本中有字母)。如果你推送一个新版本的 gem,即使是 0.0.1 什么的,那也是一个“发布”版本,它将用于描述。

    我制作了一个小测试 gem here 来演示我在说什么 - 请注意 the description page 取自最新的非预发布版本(在我的例子中是 0.0.1)。

    没有“解决”问题 1 的自助方式——Rubygems.org 将始终按语义版本控制顺序(从最高到最低)显示您的 gem 版本。不过,我不确定为什么这是一个大问题——大多数人通常不会查看版本页面。在大多数情况下,Yanking 会掩盖坏版本,并且正如文档所述,在这种情况下可能会“解决问题”。

    如果您真的想永久隐藏被拉出的 gem 的痕迹并将其从版本列表中完全删除,您需要联系 Rubygems 工作人员,看看他们是否愿意提供帮助。

    【讨论】:

    • 谢谢!赏金在我看到你的答案之前就结束了。我已将赏金翻倍,并将在 24 等待期结束时奖励。
    • 谢谢!这是非常慷慨的。
    【解决方案2】:

    您需要发布新版本,这不仅仅是拉扯。即,如果 yanked 版本是 1.3.0.772,则需要发布 1.3.0.780(例如)

    【讨论】:

    • 我明白你在说什么以及这是如何解决的,但我觉得这不是一个真正的选择,因为它会破坏我的版本控制约定。基本上,这个 gem 包装了一个 Javascript 库的 alpha 版本,可能很长一段时间都没有真正的 1.3.0 版本。感谢回复
    猜你喜欢
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 2011-11-10
    • 2021-12-11
    相关资源
    最近更新 更多