[Owncloud] Proposal for new plugin system
Frank Karlitschek
karlitschek at kde.org
Wed Jul 28 22:09:50 UTC 2010
On 28.07.2010, at 22:50, Robin wrote:
> On Wednesday, July 28, 2010 21:53:08 you wrote:
>> 2010/7/28 Robin <icewind1991 at gmail.com>:
>>> Because our current plugin system isn't powerful enough for some cases,
>>> I've written a proposal on the wiki for a new system that would be more
>>> dynamic and allow for easier installation of plugins.
>>> http://owncloud.org/index.php/Plugin_System_Proposal
>>
>> Interesting :)
>>
>>
>> PLUGIN.XML
>> ==========
>> 1. I suggest to change <meta> in <info> or <information>
>> 2. Add <description> to <meta>
>> 3. Add <homepage> to <meta>
>> 4. Add <email> to <meta>
>> 5. Put all the <include> in something like <runtime>
>> 6. Add <uninstall> identical to <install> but for uninstallation
>> 7. It's important to have a version attribute into plugin
>> (<plugin version="1.0">), this way it's possible to change the
>> plugin.xml structure in future.
>> 8. Maybe we need a require child in <meta>? Something like
>> <require>1.0</require>, some way to know in which versions of
>> ownCloud the plugin works.
>>
>> I will prefer if the filename is fixed so I know every plugin has a
>> `plugin.xml`.
>>
>> See attachment for an example.
> Good suggestions, updated the proposal for the plugin.xml structure with these
> in mind.
>>
>>
>> INSTALLATION
>> ============
>> I don't like the idea to use the `plugin.xml` file to guaranty the
>> plugin is installed correctly.
>>
>> IMHO it would be better to insert the plugin in a DB table after the
>> (successful) installation, see LOADING.
>>
>> Of course if the `plugin.xml` version is not complatible the plugin will
>> not be installed (see PLUGIN.XML point 7).
>>
>>
>> LOADING
>> =======
>> IMHO, it would be better has a `oc_plugins` DB table in which there is
>> a row for each installed plugins.
>> Every row contains information on the plugin: id, enabled, name,
>> version, description, author, e-mail, homepage, licence and copyright.
>>
>> The enabled field can be false or true, if true the plugin is loaded.
>> (Of course if the plugin is incompatible with the version of ownCloud
>> installed will not be loaded, see PLUGIN.XML point 8).
>>
>>
>> This should be flexible enough (TM), but I'm sure reading this you
>> will have new ideas ;).
> Not sure about this, saving a list of the plugins in the database seems
> unnecessary to me, we need some more discussion on this.
I also donĀ“t see the point in mirroring the data in the database.
I think having the data in the xml together with a convenient class to access the data is enough.
Cheers
Frank
--
Frank Karlitschek
karlitschek at kde.org
More information about the Owncloud
mailing list