Project

General

Profile

Actions

Bug #21931

open

arvados-cli compatibility issues with ruby 2.7 because of indirect dependency

Added by Lucas Di Pentima 7 days ago. Updated about 5 hours ago.

Status:
New
Priority:
Normal
Assigned To:
Category:
SDKs
Story points:
-
Release relationship:
Auto

Description

On June 21st the addressable v2.8.7 gem was released. This new version requests public_suffix v6.0.0 that is not compatible with ruby 2.7.
The addressable gem is required by arvados-google-api-client, which is an arvados-cli direct dependency.

Actions #1

Updated by Brett Smith 7 days ago

Lucas Di Pentima wrote:

On June 21st the addressable v2.8.7 gem was released. This new version requests public_suffix v6.0.0 that is not compatible with ruby 2.7.

More specifically:
  • addressable 2.8.6 depends on public_suffix >= 2.0.2, < 6.0
  • addressable 2.8.7 depends on public_suffix >= 2.0.2, < 7.0

It is still completely possible to install the gem on Ruby 2.7. The problem is that the gem install resolver only considers using the most recent version of everything, and pushes any more sophisticated resolution off to the user (hence the message telling you to say the version you want yourself).

Actions #2

Updated by Lucas Di Pentima 7 days ago

Brett Smith wrote in #note-1:

It is still completely possible to install the gem on Ruby 2.7. The problem is that the gem install resolver only considers using the most recent version of everything, and pushes any more sophisticated resolution off to the user (hence the message telling you to say the version you want yourself).

Right, so in this particular case we could just fix the arvados-fomula by making it explicitly request the correct addressable gem version for arvados-cli and arvados-login-sync at least. Other packages requiring the arvados-google-api-client may also need some tweaking.

Actions #3

Updated by Brett Smith 7 days ago

It would be better to pin public_suffix, since that's the gem that's actually incompatible with Ruby 2.7.

Doing this in arvados-formula would address the specific failure of test-provision-ubuntu2004. However, I believe in the past we have done pins like this directly in the source Gemfile or similar, because we have other things in our development stack that similarly run gem install arvados-cli. It's not ideal but putting the limit in the Gemfile means we only have to solve the problem once, vs. teaching each install process how to pin the specific versions it needs.

Actions #4

Updated by Brett Smith about 10 hours ago

  • Assigned To changed from Lucas Di Pentima to Brett Smith
Actions #5

Updated by Brett Smith about 5 hours ago

Discussed the plan with Tom in Matrix ahead of time and got sign-off. Given that, the implementation is too simple to review. But for posterity: 21931-public-suffix-pin @ 2f4fb1522c89c29a94854bf9f26fb6d13959f2d4

developer-run-tests: #4325

build-packages-multijob: #4284

test-provision: #913 - test-provision is still failing because it uses the published gem. build-packages shows that we got past the problem generally, so I expect this to succeed after we publish a new version of arvados-google-api-client.

Actions

Also available in: Atom PDF