bundles / scipy 1.17.1 / docs
Doc
SciPy contributor guide
docs/dev:contributor:contributor_toc
This guide is designed to help you quickly find the information you need about SciPy development after you've reviewed the introductory material in hacking or dev-quickstart.
You can also watch SciPy Development Workflow, a five-minute video example of fixing a bug and submitting a pull request (note: this video is from 2018, so the build steps are different by now - the overall workflow is still the same though).
building-from-source - how to set up a development environment, including installing compilers and SciPy dependencies, cloning the SciPy repository on GitHub and updating git submodules, and using the
spininterface for building and running tests.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
docs - how to write reStructuredText documentation that complies with docstring standards, build documentation locally with Sphinx, and view documentation built during continuous integration checks
toc-benchmarking - 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
Editing SciPy
development-workflow lays out what to do after your development environment is set up
pep8-scipy gives some tips for ensuring that your code is PEP8 compliant
git-development is a guide to using
git, the distributed version-control system used to manage the changes made to SciPy code from around the worldscipy-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-prs explains how to review another author's SciPy code locally
triaging explains how to curate issues and PRs, as well as how GitHub team permissions work for SciPy
adding-new has information on how to add new methods, functions and classes
core-dev-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
missing-bits - code and documentation style guide
Testing
numpy:reference/testing is the definitive guide to writing unit tests of NumPy or SciPy code (part of the NumPy documentation)
writing-test-tips contains tips for writing units tests
devpy-test documents
spin test, the command to build SciPy and run tests locally
Documentation
numpy:howto-documentcontains everything you need to know about writing docstrings, which are rendered to produce HTML documentation using Sphinx (part of the NumPy documentation)contributing-docs contains information on how to render and contribute to the SciPy documentation
adding-notebooks explains how to add pages in Jupyter notebook/MyST format to the SciPy documentation (interactive or not)
Benchmarks
benchmarking-with-asv explains how to add benchmarks to SciPy using airspeed velocity
Compiled code
adding-cython extending and compiling Python code with Cython can significantly improve its performance; this document helps you get started
other-languages discusses the use of C, C++, and Fortran code in SciPy
public-cython-api on guidelines on exposing public Cython APIs