Abd*_*rah 6 ruby upgrade backwards-compatibility
我很难决定是否在 ruby 3.0.1 和 ruby 2.7 中构建新的 ruby gem。使用 >=3.0.0 版本编写的 ruby 代码是否向后兼容 >=2.5 或 >=2.7 版本?使用 ruby 2.7 工作的人可以使用使用 >=3.0.1 编写的 gem,同样,使用 >=3.0.1 工作的人可以使用使用 ruby 2.7 编写的 gem 吗?3.0.1 中是否有任何重大更改导致从 2.7 升级变得困难?
\n\n使用 >=3.0.0 版本编写的 ruby 代码是否向后兼容 >=2.5 或 >=2.7 版本?
\n
不,例如:
\n\n\n自 2.7 以来的其他显着变化。关键字参数与其他参数分开。原则上,在 Ruby 2.7 上打印警告的代码不会\xe2\x80\x99 工作。
\nhttps://www.ruby-lang.org/en/news/2020/12/25/ruby-3-0-0-released/
\n
但是,可以使用与 2.5 到 3.0 兼容的 Ruby子集编写库。例如,PaperTrail 的目标就是做到这一点。
\n# https://github.com/paper-trail-gem/paper_trail/blob/master/.github/workflows/test.yml#L66\nruby: [ \'2.5\', \'2.7\', \'3.0\' ]\nRun Code Online (Sandbox Code Playgroud)\n