Catalyst-Runtime

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

  - fix handling of fragments in uri_for when path is an unblessed string (GH#160)
  - ensure catalyst.pl is included with dist
  - drop IO::Scalar prereq
  - include optional test prereqs as develop prereqs
  - remove unused developer prereq on Catalyst::Engine::PSGI
  - use namespace::clean consistently rather than namespace::autoclean
  - use JSON for test metadata to avoid needing YAML
  - use JSON::MaybeXS consistently in code
  - drop unused prereq of HTTP::Request::AsCGI
  - drop unneeded prereq of Class::Data::Inheritable
  - fix tests to cope with changes in new versions of Time::HiRes
  - POD typo and syntax fixes

5.90117 - 2018-01-21
  - Fixed errors in distribution packaging

5.90116 - 2018-01-19
  - Switch from Module::Install to Distar (solves problems that MI has with newer Perl) haarg++
  - Killed Test::Aggregate since its clearly doomed
  - PR135 - improved test cases for query keywork
  - PR158 - improved docs for Catalyst::Test
  - PR157 - improved error response for data_handlers
  - PR156 - POD fixes
  - PR154 - Few dependencies
  - PR152 - Better support for HTTP Patch

5.90115 - 2017-05-01
  - fixes for silent bad behavior in Catalyst::ScriptRole and 'ensure_class_loaded'
    (hobbs++)
  - do not require MXRWO if Moose is new enough to have cored it (ether++)
  - documentation improvements (ether++)
  - Encoding documentation improvements (colinnewell++)
  - Improve documentation and test cases for 'abort_chain_on_error_fix' configuration
    option (melmothx++)
  - Better debug output when using Hash::MultiValue (tremor69++)
  - Fixes for detecting debug terminal size (simonamor++)

5.90114 - 2016-12-19
  - Fixed regression introduced in the last version (5.90113) which caused 
    application to hang when the action private name contained a string
    like 'foo/bar..html'.  If you are running 5.90113 you should consider this
    a required update.
  - Tweaked travis CI script.

5.90113 - 2016-12-15
  - Fixed issue with $controller->action_for when targeting an action in
    a namespace nested inside the current controller and the current controller
    is a 'root' controller.
  - Enhanced $controller->action_for so that you can reference the 'parent'
    controller via relative path (eg ->action_for('../foo')).
  - Backcompat fix for people that made the mistake of doing $c->{stash}
  - Sort controllers in setup_actions so cross-controller precedence is
    consistent.

5.90112 - 2016-07-25
  - Spelling fixes from Debian group.
  - Fixed regression introduced in last release that caused the code to crap out
    if you set the encoding to 'undef'.

5.90111 - 2016-07-20
  - Improved documentation around some of the unicode changes; tests (melmothx++)

5.90110 - 2016-07-20
  - Better catching of HTTP style exceptions so that you can reliable use one to
    override many core method.
  - Documention on better ways to catch and handle Unicode errors
  - We now check the unicode in your URL request queries and raise an error if the
    check fails.  This was done to be consistent with what we do in other parts of
    the code (such as in args, or POSTed parameters).  If this breaks your code in
    ways you don't want to fix, you may disable this using the global configuration
    setting, "do_not_check_query_encoding".
  - Removed configuration setting, "decode_query_using_global_encoding" since it no
    longer does anything useful.  Query decoding follows from whatever you set the
    global encoding to, unless you specify an alternative or to not decode.

5.90106 - 2016-07-05
  - Fixed regression in debug screen rendering of the private names in chained
    actions caused by commit 5dd46e24eedec447bdfbc4061ed683b5a17a7b0c.
  - Fixed incorrect date entered for the release of 5.90105
  - Fixed some incorrect code in a test case that might be causing test fails
    in some configurations.

5.90105 - 2016-06-08
  - Tweak some test cases to try and prevent them from failing in limited cases.
  - Changed how we compose traits onto the response, request, and stats class so
    that we compose just once at setup time (performance optimization).  Also added
    a debug screen at startup to display composed classes to help with debugging.
  - Fixed a regressed caused by the changes we made to the way ->state works so that
    now when you forward to an action and that action throws an exception, $c->state
    is set to 0, instead of the value of the exeption (this is to be as indicated by
    the documentation). (cventers++ for reported bug and test case).
  - Changed the code that detects if you try to set HTTP headers after headers are
    finalized to not warn if you are just requested the response header state.  Tweaked
    this error message a bit to help people understand it.

5.90104 - 2016-04-04
  - Merged pull request #131, fix for noisy debug logs when used type constraints
    in your actions.  Additional changes to the developer debug screen output to
    improve reporting details.
  - Merged pull request #133, fix for case when a file upload filename contains
    wide characters which caused the filename to not appear in the uploads hash.

5.90103 - 2015-11-12
  - More documentation fixes (thanks to the debian maintainers and melmothx++)
  - Fixed the way we parse subroutine attribute values to fix a regression
    introduced in 5.90102.  This is a recommended upgrade (tsibley++, mst++)
  - Fixed regression around auto actions that escape by throwing an exception
    which was introduced in the last release.
  - Bumped namespace::autoclean dep to latest since tests require -except

5.90102 - 2015-10-29
  - Better warnings when there's an error reading the psgi.input (billmosley++)
  - Fixed spurious warnings in uri_for when using no arguments (melmothx++ and 
    paultcochrane++)
  - Documentation improvements (paultcochrane++)
  - Improvements to 'search_extra' configuration and tests around using 
    uri_for as a class method (cngarrison++)
  - Fix when Path() is set and not geting registered as action (grim8634++)
  - $c->state is now preserved over actions in a chain, and across begin,
    auto, ->forward and ->detach.

5.90101 - 2015-09-04
  - Fixed a regression introduced in the last release which caused test
    case failure when using a version of Perl 5.14 or older.

5.90100 - 2015-08-24
  - Document using namespace::autoclean with controllers that have actions

Changes  view on Meta::CPAN

    so we now have the follow application attributes 'request_class_traits',
    'response_class_traits' and 'stats_class_traits' which allow you to compose
    traits for these core Catalyst classes without needing to create subclasses. So
    in general any request or response trait on CPAN that used 'CatalystX::RoleApplicator'
    should now just work with this core feature.  Note that  can also set thse roles
    via new configuration keys, 'request_class_traits', 'response_class_traits' 
    and 'stats_class_traits'. If you use both configuration and application class methods,
    they are combined.
  - NEW FEATURE: Core concepts from 'CatalystX::ComponentsFromConfig'.  You can now
    setup components directly from configuration.  This could save you some effort and
    creating 'empty' base classes in your Model/View and Controller directories.  This
    feature is currently limited in that you can only configure components that are
    'true' Catalyst components (but you may use Catalyst::Model::Adaptor to proxy
    stand alone classes...).
  - Only create a stats object if you are using stats.  This is a minor performance
    optimization, but there's a small chance it is a breaking change, so please
    report any stats related issues.
  - Added a developer mode warning if you call a component with arguments that does not
    expect arguments (for example calling $c->model('Foo', 1,2,3,4) where Myapp::Model::Foo
    does not ACCEPT_CONTEXT.  Only components that ACCEPT_CONTEXT do anything with
    passed arguments in $c->controller/view/model.
  - Change the way components are setup so that you can now rely on all components
    when setting up a component.  Previously application scoped components could not
    reliably use an existing application scoped component as a dependecy for initialization.

5.90089_001 - 2015-03-26
  - New development branch synched with 5.90085.
  - NEW FEATURE: Type Constraints on Args/CaptureArgs.  Allows you to declare
    a Moose, MooseX::Types or Type::Tiny named constraint on your Arg or 
    CaptureArg.
  - When using $c->uri_for (or the derived $c->uri_for_action) and the target
    action has type constrainted args (or captures), verify that the proposed
    URL matches the defined args.  In general $c->uri_for will be a bit more
    noisy if the supplied arguments are not correct.
  - New top level document on Route matching. (Catalyst::RouteMatching).  This
    document is still in development, but is worth review and comments.

5.90085 - 2015-03-25
  - Small change to Catalyst::Action to prevent autovivication of Args value (dim1++)
  - Minor typo fixes (Abraxxa++)
  - Make sure than when using chained actions and when more than one action
    matches the same path specification AND has Args(0), that we follow the
    "in a tie, the last action defined wins" rule.  There is a small chance
    this is a breaking change for you.  See Catalyst::Upgrading for more.
    You may use the application configuration setting "use_chained_args_0_special_case"
    to disable this new behavior, if you must for back-compat reasons.
  - Added PATCH HTTP Method action attribute shortcut.
  - Several new configuration options aimed to give improved backwards compatibility
    for when your URL query parameters or keywords have non UTF-8 encodings.
    See Catalyst::Upgrading.

5.90084 - 2015-02-23
  - Small change to the way body parameters are created in order to prevent
    trying to create parameters twice.
  - Use new HTTP::Body and code updates to fix issue when POSTed params have
    non UTF-8 charset encodings or otherwise complex upload parts that are not
    file uploads. In these cases when Catalyst can't determine what the value of
    a form upload is, will return an instance of Catalyst::Request::PartData with
    all the information need to figure it out.  Documentation about this corner
    case. For RT https://rt.cpan.org/Ticket/Display.html?id=101556
  - Two new application configuration parameters 'skip_body_param_unicode_decoding'
    and 'skip_complex_post_part_handling' to assist you with any backward
    compatibility issues with all the new UTF8 work in the most recent stable
    Catalyst.  You may use these settings to TEMPORARILY disable certain new
    features while you are seeking a long term fix.

5.90083 - 2015-02-16
  - Fixed typo in support for OPTIONS method matching (andre++)
  - Stop using $env->{'plack.request.query'} as a query parsing optimization
    since 1) it doesn't belong to us and 2) there's subtle differences in the
    way plack parses parameters and catalyst does.  This fixes a bug when you
    are using middleware that uses Plack::Request to do its thing.  This change
    might have subtle impact on query parsing.  Please test this change!

5.90082 - 2015-01-10
  - Fixed a regression created in $response->from_psgi_response and test case
    to prevent it happening again.

5.90081 - 2015-01-10
  - created class attribute 'finalized_default_middleware' which determines
    if the default middleware has been added to the stack yet or not.  This
    removes a horrible hack that polluted the configuration hash.  Added
    test case to prevent regressions.

5.90080 - 2015-01-09
  - Minor documentation corrections
  - Make the '79 development series stable

5.90079_008  - 2015-01-07
  - If we get a response set from $res->from_psgi_response and that response
    has a charset for the content type, we clear encoding for the rest of the
    response (avoid double encoding).  Added more documentation around this.
  - Documentation updates and typo fixes across various UTF8 docs (Mark Ellis++)

5.90079_007  - 2015-01-07
  - Merged from Stable (5.90079)
  - reviewed and cleaned up UTF8 related docs
  - replace missing utf8 pragma in Catalyst::Engine
  - Cleaned up spelling errors in various docs (abbraxxa++)
  - New document Catalyst::UTF8 which attempts to summarize UTF8 and encoding
    changes introduced in v5.90080.

5.90079_006  - 2015-01-02
  - Removed unneeded dependency on RenderView in new test case that was causing fails
    on CPAN testers that did not just happen to have that dependency already installed
  - Updated copyright notices to 2015
  - Documentation patches around the setup methods and clarification on on security
    note posted a few months ago.
  - Added my name to the contributors list

5.90079_005 - 2014-12-31
  - Merged changes from 5.90078
  - If configuration 'using_frontend_proxy' is set, we add the correct middleware
    to the default middleware list.  This way you get the correct and expected
    behavior if you are starting your application via one of the generated scripts
    or if you are calling MyApp->psgi_app.  Previously if you started the application
    with ->psgi_app (or to_app) we ignored this configuration option
  - New configuration option 'using_frontend_proxy_path' which enables
    Plack::Middleware::ReverseProxyPath on your application easily.  Please note that
    Plack::Middleware::ReverseProxyPath is not an automatic dependency of Catalyst at
    this time, so if you want this feature you should add it to your project dependency

Changes  view on Meta::CPAN

    whichever is first (preferring to find JSON::MaybeXS).  This should
    improve compatibility as you likely already have one installed.
  - Fixed a warning in the server script (bokutin++)
  - We now populate various Plack $env keys in order to play nice with
    downstream middleware or plack apps (and to reduce processing if
    those keys already exist).  Keys added:
      - plack.request.query
      - plack.request.body
      - plack.request.merged
      - plack.request.http.body
    (NOTE: REMOVED IN 5.90049_005)
  - If incoming input (from a POST or PUT) is not buffered, create the
    buffer and set the correct psgi env keys to note this for downstream
    psgi apps / middleware.  This should solve some issues where Catalyst
    sucks up the body input but its not buffered so downstream apps can't
    read it (for example FCGI does not buffer).  We now also try to make
    sure the body content input is reset to the start of the filehandle
    so that we are polite to downstream middleware /apps.
  - NEW FEATURE: Catalyst::Response can now pull response from a PSGI
    specification response.  This makes it easier to host external Plack
    applications under Catalyst.  See Catalyst::Response->from_psgi_response
  - NEW FEATURE: New configuration option 'use_hash_multivalue_in_request'
    will populate $request methods 'parameters', 'body_parameters' and
    'query_parameters' with an instance of Hash::MultiValue instead of a
    HashRef.  This is used by Plack and is intended to reduce the need to
    write defensive logic since you are never sure if an incoming parameter
    is a scalar or arrayref.
  - NEW FEATURE: We now experimentally support Net::Async::HTTP::Server
    and IO-Async based event loops.  Examples will follow.

5.90049_003 - 2013-09-20
  - Documented the new body_data method added in the previous release
  - Merged from master many important bugfixes and forward compatibility
    updates, including:
    - Use modern preferred method for Moose metaclass access and many other
      small changes to how we use Moose for better forward compat (ether++)
    - Killed some evil use of $@ (ether++)
    - spelling fixes and documentation updates (ether++), (gerda++)
    - use Test::Fatal over Test::Exception (ether++)
    - Misc. test case fixes to modernize code (ether++)
    - Added a first pass cpanfile, to try and make it easier to bootstrap
      a development setup (ether++)

5.90049_002 - 2013-08-20
  - Fixed loading middleware from project directory
  - Fixed some pointless warnings when middleware class lacked VERSION
  - NEW FEATURE: Declare global 'data_handlers' for parsing HTTP POST/PUT
    alternative content, and created default JSON handler.  Yes, now Catalyst
    handles JSON request content out of the box!  More docs eventually but
    for now see the DATA HANDLERS section in Catalyst.pm (or review the test
    case t/data_handler.t

5.90049_001 - 2013-07-26
  - Declare PSGI compliant Middleware as part of your Catalyst Application via
    a new configuration key, "psgi_middleware".
  - Increased lowest allowed module version for Module::Pluggable to be 4.7 (up
    from 3.4) to solve the fact this is no longer bundled with Perl in v5.18.

5.90042 - 2013-06-14
  - Removed more places where an optional dependency shows up in the test
    suite. Hopefully really fixed the unicode regression introduced in 5.90040
  - reverted the change we introduced in 5.90040 where a unicode conversion
    error warned instead of died.  Now it dies again, like in the stand alone
    plugin
  - More work to make sure nothing happens with encoding unless you explicitly
    ask for encoding
  - Code to hopefully fix an issue where file uploads using the unicode plugin
    caused trouble.

5.90041 - 2013-06-14
  - Bug fix release to fix regressions introduced in previous.  I would consider
    this a likely upgrade and if you are having trouble with the previous I hope
    this fixes all of them.
  - Fix regression with the cored Unicode plugin that broke systems where you are
    setting encoding type in an external configuration file
  - Fixed circular dependency introduced when we cored the unicode plugin tests
  - Fixed a longstanding problem with stats when locale uses , instead of . for
    number decimals
  - Fixed some docs that didn't properly date the previous release.

5.90040 - 2013-06-12
  ! Stricter checking of attributes in Catalyst::DispatchType::Chained:
    1) Only allow one of either :CaptureArgs or :Args
    2) :CaptureArgs() argument must be numeric
    3) :CaptureArgs() and :Args() arguments cannot be negative
  - Add Devel::InnerPackage to dependencies, fixing tests on Perl 5.17.11
    as it's been removed from core. RT#84787
  - New support for closing over the PSGI $writer object, useful for working
    with event loops.
  - lets you access a psgix.io socket, if your server supports it, for manual
    handling of the client - server communication, such as for websockets.
  - Fix waiting for the server to start in t/author/http-server.t
  - new config flag 'abort_chain_on_error_fix' that exits immediately when a
    action in an action chain throws and error (fixes issues where currently
    the remaining actions are processed and the error is handled at chain
    termination).
  - Cored the Encoding plugin.  Now get unicode out of the box by just setting
    $c->config->{encoding} = 'UTF-8'.  BACKCOMPAT WARNING: If you are using 
    the Encoding plugin on CPAN, we skip it to avoid double encoding issues, so
    you should remove it from your plugin list, HOWEVER the 'encoding' config
    setting is now undef, rather than 'UTF-8' (this was done to avoid breaking
    people's existing applications) so you should add the encoding setting to 
    you global config.  There's some other changes between the stand alone
    plugin and the cored version, if you use it be sure to see Catalyst::Upgrading
    for more.
  - minor documentation typo fixes and updates

5.90030 - 2013-04-12
  ! POSSIBLE BREAKING CHANGE: Removed Regexp dispatch type from core, and put
    it in an external package.  If you need Regexp dispatch types you should
    add "Catalyst-DispatchType-Regex" as a distribution to your build system.
  - make $app->uri_for and related methods return something sane, when called
    as an application method, instead of a context method.  Now if you call
    MyApp::Web->uri_for(...) you will get a generic URI object that you need to
    resolve manually.
  - documentation updates around forwarding to chained actions.
  - Fixed bug when a PSGI engine need to use psgix logger.
  - Added cpanfile as a way to notice we are a dev checkout.
  - Added 'x-tunneled-method' HTTP Header method override to match features in
    Catalyst::Action::REST and in other similar systems on CPAN.
  - smarter validation around action attributes.

5.90020 - 2013-02-22
  ! Catalyst::Action now defines 'match_captures' so it is no long considered
    an optional method.  This might break you code if you have made custom
    action roles/classes where you define 'match_captures'.  You must change
    your code to use a method modifier (such as 'around').
  - New match method "Method($HTTP_METHOD)" where $HTTP_METHOD in (GET, POST,
    PUT, HEAD, DELETE, OPTION) and shortcuts in controllers called "GET, POST
    PUT, HEAD, DELETE, OPTION").  Tests and documentation.  Please note if you
    are currently using Catalyst::ActionRole::MatchRequestMethods there may
    be compatibility issues.  You should remove that actionrole since the built
    in behavior is compatible on its own.
  - Initial debug screen now shows HTTP Method Match info
  - security fixes in the way we handle redirects
  - Make Catalyst::Engine and Catalyst::Base immutable
  - Some test and documentation improvements

5.90019 - 2012-12-04 21:31:00
  - Fix for Perl 5.17.6 (commit g7dc8663). RT#81601
  - Fix for Perl 5.8. RT#61122
  - Remove use of MooseX::Types as MooseX::Types is broken on Perl 5.8
    RT#77100 & RT#81121

5.90018 - 2012-10-23 20:55:00
  - Changed code in test suite so it no longer trips up on recent changes to
    HTTP::Message.

5.90017 - 2012-10-19 22:33:00
  - Change Catalyst _parse_attrs so that when sub attr handlers:

    1) Can return multiple pairs of new attributes.
    2) Get their returned attributes passed through the correct attribute handler.

    e.g sub _parse_Whatever_attr { return Chained => 'foo', PathPart => 'bar' }

    Will now work because both new attributes are respected, and the Chained

