mantisbt:addson_requirements
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
mantisbt:addson_requirements [2007/09/06 02:07] – Added #modulename# to directory structure. vboctor | mantisbt:addson_requirements [2008/10/29 04:25] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Mantis | + | ====== Mantis |
* **Author:** Victor Boctor | * **Author:** Victor Boctor | ||
Line 6: | Line 6: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | Mantis currently supports some extensibility features like custom fields, custom functions, custom constants, and custom strings. | + | Mantis currently supports some extensibility features like custom fields, custom functions, custom constants, and custom strings. |
===== Types of Plug-in ===== | ===== Types of Plug-in ===== | ||
Line 19: | Line 19: | ||
* Ability to detect all plug-ins in the Mantis directory structure. | * Ability to detect all plug-ins in the Mantis directory structure. | ||
- | * From the manage plug-ins page, allow administrators (configurable threshold) to install / un-install | + | * From the manage plug-ins page, allow administrators (configurable threshold) to install / un-install |
- | * Keep track of the installed | + | * Keep track of the installed |
* Extend the database scheme upgrade script to support modules. | * Extend the database scheme upgrade script to support modules. | ||
* Detailed documentation about how to implement Mantis plug-ins. | * Detailed documentation about how to implement Mantis plug-ins. | ||
Line 200: | Line 200: | ||
* max access level | * max access level | ||
* for each project? | * for each project? | ||
+ | |||
+ | ===== To be Spec'd ===== | ||
+ | |||
+ | * Detail the parameters sent to each of the events. | ||
+ | * How are the plug-ins going to be distributed. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
===== Feedback ===== | ===== Feedback ===== | ||
This is still in progress, but you are free to contribute ideas. | This is still in progress, but you are free to contribute ideas. | ||
+ | |||
+ | * (DGtlRift) I would say that in " | ||
+ | * plugin version - could be used by a plugin manager to query if there is an updated plugin available from the plugin' | ||
+ | * minimum mantis compatibility version - verify that this plugin will actually work with this version of mantis. | ||
+ | * (DGtlRift) I would also suggest that the " | ||
+ | * I'm also thinking that it may be easier to use a hash table to store the constants in # | ||
+ | * Perhaps XML would be better for having this info | ||
+ | * (deboutv) In my plugin manager, I have chosen to provide Mantis plugin in pkg format. This file is the result of a zip and a serialize of an array => gzcompress( serialize( array ), 9 ); The array contains the following fields: | ||
+ | < | ||
+ | $t_pkg[' | ||
+ | $t_pkg[' | ||
+ | // | ||
+ | $t_pkg[' | ||
+ | $t_pkg[' | ||
+ | $t_pkg[' | ||
+ | $t_pkg[' | ||
+ | </ | ||
+ | * (deboutv) Hacking Mantis with a plugin. We need to think about the security of the Mantis application and its data. Allowing plugins is dangerous because of the content of the plugin (it could pretend to be a BBCode interpreter but in reality it could be a BBCode interpreter and a spy). With a plugin (ie: code of third parties), you can read/write the SQL database, grant priviledges to the users... | ||
+ | * (DGtlRift) There should also be a description of how plugins themselves should generate events. | ||
+ | * (DGtlRift) Re: Distribution. | ||
+ | * The most simple way is to just have a list of tar.gz compressed archives of each plugin. | ||
+ | * The next option would be to offer the ability to install via the admin interface, where Mantis would check against a web list of available plugins and download (to the server) and install the plugin (requiring Mantis to have write privileges) to the plugins directory. | ||
+ | * Another option is to have all the plgins in RPM form - which would automate installation for the sysadmin. | ||
+ | * (DGtlRift) Should the plugins be globally " | ||
==== First implementation ==== | ==== First implementation ==== |
mantisbt/addson_requirements.1189058850.txt.gz · Last modified: 2008/10/29 04:31 (external edit)