Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ruby_2_7: init at 2.7.0 #76495

Merged
merged 2 commits into from Dec 25, 2019
Merged

ruby_2_7: init at 2.7.0 #76495

merged 2 commits into from Dec 25, 2019

Conversation

marsam
Copy link
Contributor

@marsam marsam commented Dec 25, 2019

Motivation for this change

Release notes: https://www.ruby-lang.org/en/news/2019/12/25/ruby-2-7-0-released/

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
Notify maintainers

cc @

@alyssais
Copy link
Member

@GrahamcOfBorg build ruby ruby_2_7

@alyssais alyssais merged commit 76200c4 into NixOS:master Dec 25, 2019
@andersk
Copy link
Contributor

andersk commented Dec 29, 2019

This broke Vagrant.

$ nix-shell -p vagrant --run 'vagrant version'
/nix/store/x2xagsdlb556kg1jzx0qrbc1wyjf8092-ruby2.6.5-json-2.1.0/lib/ruby/gems/2.6.0/gems/json-2.1.0/lib/json/common.rb:100: warning: already initialized constant JSON::NaN
/nix/store/p4hrycs0zaa9x0gsqylbk577ppnryixr-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/json-2.1.0/lib/json/common.rb:100: warning: previous definition of NaN was here
/nix/store/x2xagsdlb556kg1jzx0qrbc1wyjf8092-ruby2.6.5-json-2.1.0/lib/ruby/gems/2.6.0/gems/json-2.1.0/lib/json/common.rb:102: warning: already initialized constant JSON::Infinity
/nix/store/p4hrycs0zaa9x0gsqylbk577ppnryixr-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/json-2.1.0/lib/json/common.rb:102: warning: previous definition of Infinity was here
/nix/store/x2xagsdlb556kg1jzx0qrbc1wyjf8092-ruby2.6.5-json-2.1.0/lib/ruby/gems/2.6.0/gems/json-2.1.0/lib/json/common.rb:104: warning: already initialized constant JSON::MinusInfinity
/nix/store/p4hrycs0zaa9x0gsqylbk577ppnryixr-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/json-2.1.0/lib/json/common.rb:104: warning: previous definition of MinusInfinity was here
/nix/store/x2xagsdlb556kg1jzx0qrbc1wyjf8092-ruby2.6.5-json-2.1.0/lib/ruby/gems/2.6.0/gems/json-2.1.0/lib/json/common.rb:129: warning: already initialized constant JSON::UnparserError
/nix/store/p4hrycs0zaa9x0gsqylbk577ppnryixr-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/json-2.1.0/lib/json/common.rb:129: warning: previous definition of UnparserError was here
Traceback (most recent call last):
	11: from /nix/store/5y31ch80fwnvbz2lpc7shn0jgnf2mql1-vagrant-2.2.6/bin/.vagrant-wrapped:18:in `<main>'
	10: from /nix/store/5y31ch80fwnvbz2lpc7shn0jgnf2mql1-vagrant-2.2.6/bin/.vagrant-wrapped:18:in `load'
	 9: from /nix/store/5y31ch80fwnvbz2lpc7shn0jgnf2mql1-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/vagrant-2.2.6/bin/vagrant:88:in `<top (required)>'
	 8: from /nix/store/7l24siwk9yw0znjpcapq0rvpdghxmwsc-ruby-2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:72:in `require'
	 7: from /nix/store/7l24siwk9yw0znjpcapq0rvpdghxmwsc-ruby-2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:72:in `require'
	 6: from /nix/store/5y31ch80fwnvbz2lpc7shn0jgnf2mql1-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/vagrant-2.2.6/lib/vagrant.rb:278:in `<top (required)>'
	 5: from /nix/store/p4hrycs0zaa9x0gsqylbk577ppnryixr-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/i18n-1.1.1/lib/i18n.rb:55:in `load_path'
	 4: from /nix/store/p4hrycs0zaa9x0gsqylbk577ppnryixr-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/i18n-1.1.1/lib/i18n.rb:42:in `config'
	 3: from /nix/store/7l24siwk9yw0znjpcapq0rvpdghxmwsc-ruby-2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:72:in `require'
	 2: from /nix/store/7l24siwk9yw0znjpcapq0rvpdghxmwsc-ruby-2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:72:in `require'
	 1: from /nix/store/p4hrycs0zaa9x0gsqylbk577ppnryixr-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/i18n-1.1.1/lib/i18n/config.rb:5:in `<top (required)>'
/nix/store/p4hrycs0zaa9x0gsqylbk577ppnryixr-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/i18n-1.1.1/lib/i18n/config.rb:6:in `<module:I18n>': uninitialized constant I18n::Config (NameError)

Expected:

$ nix-shell -I nixpkgs=channel:nixos-19.09 -p vagrant --run 'vagrant version'
Installed Version: 2.2.6
Latest Version: 2.2.6
 
You're running an up-to-date version of Vagrant!

I bisected this regression to commit 2980109 “ruby: rubygems 3.0.6 -> 3.1.2”.

#76629

@alyssais
Copy link
Member

alyssais commented Dec 29, 2019 via email

@andersk
Copy link
Contributor

andersk commented Dec 31, 2019

The rubyMinimal fix was merged as #76649. Vagrant is still broken, though (#76629).

andersk added a commit to andersk/nixpkgs that referenced this pull request Jan 1, 2020
The rubygems upgrade from 3.0.6 to 3.1.2 (NixOS#76495) broke vagrant at
runtime.  Specifically, it

* works with ruby 2.6 and rubygems 3.0.6,
* fails with ruby 2.6 and rubygems 3.1.2,
* works with ruby 2.7 and rubygems 3.1.2,

perhaps because bundler 2.1 vendored by rubygems 3.1 conflicts with
bundler 1.17 vendored by ruby 2.6.

Fixes NixOS#76629.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants