Contributing to SciPy
slides: https://hackmd.io/@melissawm/rJZKaomD5
repo: https://github.com/scipy/scipy
docs: https://scipy.org
What is SciPy?
SciPy is a set of fundamental algorithms for scientific computing in Python. It includes:
numerical integration
interpolation
signal processing
linear algebra, including eigenvalue problems
algebraic and differential equations
statistics
mathematical optimization
It is based on NumPy arrays, but also includes sparse matrices and k-dimensional trees manipulations.
The history of SciPy
Initial release in 2001
Over 600 unique code contributors
Thousands of dependent packages
Over 100,000 dependent repositories
Millions of downloads per year
How is it organized?
SciPy wraps highly-optimized implementations written in low-level languages like Fortran, C, and C++. (link)
How can you contribute?
https://scipy.org/contribute/
Writing code
Reviewing Pull Requests
Summarize a long-running discussion on an issue or PR
Triage issues and PRs
Check if older bugs are still present
Find duplicate issues and link related ones
Add good self-contained reproducers to issues
Test proposed changes
Developing educational materials
We’d also welcome worked examples, notebooks, and videos.
Website development
Graphic design
Fundraising (SciPy 2019 talk)
What file should I edit?
Generated/compiled files
A .pyx file is compiled by Cython to a .c file.
A .pxd file is a header for Cython code
A .pyf.src file is a signature file used to wrap a Fortran file with numpy.f2py
_add_newdocs.py
Narrative documentation
grep
is your friend!
Building to see your changes
python dev.py
or
python dev.py --build-only
Building the documentation
python dev.py - - doc
Submitting your Pull Request
Commit messages
Pull request reviews
Reviews should be constructive and friendly; back-and-forths are expected and we can help you complete your PR!
CI
An example (PR#16258)
It is not possible in general to run all these tests locally, so CI can catch it on GitHub.
Final thoughts
Obrigada!
@melissawm
Resume presentation
Contributing to SciPy slides: https://hackmd.io/@melissawm/rJZKaomD5 repo: https://github.com/scipy/scipy docs: https://scipy.org
{"metaMigratedAt":"2023-06-17T01:14:15.212Z","metaMigratedFrom":"YAML","title":"Contributing to SciPy","breaks":true,"description":"View the slide with \"Slide Mode\".","slideOptions":"{\"transition\":\"fade\",\"theme\":\"white\"}","contributors":"[{\"id\":\"be2d494e-01c4-4675-ab56-1e1bfe3a6678\",\"add\":15239,\"del\":10703}]"}