[Catalyst] Why does $c->stats require -Debug flag?

Matt S Trout dbix-class at trout.me.uk
Fri Apr 18 19:54:06 BST 2008


On Sat, Apr 12, 2008 at 08:37:49PM +0930, Jon Schutz wrote:
> Prior to 5.7012, $c->stats was an internal object (in so far as it was
> not documented as part of the API) so anyone manipulating it directly
> does so at their own risk.

This one user who was kind enough to report it to the list will by far not
be the only one with this problem.

Catalyst::Plugin::SubRequest was also hit by this.

Never, ever assume that 'undocumented' means 'I can break compat any time
I like'. This works in theory, and in theory, theory is the same as practice,
but ...

> Catalyst::Stats was introduced to define an
> interface for the stats object so that one could safely override the
> default implementation if they wished; the default implementation also
> introduced profiling methods that were not there before.

You need to consider your failure to maintain backwards compatibility a bug
and fix it. I said this at the time but apparently you didn't get round to
fixing the Catalyst::Stats patch. Please do so as soon as you get time;
Catalyst::Stats' API is a great leap forward but not at the cost of
previously running code (although I think perhaps the compat code -should-
warn that you're using an API you shouldn't have been and that it'll go
away in the future).

In future, if you intend to submit a patch which does not maintain compat,
submit it against the next major release (currently 5.80), -not- the
current maintainance release. Catalyst is meant to be production quality
code with production quality stability, and sometimes that means
maintaining compat with things not because people -should- be using them
in the wild but because they -are- and we should always try to not break
code over a point release.

I'm aware this sucks, and I'm still very pleased we have a proper documented
stats API, but it still needs doing.

-- 
      Matt S Trout       Need help with your Catalyst or DBIx::Class project?
   Technical Director                    http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://chainsawblues.vox.com/            http://www.shadowcat.co.uk/servers/



More information about the Catalyst mailing list