1

我有一个 Rails 应用程序指向 github 上的 gem(尚未推送到 Ruby Gems),它还没有版本化,所以当我运行 bundle 时,它​​看起来像这样:

 gem (0.0.0) from git@github.com:company/gem.git (at master)

我一直在对 gem 进行更改并希望开始对其进行版本控制,因此当我推动掌握它时,它不会破坏依赖于以前 gem 的 Rails 应用程序中的功能。我不够成熟,无法使 gem 向后兼容,所以我认为版本控制是处理这个问题的最佳方法。

我正在寻找有关如何开始对该 gem 进行版本控制的建议,是否只是将 gemspec 更改为 0.0.1,然后将我的 Rails 应用程序中的 gemfile 更改为指向它?

4

1 回答 1

2

根据语义版本控制,您应该从任何不向后兼容的更新开始0.1.0并增加主要版本,如果它只引入新功能但向后兼容,则应该增加次要版本,如果是错误修复等,则应该增加小版本.

也就是说,如果您仅通过 GitHub 托管,您只需将 gemspec 版本更改为您的偏好,并为该提交添加标签。添加标签可以在您转移到其他版本后轻松在 GitHub 中找到正确的版本 - 例如,如果使用 Bundler,您的 Gemfile 条目将如下所示:

gem 'your-gem', git: 'git://github.com/your-repo/your-gem.git', tag: 'v0.1.0'

您还可以使用以下(冗长的)命令集来执行此操作而无需捆绑器:

git clone git://github.com/your-repo/your-gem.git
cd your-gem
git checkout v0.1.0
gem build your-gem.gemspec
gem install your-gem-0.1.0.gem

如果您打算通过http://rubygems.org托管,您需要自己创建一个帐户,然后将您的新版本推送到那里。Rubygems 将从 gemspec 检测版本并使用更标准的 Gemfile 条目格式提供它:

gem 'your-gem', '=0.1.0'

或者使用gem命令:

gem install your-gem -v '=0.1.0'
于 2013-05-28T14:03:52.003 回答