指定gem版本或始终使用最新版本?

ter*_*ina 3 ruby gem ruby-on-rails

我在业余时间编写了一个RoR webapp.像任何人(我猜),我使用宝石(约20).

有几次,我在生产环境中部署应用程序时遇到了错误,因为我没有为我的所有宝石指定确切版本,因此其中一些更新导致了错误.

我担心保留所有宝石的特定版本,当我需要更新其中的一个(或一些)时,整个事情就会崩溃(我在制作宝石时会遇到问题,因为飞行 - 狮身人面像和推特一起工作更新).

我的问题是:兼职编码器应该一劳永逸地修复使用的宝石版本,还是值得花时间检查每次更新?你如何管理你的Gemfile?

另外我认为,当你是全职的时候,你应该始终保持最新状态(安全性,性能),但这是真的吗?

Pat*_*ity 5

我大多坚持这种版本规范:

gem "blah", "~> 1.4.2"
Run Code Online (Sandbox Code Playgroud)

这意味着版本号>= 1.4.2但是< 1.5.0

大多数宝石遵循语义版本控制方案,或者至少只在进行版本跳转时才会破坏内容.这样,我'安全',但仍然得到好的部分(错误修复等).

锁定确切的版本号是背后的想法Gemfile.lock,所以我也将其检查为版本控制.到目前为止,这种方法对我来说是完美的,我从来没有遇到过这种方法的问题.