summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/docs/CONTRIBUTING.md
blob: 32afad728588e16d35e6cc2cad0f2a82e50f0379 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!-- Note that the headers in this file are being linked to via bitly.com. In case the headers change these links must be changed, too. Just ping kghbln on changes. -->
There are different ways to make a contribution to [Semantic MediaWiki][smw] (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.

* You may help us by reporting bugs and feature requests via the [issue tracker][smw-issues]. See the help page on [reporting bugs (environment, reproducing)][smw-bugs1] as well as on [identifying bugs (stack-trace)][smw-bugs2] for information on how to do this best. Please remember to always provide information about your environment as well as a stack-trace.
* You may help us to do [pre-release testing][smw-testing] by joining the [team of testers][smw-testers] on GitHub.

### Feature requests

A feature request is a new, or altered behaviour of an existing functionality.

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](https://en.wikipedia.org/wiki/Use_case)
* Examples made available via the [sandbox](https://sandbox.semantic-mediawiki.org).
* Examples should be adaptable so they can be used as part of an [integration test](https://www.semantic-mediawiki.org/wiki/Help:Integration_tests).
 
### Improve documentation

* You may help us by providing software translations via [translatewiki.net][twn]. See their [progress-statistics][twn-smw] to find out if there is still work to do for your language.
* You may help us by creating, updating or amending the documentation of the software on [Semantic-MediaWiki.org][smw].

### 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 [developer documentation overview][smw-ddo] for further information.
* Code should be easily readable (see [NPath complexity][smw-npath], `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][mw-testing].

Thank you for contributing to Semantic MediaWiki!

[smw]: https://github.com/SemanticMediaWiki/SemanticMediaWiki
[smw-issues]: https://github.com/SemanticMediaWiki/SemanticMediaWiki/issues
[smw-bugs1]: https://www.semantic-mediawiki.org/wiki/Help:Reporting_bugs
[smw-bugs2]: https://www.semantic-mediawiki.org/wiki/Help:Identifying_bugs
[smw-testing]: https://www.semantic-mediawiki.org/wiki/Help:Reporting_bugs#Pre-release_testing
[smw-testers]: https://github.com/orgs/SemanticMediaWiki/teams/testers
[twn]: https://translatewiki.net/
[twn-smw]: https://translatewiki.net/w/i.php?title=Special%3AMessageGroupStats&x=D&group=ext-semanticmediawiki&suppressempty=1
[smw-ddo]: https://github.com/SemanticMediaWiki/SemanticMediaWiki/blob/master/docs/technical/README.md
[mw-testing]: https://www.mediawiki.org/wiki/Manual:PHP_unit_testing
[smw-npath]: https://www.semantic-mediawiki.org/wiki/Code_coverage#NPath_complexity