Contributing#

PyMC is an open source, collective effort.There are many ways in which you can help make it better.And all of them are welcome!

Contribute as an individual#

PyMC is a joint effort of many people, each contributing to the areas they likeand have some expertise in, coordinating to try and cover all tasks.

Coding and documentation are the most common types of contributions, butthere are many more things that you can do to help PyMC which are just asimportant. Moreover, both code and docs require submitting PRs via GitHubto some of the repositories under thepymc-devs organization, andwhile we have aPull request step-by-step guide available, GitHub might not beeveryone’s cup of tea. If that is your case, don’t worry, you will bemore than welcome if you want to help.

Tip

Contact us onDiscourse if you want to contribute to the project but are not sure where you can contribute or how to start.

We also host office hours regularly to provide more support, especially to contributors.If you are interested in participatingsubscribe to theoffice-hours tag on Discourse.

Below there are some examples of non code nor doc contributions that could serve as an inspiration.If you have other ideas let us know onDiscourse to see if we can make it happen too.

  • Report a bug or make a suggestion for improvement byopening an issue in Github

  • Answer questions onDiscourse

  • Teach about PyMC and advertise best practices by writing blogs or giving talks

  • Help plan PyMCon

  • Help with outreach and marketing. This could include for example reaching out to potential sponsorcompanies, to people who could use PyMC in their work or making sure that academics who use PyMCcite it correctly in their work

  • Help with our fundraising efforts

  • Add timestamps tovideos from PyMCon

Contribute via Pull Requests on GitHub#

We have aPull request step-by-step and aPull request checklist page to help in all the steps of the contributingprocess, from before your first ever contribution to regular contributions as a core contributor.

Etiquette for code contributions#

  • When you start working working on an issue, open aDraft pull request as soon as you make your first commit (seePull request step-by-step).

  • Before opening a PR with a new feature, please make a proposal by opening anissue orDiscussion with the maintainers. Depending on the proposal we might direct you to other places such aspymc-experimental orpymc-examples.

  • Any issue without an open pull request is available for work.

    • If a pull request has no recent activity it may be closed, or taken over by someone else.

    • The specific timeframe for “recent” is hard to define as it depends on the contributor the specific code change, and other contextual factors. As a rule of thumb in a normal pull request with no other blockers there is typically activity every couple of days.

    • The core devs will make their best judgement when opting to close PRs or reassign them to others.

  • If unsure if an issue ticket is available feel free to ask in the issue ticket. Note however, that per the previous point an open pull request is way to claim an issue ticket. Please do not make unrealistic pledges in the issue tickets.

  • It’s okay if you are delayed or need to take a break, but please leave a comment in the pull request if you cannot get it to a state where it can be merged. Depending on the change (urgent bugfix vs. new feature) the core devs can determine if the PR needs to be reassigned to get the work done.

Code related contributions#

Join the discussion or submit a solution for an open issue.See open issues

Documentation related contributions#

See all open issues in documentationhere

New to the open source space?

If you are not sure where or how to start, take a look at thesprint materials(even if you plan on contributing on your own outside of sprint events).They are the most detailed guide available on contributing to PyMC alsowith advice on which contributions are good starting points.

Contribute as an institution#

Institutions can contribute in the following ways:

Contact PyMC at pymc.devs@gmail.com for more information.