关于推送到 GitHub 和 RubyGems,维护 gem 的工作流程是什么?

What is the workflow for maintaining a gem with regard to pushes to GitHub and RubyGems?

假设创建一个 repo,添加必要的代码,将 repo 推送到 GitHub,通过 gem build 构建 gem,然后通过 [=13= 将其推送到 RubyGems ].到目前为止,一切都很好。那么更新gem的过程是什么?我的意思是:

总结一下 - 维护 gem 推送到 GitHub 和 RubyGems 的工作流程是什么?

这里由您控制,github 提交与 gem push 是分开的,除非您决定 link 通过某种自动化(这是可能的,但需要一些努力和您需要进行有意的更改,所以我假设您没有)。我不建议 link 它们并在推送到 master 分支时自动发布,除非你遵循严格的 managem 特性和版本控制,并且有其他自动化来防止错误,例如持续集成。

通常:

  • 当您解决问题并进行更改时,github 代码领先于已发布的 gem。
  • 在某个时候,您决定制作一个 public 版本,因为已经发生了足够多的变化,在新版本中分享它会很有用。
  • 然后您使用合适的提交更新存储库中的版本数据
  • 你做一个发布(当我这样做时,我使用便利 rake release,但我认为这只是包括 gem buildgem push 在内的几个步骤)

RubyGems 维护 gem 的每个版本的记录。如果您明智地使用版本控制,那么其他人应该能够访问您的 gem.

之前发布的版本

正如 Neil Slater 所说,git 提交与 gem 推送是分开的。

但是,我要补充一点,使用 gem id

tag your master git branch 是一个很好的做法

假设您正在构建一个新事物。您有以下提交历史

  1. 创建初始代码
  2. 添加更多功能
  3. 修复错误
  4. 完成第一个发布代码并将其推送为gem 0.0.1
  5. 添加附加功能并将其推送为 gem 0.0.2
  6. 开始进行重大更改
  7. 最终确定主要更改并发布为 gem 0.1.0

因此您有七次提交和三个 gem 发布。要将它们联系在一起,您需要标记:

  • 提交 4 个标记为 0.0.1
  • 提交 5 个标记为 0.0.2
  • 提交 7 个标签作为 0.1.0

如果您将这些标签推送到 github,它们将显示为版本。