Ways to contribute

5 ways to contribute to Scientific Python without coding#

Scientific Python is code designed by scientists and engineers for science and engineering. All projects have a straightforward license that determines what you can and cannot do; typically, you may use and modify the software, as long as you give credit to the original authors. The entire ecosystem relies on peer review and community production, so your contribution is really important. There are many ways to contribute outside of coding—we’ll discuss a few.

Issue testing, reproducing and triaging#

Every Scientific Python project has its own issue tracker where users report bugs, suggest UX improvements, and discuss technical problems they are having. This lets developers support users and track improvement to the projects. One way in which you can contribute is by verifying and triaging issues.

For example:

  1. You can check if older issues are still relevant and let developers know if they were solved.
  2. You can find duplicate issues and link related ones, since usually the same problems are reported multiple times.
  3. You can add self-contained code snippets that reproduce issues, thereby helping developers to find the problem and test solutions.
  4. You can label issues by adding appropriate tags. This usually requires triage rights, but you can just ask for them!

Reviewing PRs#

Pull requests (PRs) are the way in which Scientific Python projects incorporate new code. You can help, even if you’re not familiar with them, by:

  1. Summarizing discussions in PRs so that newcomers to the conversation can easily catch up without reading the whole thread.
  2. Testing proposed changes in PRs to make sure they function correctly and don’t break existing code.

Improving documentation#

Another way to contribute to a project is by improving it’s documentation. Documentation is crucial for every Scientific Python project since that is the way users learn how to use it. This doesn’t mean you need to write new documentation (which you can by following the docs contributing guide)—there are other ways you can help too.

  1. Many projects have tutorials which you can review and report confusing or missing parts.
  2. Find typos and minor errors in docs and report them in the docs repository issue tracker.
  3. Add code examples for the documented functions.
  4. To ensure functionality, test the pre-existing code samples provided in the documentation. Keep in mind that occasional version upgrades may cause the code samples to malfunction.
  5. If you feel like creating your own content, you can write your own guides and tutorials. There are several categories of materials you can produce: how-tos, deep-dive explanations, gallery examples, notebooks, videos, etc.
  6. Apart from content, you can also improve docs organization and style.

Translations#

Most Scientific Python projects are developed in English, but an increasing number use online platforms such as Crowdin to translate their interface, webpage, and documentation.

If you speak a language other than English and feel comfortable translating, this is yet another way you can help.

You can also help by creating introductory tutorials and guides in native languages to support the local developers around you.

Participating in the community#

Every Scientific Python project has a community of users, developers, maintainers, contributors, and volunteers that you can be part of.

You can participate in the community by:

  1. Joining discussion forums (Discourse, Discord, Gitter, Slack etc.)
  2. Joining community meetings and office hours
  3. Social media outreach - Tweet/Mastodon/LinkedIn/Instagram
  4. Writing blog posts
  5. If you’re familiar with the project, help the newcomers by responding to the issues
  6. Posting newsletter updates
  7. Organising code sprints and hackathons

As you’ve seen, there are many ways to contribute to Scientific Python! No matter what you have to offer, go ahead reach out to project maintainers: they will be happy to receive all the help they can get.

On this page