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

bump recursive-open-struct for Ruby 2.7 compatibility #439

Merged
merged 1 commit into from
Apr 7, 2020

Conversation

breunigs
Copy link
Contributor

1.1.1 adds support for 2.7 while keeping support for older Rubies,
cmp. aetherknight/recursive-open-struct#64 (comment)

1.1.1 adds support for 2.7 while keeping support for older Rubies,
cmp. aetherknight/recursive-open-struct#64 (comment)
@cben
Copy link
Collaborator

cben commented Apr 3, 2020

Hi, sorry I forgot about this.
1.1.1 is already allowed by the current kubeclient spec. So is releasing a new kubeclient version with this requirement useful?
My thought was that people doing fresh bundle install or bundle update would get 1.1.1 anyway (unless some other library is preventing that, e.g. by requiring 1.0.z), and people that don't do bundle update can't benefit from a new version of anything 😉
Moreover, if you have something else holding back recursive-open-struct, you'll not get the new kubeclient version + 1.1.1, and you'll not get an error highlighting the 2.7 problem. Bundler will just silently hold back kubeclient to 4.6.0 that still allows old recursive-open-struct 😞

Am I missing anything?

I do agree it's slightly wrong to allow 1.0.z which won't work on 2.7 🤔
(in an ideal world, https://rubygems.org/gems/recursive-open-struct/versions/1.1.0 and previous would specify ruby version range < 2.7, preventing their use, but they don't specify any range, and I don't think it's possible to retroactively constrain them...)

P.S. I recently landed some incompatible changes in preparation for a 5.0.0. Not a problem, if this is useful to people, I can backport only this onto 4.6.0 to release 4.6.1 (or or 4.7.0)...

@breunigs
Copy link
Contributor Author

breunigs commented Apr 3, 2020

No, I think your assessment is right. You can of course "force" this issue by using bundle update kubeclient --conservative which I think is what most of these automated version bumping robots do.

The other option I see would be to use the install_if hook (around since Bundler 1.10) and use that to determine which min version of the gem is required. Even in this case people might run into the issue that an older kubeclient is selected which doesn't specify the right min version, so we run into the same issue again.

I don't have a strong opinion on this one. It will help with the aforementioned --conservative update, but it's equally fair to wait and see how many people run into this issue in the first place. I'm guessing as time passes, this issue will solve itself anyway.

Long story short, your call. Feel free to close this PR if you'd prefer to keep it as is.

@cben cben mentioned this pull request Apr 7, 2020
18 tasks
@cben
Copy link
Collaborator

cben commented Apr 7, 2020

Thanks for the details. Yeah, why not, merging.
Will eventually release in 5.0 (blockers: #435).
Let me know if anyone wants a 4.6.1 (4.7.0?) backport.

@cben cben merged commit 5062d27 into ManageIQ:master Apr 7, 2020
cben added a commit to cben/kubeclient that referenced this pull request Jun 14, 2020
…for-27

bump recursive-open-struct for Ruby 2.7 compatibility
@cben
Copy link
Collaborator

cben commented Jun 14, 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

Successfully merging this pull request may close these issues.

2 participants