I like this but we are not there yet. I think we first need low level
api for packing and unpacking (just two functions). Then we need to
discuss how to expose the API. This is has been and is going to be a
long discussion. This helps.

Massimo

On Oct 20, 8:23 pm, Beerc <berces.las...@fomi.hu> wrote:
> May I suggest an extended,
>     CRUD style,
>     plugin_name oriented
> interface, in a 'plugin' module? So we can use
>
>     plugin.pack(your_app, w2p_filepath, plugin_name)
> to pack the given plugin into a w2p file at w2p_filepath;
> even better if w2p_filepath unambiguously define the plugin_name, so
> we can use simply:
>     plugin.pack(your_app, w2p_filepath)
> or (best):
>     plugin.pack(your_app, plugin_name)
>
> 'C' in CRUD:
>     plugin.create(your_app, w2p_filepath)
> to install (==unpack, ==create) the given plugin;
> or (better):
>     plugin.create(your_app, plugin_name)
>
> 'R' in CRUD:
>     plugin.retrieve(your_app, w2p_filepath)
> to query (in a dictionary) infos about the given plugin;
> or (better):
>     plugin.retrieve(your_app, plugin_name)
> and
>     plugin.retrieve_all(your_app)
>
> 'U' in CRUD:
>     plugin.update(your_app, w2p_filepath)
> to install a new version of the given plugin, if exist(plugin) and
> exist(new_version_of_plugin);
> or (better):
>     plugin.update(your_app, plugin_name)
> and
>     plugin.update_all(your_app)
> to update all plugins;
>
> 'D' in CRUD:
>     plugin.delete(your_app, w2p_filepath)
> to remove the given plugin;
> or (better):
>     plugin.delete(your_app, plugin_name)
> and
>     plugin.delete_all(your_app)
> to delete all plugins.
>
> Some upper/admin level functions:
>
>     plugin.list_all(your_app)
> to query the list of names of all plugins installed;
>
>     plugin.dependency_check(your_app, plugin_name)
> to check (known) dependencies of given plugin and return infos in a
> dictionary;
> even if plugin not installed yet (so we can programmatically check
> preconditions of that installation)
>
>     plugin.dependency_check_all(your_app)
> to check all (known) dependencies and return infos in a dictionary.
>
> Finally a
>     CRUD style,
>     plugin_name oriented
> interface for a plugin repository, without short descriptions:
>
>     plugin.repository_create(repository, plugin_name)
> to create given plugin in that repo;
>     plugin.repository_retrieve(repository, plugin_name)
> to query (in a dictionary) infos about the given plugin;
>     plugin.repository_retrieve_all(repository)
> to query (in a dictionary) infos about the given plugin;
>     plugin.repository_list(repository)
> to query the list of names of all plugins in that repo;
>     plugin.repository_update(repository, plugin_name)
> to update given plugin;
>     plugin.repository_delete(repository, plugin_name)
> to delete given plugin;
>     plugin.repository_delete_all(repository)
> to delete all plugins.
>
> Repositories can be
>     local (given by w2p_filepath),
> or
>     global (given by URI and authentication dataset).
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@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
-~----------~----~----~----~------~----~------~--~---

Reply via email to