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

Minor version release is a breaking change on td-agent #6192

Closed
isukapalli opened this issue May 30, 2019 · 6 comments
Closed

Minor version release is a breaking change on td-agent #6192

isukapalli opened this issue May 30, 2019 · 6 comments
Assignees
Labels

Comments

@isukapalli
Copy link

What version of protobuf and what language are you using?
Version: master/v3.8.0
Language: Ruby

What operating system (Linux, Windows, ...) and version?
Amazon Linux

What runtime / compiler are you using (e.g., python version or gcc version)

What did you do?
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

What did you expect to see
Breaking changes should be released as major version.

What did you see instead?

google-protobuf requires Ruby version >= 2.3

Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).

---- Begin output of /usr/sbin/td-agent-gem install fluent-plugin-kinesis -q --no-rdoc --no-ri -v "2.0.0" --source=https://www.rubygems.org ----
       STDOUT:
       STDERR: ERROR:  Error installing fluent-plugin-kinesis:
           google-protobuf requires Ruby version >= 2.3.
       ---- End output of /usr/sbin/td-agent-gem install fluent-plugin-kinesis -q --no-rdoc --no-ri -v "2.0.0" --source=https://www.rubygems.org ----
       Ran /usr/sbin/td-agent-gem install fluent-plugin-kinesis -q --no-rdoc --no-ri -v "2.0.0" --source=https://www.rubygems.org returned 1

Anything else we should know about your project / environment

@isukapalli isukapalli changed the title Minor version release has breaking changes Minor version release is a breaking change on td-agent May 30, 2019
@acozzette acozzette self-assigned this May 31, 2019
@acozzette
Copy link
Member

CC @TeBoring

@isukapalli I updated the gemspec to require version 2.3 based on the conversation in this other issue: #1594 (comment) I usually don't work on Ruby so I am not as familiar with it, but it sounded to me like earlier versions were not really supported even if the gemspec allowed them. Have you found that Ruby 2.0 actually works with recent versions of protobuf?

@luke-hill
Copy link

Updating the ruby version from say 2.2 to 2.3 isn't a breaking change? If that is the issue?

The only major ruby repository to treat it as such is rspec, and they're changing that tact. No other major ruby gem to my knowledge does so, and it doesn't really contradict semver?

@isukapalli
Copy link
Author

Thanks for the response @acozzette and @luke-hill.
Here is flow: td-agent -> fluent-plugin-kinesis -> google-protobuf.
td-agent version 2 comes with Ruby version 2.1 and while trying to install fluent-plugin-kinesis which dependent on protobuf (~> 3) until version 3.8.0 the required version of Ruby is >= 0.
The latest version required at least Ruby 2.3 version which is breaking the installation of plugin.
Hope this helps to understand what we meant the latest version is a breaking change.

@luke-hill
Copy link

luke-hill commented Jun 4, 2019

Ok so a couple of points.

  1. Using a restriction ~> n is a bad practice, and does not do anything. You should use ~> n.0
  2. You've just re-iterated what we've said. A small ruby upgrade (Say from 2.1 to 2.3 minimum e.t.c.), does not constitute a breaking change. The fact your plugin doesn't upgrade correctly, doesn't mean this is broken/faulty.
  3. As I previously mentioned (Aside from RSpec), all large ruby gems will frequently bump their minimum ruby requirement as a minor (Which is what protobuf has done here).

Can you re-read my points and try to understand them. It sounds like your plugin is highly sensitive to protobuf so I would advise a ~> a.b.0 restriction in the gemspec, that way you're less likely to encounter issues.

@BSBandme BSBandme added the ruby label Jun 21, 2019
@TeBoring
Copy link
Contributor

Thanks @luke-hill for the explanation.
Actually, ruby 2.3 support has been ended globally: https://www.ruby-lang.org/en/news/2019/03/31/support-of-ruby-2-3-has-ended/
We will soon require everyone to use ruby 2.4 at least.

@luke-hill
Copy link

Now all you need to do is get jruby fixed up as well on one consistent version going forward and you'll make a lot of people happy.

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

No branches or pull requests

5 participants