From mboxrd@z Thu Jan 1 00:00:00 1970 Delivered-To: chneukirchen@gmail.com Received: by 10.229.49.16 with SMTP id t16cs17922qcf; Wed, 1 Sep 2010 21:14:06 -0700 (PDT) Return-Path: Received-SPF: pass (google.com: domain of rack-devel+bncCNSYpqGTFhCLyfzjBBoE3127JA@googlegroups.com designates 10.114.81.9 as permitted sender) client-ip=10.114.81.9; Authentication-Results: mr.google.com; spf=pass (google.com: domain of rack-devel+bncCNSYpqGTFhCLyfzjBBoE3127JA@googlegroups.com designates 10.114.81.9 as permitted sender) smtp.mail=rack-devel+bncCNSYpqGTFhCLyfzjBBoE3127JA@googlegroups.com; dkim=pass header.i=rack-devel+bncCNSYpqGTFhCLyfzjBBoE3127JA@googlegroups.com Received: from mr.google.com ([10.114.81.9]) by 10.114.81.9 with SMTP id e9mr1167981wab.1.1283400845109 (num_hops = 1); Wed, 01 Sep 2010 21:14:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=beta; h=domainkey-signature:received:x-beenthere:received:received:received :received:received-spf:received:date:from:to:subject:message-id :references:mime-version:in-reply-to:user-agent:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:list-post:list-help:list-archive:sender:list-subscribe :list-unsubscribe:content-type:content-disposition; bh=pJip9ixTSMCfM5+sJhXlxczBxiEMIfc/+N4pLEAgy1Q=; b=Iuis4K4079H9dq2KqKzOQevquCOYHWi3/K4toAW447HumgOb9tYcdfHKd/6pR82m1k oqGchOhssKRvsFni3voePovcj3w37XIDLWskEAGumD87GwlfijvW0gdMHq+GqmMSF2xD K+9gRpTAmW7d8Sa4iUzP2H+otly2S44wZoJHo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlegroups.com; s=beta; h=x-beenthere:received-spf:date:from:to:subject:message-id:references :mime-version:in-reply-to:user-agent:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:list-post:list-help:list-archive:sender:list-subscribe :list-unsubscribe:content-type:content-disposition; b=RrQiZUsBeGmWokd5FWF+dE6NO2035WFblfY8GAvyg+3RqIKdIMrQXBH7+hyNxfTGaQ 3nm0CvwNtOLNwCkkw+7Wyl+72MkbmAQ6nbdpwgpMu+4icBoC50QvY7MIizL6Ko4yD95e iqz/pxll3m1As9dObuTFD39KVQBA0sRLOL+pY= Received: by 10.114.81.9 with SMTP id e9mr251535wab.1.1283400843615; Wed, 01 Sep 2010 21:14:03 -0700 (PDT) X-BeenThere: rack-devel@googlegroups.com Received: by 10.115.135.14 with SMTP id m14ls241949wan.2.p; Wed, 01 Sep 2010 21:14:02 -0700 (PDT) Received: by 10.114.60.5 with SMTP id i5mr1997810waa.34.1283400842201; Wed, 01 Sep 2010 21:14:02 -0700 (PDT) Received: by 10.114.60.5 with SMTP id i5mr1997809waa.34.1283400841983; Wed, 01 Sep 2010 21:14:01 -0700 (PDT) Received: from dcvr.yhbt.net (dcvr.yhbt.net [64.71.152.64]) by gmr-mx.google.com with ESMTP id k37si66175wae.2.2010.09.01.21.14.01; Wed, 01 Sep 2010 21:14:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of normalperson@yhbt.net designates 64.71.152.64 as permitted sender) client-ip=64.71.152.64; Received: from localhost (unknown [127.0.2.5]) by dcvr.yhbt.net (Postfix) with ESMTP id E74251F541; Thu, 2 Sep 2010 04:14:00 +0000 (UTC) Date: Thu, 2 Sep 2010 04:14:00 +0000 From: Eric Wong To: rack-devel@googlegroups.com Subject: Re: Bootstrapping rackup with multiple rack gems installed Message-ID: <20100902041400.GA20101@dcvr.yhbt.net> References: <0257a5a4-9afb-4abf-bb46-b14fbbc57c38@s9g2000yqd.googlegroups.com> MIME-Version: 1.0 In-Reply-To: <0257a5a4-9afb-4abf-bb46-b14fbbc57c38@s9g2000yqd.googlegroups.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Original-Sender: normalperson@yhbt.net X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of normalperson@yhbt.net designates 64.71.152.64 as permitted sender) smtp.mail=normalperson@yhbt.net Reply-To: rack-devel@googlegroups.com Precedence: list Mailing-list: list rack-devel@googlegroups.com; contact rack-devel+owners@googlegroups.com List-ID: List-Post: , List-Help: , List-Archive: Sender: rack-devel@googlegroups.com List-Subscribe: , List-Unsubscribe: , Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Joshua Peek wrote: > 2) Unicorn and Passenger should allow you to specify which rack > version to use. I've looked into this before. Once the gemspec for Unicorn is loaded, the latest rack is already activated, so it's too late. And the gemspec that lands during the installation is always regenerated by RubyGems so I can't put conditional logic in the gemspec for runtime use. This would still work for people who install Unicorn using setup.rb, but that's a minority. > 3) Specify a load path or environment file on boot that setups the > correct paths or activates the right version of rack. This could be > done by requiring an environment that loads Bundler or similar tools. I do something like this with Isolate for the few apps I've deployed. I used to use RUBYLIB for most "hello world" demo apps. > 4) Hacky version independent version of rackup. I hacked this up to > demonstration how http://gist.github.com/560926 you can lazily > evaluate the builder dsl after the application loads. Yikes... > Are there anymore workarounds? Whats the suggested fix? I'd like to > hear some opinions on the whole bootstapping matter. Multiple Ruby installations? Or somebody (not me :P) could maintain gems like: "unicorn-old-rack-XYZ" that have hard dependencies on older racks and only have a bin/ wrapper that loads Unicorn after it activates the older Rack. Honestly, all options suck and people have been trying to solve these types of packaging/dependency for years now (not just in Ruby). I don't know... -- Eric Wong