将版本设置为最新版本,包括 Gemfile 中的预发布版本
Set version to latest version including prereleases in Gemfile
如何在 Gemfile 中指定版本约束,使其始终采用最新版本,包括 gem.
的预发布版本
目前我使用的库有最新的稳定版本 2.0.0
和最新的预发布版本 2.1.0.alpha.pre.171
。
我可以将版本限制设置为 >=2.1.0.alpha.pre.171
或 >=2.1.0.a
,据我所知。但这是否也包括 >=2.2.0.alpha.pre.1
甚至 >=3.0.0.alpha.pre.1
等未来的预发布版本以及 3.0.0
等未来的稳定版本?那会始终解析为最新版本吗?
免责声明:
不要被误解,这不是为了任何生产依赖管理gement。我们的想法是制作一个 运行 的演示,它应该始终包含最新的功能,并且如果最新的预发布版本被破坏也应该崩溃。
简而言之,这是一个非常糟糕的主意,但很容易检查:
%w|2.1.0.alpha.pre.171
2.1.0
2.2.0.alpha.pre.1
3.0.0.alpha.pre.1|.map(&Gem::Version.method(:new)).sort
#⇒ [
# [0] #<Gem::Version "2.1.0.alpha.pre.171">,
# [1] #<Gem::Version "2.1.0">,
# [2] #<Gem::Version "2.2.0.alpha.pre.1">,
# [3] #<Gem::Version "3.0.0.alpha.pre.1">
# ]
所以,是的,>=
将适用于任何新版本,包括 2.1.0
。
您需要做两件事:
在您的 Gemfile 中指定 >= 2.1.0.alpha.pre.171
。这里重要的是指定的约束本身就是预发布,这是使 Bundler 获取您想要的预发布 1 的唯一方法。当 Bundler 查找更新时,所有未来的版本,包括预发布和主要版本,都将包括在内。
使用自动化工具定期更新 Gemfile.lock。 Dependabot, Depfu or Deppbot 中的任何一个都可以。 (披露: 我写了 Dependabot。)
令人惊讶的是,从 Bundler 1.15.1 开始,没有选项可以传递给 bundle update
以复制 (1) 创建的行为。
如何在 Gemfile 中指定版本约束,使其始终采用最新版本,包括 gem.
的预发布版本目前我使用的库有最新的稳定版本 2.0.0
和最新的预发布版本 2.1.0.alpha.pre.171
。
我可以将版本限制设置为 >=2.1.0.alpha.pre.171
或 >=2.1.0.a
,据我所知。但这是否也包括 >=2.2.0.alpha.pre.1
甚至 >=3.0.0.alpha.pre.1
等未来的预发布版本以及 3.0.0
等未来的稳定版本?那会始终解析为最新版本吗?
免责声明: 不要被误解,这不是为了任何生产依赖管理gement。我们的想法是制作一个 运行 的演示,它应该始终包含最新的功能,并且如果最新的预发布版本被破坏也应该崩溃。
简而言之,这是一个非常糟糕的主意,但很容易检查:
%w|2.1.0.alpha.pre.171
2.1.0
2.2.0.alpha.pre.1
3.0.0.alpha.pre.1|.map(&Gem::Version.method(:new)).sort
#⇒ [
# [0] #<Gem::Version "2.1.0.alpha.pre.171">,
# [1] #<Gem::Version "2.1.0">,
# [2] #<Gem::Version "2.2.0.alpha.pre.1">,
# [3] #<Gem::Version "3.0.0.alpha.pre.1">
# ]
所以,是的,>=
将适用于任何新版本,包括 2.1.0
。
您需要做两件事:
在您的 Gemfile 中指定
>= 2.1.0.alpha.pre.171
。这里重要的是指定的约束本身就是预发布,这是使 Bundler 获取您想要的预发布 1 的唯一方法。当 Bundler 查找更新时,所有未来的版本,包括预发布和主要版本,都将包括在内。使用自动化工具定期更新 Gemfile.lock。 Dependabot, Depfu or Deppbot 中的任何一个都可以。 (披露: 我写了 Dependabot。)
令人惊讶的是,从 Bundler 1.15.1 开始,没有选项可以传递给 bundle update
以复制 (1) 创建的行为。