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
|
# Contributing to mmcif_pdbx
We are excited to have you contribute to this software!
If you have general questions about the code, please see the [documentation](https://mmcif-pdbx.readthedocs.io/) and/or start a thread in the [discussion forum](https://github.com/Electrostatics/mmcif_pdbx/discussions).
Once you have familiarity with the code, you're ready to start contributing:
## Find or create a problem
Find a problem/feature that needs to be resolved in the code [issues](https://github.com/Electrostatics/mmcif_pdbx/issues).
If the problem you're trying to solve doesn't exist, create a Github issue to resolve some or all of the problem or to add features.
For example, you could
* Fix a bug
* Add a new capability with 3 parts - create issue for each part it possible
* In general, make problem/feature small enough to finish it within a week or two
## Create a branch
Create a git branch using the convention of `github_user`/`issue_#` where `github_user` is your user name and `issue_#` is the issue number from step 2 above.
## Create and pass tests
Create a test that replicates the problem/feature and fails and show how your fix results in a working test.
Work on the code until your test, as well as all previous tests, pass.
*Bonus points* -- ensure that [Sphinx](https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html) is still able to build the documentation in `docs`.
## Document your changes
Update `docs/changelog.rst` to reflect your changes.
## Do not submit messy code
Run your code through the following steps:
1. Formatting tools: [psf/black](https://github.com/psf/black)
2. Linting tools: [pylint](https://www.pylint.org/) and [flake8](https://flake8.pycqa.org/en/latest/)
## Submit a pull request
1. Commit your changes to Git and push your branch to the Github repo.
2. Create a [pull request](https://github.com/Electrostatics/mmcif_pdbx/compare?expand=1).
The team will add reviewers (likely `speleo3`, `orbeckst`, `sobolevnrm`, and `intendo`) to the request.
[Reference the issue you are trying to fix](https://docs.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue) in your pull request.
3. If the pull request passes [Github Actions](https://github.com/features/actions) and peer review, then the branch will be merged with `master`, your branch will be deleted, and the development team will be very grateful for your contribution!
Thank you for considering to contribute to our code!
|