Mailing List Archive

[App/Ctx] Restarting the work on the branch
Hello fellow developers,

I knoooow I am a cranky little man and I know this branch has been left
untouched for quite some time, but I'd like to pick up the pieces. Starting
next week, I will be dedicating 15-20 hours a week, as time allows, to
bringing this branch back up to speed and getting it merged. It's been a
while since I took a look at it though, so I am taking
comments/questions/suggestions. I helped zby work on this late last year,
but then things sort of fell off. I know t0m had some involvement in here,
but I don't remember if anyone else participated.

For now, my immediate goals are (in this order):

1. Create some sort of back-compat layer that uses CMOP to split plugins
and reapply the provided subs / attrs / modifiers to MyApp and the
MyApp::Context.
2. Backport bugfixes, features that have been added since the branch
3. Test it out and see what breaks, fix, repeat
4. Hopefully merge

I would like to publicly ask for any help anyone might be able to provide,
whether it be wrt architecture and planning, coding, testing, documentation
or arguments for or against any design choices.

My very first steps will be:

- Change the context_class default to be MyApp::Context
- Make sure MyApp loads *context_class* or, if it doesn't exist, create
it automatically as an empty subclass of Catalyst::Context. Once this is
cemented as desirable behavior, I'll update C-Devel to also create that
MyApp::Context at catalyst.pl time.
- Change *Catalyst::setup_plugins *to be smart enough to know where and
how to apply role plugins and spit some temporary debug output
- Change *Catalyst::_register_plugin* to be smart enough to pull out the
right methods from superclass-type plugins and apply them where they belong

I'll have to think of a semi-sane behavior to use when I have no sane way of
knowing where methods should actually go. and then write a comprehensive
HOWTO on updating existing plugins.

But, I still need help figuring out how we are going to want people to use
plugins across app and ctx. Should we make uses use "with
CatalystX::Plugin::SomeRole::App" && "with
CatalystX::Plugin::SomeRole::Ctx" respectively or will people complain about
this being way too much typing? Should plugins all be centralized into MyApp
with the plugin itself overriding something like _build_context_plugins so
MyApp applies all the plugins to the context class or should this be the
responsibility of the user?

How much mixing do we need to support between strict back-compat syntax and
new syntax? (could affect plugin application order)

I look forward to hearing any and all of your ideas, and hopefully some help
with the coding too.


--
Guillermo Roditi (groditi)
Re: [App/Ctx] Restarting the work on the branch [ In reply to ]
>
>From: Guillermo Roditi <groditi@gmail.com>
>To: Catalyst Dev List <catalyst-dev@lists.scsys.co.uk>
>Sent: Wed, May 5, 2010 6:25:16 PM
>Subject: [Catalyst-dev] [App/Ctx] Restarting the work on the branch
>
>>Hello fellow developers,
>
>I knoooow I am a cranky little man and I know this branch has been left untouched for quite some time, but I'd like to pick up the pieces. Starting next week, I will be dedicating 15-20 hours a week, as time allows, to bringing this branch back up to speed and getting it merged. It's been a while since I took a look at it though, so I am taking comments/questions/suggestions. I helped zby work on this late last year, but then things sort of fell off. I know t0m had some involvement in here, but I don't remember if anyone else participated.
>
>For now, my immediate goals are (in this order):
>
> 1. Create some sort of back-compat layer that uses CMOP to split plugins and reapply the provided subs / attrs / modifiers to MyApp and the MyApp::Context.
> 2. Backport bugfixes, features that have been added since the branch
> 3. Test it out and see what breaks, fix, repeat
> 4. Hopefully mergeI would like to publicly ask for any help anyone might be able to provide, whether it be wrt architecture and planning, coding, testing, documentation or arguments for or against any design choices.
>
>My very first steps will be:
>
> * Change the context_class default to be MyApp::Context
> * Make sure MyApp loads context_class or, if it doesn't exist, create it automatically as an empty subclass of Catalyst::Context. Once this is cemented as desirable behavior, I'll update C-Devel to also create that MyApp::Context at catalyst.pl time.
> * Change Catalyst::setup_plugins to be smart enough to know where and how to apply role plugins and spit some temporary debug output
> * Change Catalyst::_register_plugin to be smart enough to pull out the right methods from superclass-type plugins and apply them where they belong
>I'll have to think of a semi-sane behavior to use when I have no sane way of knowing where methods should actually go. and then write a comprehensive HOWTO on updating existing plugins.
>
>But, I still need help figuring out how we are going to want people to use plugins across app and ctx. Should we make uses use "with CatalystX::Plugin::SomeRole::App" && "with CatalystX::Plugin::SomeRole::Ctx" respectively or will people complain about this being way too much typing? Should plugins all be centralized into MyApp with the plugin itself overriding something like _build_context_plugins so MyApp applies all the plugins to the context class or should this be the responsibility of the user?
>
>How much mixing do we need to support between strict back-compat syntax and new syntax? (could affect plugin application order)
>
>I look forward to hearing any and all of your ideas, and hopefully some help with the coding too.
>
>
>--
>Guillermo Roditi (groditi)
>
>
>

If you need help getting various plugins updated, like if we can't find an author or the author is busy, I could probably help convert a few. Seems like a straightfoward, gruntwork task I'm probably smart enough to do :) Although I don't know if part of this would be to make plugins more like true Moose roles. Of course those roles would not be backcompat with pre Moose Catalyst so I guess that's going to be a non starter. Feel free to hit me up on IRC

John (jnapiorkowski)





_______________________________________________
Catalyst-dev mailing list
Catalyst-dev@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev
Re: [App/Ctx] Restarting the work on the branch [ In reply to ]
On Wed, May 5, 2010 at 6:25 PM, Guillermo Roditi <groditi@gmail.com> wrote:

> Hello fellow developers,
>
> I knoooow I am a cranky little man and I know this branch has been left
> untouched for quite some time, but I'd like to pick up the pieces. Starting
> next week, I will be dedicating 15-20 hours a week, as time allows, to
> bringing this branch back up to speed and getting it merged. It's been a
> while since I took a look at it though, so I am taking
> comments/questions/suggestions. I helped zby work on this late last year,
> but then things sort of fell off. I know t0m had some involvement in here,
> but I don't remember if anyone else participated.
>
> For now, my immediate goals are (in this order):
>
> 1. Create some sort of back-compat layer that uses CMOP to split
> plugins and reapply the provided subs / attrs / modifiers to MyApp and the
> MyApp::Context.
> 2. Backport bugfixes, features that have been added since the branch
> 3. Test it out and see what breaks, fix, repeat
> 4. Hopefully merge
>
>
After carefully reviewing the change log since the capp/ctx branch was split
from trunk, it's starting to feel like it wouldn't be altogether imprudent
to branch from trunk and selectively apply the changes from the consolidated
diff manually rather than try to manually merge all the updates back since
my svk foo isn't as high as some other people's. So, I will probably be
creating yet-another branch for this and once I am done applying the changes
to it I will eliminate the existing two branches and start the gritty with
the compat work. Ideas, objections, etc?


--
Guillermo Roditi (groditi)