假设我们有一颗宝石。(例如gem 'bcrypt', '~> 3.1.7':)
我想将它更新到最新版本。但我不知道这两个版本有什么区别。其实,我想知道,这两个版本有什么区别?这两个版本的语法有什么区别?那么,如何比较 gems 版本?
4 回答
当 gem 的源代码在公共代码存储库(如 GitHub 或 Gitlab)中管理时,您通常会在这些存储库中找到CHNAGELOG 。这样的变更日志是由维护人员手动编写的,可能不完整,但它可以让您很好地了解已更改的内容以及维护人员认为需要了解的重要内容。
比较两个版本的另一种方法是比较两个版本的代码。因为代码bcrypt是公开的,并且维护者在 GitHub 上为每个版本添加了标签,所以这很容易。转到列出所有版本的页面,然后通过选择两个版本将一个版本与另一个版本进行比较。例如3.1.13(最新的)到3.1.7(您的 Gemfile 中的最低版本)。以下页面允许您查看这两个版本之间的所有提交和所有更改的文件。
这两个版本的语法有什么区别?
这部分答案很简单:Ruby 不允许程序员更改语法,因此 gem永远不可能更改语法。
大多数项目都会发布更新日志或发布列表。它们通常可以在 repo 或他们的网站上找到。他们经常链接每个版本中包含的特定 PR,并指定更改是否“破坏”(尽管版本本身应该传达是否是主要、次要或补丁更新)。要将当前版本与最新版本进行比较,您将从当前版本开始,并查看从那时起发布的所有版本。
这是bcrypt的发布日志,例如: https ://github.com/bcrypt-ruby/bcrypt-ruby/releases
首先检查您是否真的要更新 gem?这意味着如果您的运行代码由于您的旧版本的 gem 而中断,那么必须有新的更改可以解决您的问题。(这是区别;))
第二 - 这两个版本有什么区别或如何比较?
1. rubygem.org
如果您查看 rubygem.org 站点并获取任何 gem,那么在右下角应该有一个“查看更改”链接,显示在版本更改期间所做的更改。

2. 宝石回购
您还可以检查 gem 存储库中的“CHANGELOG”或“README.md”文件,其中包含有关版本更改或比较的信息(如果作者正在更新它)。
3. 红宝石
有一个 gem ' gem-compare ' 显示版本更改的信息。