<style>
.reveal .slides {
font-size: 36px;
font-family: Palatino;
}
.reveal .slides h2 {
font-family: Palatino;
letter-spacing: 0.005em;
}
.reveal .slides h3 {
font-family: Palatino;
letter-spacing: 0.005em;
}
.reveal .slides h4 {
font-family: Palatino;
font-size: 48px;
letter-spacing: 0.005em;
}
.reveal pre {
display: block;
width: 95%;
}
.reveal pre code {
max-height: 500px;
font-size: 22px;
line-height: 24px;
}
ul {
font-size: 28px;
}
</style>
## Contributing to SciPy
- slides: `https://hackmd.io/@melissawm/rJZKaomD5`
- repo: `https://github.com/scipy/scipy`
- docs: `https://scipy.org`
---
### First things first
![](https://pbs.twimg.com/media/CCfUQh_UsAAXNKv?format=jpg&name=small)
*[Image by David Whittaker](https://twitter.com/rundavidrun/status/587671657193455616/photo/1)*
---
### 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)](https://scipy.org/faq/#how-can-scipy-be-fast-if-it-is-written-in-an-interpreted-language-like-python)
![](https://i.imgur.com/eYnLjOt.png)
- Code and documentation live in the same repository on github
- Website is developed in a separate repository (https://github.com/scipy/scipy.org)
- Teams structure https://scipy.org/teams/
- Meetings https://scientific-python.org/calendars/
---
### Let's look at the code!
https://github.com/scipy/scipy
---
### 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)](https://www.youtube.com/watch?v=dBTJD_FDVjU)
---
### Setting up your development environment
[Start here: Contributor quickstart guide](https://scipy.github.io/devdocs/dev/dev_quickstart.html)
---
### Alternatively: Using GitPod
[Start here: GitPod for SciPy development guide](https://scipy.github.io/devdocs/dev/contributor/quickstart_gitpod.html)
---
### 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
```bash
python dev.py
```
or
```bash
python dev.py --build-only
```
---
### Building the documentation
```
python dev.py --doc
```
---
### Submitting your Pull Request
- Commit messages
- There are some [guidelines for writing commit messages](https://scipy.github.io/devdocs/dev/contributor/development_workflow.html#writing-the-commit-message)
- Pull request reviews
- [Reviews](https://scipy.github.io/devdocs/dev/contributor/reviewing_prs.html#reviewing-pull-requests) should be constructive and friendly; back-and-forths are expected and we can help you complete your PR!
- CI
- [An example (PR#16258)](https://github.com/scipy/scipy/pull/16258)
- It is not possible in general to run all these tests locally, so CI can catch it on GitHub.
---
### Final thoughts
- https://scipy.org/community/
- Mailing list
- https://scientific-python.org/calendars
- Community and newcomer meetings
- [Good first issues](https://github.com/scipy/scipy/issues?q=is%3Aopen+label%3A%22good+first+issue%22+sort%3Aupdated-desc)
**Obrigada!** :heart:
**`@melissawm`**
---
{"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}]"}