我有一个我要重命名的宝石。它是published on RubyGems。我最担心的是人们想要更新它。
我看到了两条路,但是真的很想听到那些重命名他们的宝石的人,他们是怎么做到的。
smart-cropper
)smart-cropper
作为依赖项添加到croptoelie
(旧宝石)croptoelie
我看到的一个问题是,它太透明了,人们可能不会意识到他们使用的宝石不再被维护。
另一个问题是版本控制变得更难:每次我发布新版本的重命名(smart-cropper
)宝石时,我都必须碰到旧的“元数据包”的版本,否则人们永远不会得到新版本版。
我可以发送一个旧宝石的版本,它只会抛出弃用警告,并附带一条消息,告知人们应该安装新宝石。
我看到的问题是它可能非常具有干扰性,可能会让人们[1]完全远离宝石。
还有其他选择吗?是否内置了“RubyGems”以满足更改名称的需要?
[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
文件中的在summary
或description
属性的末尾添加以下通知:
Formerly known as '_____'.
在某些遥远的地方,您可能想要从RubyGems中删除旧的gem。从RubyGems 1.3.6
和gemcutter 0.5.0
开始(大约在2010年2月),您可以使用gem yank
删除您的gem,以便使用gem install和其他gem命令。但是,宝石仍然可供下载,主要有两个原因: