|Help developers to navigate|
|Table of Contents|
This page should help developers navigate who want to support SMW development or develop extensions to SMW can use a number of resources to get started. Of course, it is strongly recommended to be familiar with the usage of SMW as well.
Moreover, there is an SMW architecture guide that provides a basic introduction to the main ideas and concepts in SMW from a developer perspective, which should be useful for reading and writing SMW-related code.
The SMW architecture guide provides a basic introduction to the main ideas and concepts in SMW from a developer perspective.
When switching from a user to a developer of SMW, you should also change the configuration of your testing wiki to ensure that you do not overlook possible errors or problems (especially those created by your own code). Please read about how to debug MediaWiki, in particular the section about PHP error reporting. All MediaWiki extensions are expected to run without issuing any PHP notices!
The Project welcomes all potential contributors and extension developers. Developers can discuss on the SMW developer mailing list, which can also be used to contact the SMW core developers.
Also take a moment to familiarise yourself with the MediaWiki resources for developers.
- Help:Development environment setup
- Help:Using Git
- Coding conventions
- Contributing to Semantic MediaWiki
- Developing extensions and Access to in-process data
Writing testable code
SMW and its extensions try to provide thorough code documentation as part of their program files. An API documentation is automatically generated from this data:
This documentation encompasses SMW, Semantic Result Formats, Semantic Forms, Semantic Drilldown and Semantic Maps. It is rebuilt every day from the current contents of SVN. Further extensions can be added to this documentation if they relate to SMW, are hosted in MediaWiki SVN, and use naming conventions that prevent confusion with the other extensions (which use prefixes SMW, SRF, SF, SD and SM, respectively).
To get a quick overview of the code distribution in SMW, you can have a look at
- SMW source code structure (outdated!!!)
Web applications with open user communities are specifically threatened by security vulnerabilities. SMW developers are responsible for taking specific care to avoid vulnerabilities of all kinds. Every developer should carefully read the MediaWiki security guidelines for developers.
If vulnerabilities are discovered, special care is needed to minimize the risk of them being exploited. In particular, it is wise to first contact the core developers directly, to ensure that an updated version can be released before the bug is public. Also note that the project is public and can be monitored by potential attackers. So commit messages like "Fixed critical security vulnerability" can also be problematic. For more information on handling security problems in open source software, see .