From e71795005f8cdf90159ef681aba4e0dce3f6a587 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 17 Nov 2016 02:55:18 +0000 Subject: support rack 2.x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This requires updating to unicorn 5.1+ to relax the rack requirement. Unlike unicorn, Rainbows! is considerably larger and cannot function without rack installed. There were no code changes required to pass the test suite; but some other optional gems needed to be updated for testing. Support for async_sinatra is no longer tested as that is tied to rack 1.x; but the remaining EventMachine-dependent parts remain tested. Thanks to Julia López Aladro for reminding us on the mailing list: https://bogomips.org/rainbows-public/CAPhSs6OAU+motd+MF=WOSek9==StLjEQJsNwAO3-aRWCZzhs=g@mail.gmail.com/ --- rainbows.gemspec | 7 +++---- t/t0300-async_sinatra.sh | 2 +- t/test_isolate.rb | 15 +++++++++------ 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/rainbows.gemspec b/rainbows.gemspec index 05d4a2a..4283a85 100644 --- a/rainbows.gemspec +++ b/rainbows.gemspec @@ -19,15 +19,14 @@ Gem::Specification.new do |s| s.summary = summary # we want a newer Rack for a valid HeaderHash#each - s.add_dependency(%q, ['~> 1.1']) + s.add_dependency(%q, ['>= 1.1', '< 3.0']) # kgio 2.5 has kgio_wait_* methods that take optional timeout args s.add_dependency(%q, ['~> 2.5']) # we need unicorn for the HTTP parser and process management - # we need unicorn 4.8.0+ since we depend on undocumented/unsupported - # unicorn internals. - s.add_dependency(%q, ["~> 5.0"]) + # we need unicorn 5.1+ to relax the Rack dependency. + s.add_dependency(%q, ["~> 5.1"]) s.add_development_dependency(%q, "~> 3.1") s.add_development_dependency(%q, "~> 1.2") diff --git a/t/t0300-async_sinatra.sh b/t/t0300-async_sinatra.sh index ae594eb..d7972e5 100755 --- a/t/t0300-async_sinatra.sh +++ b/t/t0300-async_sinatra.sh @@ -5,7 +5,7 @@ n=10 CONFIG_RU=async_sinatra.ru case $model in -NeverBlock|EventMachine) ;; +NeverBlock-rack1|EventMachine-rack1) ;; *) t_info "skipping $T since it's not compatible with $model" exit 0 diff --git a/t/test_isolate.rb b/t/test_isolate.rb index 58bc4dc..bb56ef0 100644 --- a/t/test_isolate.rb +++ b/t/test_isolate.rb @@ -17,15 +17,18 @@ lock = File.open(__FILE__, "rb") lock.flock(File::LOCK_EX) Isolate.now!(opts) do gem 'kgio', '2.10.0' - gem 'rack', '1.6.4' - gem 'kcar', '0.5.0' - gem 'raindrops', '0.13.0' - gem 'unicorn', '5.0.1' + gem 'rack', '2.0.1' + gem 'kcar', '0.6.0' + gem 'raindrops', '0.17.0' + gem 'unicorn', '5.2.0' if engine == "ruby" gem 'sendfile', '1.2.2' - gem 'eventmachine', '1.0.8' - gem 'async_sinatra', '1.2.0' + gem 'eventmachine', '1.2.0.1' + + # not compatible with rack 2.x + # gem 'async_sinatra', '1.2.1' + if RUBY_VERSION.to_f < 2.2 gem 'cool.io', '1.1.0' gem 'neverblock', '0.1.6.2' -- cgit v1.2.3-24-ge0c7