修补 Ruby
作为 RVM 的副作用,使用多个版本的 Ruby 测试补丁非常容易。
使用自定义 Ruby 源代码补丁安装特定 Ruby
$ rvm install 2.1.1 --patch /path/to/awesome.patch
或者,您可以指定多个补丁,它们将按给定的顺序应用。
$ rvm install 2.1.1 --patch /path/to/awesome.patch,/path/to/another.patch
从 RVM 1.17 开始,还可以指定补丁的 URL
$ rvm install 2.1.1 --patch https://url.to.your/fancy.patch
还可以专门命名一个已修补的 Ruby(有关更多详细信息,请参阅 已命名的 Ruby )。
$ rvm install 2.1.1-named --patch /path/to/weird.patch
贡献补丁
测试补丁
功能改进
在修补之前测试 Ruby
$ rvm install 2.1.1 $ ruby your_test.rb #or $ ruby -e "puts 'your one line test'"
在使用补丁安装之前卸载以前的版本
$ rvm remove 2.1.1
在修补之后测试 Ruby
$ rvm install 2.1.1 --patch /path/to/awesome.patch $ ruby your_test.rb #or $ ruby -e "puts 'your one line test'"
编译错误
在修补之后测试 Ruby
$ rvm install 2.1.1 --patch /path/to/compilation.patch $ ruby -v
贡献补丁
如果您的补丁修复了旧分支(如 2.0.0)上的重要问题,则可以将其贡献给 RVM。在 Github 存储库。 打开一个拉取请求。
您的补丁可能对每个人来说都太棒了,您应该将其保留为自己的供应商扩展 vendor/ruby-patches/my-awesome.patch,并且始终使用 --patch 选项。
要开始,您需要 fork rvm/rvm 将您的 fork 克隆到磁盘,并将您的补丁添加到正确的目录,例如:patches/ruby/2.0.0/
将您的 RVM 版本安装到系统中
备份原始 RVM 安装
$ mv $HOME/.rvm $HOME/.rvm-backup
安装扩展的 RVM(从你检出的 fork 目录)
$ ./install
安装 ruby,它应该会自动打补丁,根据需要进行测试
$ rvm install 2.1.1 $ ruby -v #or $ ruby your_test.rb #or $ ruby -e "puts 'your one line test'"
删除测试 rvm 安装,恢复备份
$ rm -rf $HOME/.rvm $ mv $HOME/.rvm-backup $HOME/.rvm
当代码准备就绪并经过测试时
- 提交你的代码,不要遗漏任何东西。
- 将更改推送到 github。
- 提交拉取请求