Back to Scipy

SciPy contributor guide

doc/source/dev/contributor/contributor_toc.rst

1.17.14.7 KB
Original Source

.. _contributor-toc:

======================= 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 :ref:hacking or :ref: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).

  • :ref: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 spin interface for building and running tests.
  • :ref: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
  • :ref:unit-tests - how to write and run unit tests for SciPy with the pytest framework
  • :ref:docs - how to write reStructuredText documentation that complies with docstring standards, build documentation locally with Sphinx, and view documentation built during continuous integration checks
  • :ref:toc-benchmarking - how to benchmark code with airspeed velocity
  • :ref:compiled-code - how to add fast, compiled code to SciPy
  • :ref:continuous-integration - how does our continuous integration system works and how to debug your PR

.. _editing-scipy:

Editing SciPy

  • :ref:development-workflow lays out what to do after your development environment is set up
  • :ref:pep8-scipy gives some tips for ensuring that your code is PEP8 compliant
  • :ref: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 world
  • :ref: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
  • :ref:reviewing-prs explains how to review another author's SciPy code locally
  • :ref:triaging explains how to curate issues and PRs, as well as how GitHub team permissions work for SciPy
  • :ref:adding-new has information on how to add new methods, functions and classes
  • :ref:core-dev-guide has background information including how decisions are made and how a release is prepared; it's geared toward :ref:Core Developers <governance>, but contains useful information for all contributors
  • :ref:missing-bits - code and documentation style guide

.. _unit-tests:

Testing

  • :doc:numpy:reference/testing is the definitive guide to writing unit tests of NumPy or SciPy code (part of the NumPy documentation)
  • :ref:writing-test-tips contains tips for writing units tests
  • :ref:devpy-test documents spin test, the command to build SciPy and run tests locally
  • :ref:debugging-linalg-issues

.. _docs:

Documentation

  • :ref:numpy:howto-document contains everything you need to know about writing docstrings, which are rendered to produce HTML documentation using Sphinx_ (part of the NumPy documentation)
  • :ref:contributing-docs contains information on how to render and contribute to the SciPy documentation
  • :ref:adding-notebooks explains how to add pages in Jupyter notebook/MyST format to the SciPy documentation (interactive or not)

.. _toc-benchmarking:

Benchmarks

  • :ref:benchmarking-with-asv explains how to add benchmarks to SciPy using airspeed velocity_

.. _compiled-code:

Compiled code

  • :ref:adding-cython extending and compiling Python code with Cython_ can significantly improve its performance; this document helps you get started
  • :ref:other-languages discusses the use of C, C++, and Fortran code in SciPy
  • :ref:public-cython-api on guidelines on exposing public Cython APIs

.. _Scipy Development Workflow: https://youtu.be/HgU01gJbzMY

.. _Sphinx: http://www.sphinx-doc.org/en/master/

.. _Airspeed Velocity: https://asv.readthedocs.io/en/stable/

.. _Cython: https://cython.org/

.. |*| replace:: \ :sup:* \

.. toctree:: :hidden:

development_workflow
pep8
../gitwash/gitwash
reviewing_prs
../triage
adding_new
../core-dev/index
../missing-bits
NumPy testing guidelines <https://numpy.org/devdocs/reference/testing.html>
writing_test_tips
devpy_test
debugging_linalg_issues
How to contribute documentation <https://numpy.org/devdocs/dev/howto-docs.html>
rendering_documentation
adding_notebooks
benchmarking
cython
compiled_code
public_cython_api