Catalyst::Upgrading - Instructions for upgrading to the latest Catalyst
+=head1 Upgrading to Catalyst 5.90100
+
+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
+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
+stash keys in your sub application before returning control to the parent
+application.
+
=head1 Upgrading to Catalyst 5.90097
In older versions of Catalyst one could construct a L<URI> with a fragment (such as
https://localhost/foo/bar#fragment) by using a '#' in the path or final argument, for
example:
- $c->uri_for('/mypath#fragment');
-
-or:
-
$c->uri_for($action, 'foo#fragment');
This behavior was never documented and would break if using the Unicode plugin, or when
If you are relying on the previous side effect behavior your URLs will now encode the '#'
delimiter, which is going to be a breaking change for you. You need to alter your code
to match the new specification or modify uri_for for your local case. Patches to solve
-this are very welcomed, as long as they don't break existing test cases.
+this are very welcomed, as long as they don't break existing test cases.
+
+B<NOTE> If you are using the string form of the first argument:
+
+ $c->uri_for('/foo/bar#baz')
+
+construction, we do not attempt to encode this and it will make a URL with a
+fragment of 'baz'.
+
=head1 Upgrading to Catalyst 5.90095