On Oct 21, 3:01 pm, Yarko Tymciurak <[email protected]>
wrote:
> On Wed, Oct 21, 2009 at 2:50 PM, mdipierro <[email protected]> wrote:
>
> > As far as I am concerned think there are the only rules we need to
> > follow:
>
> > 1) a naming convention:
>
> >    models/plugin_[name].py
> >    controllers/plugin_[name].py
> >    */plugin_[name]/*
>
> This convention is spaghetti source - it is crap; I do not like it in the
> least, and see absolutely no reason to even consider it.
>
> It will only lead to confusion, and novices learning to have to manage all
> sorts of code they should not be looking at, knowing about the internal
> details (modularity - remember?!) - and if this is a teaching system, even
> the more.
>
> I want to see you just DROP this convention.
> I'll repeat.  It is crap.
>
> As Thadeus points out (and I only vaguely remember - it may need more
> discussion) - Mr. Freeze proposes something more appropriately structured.
>
> Look at it again, more seriously.

I did. Over and over. Let me explain why it is not crap. Think of a
matrix where the columns are models, views and controllers and the
rows are functional components like plugins.  Now we need to represent
this structure in a filesystem which has a tree like structure. Again:
we are trying to represent a matrix as a tree. You want to do it by
row (one folder for each plugin and models/views/controllers
subfolders for each plugin). I want to represent it by column (top
level models/views/controllers and files of subfolders for each plugin
within each top level folder). Why I like the second better? Because
web2py already has that structure and in fact we have that already
without changing one line in web2py.
In order to take the other approach (the one you suggest) you would
have to represent some parts of the matrix by column (those that do
not belong to plugins) and some by row (those that belong to plugin)
and this would result in real spagetti code in the implementation and
it would constitue a major web2py rewrite. In which order should the
folders be looked up? In which order should models be executed?

>From a logical point of view plugins can be managed as subfolders and
that is what admin already does.

> > 2)  models/plugin_[name].py can assume ONLY db, auth, crud, T
>
> auth, crud, T are gluon defined; that's ok.
>
> db is an application level variable, so that seems potentially problematic,
> an assumption - this either needs to be NOT shared, or a way for the
> application to configure it for plugins is needed.
>
> > 3)  models/plugin_[name].py should define only one global object
>
> >    plugin_[name]=dict()
>
> Ugh!
>
> Well, this is ONE way to do plugin registration so the system know what is
> there.  It's uglly, and brut force.  I don't even want to critique it
> because, as I've said before, the IMPORTANT point is:
>
> -  The running app needs a way to discover what plugins are available, and
> there must be a way for the plugin to somehow registrer it's presence.
>
> Now:  WHAT are the important things an app / web2py  instance must know
> about the plugin?
>
> - version?
> - name?
> - is it using / expecting app db connection?
> - is it creating own db connecntion?
>
> We should make a big list, and narrow it down to reasonable things later.
>
> This has not been done, and is one reason why discovery (and associated
> problems because of that) doesnt' yet exist.

This is true but at this point I am just interested in making sure
people can experiment with LOAD and make sure one plugin does not
interfere with another. What plugins should share is another story and
I am not sure I want to dictate that. I can think for example of two
different web2py  CMSes that may want to use distinct sets of
incompatible plugins and I do not see a problem with that.

I define "component" a LOADable action of a "plugin".

Massimo

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to