There are different ways to make a contribution to Semantic MediaWiki (SMW) while a few guidelines are necessary to keep the workflow and review process most efficient.
Report bugs
A bug is the occurrence of an unintended or unanticipated behaviour that causes a vulnerability or fatal error.
Request features
A feature request is a new, or altered behaviour of an existing functionality. You may describe them via the issue tracker.
A request should contain a detailed description of the expected behaviour in order to avoid misconceptions in the process of an implementation. The following notes are provided to aid the process and help prioritize a request for project members.
- Why is the feature requested or relevant?
- What does the feature solve? (e.g. it addresses a generalizable behaviour, it solves a specific use case etc.)
- Examples demonstrate the expected behaviour by:
- Being simple, clear, and targeted towards the feature and not rely on any other external functionality (such as other parser functions or extensions).
- In case of a modified behaviour, examples demonstrate the old and new behaviour together with an explanation of the expected difference
- In case of a new behaviour, examples are written down to outline the expected new behaviour (best practice is a step-by-step description) together with a use case
- Examples made available via the sandbox.
- Examples should be adaptable so they can be used as part of an integration test.
Improve documentation
Documenting the software is an important part of the work to make the software usable. You may help us by creating, updating or amending the documentation of the software on Semantic-MediaWiki.org.
Provide translations
- You may help us by providing software translations via translatewiki.net. See their progress-statistics to find out if there is still work to do for your language.
- You may also help up provide translations for important pages on the Semantic MediaWiki homepage. See the info page for further information
Provide patches
You may help us by providing patches or additional features via a pull request but in order to swiftly co-ordinate your code contribution, the following should suffice:
- Please ensure that pull requests are based on the current master. See also the https://github.com/SemanticMediaWiki/SemanticMediaWiki/blob/master/docs/technical/README.md "developer documentation overview" for further information.
- Code should be easily readable (see NPath complexity,
if else
nesting etc.) and if necessary be put into separate components (or classes)
- Newly added features should not alter existing tests but instead provide additional test coverage to verify the expected new behaviour. For a description on how to write and run PHPUnit test, please consult the manual.
Thank you for contributing to Semantic MediaWiki!