added info to Delta file
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Delta.pod
index 7959a6e..7804342 100755 (executable)
@@ -7,18 +7,51 @@ Catalyst::Delta - Overview of changes between versions of Catalyst
 This is an overview of the user-visible changes to Catalyst between major
 Catalyst releases.
 
+=head2 VERSION 5.90105
+
+This version primarily fixed a regression in the way we preserved $c->state
+which the previous version introduced.  Now in the case when you forward to
+an action, should that action throw an exception it sets state to 0 and is
+sure that the return value is false.  This is to meet expected behavior based
+on the documentation.  If you relied on the last update behavior you may not have
+regressions but it was thought that we should make the code behave as documented
+for more than 10 years.
+
+We also changed how we compose the request, response and stats base class.  We
+now compose the base class with any configured traits once at the end of the
+application setup, rather than for each request.  This reduced request overhead
+when you are composing lots of traits.  It possible this may break some code that
+was adding traits after the application setup was finalized.  Please shout out if
+this actually causes you trouble and we'll do the best to accomodate.
+
+=head2 VERSION 5.90102 - 5.90103
+
+A significant change is that we now preserve the value of $c->state from action
+to following action.  This gives you a new way to pass a value between actions
+in a chain, for example.   However any 'auto' actions always have $c->state
+forced to be set to 0, which is the way its been for a long time, this way an
+auto action is required to return 1 to pass the match.  It also exists to maintain
+compatibility with anyone that exits an auto action with a detach (which is not a
+documented way to escape matching, but exists in the wild since it worked as a
+side effect of the code for a long time).
+
+Additionally, upon $c->detach we also force set state to 0.
+
+Version 5.90102 contains a version of this change but its considered buggy, so
+that is a version to avoid.
+
 =head2 VERSION 5.90100
 
 Support for type constraints in Args and CaptureArgs has been improved.  You may
 now inherit from a base controller that declares type constraints and use roles
 that declare type constraints.  See L<Catalyst::RouteMatching> for more.
 
-You may now. also use a full type constraint namespace instead of inporting type
+You may now. also use a full type constraint namespace instead of importing type
 constraints into your package namespace.
 
 We changed the way the middleware stash works so that it no longer localizes
 the PSGI env hashref.  This was done to fix bugs where people set PSGI ENV hash
-keys and found them to dissappear in certain cases.  It also means that now if
+keys and found them to disappear in certain cases.  It also means that now if
 a sub applications sets stash variables, that stash will now bubble up to the
 parent application.  This may be a breaking change for you since previous
 versions of this code did not allow that.  A workaround is to explicitly delete
@@ -65,7 +98,7 @@ you used to check for the object you might find that code is no longer needed
 
 =head3 'case_sensitive' configuration
 
-At one point in time we allowed you to set a 'case_sensitive' configuraion value so
+At one point in time we allowed you to set a 'case_sensitive' configuration value so
 that you could find actions by their private names using mixed case.  We highly
 discourage that.  If you are using this 'feature' you should be on notice that we
 plan to remove the code around it in the near future.
@@ -108,7 +141,7 @@ any subclasses.  For example:
       'Model::Foo' => { a => 100 },
     });
 
-Injected components are useful to reduce the ammount of nearly empty boilerplate classes
+Injected components are useful to reduce the amount of nearly empty boilerplate classes
 you might have, particularly when first starting an application.
 
 =head3 Component setup changes.
@@ -199,7 +232,7 @@ Plack middleware to aid in backwards compatibility.
 
 =head3 Distinguish between body null versus undef.
 
-We also now more carefully distingush the different between a body set
+We also now more carefully distinguish 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
@@ -208,7 +241,7 @@ or report specific problems to the dev team.
 
 =head3 More Catalyst Middleware
 
-We have started migrating code in Catalyst to equivilent Plack
+We have started migrating code in Catalyst to equivalent Plack
 Middleware when such exists and is correct to do so.  For example we now use
 L<Plack::Middleware::ContentLength> to determine content length of a response
 when none is provided.  This replaces similar code inlined with L<Catalyst>