Rainbows! Rack HTTP server user/dev discussion
 help / Atom feed
* Update to Rack v2?
@ 2016-11-16 21:47 Julia López Aladro
  2016-11-16 22:04 ` Eric Wong
  0 siblings, 1 reply; 6+ messages in thread
From: Julia López Aladro @ 2016-11-16 21:47 UTC (permalink / raw)
  To: rainbows-public

Hello!

Is there any plan to update Rainbows to use Rack version ~> 2?
Currently Rainbows cannot be used in applications using Rails 5
because Rails requires the newest rack version.

Cheers,
Julia

^ permalink raw reply	[flat|threaded] 6+ messages in thread

* Re: Update to Rack v2?
  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   ` [PATCH] support rack 2.x Eric Wong
  0 siblings, 1 reply; 6+ messages in thread
From: Eric Wong @ 2016-11-16 22:04 UTC (permalink / raw)
  To: Julia López Aladro; +Cc: rainbows-public

Julia López Aladro <julialopez@gmail.com> wrote:
> Is there any plan to update Rainbows to use Rack version ~> 2?

There is, now :)

Rack 1.x needs to remain supported, but I think it's doable
(I've done it for other projects)

I will take a look at it in a little bit.

^ permalink raw reply	[flat|threaded] 6+ messages in thread

* [PATCH] support rack 2.x
  2016-11-16 22:04 ` Eric Wong
@ 2016-11-17  3:35   ` Eric Wong
  2016-11-29 21:31     ` Julia López Aladro
  0 siblings, 1 reply; 6+ messages in thread
From: Eric Wong @ 2016-11-17  3:35 UTC (permalink / raw)
  To: Julia López Aladro; +Cc: rainbows-public

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

^ permalink raw reply	[flat|threaded] 6+ messages in thread

* Re: [PATCH] support rack 2.x
  2016-11-17  3:35   ` [PATCH] support rack 2.x Eric Wong
@ 2016-11-29 21:31     ` Julia López Aladro
  2017-01-09 19:48       ` Eric Wong
  0 siblings, 1 reply; 6+ messages in thread
From: Julia López Aladro @ 2016-11-29 21:31 UTC (permalink / raw)
  To: e; +Cc: julialopez, rainbows-public

Hi Eric,

Wow, that was FAST!

This is just a heads up to let you know I'm looking into this, so far 
with Rails 4 (Rack < 2) seems to work just fine but I didn't have a lot 
to time to test it.
I haven't finished migrating the app to Rails 5 so I cannot tell if 
it'll work using Rack 2.0

As a concurrency model we are using ThreadSpawn but I cannot tell why 
because the guy that configured Rainbows is on holidays now! I'll keep 
you posted!

Thanks!

PS: Sorry about the late response!

^ permalink raw reply	[flat|threaded] 6+ messages in thread

* Re: [PATCH] support rack 2.x
  2016-11-29 21:31     ` Julia López Aladro
@ 2017-01-09 19:48       ` Eric Wong
  2017-01-13 17:56         ` Julia López
  0 siblings, 1 reply; 6+ messages in thread
From: Eric Wong @ 2017-01-09 19:48 UTC (permalink / raw)
  To: Julia López Aladro; +Cc: rainbows-public

Julia López Aladro <julialopez@gmail.com> wrote:
> PS: Sorry about the late response!

Hey, just wondering if you've had a chance to run with rack 2.x
support in rainbows.   Anyways I took an extra look at the
changes and it seems fine.  I'll probably release 5.1.0 final
in a day or two now that holidays are over and there's some
improvements ready to drop into 'master'.

Thanks.

^ permalink raw reply	[flat|threaded] 6+ messages in thread

* Re: [PATCH] support rack 2.x
  2017-01-09 19:48       ` Eric Wong
@ 2017-01-13 17:56         ` Julia López
  0 siblings, 0 replies; 6+ messages in thread
From: Julia López @ 2017-01-13 17:56 UTC (permalink / raw)
  To: e; +Cc: julialopez, rainbows-public

Hi Eric,

Sorry it took me that long to test this but I finally finished the 
migration and deployed the app in staging (we don't use rainbows in 
development mode) and after a quick click testing everything works as 
expected with the latest release 5.1.0.

Thanks again for your support!

^ permalink raw reply	[flat|threaded] 6+ messages in thread

end of thread, back to index

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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   ` [PATCH] support rack 2.x Eric Wong
2016-11-29 21:31     ` Julia López Aladro
2017-01-09 19:48       ` Eric Wong
2017-01-13 17:56         ` Julia López

Rainbows! Rack HTTP server user/dev discussion

Archives are clonable:
	git clone --mirror http://bogomips.org/rainbows-public
	git clone --mirror http://ou63pmih66umazou.onion/rainbows-public

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.lang.ruby.rainbows
	nntp://ou63pmih66umazou.onion/inbox.comp.lang.ruby.rainbows

 note: .onion URLs require Tor: https://www.torproject.org/
       or Tor2web: https://www.tor2web.org/

AGPL code for this site: git clone https://public-inbox.org/ public-inbox