SciPy contributor guide#
You can also watch SciPy Development Workflow, a five-minute video example of fixing a bug and submitting a pull request.
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
System-level dependencies shows how to install system-level dependencies for Linux, Mac or Windows (needed if you’re not using conda).
Development environment guide (conda) presents a step-by-step process for setting up a convenient SciPy development environment with conda (recommended).
Development environment guide (Ubuntu) presents a step-by-step process for setting up a convenient SciPy development environment in Ubuntu Linux.
Development environment quickstart guide (Docker) presents a step-by-step process for building SciPy using Docker; if you have trouble with the instructions above, this may be your best option
Development environment quickstart guide (Gitpod) presents a step-by-step process for using Gitpod for SciPy development; this process requires minimal setup and is newcomer friendly
Development workflow lays out what to do after your development environment is set up
Building from sources has details on building from sources on Linux, Mac and Windows
How to build SciPy with Meson for how to use the Meson build system
PEP8 and SciPy gives some tips for ensuring that your code is PEP8 compliant
Git for development is a guide to using
git, the distributed version-control system used to manage the changes made to SciPy code from around the world
SciPy API contains some important notes about how SciPy code is organized and documents the structure of the SciPy API; if you are going to import other SciPy code, read this first
Reviewing Pull Requests explains how to review another author’s SciPy code locally
Adding New Methods, Functions, and Classes has information on how to add new methods, functions and classes
SciPy Core Developer Guide has background information including how decisions are made and how a release is prepared; it’s geared toward Core Developers, but contains useful information for all contributors
Code and Documentation Style Guide - The Missing Bits - code and documentation style guide
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