We are excited to welcome new users, so thank you for considering contributing to Ptera Software! Hopefully this help you get started. If you have any questions not answered here, open an issue request. We'll respond and to help out!
Before contributing, you should check out Ptera Software's other reference documents ( listed in recommended reading order 😉):
There are three pathways to contributing: reporting a bug, requesting an enhancement, and creating an enhancement.
If the bug you've found is a security vulnerability, please do not post it as an issue. Instead, follow the guidelines in our security policy.
If you discover a bug in Ptera Software, head over to our issues page. Then, use to search bar to check that it doesn't already have an open issue. If there is an open issue, feel free to comment on this issue or use one of the emoji reactions. This will let us know the problem is being experienced by multiple users, and make us move extra quickly to fixing it!
If no one else has reported this bug, do so by creating a new issue! Please use our
bug report template so that we get all the
information we need to help you ASAP. Also, add the bug
and help wanted
labels (and
any other applicable labels) to the issue.
As with bugs, the best way to request a feature or to suggest an enhancement is to open issue. Again, make sure you search the issues page to see if anyone else has requested the same thing before creating a new issue. If there is an open issue, feel free to comment on this issue or use one of the emoji reactions. This will let us know that multiple users would benefit from this change, and we'll try extra hard to implement it quickly!
If no one else has requested this change, do so by creating a new issue! Please use our
feature request template so that we get all
the information we need to help you ASAP. Also, add the enhancement
and help wanted
labels (and any other applicable labels) to the issue.
If you can't think of a particular enhancement you'd benefit from, search for issues
labeled help wanted
or good first issue
for inspiration.
If you have your own idea for an enhancement, we recommend searching the issues page to make sure there is no other active development on this enhancement. If you find someone else working on the same feature or change, add a comment letting them know you'd like to help out!
If you do not see anything on the issues page, we recommend opening an enhancement issue as its possible the feature you're about to implement already exists, and we'll comment letting you know! Also, be sure to indicate in your post that you'll take charge of implementing this change (otherwise, someone else might start working on your request).
Next, we recommend you clone the Ptera Software repository, and then create new feature branch from your develop branch. You should create a different feature branch for each enhancement you are working on. Follow the GitFlow methodology for creating and managing feature branches.
In this feature branch, implement your enhancement. Be sure to commit frequently and write detailed commit messages. Additionally, please try to use the follow style guide:
- Always use S.I. units for all calculations and results.
- Format your code using the black.
- Use a line length of 88 (which is black's default).
- All modules, scripts, classes, methods, and functions should have docstrings.
- Use the reStructuredText docstring format.
- Your code itself should be well documented using block comments.
- Use tagging (
TODO
,BUG
, etc.) to mark areas of the code that need changing. - Major new functionality should also include new tests, which you should add to the tests package.
- If you use any code or equations from someone else, please be sure to cite your sources in a comment or docstring.
Once you've finished implementing the enhancement, push your feature branch to your clone of Ptera Software. Then, make a pull request to merge your feature branch with the original Ptera Software's develop branch using our pull request template.