2013-05-28 77 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

相關問題