Welcome dear fellow of sophisticated power system modelling! 👋 And thank you for considering your contribution to this project! With this document we would like to give you some orientation on how you can contribute.
- Testing and reporting bugs
- Suggest extensions
- Contributing code
- Branching and handing in pull requests
- General (software) design guidelines
- Testing
- Finalising your pull request
- For any doubts
We really appreciate your usage of this project. Whenever you find a bug, it would be nice to check, if this isn't a feature to us. 😉 Until now we have a good lack of high level documentation, therefore please check, if what you've found isn't among the yet known issues. If not, please raise one for us. Considering the following aspects in your inquiry, assists us in helping you:
- Is there already an issue addressing your problem?
- Try to locate the error as precise as possible.
- What has to be done to reproduce the error?
- Provide stack trace, logs etc. and further helpful information
- What would do you expect to happen?
- Mark the issue with the label bug.
We use issues as well to keep track of enhancement suggestions. Considering the following aspects, assists us in understanding your needs properly:
- Is there already an issue addressing your request?
- What would do you desire for?
- If possible provide an example or sketch.
- Show a use case, that should be as versatile as possible.
- Mark the issue with the label enhancement.
If you intend to produce some lines of code, pick an issue and get some hands on!
We try to follow a branch naming strategy of the form <initials>/#<issueId>-<description>
.
If for example Prof. Dr. rer. hort. Klaus-Dieter Brokkoli would like to add some work on node models reported in issue 4711, he would open a branch kb/#4711-extendingNodeModels
.
Please hand in a draft pull request as early as possible to allow other to keep track on your changes.
Before opening it for review, please finalise your pull request.
In order to maintain a consistent project, we thought of some general design guidlines, we kindly ask you to take care of:
- We ❤️ immutability. Therefore, please don't provide setters and use proper instantiation instead.
double a = b * pow(x, j)
? ✋ Please be expressive in what you code!- Document your code with javadoc.
Ensure the proper function of your code by test driven development (TDD). We have good experiences using Spock as a testing framework for Groovy.
Some automated checks assist us in delivering a pretty fair quality of software. Before marking the pull request as 'ready to review', take these precautionary actions:
- Are all tests passing? Run
gradle test
- Is your code properly formatted? Run
gradle spotlessApply
gradle finalizePR
summarizes all of these steps .
... please contact
We are happy to help! 😃