From mboxrd@z Thu Jan 1 00:00:00 1970 Delivered-To: chneukirchen@gmail.com Received: by 10.49.85.105 with SMTP id g9csp249806qez; Mon, 21 Jan 2013 23:46:11 -0800 (PST) Return-Path: Received-SPF: pass (google.com: domain of rack-core+bncBD75LW742ECRBQ4H7GDQKGQEYLRNGAQ@googlegroups.com designates 10.50.191.131 as permitted sender) client-ip=10.50.191.131 Authentication-Results: mr.google.com; spf=pass (google.com: domain of rack-core+bncBD75LW742ECRBQ4H7GDQKGQEYLRNGAQ@googlegroups.com designates 10.50.191.131 as permitted sender) smtp.mail=rack-core+bncBD75LW742ECRBQ4H7GDQKGQEYLRNGAQ@googlegroups.com; dkim=pass header.i=@googlegroups.com X-Received: from mr.google.com ([10.50.191.131]) by 10.50.191.131 with SMTP id gy3mr13127622igc.1.1358840771504 (num_hops = 1); Mon, 21 Jan 2013 23:46:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=x-received:mime-version:x-beenthere:x-received:x-received :received-spf:x-received:message-id:date:from:to:subject :x-original-sender:x-original-authentication-results:reply-to :precedence:mailing-list:list-id:x-google-group-id:list-post :list-help:list-archive:sender:list-unsubscribe; bh=vbDNWyeLO6p9ioBX5MKfv1hrTvmYEjMoGc8zSYTwzFU=; b=xOePZxkhrph2aBgXUlMIlcTNBDKi2TwX10mWrl4Z5UbCvB+REfaOwHN+afLzWkY+Ek TxUOT/I139fdi/hfCBiNhBNbCYClyD6gb1QA63XnI7t8oKgk7pv8uR44VJSHPAcPX3a5 vxcOYHtovkaz8HY/Jykkh0ig87E7R8/svXjoPmgCgvTUH0ggl1OD02ZXNGT+0S7d9ojQ Osw+jB49UV1LsGkfnLsOuM+Cp10mEWJSYYEhH0pValdoA1bbN+wM7spz8ngTcnQJpEf8 TmtFPzSWHQeID4Pd7SxtJuBaehNNnebpCN3Zi+Ik9TxvRyDmlH6wFL5VBTi2EbbpjjdM CzHQ== X-Received: by 10.50.191.131 with SMTP id gy3mr3698760igc.1.1358840771340; Mon, 21 Jan 2013 23:46:11 -0800 (PST) MIME-Version: 1.0 X-BeenThere: rack-core@googlegroups.com Received: by 10.50.10.228 with SMTP id l4ls3014597igb.24.canary; Mon, 21 Jan 2013 23:46:11 -0800 (PST) X-Received: by 10.66.84.98 with SMTP id x2mr2170079pay.10.1358840771029; Mon, 21 Jan 2013 23:46:11 -0800 (PST) X-Received: by 10.66.84.98 with SMTP id x2mr2170077pay.10.1358840771017; Mon, 21 Jan 2013 23:46:11 -0800 (PST) Received: from mail-pa0-f44.google.com (mail-pa0-f44.google.com [209.85.220.44]) by gmr-mx.google.com with ESMTPS id ab9si2964943pbd.1.2013.01.21.23.46.11 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 21 Jan 2013 23:46:11 -0800 (PST) Received-SPF: pass (google.com: domain of jftucker@gmail.com designates 209.85.220.44 as permitted sender) client-ip=209.85.220.44; Received: by mail-pa0-f44.google.com with SMTP id hz11so3891010pad.3 for ; Mon, 21 Jan 2013 23:46:10 -0800 (PST) X-Received: by 10.68.129.40 with SMTP id nt8mr55750767pbb.113.1358840770907; Mon, 21 Jan 2013 23:46:10 -0800 (PST) Received: from localhost (c-67-180-21-214.hsd1.ca.comcast.net. [67.180.21.214]) by mx.google.com with ESMTPS id pv8sm10267061pbc.26.2013.01.21.23.46.09 (version=TLSv1 cipher=RC4-SHA bits=128/128); Mon, 21 Jan 2013 23:46:10 -0800 (PST) Message-ID: <50fe43c2.68dc440a.126d.ffffe987@mx.google.com> Date: Mon, 21 Jan 2013 23:46:10 -0800 (PST) From: jftucker@gmail.com To: ruby-talk@ruby-lang.org, rack-devel@googlegroups.com, rack-core@googlegroups.com Subject: [SEC][ANN] Rack 1.5.0, a modular Ruby webserver interface X-Original-Sender: jftucker@gmail.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jftucker@gmail.com designates 209.85.220.44 as permitted sender) smtp.mail=jftucker@gmail.com; dkim=pass header.i=@gmail.com Reply-To: rack-core@googlegroups.com Precedence: list Mailing-list: list rack-core@googlegroups.com; contact rack-core+owners@googlegroups.com List-ID: X-Google-Group-Id: 504757074975 List-Post: , List-Help: , List-Archive: Sender: rack-core@googlegroups.com List-Unsubscribe: , Hello, Today we are proud to announce the release of Rack 1.5.0. = Rack, a modular Ruby webserver interface Rack provides a minimal, modular and adaptable interface for developing web applications in Ruby. By wrapping HTTP requests and responses in the simplest way possible, it unifies and distills the API for web servers, web frameworks, and software in between (the so-called middleware) into a single method call. The exact details of this are described in the Rack specification, which all Rack applications should conform to. == Changes Please note that this release includes a few potentially breaking changes. Of particular note are: * SessionHash is no longer a Hash sublcass * Rack::File cache_control parameter is removed in place of headers options Additonally, SPEC has been updated in several areas and is now at 1,2. A new SPEC section was introduced that provides two server-optional IO hijacking APIs. Further information on these APIs will be made available by the community in good time. In the mean time, some information can be found in the original pull request: https://github.com/rack/rack/pull/481 * January 21st, 2013: Thirty third public release 1.5.0 * Introduced hijack SPEC, for before-response and after-response hijacking * SessionHash is no longer a Hash subclass * Rack::File cache_control parameter is removed, in place of headers options * Rack::Auth::AbstractRequest#scheme now yields strings, not symbols * Rack::Utils cookie functions now format expires in RFC 2822 format * Rack::File now has a default mime type * rackup -b 'run Rack::File.new(".")', option provides command line configs * Rack::Deflater will no longer double encode bodies * Rack::Mime#match? provides convenience for Accept header matching * Rack::Utils#q_values provides splitting for Accept headers * Rack::Utils#best_q_match provides a helper for Accept headers * Rack::Handler.pick provides convenience for finding available servers * Puma added to the list of default servers (preferred over Webrick) * Various middleware now correctly close body when replacing it * Rack::Request#params is no longer persistent with only GET params * Rack::Request#update_param and #delete_param provide persistent operations * Rack::Request#trusted_proxy? now returns true for local unix sockets * Rack::Response no longer forces Content-Types * Rack::Sendfile provides local mapping configuration options * Rack::Utils#rfc2109 provides old netscape style time output * Updated HTTP status codes * Ruby 1.8.6 likely no longer passes tests, and is no longer fully supported == Where can I get it? You can download Rack at http://chneukirchen.org/releases/rack-1.5.0.tar.gz (upload pending at time of writing) http://rubyforge.org/projects/rack Alternatively, you can checkout from the development repository with: git clone git://github.com/rack/rack.git cd rack && git checkout rack-1.5 # for this release Happy hacking and have a nice day, James Tucker on behalf of the Rack Core Team. 9f506c84a6edbeb8c98f381e8edce15e7ae08324 rack-1.5.0.tar.gz 71b6627efbc8795bd3077eff9850fcb508d57ea3 rack-1.5.0.gem