如何重命名宝石?

时间:2012-11-18 13:14:01

标签: gem rubygems

我有一个我要重命名的宝石。它是published on RubyGems。我最担心的是人们想要更新它。

我看到了两条路,但是真的很想听到那些重命名他们的宝石的人,他们是怎么做到的。

1。把旧的变成元数据包

  • 创建一个新的gem(名为smart-cropper
  • smart-cropper作为依赖项添加到croptoelie(旧宝石)
  • croptoelie
  • 中删除所有lib,bin和其他代码

我看到的一个问题是,它太透明了,人们可能不会意识到他们使用的宝石不再被维护。

另一个问题是版本控制变得更难:每次我发布新版本的重命名(smart-cropper)宝石时,我都必须碰到旧的“元数据包”的版本,否则人们永远不会得到新版本版。

2。抛弃弃用警告

我可以发送一个旧宝石的版本,它只会抛出弃用警告,并附带一条消息,告知人们应该安装新宝石。

我看到的问题是它可能非常具有干扰性,可能会让人们[1]完全远离宝石。

还有其他选择吗?是否内置了“RubyGems”以满足更改名称的需要?

[1]并不是说有太多人在使用它;因为这个名字很难找到。 :)

1 个答案:

答案 0 :(得分:25)

您只需使用新名称推送新gem并告知用户新名称。没有重命名宝石的机制。 - RubyGems support staff, February 20, 2012

为此,以下是一些提示(其中一些我认为你已经完成了)。

旧宝石中的

,抛出弃用警告

示例:

warn "[DEPRECATION] This gem has been renamed to _____ and will no longer be supported. Please switch to _____ as soon as possible."
旧gem的.gemspec文件中的

使用post_install_message属性在安装旧gem后显示消息。以下示例基于Heroku gem

gem.post_install_message = <<-MESSAGE
!    The '_____' gem has been deprecated and has been replaced by '_____'.
!    See: https://rubygems.org/gems/_____
!    And: https://github.com/_____/_____
MESSAGE
旧的GitHub回购页面上的

-1-在页面顶部:向此存储库添加说明:(提供新名称)

Moved to ---> "_____".

-2-在页面顶部:将网站添加到此存储库:(将其设为新存储库的URL)

https://github.com/_____/_____

-3-上传新的README.markdown

# OLD NAME

Moved to [new name](https://github.com/_____/_____).

-4-考虑删除所有非必要文件。

新gem的.gemspec文件中的

summarydescription属性的末尾添加以下通知:

Formerly known as '_____'.

猛拉旧宝石

在某些遥远的地方,您可能想要从RubyGems中删除旧的gem。从RubyGems 1.3.6和gemcutter 0.5.0开始(大约在2010年2月),您可以使用gem yank 删除您的gem,以便使用gem install和其他gem命令。但是,宝石仍然可供下载,主要有两个原因:

  1. 其他宝石可能已被推出,取决于你的宝石。
  2. 可以轻松地大规模删除重要的社区宝石。
  3. Go here for more info about yank.