SciPy contributor guide

This guide is designed to help you quickly find the information you need about SciPy development after you’ve reviewed the introductory material in Ways to Contribute. If you’re new to this and want to start coding ASAP, you’ve found the right place.

  • Development environment - how to set up and maintain a development environment, including installing compilers and SciPy dependencies, creating a personal fork of the SciPy repository on GitHub, using git to manage a local repository with development branches, performing an in-place build of SciPy, and creating a virtual environment that adds this development version of SciPy to the Python path

  • Editing SciPy - how to edit SciPy Python code, with tips on finding which module contains SciPy functionality to be edited, adding new modules to SciPy, and complying with PEP8 style standards

  • Unit tests - how to write and run unit tests for SciPy with the pytest framework

  • Documentation - how to write reStructuredText documentation that complies with docstring standards, build documentation locally with Sphinx, and view documentation built during continuous integration checks

  • Benchmarks - how to benchmark code with airspeed velocity

  • Compiled code - how to add fast, compiled code to SciPy

  • Continuous Integration - how does our continuous integration system works and how to debug your PR

Development environment

Editing SciPy

Unit tests


  • Documentation style contains everything you need to know about writing docstrings, which are rendered to produce HTML documentation using Sphinx

  • Rendering Documentation with Sphinx it’s important to check how changes to the documentation render before merging a PR; this document explains how you can do that


Compiled code