mirror of mongrel-development@rubyforge.org (inactive)
 help / color / mirror / Atom feed
From: Eric Wong <normalperson-rMlxZR9MS24@public.gmane.org>
To: mongrel-development-GrnCvJ7WPxnNLxjTenLetw@public.gmane.org
Subject: Re: [ANN] Unicorn: UNIX+localhost/LAN-only	Mongrel fork
Date: Mon, 23 Feb 2009 19:12:23 -0800	[thread overview]
Message-ID: <20090224031223.GH26706@dcvr.yhbt.net> (raw)
In-Reply-To: <409638DC-A76B-40E1-AE5C-326F2573DACC-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Ezra Zygmuntowicz <ezmobius-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> On Feb 23, 2009, at 5:03 PM, Eric Wong wrote:
>
>> Eric Wong <normalperson-rMlxZR9MS24@public.gmane.org> wrote:
>>> Eric Wong <normalperson-rMlxZR9MS24@public.gmane.org> wrote:
>>>> Ezra Zygmuntowicz <ezmobius-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>>>>> 	Seems to work as advertised so far, cool stuff ;) One  
>>>>> suggestion, folks
>>>>> are pretty standardized on rack and config.ru files these days.  
>>>>> I'd much
>>>>> rather see unicorn look for a APP_ROOT/config.ru to load as its  
>>>>> config
>>>>> file rather then the eval that returns a hash style it uses now.
>>>>
>>>> Ezra, thanks for testing and feedback.  Good point about config.ru,
>>>> I'll try to make that change hopefully today to make it easier to
>>>> migrate from existing Rack apps.
>>>
>>> I just pushed out the following changes.
>>>
>>>  * revamp configuration with Configurator DSL
>>>  * Replace unicorn binary with something rackup-like
>>>  * GNUMakefile: revamp for parallel 1.8/1.9 runs
>>>  * test_exec: fix for temporary files not being cleaned
>>>  * Fix+test reexec error handling on bad inputs
>>
>> <snip>
>>
>>> Basically the latest push includes config.ru compatibility and new  
>>> test
>>> cases in test/exec/test_exec.rb for binary reexecution, listener
>>> inheritance, and reloading config files (even bad ones).
>>>
>>> This new config stuff is completely untested for any real apps and  
>>> I'll
>>> need to update the examples soonish.  But the new test cases pass in
>>> both 1.9.1 and 1.8.7, which is a good sign.
>>
>> Help...
>>
>> I'm basically a very confused person and I'm having trouble deciding  
>> on
>> how/if config.ru should deal with the config file for Unicorn-specific
>> settings.  Or if the Unicorn-specific config file should be allowed to
>> specify/override config.ru...
>>
>> Any ideas would be greatly appreciated, thanks!
>
> Eric-
>
> 	I'd say just make a small dsl or just  configuration object for unicorn 
> options and let people use the dsl/object in their config.ru files.  
> Since config.ru is just ruby you can put any ruby code in there. Have 
> folks put their unicron config code right at the top of config.ru. Will 
> that work?

The new Unicorn::Configurator object is pretty much that DSL.

The main issue of handling config reloading (which should be "lighter"
than reexecuting the binary).  Should/could that re-eval() the
Rack::Builder bits?  How would I avoid that re-eval (without
dirtying the config up)[1].

Or should I handle reexecution as the only way to make config changes?
(I've strongly considered this, it's a very big hammer :)

[1] - I don't feel completly comfortable with Unicorn-specific stuff in
config.ru, in case it makes it harder for people to try out and compare
their app on Mongrel/Thin/Ebb/Passenger/Glassfish/whatever...  But I
suppose conditionals that check for defined?(Unicorn) can be enough...

-- 
Eric Wong

  parent reply	other threads:[~2009-02-24  5:17 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-11 23:04 [ANN] Unicorn: UNIX+localhost/LAN-only Mongrel fork Eric Wong
     [not found] ` <20090211230457.GB22926-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
2009-02-12  0:32   ` Ryan Dahl
     [not found]     ` <21ee31950902111632y6df95e9h1f9dd642bcc55baf-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-02-12  0:59       ` Eric Wong
     [not found]         ` <20090212005932.GB26706-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
2009-02-12  1:08           ` Ryan Dahl
     [not found]             ` <21ee31950902111708m370f6a28s477b2d2fb4af960b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-02-12  3:28               ` Eric Wong
     [not found]                 ` <20090212032844.GA24045-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
2009-02-12 20:05                   ` Evan Weaver
     [not found]                     ` <b6f68fc60902121205t67bc8bd7n2740162a76d1b852-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-02-14  9:46                       ` Eric Wong
2009-02-12  0:40   ` Ezra Zygmuntowicz
     [not found]     ` <DA13594B-59BD-4EBD-8326-C98D5B85819C-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-02-16 23:39       ` Eric Wong
     [not found]         ` <20090216233904.GB3198-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
2009-02-17  1:59           ` Ezra Zygmuntowicz
     [not found]             ` <2A92C72C-498A-4A6E-9035-059CCF4C7371-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-02-18  0:40               ` Eric Wong
     [not found]                 ` <20090218004036.GA29439-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
2009-02-21 15:10                   ` Eric Wong
2009-02-24  1:03                     ` Eric Wong
     [not found]                       ` <20090224010344.GG26706-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
2009-02-24  2:28                         ` Ezra Zygmuntowicz
     [not found]                           ` <409638DC-A76B-40E1-AE5C-326F2573DACC-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-02-24  3:12                             ` Eric Wong [this message]
     [not found]                               ` <20090224031223.GH26706-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
2009-02-26  5:55                                 ` Eric Wong
     [not found]                                   ` <20090226055544.GA20153-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
2009-02-26  7:06                                     ` Ezra Zygmuntowicz
replies disabled, historical list

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).