rails gem 版本和 git 标签收敛和工作流程

rails gem version and git tag convergence and workflow

我不明白带有 git 标记的 Rails gem 开发工作流程。在开发 Rails gem 时,有一个文件 VERSION 看起来像这样:

module YourApp
  VERSION = '1.0-beta-1.14'
end

该文件中的版本似乎很重要,因为如果您在使用上述 gem 的 Rails 应用程序的 Gemfile 中存在不匹配,它就会引起关注。假设您更新了 gem 并且没有更新版本,那么接下来您将不会得到更改 bundle update。如果您确实修改了版本并使用该版本更新了 Gemfile,您将获得更新,但如果您想返回一个版本,bundle 根本无济于事。据我所知,它不会神奇地回滚到具有目标版本的最后一次提交。

那么,好吧,git 标签是用来做什么的,但是从某种意义上说,这也很奇怪,因为您仍然必须照看 gem 存储库的 VERSION 文件。为什么我需要他们两个?有人可以解释一下吗?例如,是否有一个简单的工作流程,我不必照看 VERSION 文件而只需要担心 git 标记?我如何在开发时更新 gem 存储库版本,比如如果我想要一个标签或 VERSION 来引用不断完善的文件更新集,这是否会破坏标记或 VERSION 更改的全部意义?这对我来说真的没有意义。就像我可以通过动作来获得我想要的结果,但我只是不理解这两种机制如何在最佳工作流程中协同工作。

任何thoughts/help赞赏

这显然是 gem-release gem 解决的已知难题。起初这似乎微不足道,但就我而言,这使我的工作流程变得更好。如果您像我一样经常使用版本并且重视回滚;这很有用,至少对我来说是这样。