Openbravoforgesupport/Help/Selling/ProductCertification
The following Product Certification Requirements must be passed for acceptance as a Commercial Module in the Exchange. The Author/Seller is responsible to ensure proper compliance.
Contents |
Legal requirements
- OBCL (Openbravo Commercial License) must be used for commercial modules
- A copy of the license must be included with the sources
- Source code headers properly identify license and copyright owners
- Module cannot use "Openbravo" in the module name
- Openbravo trademark policy must be followed
- Openbravo terms and conditions for interactive services must be followed
Packaging requirements
- Verify that the Type is correct (Module, Pack, or Template)
- URL must point to the corresponding Openbravo Forge Project (not your own web site). Do NOT include http:// (that is added automatically)!
- Make sure that the home page of your forge project includes an easy-to-find link to basic configuration information. At the very least, specify what role(s) a user may sign on as to access your module's menu options. If people can't easily find your functionality, they will not sell or buy it--make your module easy to evaluate and use!
- The OBCL must be specified as the license, and the following text must be specified to appear on the License Agreements page (which is rendered when installing the module using the Module Management Console):
File:Text to Identify OBCL.png
Here is the text (to copy/paste):Licensed under the Openbravo Commercial License version 1.0. You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html or in the legal folder of this module distribution.
- The Help text should be a brief, easy-to-ready description of the functionality. Detailed information about the functionality and benefits may be specified in Openbravo Exchange. Please don't try to list every feature of your module--this is not the place for it!
Information requirements
- Product information is available
- Detailed and fair description of the functionality
- Screenshots (optional)
- Available languages are clearly identified
- Supported databases are clearly identified
- Release notes must be available
- Specially, when a maintenance update is published the issues fixed must be clearly identified
- If module is not self-sufficient it should be clearly identified
- Dependencies with external tools or services (eg. in the case of connectors)
- Dependencies with other modules, whether free or commercial
Product requirements
Installation requirements
- Module can be installed and uninstalled without errors or warnings, from the module management window in the latest MP (Openbravo ERP Maintenance Packs) of the applicable release
- Module maintenance releases cannot require the need for additional dependencies
- Dependencies from additional commercial modules could imply payment of additional fees for the client
- Module cannot require manual changes to core upon installation of new maintenance packs
Usability
- No advertisements in GUI
- Error messages are understandable
- Support for translation: text in the user interface is not hardcoded for properly defined to support translations to any language (messages, labels in text_interface, ...)
- Wording is consistent with the rest of the application
- Industry verticals are excluded from this rule, if the application is reworded consistently
- Look & feel for manually generated windows is consistent with the rest of the application
Quality
- Module installs and uninstalls properly in a clean instance, without any error or warning
- Dependencies are completely defined
- The system builds without errors or warnings (usage of deprecated methods is not allowed)
- Model does proper use of data model
- Module does not duplicate existing entities but extends them instead
- All metadata validations are matched (entities are completely defined)
- New minor versions of the module do not change their own public interface (API)
Performance
- Module does not crash and there are no known critical bugs at the time of publication
- Module does not include any heavy SQL that can consume an inappropriate amount of CPU usage
- Module does not cause memory leak
- Module does not contain any business logic that causes an inappropriate amount of memory consumption (i.e. infinitely growing arrays, etc.)
Security
- Module does not violate or bypass the Openbravo security model
- Module does not include any UI that allows SQL or HTML injections
- No user data is sent to remote servers without previous clear communication and requires approval before data is sent
- Data stored in other modules cannot be removed or modified without clear communication and user approval
Documentation
- Basic documentation must be made publicly available in the Forge Project to facilitate evaluation by Openbravo's business partners and end customers, including:
- Installation guidelines
- Configuration guidelines
- Usage manual
- On-line help must be included
Note: If you do not want non paying customers accessing detailed technical or functional documentation, you may embed PDF files and other accompanying material (configuration file examples, small tools, etc.) within the OBX file itself. To do so create the folder com.mycompany.mymodule/web/docs in the folder structure (whereas com.mycompany.mymodule is the package name of your module) Now put all documentation and accompanying files in there. Accompany them by a simple HTML document called index.html from which you can link to them.
Once the user has installed the module on his Openbravo instance, your documentation index.html file is accessible at http://servername/openbravo/web/com.mycompany.mymodule/docs/ (whereas "servername" is the address of your Openbravo server, and com.mycompany.mymodule is the package name of your module)
We recommend to avoid including large files as these may slow down the process of installing your module. If your module disposes of any screens for configuration, you can place a link to the documentation on it. You can find more information in the Developers Guide
Community Tools
- Project is registered in the Forge
- Forums are properly maintained
- Issues are publicly available through the bug tracker
- Documentation is accessible from the Wiki
If you have any doubt regarding these pre-requisites, you can post your questions in the Openbravo Exchange Help forum