Contributing to Pyccel#

Firstly, thanks for your interest in contributing code to Pyccel!

We welcome any and all contributions.

There are many ways to help with the Pyccel project which are more or less involved. The following is a summary of how you can do this.

Asking questions#

For simple questions (e.g. installation problems), we encourage you to use the discussions tab.

Answering questions#

Questions are sometimes asked in the discussions tab or in issues. Any help answering these questions is appreciated as it helps our users find solutions as fast as possible.

Reporting issues#

When reporting issues please include as much detail as possible about your operating system, and Python version. Whenever possible, please also include a brief, self-contained code example that demonstrates the problem.

Requesting features#

To request a new feature, please use the discussions tab. This allows us to discuss the best implementation in the target languages before creating an issue to work on.

Documentation#

Reviewing the existing documentation is a great way to help out! We need to ensure that it is up-to-date and relevant, and that the examples are clear, relevant, and work correctly.

Missing documentation can also be added to improve the existing docs.

Please open a pull request to add or change anything in the docs.

Reviewing a pull request#

There are many pull requests and reviewing them is a great way to help things get to the devel branch faster. This is also a really good way to get to grips with the code base as you will see examples of many different areas of the code. It’s incredibly helpful to have pull requests go through as many reviews as possible, to make sure the code change makes sense, is documented, and is efficient and clear. As the clarity is subjective, more eyes can only improve the code base. The review process is described in the developer docs, keep an eye out for pull requests tagged needs_initial_review.

Contributing code#

Before contributing we strongly recommend you check out the developer docs. We try to flag good-first-issues. These are either issues which can be fixed by following the example provided by a similar solution which is already implemented, or issues which only concern one of the Pyccel stages.