Changes  view on Meta::CPAN

    which stopped Catalyst::Controller from compiling.

  - In Catalyst::Test, don't mangle headers of non-HTML responses. RT#79043

5.90008 - TRIAL 2012-02-06 20:49:00

 New features and refactoring:
  - Much of the Catalyst::Engine code has been moved into Catalyst::Request
    and Catalyst::Response, to be able to better support asynchronous web
    servers such as Twiggy, by making the application engine more reenterant.

    This change is as a prequel to full asynchronous support inside Catalyst
    for AnyEvent and IO::Async backends, which allow highly scaleable streaming
    (for applications such as multi-part XML HTTPRequests, and Websockets).

 Deprecations:
  - This means that the $c->engine->env method to access the PSGI environment
    is now deprecated. The accessor for the PSGI env is now on Catalyst::Request
    as per applications which were using Catalyst::Engine::PSGI

    Catalyst::Engine::PSGI is now considered fully deprecated.

  - The private _dump method in Catalyst::Log is now deprecated. The dumper is
    not pluggable and which dumper to use should be a user choice. Using
    an imported Dump() or Dumper() function is less typing than $c->log->_dump
    and as this method is unused anywhere else in Catalyst, it has been scheduled
    for removal as a cleanup. Calling this method will now emit a stack trace
    on first call (but not on subsequent calls).

 Back compatibility fixes:
  - Applications still using Catalyst::Engine::PSGI as they rely on
    $c->request->env - this is now the provided (and recommended) way of
    accessing the raw PSGI environment.

 Tests:
  - Spurious warnings have been removed from the test suite

 Documentation:
  - Fix the display of PROJECT FOUNDER and CONTRIBUTORS sections in the
    documentation. These were erroneously being emitted when the Pod
    was converted to HTML for search.cpan.org

  - Fix documentation for the build_psgi_app app method. Previously the
    documentation advised that it provided the psgi app already wrapped
    in default middleware. This is not the case - it is the raw app psgi

5.90007 - 2011-11-22 20:35:00

  New features:
   - Implement a match_captures hook which, if it exists on an action,
     is called with the $ctx and \@captures and is expected to return
     true to continue the chain matching and false to stop matching.
     This can be used to implement action classes or roles which match
     conditionally (for example only matching captures which are integers).

  Bug fixes:
   - Lighttpd script name fix is only applied for lighttpd versions
     < 1.4.23. This should fix non-root installs of lighttpd in versions
     over that.
   - Prepare_action is now inside a try {} block, so that requests containing
     bad unicode can be appropriately trapped by
     Catalyst::Plugin::Unicode::Encoding

5.90006 - 2011-10-25 09:18:00

  New features:
   - A new 'run_options' class data method has been added to Catalyst.pm
     This is used to store all the options passed by scripts, allowing
     application authors to add custom options to their scripts then
     get them passed through to the application.

  Documentation:
   - Clarify that if you manually write your own .psgi file, then optional
     proxy support (via the using_frontend_proxy config value) will not be
     enabled unless you explicitly apply the default middlewares from
     Catalyst, or you apply the middleware manually.

  Bug fixes:
   - Fix issue due to perl internals bugs in 5.8 and 5.10 (not present in
     other perl versions) require can pass the context inappropriately,
     meaning that some methods of loading classes can fail due to void
     context being passed through to make_immutable, causing it to not return
     a value.
     This bug caused loading Catalyst::Script::XXX to fail and is fixed
     both by bumping the Class::Load dependency, and also adding an explicit
     '1;' to the end of the classes, avoiding the context issue.

   - Fix using_frontend_proxy support in mod_perl by using the psgi wrapped
     in default middleware in mod_perl context, rather than the raw psgi.

5.90005 - 2011-10-22 13:35:00

  New features:

   - $c->uri_for_action can now take an array of CaptureArgs and Args
     If you have an action which has both, then you can now say:
     $c->uri_for_action('/myaction', [@captures, @args]);
     whereas before you had to say:
     $c->uri_for_action('/myaction', [@captures], @args);
     The previous form is still supported, however in many cases it is
     easier for the application code to not have to differentiate between
     the two.

   - Catalyst::ScriptRunner has been enhanced so that it will now
     load and apply traits, making it easier to customise.
     - MyApp::TraitFor::Script (if it exists) will be applied to all
       scripts in the application.
     - MyApp::TraitFor::Script::XXXX will be applied to the relevant script
       (for example MyApp::TraitFor::Script::Server will be applied to
       MyApp::Script::Server if it exists, or Catalyst::Script::Server
       otherwise).

  Documentation:

   - Document how to get the vhost of the request in $c->req->hostname
     to avoid confusion
   - Remove documentation showing Global / Regex / Private actions
     as whilst these still exist (and work), they are not recommended.
   - Remove references to the -Engine flag.
   - Remove references to the deprecated Catalyst->plugin method
   - Spelling fixed (and tested) throughout the documentation



( run in 0.972 second using v1.01-cache-2.11-cpan-39bf76dae61 )