[Bug 1871685] Re: [SRU] vagrant spits out ruby deprecation warnings on every call

Trent Lloyd trent.lloyd at canonical.com
Thu Apr 30 06:59:42 UTC 2020


Hi Lucas,

Thanks for the patch updates. When I first submitted this we could have
snuck through before release without an SRU but the patch backport now
makes sense.

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1871685

Title:
  [SRU] vagrant spits out ruby deprecation warnings on every call

Status in vagrant package in Ubuntu:
  In Progress

Bug description:
  [Impact]

  This issue is not critical but I believe it degrades a lot the user
  experience in a brand new LTS release. Every time one calls vagrant
  via CLI, Ruby 2.7 throws a bunch of warnings about some deprecated
  features, which for some (inexperienced?) users might seem a failure
  in a first look.

  This was reported not just here as a bug report but also in Discourse:

  https://discourse.ubuntu.com/t/workarounds-for-applications-which-are-
  broken-in-20-04lts/15474/5

  [Test Case]

  In a Focal LXD container:

  $ apt install vagrant
  $ vagrant
  NOTE: Gem::Specification.default_specifications_dir is deprecated; use Gem.default_specifications_dir instead. It will be removed on or after 2020-02-01.
  Gem::Specification.default_specifications_dir called from /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/lib/vagrant/bundler.rb:428.
  /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/lib/vagrant/errors.rb:103: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
  /usr/share/rubygems-integration/all/gems/i18n-1.8.2/lib/i18n.rb:195: warning: The called method `t' is defined here
  (eval):3: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
  /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/lib/vagrant/ui.rb:223: warning: The called method `say' is defined here
  Usage: vagrant [options] <command> [<args>]

      -v, --version                    Print the version and exit.
      -h, --help                       Print this help.

  Common commands:
       box             manages boxes: installation, removal, etc.
       cloud           manages everything related to Vagrant Cloud
       destroy         stops and deletes all traces of the vagrant machine
       global-status   outputs status Vagrant environments for this user
       halt            stops the vagrant machine
       help            shows the help for a subcommand
       init            initializes a new Vagrant environment by creating a Vagrantfile
       login           
       package         packages a running vagrant environment into a box
       plugin          manages plugins: install, uninstall, update, etc.
       port            displays information about guest port mappings
       powershell      connects to machine via powershell remoting
       provision       provisions the vagrant machine
       push            deploys code in this environment to a configured destination
       rdp             connects to machine via RDP
       reload          restarts vagrant machine, loads new Vagrantfile configuration
       resume          resume a suspended vagrant machine
       snapshot        manages snapshots: saving, restoring, etc.
       ssh             connects to machine via SSH
       ssh-config      outputs OpenSSH valid configuration to connect to the machine
       status          outputs status of the vagrant machine
       suspend         suspends the machine
       up              starts and provisions the vagrant environment
       upload          upload to machine via communicator
       validate        validates the Vagrantfile
       version         prints current and latest Vagrant version
       winrm           executes commands on a machine via WinRM
       winrm-config    outputs WinRM configuration to connect to the machine

  For help on any individual command run `vagrant COMMAND -h`

  Additional subcommands are available, but are either more advanced
  or not commonly used. To see all subcommands, run the command
  `vagrant list-commands`.
  $ vagrant init
  NOTE: Gem::Specification.default_specifications_dir is deprecated; use Gem.default_specifications_dir instead. It will be removed on or after 2020-02-01.
  Gem::Specification.default_specifications_dir called from /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/lib/vagrant/bundler.rb:428.
  /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/lib/vagrant/errors.rb:103: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
  /usr/share/rubygems-integration/all/gems/i18n-1.8.2/lib/i18n.rb:195: warning: The called method `t' is defined here
  (eval):3: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
  /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/lib/vagrant/ui.rb:223: warning: The called method `say' is defined here
  A `Vagrantfile` has been placed in this directory. You are now
  ready to `vagrant up` your first virtual environment! Please read
  the comments in the Vagrantfile as well as documentation on
  `vagrantup.com` for more information on using Vagrant.


  [Regression Potential]

  I consider the potential for a regression low, the patches are working
  fine in Debian and they fix simple deprecated features in Ruby 2.7
  (Using the last argument as keyword parameters is deprecated; maybe **
  should be added to the call). The proposed changes were already
  applied in multiple Ruby packages to fix the same issue, even
  upstream. However, those patches were backported to vagrant 2.2.6 from
  Debian which has vagrant version 2.2.7, so this might make room for
  some mistake.



  ==== Original description ====

  When calling vagrant subcommands, or just vagrant itself without any
  argument to produce help output, every time the following block of
  ruby warnings appears:

  $ vagrant
  NOTE: Gem::Specification.default_specifications_dir is deprecated; use Gem.default_specifications_dir instead. It will be removed on or after 2020-02-01.
  Gem::Specification.default_specifications_dir called from /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/lib/vagrant/bundler.rb:428.
  NOTE: Gem::Specification.default_specifications_dir is deprecated; use Gem.default_specifications_dir instead. It will be removed on or after 2020-02-01.
  Gem::Specification.default_specifications_dir called from /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/lib/vagrant/bundler.rb:428.
  /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/lib/vagrant/errors.rb:103: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
  /usr/share/rubygems-integration/all/gems/i18n-1.8.2/lib/i18n.rb:195: warning: The called method `t' is defined here
  /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/plugins/kernel_v2/config/vm.rb:354: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
  /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/plugins/kernel_v2/config/vm_provisioner.rb:92: warning: The called method `add_config' is defined here
  (eval):3: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
  /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/lib/vagrant/ui.rb:223: warning: The called method `say' is defined here
  [... actual output starts here ...]

  ProblemType: Bug
  DistroRelease: Ubuntu 20.04
  Package: vagrant 2.2.6+dfsg-2ubuntu1
  ProcVersionSignature: Ubuntu 5.4.0-21.25-generic 5.4.27
  Uname: Linux 5.4.0-21-generic x86_64
  NonfreeKernelModules: nvidia_modeset nvidia
  ApportVersion: 2.20.11-0ubuntu25
  Architecture: amd64
  CurrentDesktop: MATE
  Date: Wed Apr  8 20:20:25 2020
  InstallationDate: Installed on 2020-04-06 (2 days ago)
  InstallationMedia: Ubuntu-Server 20.04 LTS "Focal Fossa" - Beta amd64 (20200402)
  PackageArchitecture: all
  ProcEnviron:
   TERM=xterm-256color
   PATH=(custom, no user)
   LANG=C.UTF-8
   SHELL=/bin/bash
  SourcePackage: vagrant
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/vagrant/+bug/1871685/+subscriptions



More information about the Ubuntu-sponsors mailing list