# Contributing to numpy/numpy 101 ### Helpful resources* - [Contributing to NumPy](https://numpy.org/devdocs/dev/index.html) - [Building from source](https://numpy.org/devdocs/building/index.html#building-from-source) - [Building the documentation](https://numpy.org/devdocs/dev/howto_build_docs.html) - How to start from sratch, step-by-step, on an Ubuntu system: https://hackmd.io/g5gtLntUQx-Lanhi55SdJQ **Help us improve these resources by submitting your suggestions in an issue or pull request.* ### Choosing an issue * Comment on the issue that you are working on to avoid multiple people taking on the same issue. Feel free to work in groups on the same issue. * There are *a lot of* issues!:sweat: The selection labelled `sprintable` or `sprintable - C` is focused on beginner-to-intermediate-friendly issues that are actionable and should be doable today. They are a good starting point for learning your way through NumPy building and bug fixing. Please note, many of the `sprintable` issues are in fact "tracking" issues, that e.g. aims to track an issue that affects multiple functions. [Click here to see the list of all the `sprintable` issues.](https://github.com/numpy/numpy/labels/sprintable) [Click here to see the list of all the `sprintable - C` issues.](https://github.com/numpy/numpy/labels/sprintable%20-%20C) * If you would like to take on something a little more challenging, there are a lot of issues in the [main NumPy repository](https://github.com/numpy/numpy) to choose from. We recommend choosing issues that (from the title or labels) seem to be bugs, don't have more than 5 comments, and are no more than 6 months old - those are most likely to be actionable. ### Contributing to the NumPy documentation - [How to contribute to the NumPy documentation](https://numpy.org/devdocs/dev/howto-docs.html) - [Building the documentation](https://numpy.org/devdocs/dev/howto_build_docs.html) *Important:* If you are working on the NumPy documentation, remember to check against https://numpy.org/devdocs/index.html. This is the version of the documentation corresponding to the latest development version (aka what is merged on the main branch on GitHub). ### Writing a commit message Commit messages should follow a few basic rules that are outlined in the NumPy documentation [here](https://numpy.org/doc/stable/dev/development_workflow.html#writing-the-commit-message). ### How to co-author commits If you worked in a pair/group or picked up an inactive PR, it's a good idea to acknowledge everyone's contribution in a commit message. Refer to the [GitHub documentation on how to do it](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors). ________ ### Recommended resources about contributing to open source - [Talk *Sphinx for Python documentation*](https://youtu.be/tXWscUSYdBs) by Melissa Mendonça - [Guide to making open source contributions, for first-timers and veterans](https://opensource.guide/how-to-contribute/) - [Guide to pair programming](https://medium.com/@weblab_tech/pair-programming-guide-a76ca43ff389)