---
# System prepended metadata

title: Contributing to numpy/numpy 101

---

# 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)