>I fully agree that plugins should exist in >their own folders I defend it some time ago and still think it is a good idea
2010/2/25 mr.freeze <nat...@freezable.com> > >>>What are you trying to accomplish with plugins? > I'm trying to created packaged chunks of reusable code that are easily > installed ,upgraded or removed by developers. I don't like the current > implementation either. I fully agree that plugins should exist in > their own folders (at the framework level,the shared application level > and the application level) but Massimo doesn't seem to be willing to > budge on this (possibly for good reason) and I would rather have a > plugin system that sort of works than none at all. I'm not completely > sold on class based plugins just because I'm not sure how views would > work (are they separate files or strings?). I'd rather that plugins > were mini application with their own mvc folder stucture. > > The point of the Plugins class above would be to give a modicum of > control developers as to the objects that are exposed to the current > plugin system. > > > On Feb 25, 10:58 am, Thadeus Burgess <thade...@thadeusb.com> wrote: > > I can't stress enough. web2py plugins should be geared towards > > developers, not end-users. (Someone who runs their own wordpress blog > > would be an end-user of wordpress). > > > > Plugins should be there to provide a standard for common functionality > > so that everyone who comes along to web2py does not have to re-invent > > the wheel. But still be flexible enough to suite 95% of developer > > needs. > > > > This means that plugins should be easy to insert into the system, but > > because they need to be flexible, they will require programming to > > make work. > > > > I do not like the current plugin implementation because it does litter > > web2py folders, plugins should be self contained, and you shouldn't > > *have* to rely on "applications/admin" to install them for you. It is > > just one of those nuances. > > > > In every plugin system I have been researching, there is always a > > "plugins" folder that the system auto-discovers what is in it, and > > then activates them. This would make it easier to package and > > distribute the plugins. > > > > Though I have never seen a plugin system for a web framework, only for > > applications that are devoted to one subject (wordpress, mephisto, > > redmine, trac, etc). I guess django calls them "installed_apps" and > > "middleware_classes". > > > > But even with django "installed_apps"(plugins) they define their own > > views, all you have to do is specify which view to render in your > > functions... I suppose. > > > > What are you trying to accomplish with plugins? > > > > -Thadeus > > > > On Thu, Feb 25, 2010 at 9:48 AM, mr.freeze <nat...@freezable.com> wrote: > > > A simple approach would be to adopt the naming convention > > > 'plugin_object' for any objects the developer wants to expose to the > > > plugin system then just create global labels: > > > > >>>>class Plugins(object): > > >>>> def __init__(self,globals,**kargs): > > >>>> for k,v in kargs.items(): > > >>>> globals['plugin_'+k] = v > > > > >>>> db = DAL('...') #this is my mission critical data > > >>>> db2 = DAL('...') #this is for my plugins to use > > >>>> plugins = Plugins(globals(),db=db2,auth=auth,crud=crud) > > > > > This would expose to the plugin developer: > > > plugin_db,plugin_auth,plugin_crud > > > > > This way app developers could control which objects are exposed to the > > > plugin system and plugin developers could set requirement for their > > > plugins. This shouldn't break existing plugins either. > > > > > On Feb 24, 8:01 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > >> This may be a good idea. What should go into plugins? > > > > >> On Feb 24, 10:41 am, Thadeus Burgess <thade...@thadeusb.com> wrote: > > > > >> > I also am in favor of a class based plugin system that works like > crud/auth. > > > > >> > Plugins would not pollute your global namespace. And they would be > configurable. > > > > >> > Though the loss is of having plugins with their own controllers > since > > >> > the module would be the controller instead. > > > > >> > -Thadeus > > > > >> > On Wed, Feb 24, 2010 at 7:25 AM, mr.freeze <nat...@freezable.com> > wrote: > > >> > > Alternately you could simply create another container class for > > >> > > plugins to use and pass the preferred DAL instance to it just like > you > > >> > > can with auth and crud: > > > > >> > > db = DAL('...') > > >> > > db2 = DAL('...') > > >> > > auth = Auth(globals(),db) > > >> > > crud = Crud(globals(),db) > > >> > > plugins = Plugins(globals(),db2) > > > > >> > > This seems more consistent with how things currently work. What > do > > >> > > you think? > > > > >> > > On Feb 24, 5:40 am, "mr.freeze" <nat...@freezable.com> wrote: > > >> > >> Then no auth would mean no plugins. What if an attribute was > added to > > >> > >> DAL to let the user specify: > > >> > >> db = DAL('...') > > >> > >> db.plugin_db = True > > > > >> > >> Then create a global plugin_db object for the plugins to use. All > > >> > >> plugins could then assume: > > >> > >> db = plugin_db > > >> > >> or just use plugin_db directly > > > > >> > >> There may be a better way but the point is that it would be > > >> > >> configurable. Users could dedicate a separate DAL instance for > their > > >> > >> plugins so they don't pollute databases containing important > business > > >> > >> objects. > > > > >> > >> On Feb 23, 11:48 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > >> > >> > what if plugins were to use auth.db ? they rely on auth anyway. > Or > > >> > >> > should we relax that? > > > > >> > >> > On Feb 23, 11:32 pm, mdipierro <mdipie...@cs.depaul.edu> > wrote: > > > > >> > >> > > OK but the I would call that variable db because that is what > it is > > >> > >> > > called in welcome/models/db.py > > > > >> > >> > > On Feb 23, 11:25 pm, "mr.freeze" <nat...@freezable.com> > wrote: > > > > >> > >> > > > I think the most important thing is that users can install > plugins > > >> > >> > > > without needing to modify the plugin. This would make > upgrades a real > > >> > >> > > > problem. I'm sure you've heard this all before but if the > plugin > > >> > >> > > > system was initialized in some way by the user with their > preferred > > >> > >> > > > instance of a DAL object then all plugins could use this. > Otherwise > > >> > >> > > > naming your DAL object anything other than db mean you > can't use > > >> > >> > > > plugins. What do you think? > > > > >> > >> > > > On Feb 23, 11:18 pm, mdipierro <mdipie...@cs.depaul.edu> > wrote: > > > > >> > >> > > > > when I said "yes" I mean current plugins assume it. > > > > >> > >> > > > > I agree we need a superstructure to manage conventions. > Instead of a > > >> > >> > > > > new global vars, I would prefer that each plugins has its > own > > >> > >> > > > > plugin_<whatever>_settings.db and users can customize > each individual > > >> > >> > > > > plugin. > > > > >> > >> > > > > On Feb 23, 11:12 pm, "mr.freeze" <nat...@freezable.com> > wrote: > > > > >> > >> > > > > > That still feels wrong to me. What about making a > plugin_db parameter > > >> > >> > > > > > in option_std.py for the database instance name you > want to use for > > >> > >> > > > > > the plugin subsystem? > > > > >> > >> > > > > > On Feb 23, 10:29 pm, mdipierro < > mdipie...@cs.depaul.edu> wrote: > > > > >> > >> > > > > > > yes > > > > >> > >> > > > > > > On Feb 23, 10:18 pm, "mr.freeze" < > nat...@freezable.com> wrote: > > > > >> > >> > > > > > > > What about the second question? Is 'db' a required > naming convention > > >> > >> > > > > > > > for the plugin system? > > > > >> > >> > > > > > > > On Feb 23, 6:41 pm, mdipierro < > mdipie...@cs.depaul.edu> wrote: > > > > >> > >> > > > > > > > > I think so. The only think is that we will build > a super structure on > > >> > >> > > > > > > > > top of it for better management of plugins > metadata. > > > > >> > >> > > > > > > > > Massimo > > > > >> > >> > > > > > > > > On Feb 23, 6:37 pm, "mr.freeze" < > nat...@freezable.com> wrote: > > > > >> > >> > > > > > > > > > Is the plugin system considered backwards > compatible at this point? I > > >> > >> > > > > > > > > > am considering converting some modules into > plugins but want to know > > >> > >> > > > > > > > > > if they API is stable. > > > > >> > >> > > > > > > > > > Also, is the naming convention of 'db' for your > database still > > >> > >> > > > > > > > > > required for the plugin system? > > > > >> > >> > > > > > > > > > ------------------- > > >> > >> > > > > > > > > > I predict that in the year 2015, web2py will > gain self awareness and > > >> > >> > > > > > > > > > attempt to take over the world under the name > PyNet. > > > > >> > > -- > > >> > > You received this message because you are subscribed to the Google > Groups "web2py-users" group. > > >> > > To post to this group, send email to web...@googlegroups.com. > > >> > > To unsubscribe from this group, send email to > web2py+unsubscr...@googlegroups.com<web2py%2bunsubscr...@googlegroups.com> > . > > >> > > For more options, visit this group athttp:// > groups.google.com/group/web2py?hl=en. > > > > > -- > > > You received this message because you are subscribed to the Google > Groups "web2py-users" group. > > > To post to this group, send email to web...@googlegroups.com. > > > To unsubscribe from this group, send email to > web2py+unsubscr...@googlegroups.com<web2py%2bunsubscr...@googlegroups.com> > . > > > For more options, visit this group athttp:// > groups.google.com/group/web2py?hl=en. > > > > > > -- > You received this message because you are subscribed to the Google Groups > "web2py-users" group. > To post to this group, send email to web...@googlegroups.com. > To unsubscribe from this group, send email to > web2py+unsubscr...@googlegroups.com<web2py%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/web2py?hl=en. > > -- Atenciosamente -- ========================= Alexandre Andrade Hipercenter.com -- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web...@googlegroups.com. To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.