From: John Napiorkowski Date: Sun, 22 Dec 2013 16:22:43 +0000 (-0600) Subject: merged fix for regression from master X-Git-Tag: 5.90060~41 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=46aec47a553a7991d5a9e9faff176e9657777c44;hp=a74d53e34e33a6252905b25f93a8a7359e1fb5d1 merged fix for regression from master --- diff --git a/Changes b/Changes index 05a4cec..9318a45 100644 --- a/Changes +++ b/Changes @@ -21,7 +21,8 @@ fail to provide one. This should cause less issues when trying to guess the length of a funky filehandle. This now uses Plack::Middleware::ContentLength - Removed custom code to remove body content when the request is HEAD and - swapped it for Plack::Middleware::Head. + swapped it for Plack::Middleware::Head + - Merged fix for regressions from stable.. 5.90059_001 - 2013-12-19 - Removed deprecated Regexp dispatch type from dependency list. If you are @@ -29,6 +30,13 @@ 'Catalyst::DispatchType::Regex' to you build system NOW or you application will be broken. +5.90053 - 2013-12-21 + - Reverted a change in the previous release that moved the setup_log phase + to after setup_config. This change was made to allow people to use + configuration that is late loaded (such as via the ConfigLoader Plugin) + to setup the plugin. However it also broke the ability to use the log + during plugin setup (ie, it breaks lots of plugins). Reverting the + change. See Catalyst::Delta for workarounds. 5.90052 - 2013-12-18 diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index c07a1c7..4e55662 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -1126,6 +1126,7 @@ sub setup { $class->setup_home( delete $flags->{home} ); + $class->setup_log( delete $flags->{log} ); $class->setup_plugins( delete $flags->{plugins} ); # Call plugins setup, this is stupid and evil. @@ -1136,7 +1137,6 @@ sub setup { $class->setup unless $Catalyst::__AM_RESTARTING; } - $class->setup_log( delete $flags->{log} ); $class->setup_middleware(); $class->setup_data_handlers(); $class->setup_dispatcher( delete $flags->{dispatcher} ); diff --git a/lib/Catalyst/Delta.pod b/lib/Catalyst/Delta.pod index 3e76cf3..22d3244 100755 --- a/lib/Catalyst/Delta.pod +++ b/lib/Catalyst/Delta.pod @@ -43,6 +43,51 @@ 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. +=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' The Catalyst::Engine sub-classes have all been removed and deprecated,