aws-sdk-ruby icon indicating copy to clipboard operation
aws-sdk-ruby copied to clipboard

Breaking Change from Minor Release in `aws-sdk-core` from 3.198.0 to latest

Open dinukarajapaksha opened this issue 4 days ago • 0 comments

Describe the bug

We are using inline bundler with the following gems

gemfile do
  source "https://rubygems.org"

  gem "nokogiri"
  gem "aws-sdk-core"
  gem "aws-sdk-ssm"
  gem "thor"
end

The aws-sdk-core gem version later than 3.198.0 there is a CBOR library compatibility error.

Expected Behavior

There shouldn't be any breaking changes from 3.198.0 to later minor releases

Current Behavior

When the inline script is executed it generates the following error

Traceback (most recent call last):
	19: from ../../../../../scripts/service_list:6:in `<main>'
	18: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/inline.rb:54:in `gemfile'
	17: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/settings.rb:124:in `temporary'
	16: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/inline.rb:70:in `block in gemfile'
	15: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:58:in `require'
	14: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:58:in `each'
	13: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:69:in `block in require'
	12: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:69:in `each'
	11: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:74:in `block (2 levels) in require'
	10: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:74:in `require'
	 9: from /usr/local/bundle/gems/aws-sdk-ssm-1.173.0/lib/aws-sdk-ssm.rb:11:in `<top (required)>'
	 8: from /usr/local/bundle/gems/aws-sdk-ssm-1.173.0/lib/aws-sdk-ssm.rb:11:in `require'
	 7: from /usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core.rb:82:in `<top (required)>'
	 6: from /usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core.rb:82:in `require_relative'
	 5: from /usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/rpc_v2.rb:1:in `<top (required)>'
	 4: from /usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/rpc_v2.rb:1:in `require_relative'
	 3: from /usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/cbor.rb:3:in `<top (required)>'
	 2: from /usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/cbor.rb:5:in `<module:Aws>'
	 1: from /usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/cbor.rb:104:in `<module:Cbor>'
/usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/cbor.rb:85:in `set_default_engine': Unable to find a compatible cbor library. (RuntimeError)
	9: from ../../../../../scripts/service_list:6:in `<main>'
	8: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/inline.rb:54:in `gemfile'
	7: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/settings.rb:124:in `temporary'
	6: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/inline.rb:70:in `block in gemfile'
	5: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:58:in `require'
	4: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:58:in `each'
	3: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:69:in `block in require'
	2: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:69:in `each'
	1: from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:73:in `block (2 levels) in require'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:77:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'aws-sdk-ssm'. (Bundler::GemRequireError)
Gem Load Error is: Unable to find a compatible cbor library.
Backtrace for gem load error is:
/usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/cbor.rb:85:in `set_default_engine'
/usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/cbor.rb:104:in `<module:Cbor>'
/usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/cbor.rb:5:in `<module:Aws>'
/usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/cbor.rb:3:in `<top (required)>'
/usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/rpc_v2.rb:1:in `require_relative'
/usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core/rpc_v2.rb:1:in `<top (required)>'
/usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core.rb:82:in `require_relative'
/usr/local/bundle/gems/aws-sdk-core-3.201.0/lib/aws-sdk-core.rb:82:in `<top (required)>'
/usr/local/bundle/gems/aws-sdk-ssm-1.173.0/lib/aws-sdk-ssm.rb:11:in `require'
/usr/local/bundle/gems/aws-sdk-ssm-1.173.0/lib/aws-sdk-ssm.rb:11:in `<top (required)>'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:74:in `require'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:74:in `block (2 levels) in require'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:69:in `each'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:69:in `block in require'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:58:in `each'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:58:in `require'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/inline.rb:70:in `block in gemfile'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/settings.rb:124:in `temporary'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/inline.rb:54:in `gemfile'

Reproduction Steps

Run a inline script with both aws-sdk-core aws-sdk-ssm in bundler 2.1.4

require "bundler/inline"
require "json"

gemfile do
  source "https://rubygems.org"

  gem "nokogiri"
  gem "aws-sdk-core"
  gem "aws-sdk-ssm"
  gem "thor"
end

Possible Solution

We temporarily fixed this by locking the version on the script. But this is causing some other BAU to not function as expected.

require "bundler/inline"
require "json"

gemfile do
  source "https://rubygems.org"

  gem "nokogiri"
  gem "aws-sdk-ssm", "1.171.0"
  gem "aws-sdk-core", "3.198.0"
  gem "thor"
end

Additional Information/Context

We expect to have a minor release compatibility over the versions

Gem name ('aws-sdk', 'aws-sdk-resources' or service gems like 'aws-sdk-s3') and its version

aws-sdk-core

Environment details (Version of Ruby, OS environment)

ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [x86_64-linux-musl]

dinukarajapaksha avatar Jul 03 '24 05:07 dinukarajapaksha