2013-05-28 47 views
1

我有一个rails应用程序指向github上的gem(尚未推送到ruby gem),它还没有版本化,所以当我运行bundle时它看起来像这样:在rails应用程序中启动Ruby Gem版本控制

gem (0.0.0) from [email protected]:company/gem.git (at master) 

我一直在努力改变以创业板和要开始它的版本,所以当我把掌握它不以Rails应用程序依赖于以前的宝石打破功能。我没有足够的复杂性让宝石向后兼容,所以我认为版本控制是解决这个问题的最好方法。我正在寻找关于如何开始版本化这个gem的建议,它是否只是将gemspec改为0.0.1,然后在我的rails应用程序中更改gemfile以指向那个?任何熟悉宝石编写的人都会非常感激。谢谢。

+0

这是创业板要通过github上唯一的,或者被托管这是否会被置于集中式回购(例如rubygems.org)? – PinnyM

回答

2

按照semantic versioning,你应该在0.1.0开始和增量是不向后兼容任何更新主要版本,次要版本,如果只介绍新功能,但是是向后兼容的,而小的版本,如果它是一个错误修复等。也就是说,如果您只通过GitHub进行托管,您可以简单地将gemspec版本更改为您的首选项,并为该提交添加标签。添加一个标签可以很容易地找到在GitHub上的正确版本你已经转移到其他版本之后 - 如果使用捆扎机,例如,你的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' 
+0

真棒,这是非常有益的,非常感谢你 – BC00

+0

你非常欢迎。另外,我建议查看[this railscast](http://railscasts.com/episodes/245-new-gem-with-bundler),演示如何使用bundler来简化构建和发布gem的过程。 – PinnyM

相关问题