Thank you for contributing!
Below are guidelines for making contributions to REopt Lite.
Please do not create an "issue" if you have a question. We have a discussion board here (TODO add URL to discourse). You might find answers to general questions on our web site, and the discourse discussion board is pretty comprehensive as well. If you don't find your question on the discussion board, please open a new question there.
Creating an issue in the github.com repository is the preferred method for reporting bugs.
First, please check the REopt Lite Development Plan in case your idea is already in the works.
Please refer to the instructions given in the issue template provided in the issues tab on the repository for suggesting enhancements.
- First fork the repository and create a new branch on your fork
- Once the bug is fixed, run the full test suite (instructions for running the test suite are available here)
- If it passes, send a PR to the original repository
- If tests aren't passing, then first look the specific test[s] that is/are failing. Then think through - "do I expect the test to fail after introducing the bug-fix I am proposing?"
- If yes, then please provide a clear description of the identified bug, how you fixed it, and explanation for why the fix is making an existing test fail
- If no, then revisit the changes you introduced to identify where the problem is
- First fork the repository and create a new branch on your fork
- Then develop the feature on that branch, detailed tutorial for REopt-api feature development is here
- Note that we highly recommend test-driven development (the tutorial cover that in detail)
- After the feature is complete, run the full test suite
- If it passes, send a PR to the original repository
- If tests aren't passing, then first look the specific test which is failing. Then think through - Do I expect this test to fail after having added the new feature?
- If yes, then please provide a clear explanation for why the existing test[s] should fail after the introduction of the new feature
- If no, then revisit the new feature you have developed to troubleshoot the problem with the failing test[s]
- PEP8
- PyCharm
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line