-
Notifications
You must be signed in to change notification settings - Fork 14
Contributing
Contributing to STAPI mainly involves writing new code, fixing the existing code, testing and reporting bugs, and proofreading.
STAPI is written in Java, with tests written in Groovy. Some degree of knowledge of those two languages is therefore a must for anyone who wishes to contribute code to STAPI itself. People working in other languages, can still contribute new client libraries. Swagger editor with STAPI specs loaded offers a good starting point in this regard.
Please note that tests are required for every piece of code. Pull requests won't be accepted until code is covered with some degree of tests.
There are tests in the project already. There is also Checkstyle, SpotBugs, and CodeNarc for static code analysis. Code contributed should comply to rules enforced by those tools. It should build on the CI, too.
In theory, STAPI has a number of integration tests than guards every endpoint, so data can be obtained from it. Bugs can happen and will happen, however, so every manual test is welcomed. Any bug found can be reported using GitHub issues.
STAPI gathers data from other sources to populate it's tables.
It could happen that data in those sourced was incorrect. When this is the case, data should be fixed in the source. Both Memory Alpha and Memory Beta will gladly accept a contribution that fixes a problem.
It could also happen that the data in the source was correct, but it was extracted incorrectly, or not extracted at all. If that's the case, an issue should be opened on GitHub, or alternatively, a pull request fixing the issue could be opened.
STAPI was not created by a native English speaker, so fixes can to contributed to both documentation stored in this wiki, and to frontend in project's repository (server/src/main/web/
). The application itself, e.g. logging message and exceptions, is of less importance, but contributions are welcome, too.
If you happen to be in possesion of a data set related to Star Trek that you would like to contribute to this project on the MIT license, please open an issue and let's discuss. Creating a large PR with the data set is not advised. First let's understand how this data should be integrated into existing landscape.