FYI, the 0.9.5 requirement of ruby >=2 has broken the openstack beaker CI due to the ruby 2 requirement.
2016-04-14 20:59:10.708 | Installing google-api-client 0.9.5
2016-04-14 20:59:11.033 |
2016-04-14 20:59:11.033 | Gem::InstallError: google-api-client requires Ruby version ~> 2.0.
2016-04-14 20:59:11.451 | Installing puppetlabs_spec_helper 1.1.1
2016-04-14 20:59:11.527 | An error occurred while installing google-api-client (0.9.5), and Bundler cannot
2016-04-14 20:59:11.527 | continue.
2016-04-14 20:59:11.528 | Make sure that `gem install google-api-client -v '0.9.5'` succeeds before
2016-04-14 20:59:11.528 | bundling.
2016-04-14 20:59:11.634 | Build step 'Execute shell' marked build as failure
bump
The 0.9.x version of the client dropped 1.9.x awhile back, but yes, the enforcement via gemspec is new in 0.9.5.
While I'm game to relax it, I think it points to a problem with openstack pulling in too many dependencies that are actually be used. The client uses 2.0 language features and simply won't work on 1.9.x. It _should_ be failing on 1.9.x, it just fails fast now rather than at runtime.
Actually this is a dependency of the puppetlabs beaker module which is how we go it. We don't even use this module so it just broke things. Things like breaking backwards compatibility should have been a version bump so if any of the 0.9.x was supported under 1.9 then they should all be.
@sqrrrl OpenStack is actually not pulling google-api-ruby-client directly, we pull puppetlabs/beaker so we can run the functional tests.
See https://github.com/puppetlabs/beaker/blob/master/beaker.gemspec#L53
Probably the best option is to ask Puppetlabs to pin google-api-ruby-client to 0.9.4 until we officially support Ruby 2.0 everywhere (note that current Ubuntu LTS - Trusty does not deploy Ruby 2.0, which is the root cause of why we're not deploying Ruby 2.0).
@EmilienM you should probably figure out a way to install ruby 2.3. Ubuntu LTS goes on till 2019, but the Ruby community stopped support of 1.9 last year (https://www.ruby-lang.org/en/news/2015/02/23/support-for-ruby-1-9-3-has-ended/) and 2.0 and 2.1 support ends soonish: https://www.ruby-lang.org/en/news/2016/02/24/support-plan-of-ruby-2-0-0-and-2-1/
Guys you're missing the point. It's about backwards compatibility. No one is saying you can't make the restriction to ruby 2+, but when you do you need to do a major version bump. This new 0.9.5 version basically broke any current CI/deployments using trusty and all the historical ones as well for people installing from source. Just because the community doesn't support 1.9 anymore, doesn't mean a vendor does not. Even if the code was incompatible with 1.9 for some time, that switch should have been part of a 1.x release and not a continuation of 0.9.x. Unless 0.9.x was completely incompatible then this was a major oversight for some time...
Yes, the 0.9.x line has always been incompatible with 1.9.x.
1.9.x supported ended when the library when from 0.8.x to 0.9.x. There was no version of 0.9.x that worked on 1.9.x. The change in 0.9.5 was moving the error from run to install time.
There's a whole separate debate about the 0.8 -> 0.9 change not being backwards compatible. Technically, #4 in semver.org permits breaking changes when major version == 0. Understandably, not everyone locks their version dependencies as tightly as they should. In either case. that ship sailed a long time ago. I'd like to bump the version to 1.0 soon (last big thing is removing Hurley as a dependency and those changes are available in a separate branch) so there is stable API in place that folks can rely on (err, at least as stable as the underlying REST APIs :)