Rainbows! Rack HTTP server user/dev discussion
 help / color / mirror / code / Atom feed
From: Eric Wong <e@80x24.org>
To: "Julia López Aladro" <julialopez@gmail.com>
Cc: rainbows-public@bogomips.org
Subject: [PATCH] support rack 2.x
Date: Thu, 17 Nov 2016 03:35:31 +0000	[thread overview]
Message-ID: <20161117033531.GA4454@dcvr> (raw)
In-Reply-To: <20161116220401.GA23831@dcvr>

OK, I think the patch below will work.

I've pushed out a pre-release to RubyGems.org with it,
it's purely a packaging change.

	rainbows 5.0.0.5.ge717

	(gem install --pre rainbows)

Can you give it a try?  I'd like to push out a final release
in a day or two.  Thanks.

Btw, which concurrency model of Rainbows! are you using?
I'm always trying to prioritize support for them, since
some of them depend on barely-maintained projects like EM.


-------8<------
Subject: [PATCH] support rack 2.x

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 @@
   s.summary = summary
 
   # we want a newer Rack for a valid HeaderHash#each
-  s.add_dependency(%q<rack>, ['~> 1.1'])
+  s.add_dependency(%q<rack>, ['>= 1.1', '< 3.0'])
 
   # kgio 2.5 has kgio_wait_* methods that take optional timeout args
   s.add_dependency(%q<kgio>, ['~> 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<unicorn>, ["~> 5.0"])
+  # we need unicorn 5.1+ to relax the Rack dependency.
+  s.add_dependency(%q<unicorn>, ["~> 5.1"])
 
   s.add_development_dependency(%q<isolate>, "~> 3.1")
   s.add_development_dependency(%q<olddoc>, "~> 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.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'
-- 
EW

  reply	other threads:[~2016-11-17  3:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-16 21:47 Update to Rack v2? Julia López Aladro
2016-11-16 22:04 ` Eric Wong
2016-11-17  3:35   ` Eric Wong [this message]
2016-11-29 21:31     ` [PATCH] support rack 2.x Julia López Aladro
2017-01-09 19:48       ` Eric Wong
2017-01-13 17:56         ` Julia López

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://yhbt.net/rainbows/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161117033531.GA4454@dcvr \
    --to=e@80x24.org \
    --cc=julialopez@gmail.com \
    --cc=rainbows-public@bogomips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhbt.net/rainbows.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).