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

0.13.0 changelog? #186

Closed
ShockwaveNN opened this issue Apr 12, 2021 · 12 comments
Closed

0.13.0 changelog? #186

ShockwaveNN opened this issue Apr 12, 2021 · 12 comments

Comments

@ShockwaveNN
Copy link

ShockwaveNN commented Apr 12, 2021

I see that v0.13.0 is released on rubygems, but in CHANGELOG file last version is 0.12.0

Is there any particular changes we should be aware of?

@firefart
Copy link

yes this #185

@Kjarrigan
Copy link
Member

Kjarrigan commented Apr 13, 2021

@noma4i
Copy link

noma4i commented Apr 15, 2021

Breaking change:
From now the gem requires gcc in a runtime. ;(

rake aborted!Bundler::GemRequireError: There was an error while trying to load the gem 'typhoeus'.
Gem Load Error is: Compilation error generating constants :
	sh: 1: gcc: not found
Backtrace for gem load error is:
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/ffi-1.15.0/lib/ffi/tools/const_generator.rb:131:in `block in calculate'
/usr/local/lib/ruby/2.5.0/tempfile.rb:295:in `open'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/ffi-1.15.0/lib/ffi/tools/const_generator.rb:110:in `calculate'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/ffi-1.15.0/lib/ffi/tools/const_generator.rb:49:in `initialize'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/ethon-0.13.0/lib/ethon/libc.rb:17:in `new'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/ethon-0.13.0/lib/ethon/libc.rb:17:in `<module:Libc>'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/ethon-0.13.0/lib/ethon/libc.rb:7:in `<module:Ethon>'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/ethon-0.13.0/lib/ethon/libc.rb:2:in `<top (required)>'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/ethon-0.13.0/lib/ethon.rb:16:in `<top (required)>'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
/usr/src/app/vendor/bundle/ruby/2.5.0/gems/typhoeus-1.3.1/lib/typhoeus.rb:2:in `<top (required)>'
/usr/local/bundle/gems/bundler-2.2.9/lib/bundler/runtime.rb:66:in `require'
/usr/local/bundle/gems/bundler-2.2.9/lib/bundler/runtime.rb:66:in `block (2 levels) in require'
/usr/local/bundle/gems/bundler-2.2.9/lib/bundler/runtime.rb:61:in `each'
/usr/local/bundle/gems/bundler-2.2.9/lib/bundler/runtime.rb:61:in `block in require'
/usr/local/bundle/gems/bundler-2.2.9/lib/bundler/runtime.rb:50:in `each'
/usr/local/bundle/gems/bundler-2.2.9/lib/bundler/runtime.rb:50:in `require'

image

@leshik
Copy link

leshik commented Apr 15, 2021

Having gcc in runtime is crazy. Pinning to 0.3.12.

@leshik
Copy link

leshik commented Apr 15, 2021

Can be overriden by tcc, but requires FFI patching.

@stefanahman
Copy link

I think this should have been a major upgrade since it (possibly) breaks current environment.

@Kjarrigan
Copy link
Member

I'll try to "answer" all open comments:

@stefanahman - I don't think so for 2 reasons:

  1. Semver does not really work for < 1.0 Versions and ethon is on 0.13.0, so that little change is definitely not worth going 1.0
  2. this is no breaking change. Nothing on the API has change and you do not have to change any of your code. You only need to install one more dependency and it is fixed. Although I agree it is a bit annoying but (as far as I'm aware) there is no way to define such a dependency on gem-Level to announce/enforce it in someway

Most of the comments were "gcc as runtime env is not good" but I rarely see a why. The only argument I have seen so far is the potential size of the docker container. Thanks to @leshik FFI now also supports (lightweight) alternatives to gcc, so I consider the size issue solved. Are there other reasons I have overlooked?

@Hampei
Copy link

Hampei commented Apr 19, 2021

Semver does not really work for < 1.0 Versions and ethon is on 0.13.0, so that little change is definitely not worth going 1.0

ethon comes with and is obviously tied to typhoeus, which is v1, so that makes me think it should immediately be made v_1 without any new features, since it makes the typhoeus v1 a lie.

this is no breaking change

To me the fact that I have to suddenly configure anything because a tiny gem we depend on depends on something with "simple" in the tagline is enough to not make me want to use that gem. Hundreds of projects are probably talking about this in meetings this week to discuss what the best route is, spending multiple manhours on coding, reviewing, testing and research into other options, just because someone used swagger in one service. I know we are.

Right now we have a gem fixed in our gemfile that we don't even depend on directly, making it likely we forget about it after the gem we do depend on already moved away from this gem.

I don't think the discussion of gcc being good or bad matters as much as whether a gem that no-one directly depends on should have any influence on anyones build process.

@ShockwaveNN
Copy link
Author

so that little change is definitely not worth going 1.0

Actually I don't know why people afraid of making v1.0 releases

If this version was 1.0 with changelog note gcc now is required I think no one have any major question and do not spend time discussing it and just freeze it on ~> 0 or added gcc to build scheme

@mindw
Copy link

mindw commented Apr 24, 2021

On top of @Hampei excellent comment,
Adding a runtime dependency with non trivial requirements (gcc like compiler, writable FS, etc) is commonly considered a major change.
It is enough to disqualify it and anything depending on it from being used if only to avoid the headache of explaining this to a security audit.
Regardless, thank you for making this project (and others) open source and supporting it. It is always appreciated.

@Kjarrigan
Copy link
Member

Closing this so we only have one place to discuss the GCC change which I just reverted.

@ShockwaveNN
Copy link
Author

@Kjarrigan I'm sorry, but I dont think this issue should be closed until there is v0.13.0 entry in https://github.com/typhoeus/ethon/blob/master/CHANGELOG.md

Original issue has nothing to do with changes itself, it's just I noted that there is no description of changes at all in CHANGELOG

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

8 participants