Skip to content

Commit

Permalink
1.0030
Browse files Browse the repository at this point in the history
  • Loading branch information
miyagawa committed Nov 23, 2013
1 parent eba6ba8 commit 2e78e6f
Show file tree
Hide file tree
Showing 7 changed files with 70 additions and 55 deletions.
12 changes: 12 additions & 0 deletions Changes
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@ Go to http://github.com/plack/Plack/issues for the roadmap and known issues.

{{$NEXT}}

1.0030 2013-11-23 08:54:01 CET
[IMPROVEMENTS]
- Middleware::LogDispatch stringifies objects (oalders) #427
- Encode wide character strings as UTF-8 in HTTP::Server::PSGI #429
- Optimize Plack::Response->finalize performance (kazeburo) #433
- Optimize mount() performance in Plack::App::URLMap

[BUG FIXES]
- ErrorDocument: remove Content-Encoding and Transfer-Encoding (kazeburo) #430
- Fix harakiri test hang on win32 (wchristian) #431
- Handler::FCGI: Restore --keep-stderr option (mauzo) #432

1.0029 2013-08-22 14:05:44 PDT
[NEW FEATURES]
- Plack::Test now has a simpler object-oriented interface that doesn't
Expand Down
6 changes: 4 additions & 2 deletions META.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Tatsuhiko Miyagawa"
],
"dynamic_config" : 0,
"generated_by" : "Dist::Milla version v1.0.3, Dist::Zilla version 4.300035, CPAN::Meta::Converter version 2.132140",
"generated_by" : "Dist::Milla version v1.0.4, Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.132830",
"license" : [
"perl_5"
],
Expand Down Expand Up @@ -95,7 +95,7 @@
"web" : "https://github.com/plack/Plack"
}
},
"version" : "1.0029",
"version" : "1.0030",
"x_authority" : "cpan:MIYAGAWA",
"x_contributors" : [
"Aaron Trevena <aaron.trevena@gmail.com>",
Expand All @@ -105,6 +105,7 @@
"Andy Wardley <abw@wardley.org>",
"Aristotle Pagaltzis <pagaltzis@gmx.de>",
"Ask Bj\u00f8rn Hansen <ask@develooper.com>",
"Ben Morrow <ben@morrow.me.uk>",
"Bernhard Graf <augensalat@gmail.com>",
"Chia-liang Kao <clkao@clkao.org>",
"Christian Walde <walde.christian@googlemail.com>",
Expand Down Expand Up @@ -145,6 +146,7 @@
"Michael G. Schwern <schwern@pobox.com>",
"Nick Wellnhofer <wellnhofer@aevum.de>",
"Nobuo Danjou <nobuo.danjou@gmail.com>",
"Olaf Alders <olaf@wundersolutions.com>",
"Oliver Gorwits <oliver@cpan.org>",
"Oliver Paukstadt <pstadt@sourcentral.org>",
"Olivier Mengu\u00e9 <dolmen@cpan.org>",
Expand Down
49 changes: 25 additions & 24 deletions Makefile.PL
Original file line number Diff line number Diff line change
Expand Up @@ -45,37 +45,38 @@ my %WriteMakefileArgs = (
"Test::More" => "0.88",
"Test::Requires" => 0
},
"VERSION" => "1.0029",
"VERSION" => "1.0030",
"test" => {
"TESTS" => "t/*.t t/HTTP-Message-PSGI/*.t t/HTTP-Server-PSGI/*.t t/Plack-Builder/*.t t/Plack-HTTPParser-PP/*.t t/Plack-Handler/*.t t/Plack-Loader/*.t t/Plack-MIME/*.t t/Plack-Middleware/*.t t/Plack-Middleware/cascade/*.t t/Plack-Middleware/recursive/*.t t/Plack-Middleware/stacktrace/*.t t/Plack-Request/*.t t/Plack-Response/*.t t/Plack-Runner/*.t t/Plack-TempBuffer/*.t t/Plack-Test/*.t t/Plack-Util/*.t"
}
);


unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
my $tr = delete $WriteMakefileArgs{TEST_REQUIRES};
my $br = $WriteMakefileArgs{BUILD_REQUIRES};
for my $mod ( keys %$tr ) {
if ( exists $br->{$mod} ) {
$br->{$mod} = $tr->{$mod} if $tr->{$mod} > $br->{$mod};
}
else {
$br->{$mod} = $tr->{$mod};
}
}
}
my %FallbackPrereqs = (
"Apache::LogFormat::Compiler" => "0.12",
"Devel::StackTrace" => "1.23",
"Devel::StackTrace::AsHTML" => "0.11",
"File::ShareDir" => "1.00",
"Filesys::Notify::Simple" => 0,
"HTTP::Body" => "1.06",
"HTTP::Message" => "5.814",
"HTTP::Tiny" => "0.034",
"Hash::MultiValue" => "0.05",
"Pod::Usage" => "1.36",
"Stream::Buffered" => "0.02",
"Test::More" => "0.88",
"Test::Requires" => 0,
"Test::TCP" => "2.00",
"Try::Tiny" => 0,
"URI" => "1.59",
"parent" => 0
);

unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
my $pp = $WriteMakefileArgs{PREREQ_PM};
for my $mod ( keys %$br ) {
if ( exists $pp->{$mod} ) {
$pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
}
else {
$pp->{$mod} = $br->{$mod};
}
}

unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
delete $WriteMakefileArgs{TEST_REQUIRES};
delete $WriteMakefileArgs{BUILD_REQUIRES};
$WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
}

delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
Expand Down
52 changes: 26 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,34 +9,34 @@ middleware components, a reference server and utilities for Web
application frameworks. Plack is like Ruby's Rack or Python's Paste
for WSGI.

See [PSGI](http://search.cpan.org/perldoc?PSGI) for the PSGI specification and [PSGI::FAQ](http://search.cpan.org/perldoc?PSGI::FAQ) to know what
See [PSGI](https://metacpan.org/pod/PSGI) for the PSGI specification and [PSGI::FAQ](https://metacpan.org/pod/PSGI::FAQ) to know what
PSGI and Plack are and why we need them.

# MODULES AND UTILITIES

## Plack::Handler

[Plack::Handler](http://search.cpan.org/perldoc?Plack::Handler) and its subclasses contains adapters for web
[Plack::Handler](https://metacpan.org/pod/Plack::Handler) and its subclasses contains adapters for web
servers. We have adapters for the built-in standalone web server
[HTTP::Server::PSGI](http://search.cpan.org/perldoc?HTTP::Server::PSGI), [CGI](http://search.cpan.org/perldoc?Plack::Handler::CGI),
[FCGI](http://search.cpan.org/perldoc?Plack::Handler::FCGI), [Apache1](http://search.cpan.org/perldoc?Plack::Handler::Apache1),
[Apache2](http://search.cpan.org/perldoc?Plack::Handler::Apache2) and
[HTTP::Server::Simple](http://search.cpan.org/perldoc?Plack::Handler::HTTP::Server::Simple) included
[HTTP::Server::PSGI](https://metacpan.org/pod/HTTP::Server::PSGI), [CGI](https://metacpan.org/pod/Plack::Handler::CGI),
[FCGI](https://metacpan.org/pod/Plack::Handler::FCGI), [Apache1](https://metacpan.org/pod/Plack::Handler::Apache1),
[Apache2](https://metacpan.org/pod/Plack::Handler::Apache2) and
[HTTP::Server::Simple](https://metacpan.org/pod/Plack::Handler::HTTP::Server::Simple) included
in the core Plack distribution.

There are also many HTTP server implementations on CPAN that have Plack
handlers.

See [Plack::Handler](http://search.cpan.org/perldoc?Plack::Handler) when writing your own adapters.
See [Plack::Handler](https://metacpan.org/pod/Plack::Handler) when writing your own adapters.

## Plack::Loader

[Plack::Loader](http://search.cpan.org/perldoc?Plack::Loader) is a loader to load one [Plack::Handler](http://search.cpan.org/perldoc?Plack::Handler) adapter
[Plack::Loader](https://metacpan.org/pod/Plack::Loader) is a loader to load one [Plack::Handler](https://metacpan.org/pod/Plack::Handler) adapter
and run a PSGI application code reference with it.

## Plack::Util

[Plack::Util](http://search.cpan.org/perldoc?Plack::Util) contains a lot of utility functions for server
[Plack::Util](https://metacpan.org/pod/Plack::Util) contains a lot of utility functions for server
implementors as well as middleware authors.

## .psgi files
Expand Down Expand Up @@ -68,14 +68,14 @@ files.

## plackup, Plack::Runner

[plackup](http://search.cpan.org/perldoc?plackup) is a command line launcher to run PSGI applications from
command line using [Plack::Loader](http://search.cpan.org/perldoc?Plack::Loader) to load PSGI backends. It can be
[plackup](https://metacpan.org/pod/plackup) is a command line launcher to run PSGI applications from
command line using [Plack::Loader](https://metacpan.org/pod/Plack::Loader) to load PSGI backends. It can be
used to run standalone servers and FastCGI daemon processes. Other
server backends like Apache2 needs a separate configuration but
`.psgi` application file can still be the same.

If you want to write your own frontend that replaces, or adds
functionalities to [plackup](http://search.cpan.org/perldoc?plackup), take a look at the [Plack::Runner](http://search.cpan.org/perldoc?Plack::Runner) module.
functionalities to [plackup](https://metacpan.org/pod/plackup), take a look at the [Plack::Runner](https://metacpan.org/pod/Plack::Runner) module.

## Plack::Middleware

Expand All @@ -84,39 +84,39 @@ application and plays both side of application and servers. From the
servers the wrapped code reference still looks like and behaves
exactly the same as PSGI applications.

[Plack::Middleware](http://search.cpan.org/perldoc?Plack::Middleware) gives you an easy way to wrap PSGI applications
with a clean API, and compatibility with [Plack::Builder](http://search.cpan.org/perldoc?Plack::Builder) DSL.
[Plack::Middleware](https://metacpan.org/pod/Plack::Middleware) gives you an easy way to wrap PSGI applications
with a clean API, and compatibility with [Plack::Builder](https://metacpan.org/pod/Plack::Builder) DSL.

## Plack::Builder

[Plack::Builder](http://search.cpan.org/perldoc?Plack::Builder) gives you a DSL that you can enable Middleware in
[Plack::Builder](https://metacpan.org/pod/Plack::Builder) gives you a DSL that you can enable Middleware in
`.psgi` files to wrap existent PSGI applications.

## Plack::Request, Plack::Response

[Plack::Request](http://search.cpan.org/perldoc?Plack::Request) gives you a nice wrapper API around PSGI `$env`
[Plack::Request](https://metacpan.org/pod/Plack::Request) gives you a nice wrapper API around PSGI `$env`
hash to get headers, cookies and query parameters much like
[Apache::Request](http://search.cpan.org/perldoc?Apache::Request) in mod\_perl.
[Apache::Request](https://metacpan.org/pod/Apache::Request) in mod\_perl.

[Plack::Response](http://search.cpan.org/perldoc?Plack::Response) does the same to construct the response array
[Plack::Response](https://metacpan.org/pod/Plack::Response) does the same to construct the response array
reference.

## Plack::Test

[Plack::Test](http://search.cpan.org/perldoc?Plack::Test) is a unified interface to test your PSGI application
using standard [HTTP::Request](http://search.cpan.org/perldoc?HTTP::Request) and [HTTP::Response](http://search.cpan.org/perldoc?HTTP::Response) pair with simple
[Plack::Test](https://metacpan.org/pod/Plack::Test) is a unified interface to test your PSGI application
using standard [HTTP::Request](https://metacpan.org/pod/HTTP::Request) and [HTTP::Response](https://metacpan.org/pod/HTTP::Response) pair with simple
callbacks.

## Plack::Test::Suite

[Plack::Test::Suite](http://search.cpan.org/perldoc?Plack::Test::Suite) is a test suite to test a new PSGI server backend.
[Plack::Test::Suite](https://metacpan.org/pod/Plack::Test::Suite) is a test suite to test a new PSGI server backend.

# CONTRIBUTING

## Patches and Bug Fixes

Small patches and bug fixes can be either submitted via nopaste on IRC
[irc://irc.perl.org/\#plack](irc://irc.perl.org/\#plack) or [the github issue tracker](http://github.com/plack/Plack/issues). Forking on
[irc://irc.perl.org/#plack](irc://irc.perl.org/#plack) or [the github issue tracker](http://github.com/plack/Plack/issues). Forking on
[github](http://github.com/plack/Plack) is another good way if you
intend to make larger fixes.

Expand All @@ -133,14 +133,14 @@ Middleware authors are free to use the Plack::Middleware:: namespace for
their middleware components. Middleware must be written in the pipeline
style such that they can chained together with other middleware components.
The Plack::Middleware:: modules in the core distribution are good examples
of such modules. It is recommended that you inherit from [Plack::Middleware](http://search.cpan.org/perldoc?Plack::Middleware)
of such modules. It is recommended that you inherit from [Plack::Middleware](https://metacpan.org/pod/Plack::Middleware)
for these types of modules.

Not all middleware components are wrappers, but instead are more like
endpoints in a middleware chain. These types of components should use the
Plack::App:: namespace. Again, look in the core modules to see excellent
examples of these ([Plack::App::File](http://search.cpan.org/perldoc?Plack::App::File), [Plack::App::Directory](http://search.cpan.org/perldoc?Plack::App::Directory), etc.).
It is recommended that you inherit from [Plack::Component](http://search.cpan.org/perldoc?Plack::Component) for these
examples of these ([Plack::App::File](https://metacpan.org/pod/Plack::App::File), [Plack::App::Directory](https://metacpan.org/pod/Plack::App::Directory), etc.).
It is recommended that you inherit from [Plack::Component](https://metacpan.org/pod/Plack::Component) for these
types of modules.

__DO NOT USE__ Plack:: namespace to build a new web application or a
Expand Down Expand Up @@ -206,7 +206,7 @@ Aaron Trevena

# SEE ALSO

The [PSGI](http://search.cpan.org/perldoc?PSGI) specification upon which Plack is based.
The [PSGI](https://metacpan.org/pod/PSGI) specification upon which Plack is based.

[http://plackperl.org/](http://plackperl.org/)

Expand Down
2 changes: 1 addition & 1 deletion lib/Plack.pm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package Plack;
use strict;
use warnings;
use 5.008_001;
our $VERSION = '1.0029';
our $VERSION = '1.0030';

1;
__END__
Expand Down
2 changes: 1 addition & 1 deletion lib/Plack/Request.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package Plack::Request;
use strict;
use warnings;
use 5.008_001;
our $VERSION = '1.0029';
our $VERSION = '1.0030';

use HTTP::Headers;
use Carp ();
Expand Down
2 changes: 1 addition & 1 deletion lib/Plack/Response.pm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package Plack::Response;
use strict;
use warnings;
our $VERSION = '1.0029';
our $VERSION = '1.0030';

use Plack::Util::Accessor qw(body status);
use Carp ();
Expand Down

0 comments on commit 2e78e6f

Please sign in to comment.