Bug 404102

Summary: tarme.rb requires a too new ruby version on openSUSE Leap 42.3
Product: [Developer tools] releaseme Reporter: Ralf Habacker <ralf.habacker>
Component: generalAssignee: Harald Sitter <sitter>
Status: RESOLVED NOT A BUG    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Bug Depends on:    
Bug Blocks: 373932    

Description Ralf Habacker 2019-02-08 16:31:31 UTC
SUMMARY

ruby tools provided with releasme gitrepo requires a too high ruby interpreter version.

STEPS TO REPRODUCE
1. run ./tarme.rb --version 7.0.2 --origin stable alkimia

OBSERVED RESULT
- Ruby 2.3.0 or 2.4.0 or 2.5.0 or 2.6.0 required.
  Currently using: 2.1.9
/home/ralf/src/releaseme/lib/releaseme/requirement_checker.rb:116:in `check': Not all requirements met. (RuntimeError)
        from /home/ralf/src/releaseme/lib/releaseme/requirements.rb:3:in `<top (required)>'
        from /home/ralf/src/releaseme/lib/releaseme/logable.rb:28:in `require_relative'
        from /home/ralf/src/releaseme/lib/releaseme/logable.rb:28:in `<top (required)>'
        from /home/ralf/src/releaseme/lib/releaseme/cmakeeditor.rb:24:in `require_relative'
        from /home/ralf/src/releaseme/lib/releaseme/cmakeeditor.rb:24:in `<top (required)>'
        from /home/ralf/src/releaseme/lib/releaseme.rb:22:in `require_relative'
        from /home/ralf/src/releaseme/lib/releaseme.rb:22:in `<top (required)>'
        from ./tarme.rb:25:in `require_relative'
        from ./tarme.rb:25:in `<main>'

EXPECTED RESULT
tarme.rb should work with ruby 2.1

SOFTWARE/OS VERSIONS
Windows: 
MacOS: 
Linux: openSUSE Leap 42.3

ADDITIONAL INFORMATION
openSUSE Leap 42.3 is official supported until the end of this year
Comment 1 Harald Sitter 2019-02-08 21:22:46 UTC
Ruby 2.1 is EOL for more than 2 years.

I am going to great lengths to keep compatibility and require only core ruby features, but unfortunately much of the wider ecosystem has moved on and introduced incompatibilities so testing our 2.1 comaptibility is actually not viable anymore. You can manually hack the version check to allow 2.1 or, use rbenv or rvm to provision a newer ruby isolated from your systems (which is what I recommend), or use a docker/lxd container with an actually supported ruby.

I appreciate that this is very annoying but the motivation behind the tight version locking is to ensure that the generate tarballs are in fact going to be exactly what we intend them to be, so if we can't test that I'd rather tighten the compatibility lock than allow potentially broken tarballs getting released on account of us the unit test suite not running on unsupported ruby versions.
Comment 2 Christoph Feck 2019-02-12 20:47:03 UTC
> openSUSE Leap 42.3 is official supported until the end of this year

42.3 ships Ruby 2.4.1

http://download.opensuse.org/distribution/leap/42.3/repo/oss/suse/x86_64/libruby2_4-2_4-2.4.1-2.7.x86_64.rpm.mirrorlist