roadmap-draft.txt

# Roadmap

Catalyst-NG Style

# Experimental for 5.8.x series?
# When we're happy with it, Catalyst6


## HTTP::Engine support

Help HTTP::Engine stabilize

Loose coupling:
Roles for the API that request/response expects
$c->req / $c->res can be implemented using 
HTTP::Engine::Request/HTTP::Engine::Response
5.8.1: Adding support
NG: Default engines

## Engine inversion

Make engines support running application(s)
Decoupling
Required for multiple engines/applications in an instance

5.8.2: Basic support


## Context/Application split

5.8.1: Trick Konobi into picking this up again

## Devel::Declare style syntax

Not to be done in core. 
Separate Controllers can compete through cage matches on CPAN
Survivor goes into C6

## Request/Response roles

Add support for applying roles globally per request, and possibly
per instance

## Deprecations for NG

* Remove eval cage from forward
* Unify go/forward/visit/detach

### Error handling

Make error handling more flexible. Enable users
to easily handle different types of errors and
serve their own error screen

## Separating out MVC?

Application layouts should be more configurable

This is targetted for NG

### Separating dispatching and flow control

To make it easier to provide separate dispatcher
systems, we should refactor out flow control of
the dispacher (forward/detach/...)

### begin/end/auto -> chained

method chain-root ($self, $c, $chain_rest, $my_arg1, $my_arg2) {
  <do someting with $my_arg1>
  $chain_rest->();
  # or $c->call_next();
  # or call_next;
  $self->_render_view;
}

renderview becomes a root role

each chain part needs to call the next explicitly

Matched Captures

action_uri

static_uri


## Parameter scoping

Setting arguments as accessors on controller classes
and letting them have Request/Query/Session/Flash/Application
scope. Controller methods should probably default to request
scope?

5.8.1
5.8.2
    5.8.3
Catalyst6