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

Drop Ruby 2.5 support #383

Merged
merged 1 commit into from
Nov 17, 2022
Merged

Drop Ruby 2.5 support #383

merged 1 commit into from
Nov 17, 2022

Conversation

st0012
Copy link
Member

@st0012 st0012 commented Jul 25, 2022

Because Ruby 2.5 has reached EOL for more than 1.5 years and it won't be supported by the next reline version either.

Because it has reached EOL for more than 1.5 years and it won't be
supported by the next reline version either.
@st0012
Copy link
Member Author

st0012 commented Jul 26, 2022

cc @peterzhu2118

Copy link
Member

@peterzhu2118 peterzhu2118 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

RUBY_VERSION >= "2.5.0" ? err.full_message(highlight: false, order: :top) : err.message
"#{t.inspect}:\n" + err.full_message(highlight: false, order: :top)
}.join("\n---\n")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I realize that this isn't the fault of this PR, but the indentation of these lines look odd. Could you fix it?

@hsbt
Copy link
Member

hsbt commented Jul 27, 2022

Is there any reason why remove Ruby 2.5 without EOL status? I prefer to keep the old Ruby until we use new feature of the recent Ruby versions or hard to maintain CI status.

@peterzhu2118
Copy link
Member

I'm not sure what you mean. Ruby 2.5 was EOL as of March 2021. CI currently doesn't run with IRB master + reline master because tests fail, so the next release of reline will make tests fail.

@hsbt
Copy link
Member

hsbt commented Jul 27, 2022

@peterzhu2118 I'm not against this change strongly. But I have a concern that you and @st0012 change reline and irb with the incompatible changes like the support version without maintainer who are @aycabta approval.

I know @aycabta is inactive today. But we should wait for him first. Can you wait until RubyKaigi 2022?

@st0012
Copy link
Member Author

st0012 commented Jul 27, 2022

@hsbt To be clear, I didn't drop the 2.5 support on reline. It's done in this commit, which is required by relines's own dependency io-console.
So I'm just making sure irb will work with its own dependencies.

@st0012
Copy link
Member Author

st0012 commented Jul 27, 2022

@hsbt I can understand your concern on the incompatible changes and I want to make it clear that

I also want to explain why I'm pushing the recent changes now:

  1. The background color issue on autocompletion affects many developers. There are at least 2 issues opened (Change default completion background color #328 and Default behavior change ( AUTOCOMPLETE, COLORIZE ) #351) with a dozen of comments talking about it. I also have seen multiple "tips" about disabling the feature altogether because it's distracting to developers (example). And I'm also bothered by this issue.
  2. The reline APIs we recently introduced to address the issue were originally proposed last December. And it took us more than 2 months (from May to July) to review it and polish the APIs in follow up PRs.
  3. So if we continue the work with the current pace, we'll probably be able to solve the issue (release reline, adopt the APIs in irb, finish documents...etc.) by October. And that only leaves us 2 months to let the community test it before we cut a new irb release and make it ship with Ruby 3.2.

So I hope you can understand that:

  1. @peterzhu2118 and I only focus on this issue and try to make as few as breaking changes as possible. As I said, this PR is just to make irb support the same Ruby version as reline and io-console.
  2. We are not rushing it. We just want to make sure we have time to make the solution great and tested for Ruby 3.2.

So back to your question:

I know @aycabta is inactive today. But we should wait for him first. Can you wait until RubyKaigi 2022?

Yes we can wait, including this PR, #380 and reline's release.

But IMO, a better option is to have a solution in irb master by RubyKaigi and ask Rubyists to test it and help us improve the solution before the Ruby release.

@hsbt
Copy link
Member

hsbt commented Jul 27, 2022

@st0012 Thanks for clarification. I meant ruby/reline#456 (comment) as incompatible change.

Yes we can wait, including this PR, #380 and reline's release.

Also, Thanks. You and @peterzhu2118 's work are great too.

@st0012
Copy link
Member Author

st0012 commented Jul 27, 2022

I meant ruby/reline#456 (comment) as incompatible change.

@hsbt I don't think that's an incompatible change because the original APIs haven't been released yet?

The latest reline is 0.3.1, which was made at Jan 2. Nothing made after that, including the dialog APIs by @pocari, has been released.

@hsbt
Copy link
Member

hsbt commented Jul 27, 2022

Ah, I see.

@st0012
Copy link
Member Author

st0012 commented Jul 27, 2022

@hsbt Since we have now clarified that:

  1. We didn't drop Ruby 2.5 unnecessarily
  2. We didn't make any incompatible changes

Do we still have to wait for @aycabta? As I said, we can wait, but I also want to see if there's any alternatives than just waiting.

For example, if you worry about us not knowing what not to change, I can reassure you that we are fully aware of the importance of compatibility as shown in the above comments.

Or if you worry about @aycabta won't be able to keep up with the changes, I'll be happy to document changes happened after this Feb when he's back (including changes made by other contributors). I'm happy to have a call to walk through them as well.

I think the best way to make great tools is to keep the development and feedback loop going. Because many user experience issues like this take time to surface and solutions also take time to experiment/polish.

@hsbt
Copy link
Member

hsbt commented Jul 27, 2022

  1. We didn't drop Ruby 2.5 unnecessarily

Yes. But It's IMO.

2. We didn't make any incompatible changes

I say it's maintainer's convenience. And my mainly concerns are you and @peterzhu2118 changes irb and reline without @aycabta 's opinion in this year.

@hsbt hsbt merged commit 210a4a5 into ruby:master Nov 17, 2022
@hsbt
Copy link
Member

hsbt commented Nov 17, 2022

Unfotunately, We couldn't get @aycabta 's opinion. I decide to coordinate the next irb release for Ruby 3.2 final release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants