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

Krane is unusable on Ruby 2.7.0 #690

Closed
benlangfeld opened this issue Feb 11, 2020 · 10 comments
Closed

Krane is unusable on Ruby 2.7.0 #690

benlangfeld opened this issue Feb 11, 2020 · 10 comments

Comments

@benlangfeld
Copy link
Contributor

Bug report

The upstream bug is this: aetherknight/recursive-open-struct#62

Steps to Reproduce

  1. Run the krane tests on Ruby 2.7.0
@dturn
Copy link
Contributor

dturn commented Feb 11, 2020

We've had a least 1 report that its useable with lots of warnings on 2.7, #675.

I wonder if you can fix a gem version to make it work.

@benlangfeld
Copy link
Contributor Author

Upstream fix is proposed @ aetherknight/recursive-open-struct#64

@dturn
Copy link
Contributor

dturn commented Feb 12, 2020

Thanks for PRing this upstream!

@breunigs
Copy link
Contributor

Upstream has released 1.1.1 which fixes these issues:
aetherknight/recursive-open-struct#64 (comment)

I've opened a PR against kubeclient to have them bump the min required version to ensure compatibility: ManageIQ/kubeclient#439 . Since krane doesn't directly depend on recursive-open-struct, it needs to wait for kubeclient to release a new version.

However, since krane doesn't ship with a Gemfile.lock it will automatically pull in the newest recursive-open-struct. Using it, the test suite passes for me locally, even when using the release version of kubeclient. Would you kindly restart the CI on #675 , because I assume it will pass now.

I will also provide a PR fixing more of these deprecation warnings.

@dturn
Copy link
Contributor

dturn commented Mar 31, 2020

CI is still failing for #675 . #710 is passing for ruby 2.6, I need to check the linting and ruby 2.7 but its promising.

@breunigs
Copy link
Contributor

If you copy&paste the errors I can take a look, otherwise it's a bit much guess work :)

@cben
Copy link
Contributor

cben commented Apr 3, 2020

Hi, coming here from ManageIQ/kubeclient#439.
My general understanding of semver patch releases, like recursive-open-struct 1.1.0 -> 1.1.1, is that few people prevent them in dependency ranges, so once a fix is out there is no need to "bubble it up" by releasing new versions of all intermediate consumers.

If I'm wrong, please comment on ManageIQ/kubeclient#439.

Options I see from your perspective:

  1. Do nothing.
  2. Require 'recursive-open-struct', '~> 1.1', '>= 1.1.1' in your krane.gemspec.
  3. Require it in kubeclient, I release new kubeclient, you bump kubeclient dependency.

Are there situations where (1) results in broken installs that (2) or (3) fix?

@dturn
Copy link
Contributor

dturn commented Apr 3, 2020

@cben

I think (1) & (3) are both valid options. We'd prefer not to add transitive dependencies to our gemspec.

When I run our tests I do get depreciation warnings coming from kubeclient, perhaps when you fix those you could bump recursive-open-struct?

/Users/danielturner/.gem/ruby/2.7.0/gems/kubeclient-4.6.0/lib/kubeclient.rb:27: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/Users/danielturner/.gem/ruby/2.7.0/gems/kubeclient-4.6.0/lib/kubeclient/common.rb:61: warning: The called method `initialize_client' is defined here

@dturn
Copy link
Contributor

dturn commented Apr 7, 2020

As an update #710 has merged and which includes the needed fixes to make krane work with ruby 2.7

@dturn
Copy link
Contributor

dturn commented Jul 15, 2020

released in v1.1.3

@dturn dturn closed this as completed Jul 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants