X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FDelta.pod;h=08b043c53e4cfd2fde62ce8152e43180709f875d;hb=8e0986141412682879028a6b44189892227f1324;hp=95c9fc27d44bc169fde821f7bbbb181f908f2fbd;hpb=9b3b1b9c418f3e875c782bf405fcb85b44ea7a4b;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Delta.pod b/lib/Catalyst/Delta.pod index 95c9fc2..08b043c 100755 --- a/lib/Catalyst/Delta.pod +++ b/lib/Catalyst/Delta.pod @@ -4,7 +4,102 @@ Catalyst::Delta - Overview of changes between versions of Catalyst =head1 DESCRIPTION -This is an overview of the user-visible changes to Catalyst between major Catalyst releases. +This is an overview of the user-visible changes to Catalyst between major +Catalyst releases. + +=head2 VERSION 5.90060+ + +We changed the way we return body content (from response) to whatever +Plack handler you are using (Starman, FastCGI, etc.) We no longer +always use the streaming interface for the cases when the body is a +simple scalar, object or filehandle like. In those cases we now just +pass the simple response on to the plack handler. This might lead to +some minor differences in how streaming is handled. For example, you +might notice that streaming starts using chunked encoding when running +on a server that supports that, or that previously missing headers +(possible content-length) might appear suddenly correct. Also, if you +are using middleware like L and are using +a filehandle that sets a readable path, your server might now correctly +handle the file (rather than as before where Catalyst would stream it +very likely very slowly). + +In other words, some things might be meaninglessly different and some +things that were broken codewise but worked because of Catalyst being +incorrect might suddenly be really broken. The behavior is now more +correct in that Catalyst plays better with features that Plack offers +but if you are making heavy use of the streaming interface there could +be some differences so you should test carefully (this is probably not +the vast majority of people). In particular if you are developing +using one server but deploying using a different one, differences in +what those server do with streaming should be noted. + +We also now more carefully distingush the different between a body set +to '' and a body that is undef. This might lead to situations where +again you'll get a content-length were you didn't get one before or +where a supporting server will start chunking output. If this is an +issue you can apply the middleware L +or report specific problems to the dev team. + +Also, we have started migrating code in Catalyst to equivilent Plack +Middleware when such exists and is correct to do so. + +We also deprecated setting the response body to an object that does 'read' +but not 'getline'. If you are using a custom IO-Handle like object for +response you should verify that 'getline' is supported in your interface. +You will get a first use warning for this error in your logs. Unless we +here this case is a major issue for people, we will be removing support +in a near future release of Catalyst. + +L is also officially no longer supported. We will +no long run test cases against this and can remove backcompat code for it +as deemed necessary for the evolution of the platform. You should simple +discontinue use of this engine, as L has been PSGI at the core +for several years. + +=head2 VERSION 5.90053 + +We are now clarifying the behavior of log, plugins and configuration during +the setup phase. Since Plugins might require a log during setup, setup_log +must run BEFORE setup_plugins. This has the unfortunate side effect that +anyone using the popular ConfigLoader plugin will not be able to supply +configuration to custom logs since the configuration is not yet finalized +when setup_log is run (when using ConfigLoader, which is a plugin and is +not loaded until later.) + +As a workaround, you can supply custom log configuration directly into +the configuration: + + package MyApp; + use Catalyst; + + __PACKAGE__->config( + my_custom_log_info => { %custom_args }, + ); + + __PACKAGE__->setup; + +If you wish to configure the custom logger differently based on ENV, you can +try: + + package MyApp; + + use Catalyst; + use Catalyst::Utils; + + __PACKAGE__->config( + Catalyst::Utils::merge_hashes( + +{ my_custom_log_info => { %base_custom_args } }, + +{ do __PACKAGE__->path_to( $ENV{WHICH_CONF}."_conf.pl") }, + ), + ); + + __PACKAGE__->setup; + +Or create a standalone Configuration class that does the right thing. + +Basically if you want to configure a logger via Catalyst global configuration +you can't use ConfigLoader because it will always be loaded too late to be of +any use. Patches and workaround options welcomed! =head2 VERSION 5.9XXXX 'cataplack' @@ -61,6 +156,11 @@ function perfectly with this version of Catalyst). Has been updated to fix failing tests (although older versions still function perfectly with this version of Catalyst). +=item Catalyst::Plugin::Authentication + +Has been updated to fix failing tests (although older versions still +function perfectly with this version of Catalyst). + =back =head1 PREVIOUS VERSIONS @@ -162,7 +262,7 @@ classes are better implemented as Moose roles. =item * -L is used to contain action +L is used to contain action attributes. This means that attributes are represented in the MOP, and decouples action creation from attributes.