gpt4 book ai didi

gem - 如何重命名 gem ?

转载 作者:行者123 更新时间:2023-12-03 11:54:39 28 4
gpt4 key购买 nike

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

我看到了两条路,但是我真的很想听听重命名 gem 的人是如何做到的。

1.把旧的变成一个元包

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

  • 我看到的一个问题是,它太透明了,人们可能不知道他们使用的 gem 不再被维护。

    另一个问题是版本控制变得更加困难:每次我发布重命名的( smart-cropper)gem的新版本时,我都必须修改旧的“metapackage”的版本,否则人们将永远无法获得新版本。

    2.抛出弃用警告

    我可以发布旧版gem的版本,该版本仅引发弃用警告,并提示人们应安装该新gem。

    我看到的问题是,它可能非常具有侵入性,并且可能使人们[1]完全脱离 gem 。

    还有其他选择吗? “RubyGems”中是否内置了某些功能以适应名称的更改?

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

    最佳答案

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

    为此,以下是一些技巧(我发现其中一些技巧您已经完成)。

    在旧的 gem 中,抛出弃用警告

    例:

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

    在旧gem的 .gemspec文件中

    在安装旧gem之后,使用 post_install_message属性显示一条消息。以下示例基于 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 '_____'.

    抽出旧 gem

    在某个遥远的地方,您可能想要从RubyGems中删除旧的 gem 。从RubyGems 1.3.6和gemcutter 0.5.0(大约2010年2月)开始,您可以使用 gem yank从gem install和其他gem命令中删除您的gem。但是,该gem仍然可以下载,主要有两个原因:
  • 取决于您的 gem ,可能还会 push 其他 gem 。
  • 可以轻松防止大规模删除基于社区的重要 gem 。

  • Go here for more info about yank.

    关于gem - 如何重命名 gem ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13440438/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com