3

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

有几次,我在生产环境中部署应用程序时出错,因为我没有为我的所有 gem 指定确切的版本,所以其中一些被更新了,这导致了错误。

我担心我的所有宝石都停留在特定版本中,当我需要更新其中的一个(或一些)时,整个事情都会崩溃(我在制作用于飞行狮身人面像和推特的宝石时遇到了问题)更新)。

我的问题是:兼职编码员是否应该一次性修复所使用的 gems 的所有版本,还是值得花时间检查每个更新?你如何管理你的 Gemfile ?

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

4

1 回答 1

5

我主要坚持这种版本规范:

gem "blah", "~> 1.4.2"

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

大多数 gems 都遵循语义版本控制方案,或者至少只在进行版本跳转时破坏内容。这样,我就“安全”了,但仍然得到了好的部分(错误修复等)。

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

于 2012-04-23T13:17:55.640 回答