doc/source/dev/contributor/contributor_toc.rst
.. _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
: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).
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.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 standardsunit-tests - how to write and run unit tests for SciPy with the pytest
frameworkdocs - how to write reStructuredText documentation that complies with
docstring standards, build documentation locally with Sphinx, and view
documentation built during continuous integration checkstoc-benchmarking - how to benchmark code with airspeed velocitycompiled-code - how to add fast, compiled code to SciPycontinuous-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 uppep8-scipy gives some tips for ensuring that your code is PEP8 compliantgit-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 firstreviewing-prs explains how to review another author's SciPy code locallytriaging explains how to curate issues and PRs, as well as how GitHub team permissions work for SciPyadding-new has information on how to add new methods, functions and classescore-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 contributorsmissing-bits - code and documentation style guide.. _unit-tests:
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 testsdevpy-test documents spin test, the command to build SciPy and
run tests locallydebugging-linalg-issues.. _docs:
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)contributing-docs contains information on how to render and contribute to the SciPy documentationadding-notebooks explains how to add pages in Jupyter notebook/MyST format to the SciPy documentation (interactive or not).. _toc-benchmarking:
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 startedother-languages discusses the use of C, C++, and Fortran code in SciPypublic-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