Contributing to PennyLane

Thank you for taking the time to contribute to PennyLane!

PennyLane is a collaborative effort with the quantum computation and machine learning communities. We invite you to join our team in whatever capacity works best for you.

Learn more about contributing to open source in general with this great guide.

Please pay attention to our code of conduct and help us make quantum computing a welcoming place for all.

How can I get involved in the community?

Start by experimenting with PennyLane. Figure out how to do things and form opinions about what you like and dislike about the ecosystem. What made your life easier? What was a source of difficulty and confusion? We can always use more user feedback. You can use our demonstrations and blog to learn about features and applications.

As you get a feel for the user experience, you can start peeking under the hood and finding out how the package accomplishes its tasks.

To chat directly with the dedicated team behind PennyLane or other members of our community, you can join our PennyLane discussion forum.

Sometimes, it might take us a couple of hours to reply - please be patient!

How can I contribute?

It’s up to you!

  • Write a Community Demo. - Show off your PennyLane application on our community page. We take Jupyter notebooks, scripts with explanations, or entire repositories. Community demos are a great way to showcase research and new papers.

  • Be a part of our community. - Respond to questions, issues, and provide updates on the projects/experiments you are investigating with PennyLane.

  • Test the cutting-edge PennyLane releases. - Clone our GitHub repository, and keep up with the latest features. Learn how to install PennyLane from source here. If you run into any bugs, make a bug report on our issue tracker.

  • Report bugs. - If you come across any bugs or issues, make a bug report. PennyLane has a form to help walk you through submitting a bug report. Providing a complete, detailed description helps us figure out the source of the problem faster.

  • Suggest new features and enhancements. Use our Feature Request form and let us know what will make PennyLane even better for you.

  • Contribute to the PennyLane repository itself. See more below.

Ways to contribute to the PennyLane repository

Want to help with the repository itself? There are several different avenues for that:

  • Good first issues - Don’t know where to start? Take a look at our “good first issue” label. Issues with this label are meant for newcomers and should contain fewer challenging bits. If the issue ends up trickier than we assumed, you can start a conversation on the issue page or open up a “Work in Progress” PR to ask for help. Developers new to PennyLane can use the requirements-dev.txt file to install dependencies required for PennyLane code development. Simply run pip install -r requirements-dev.txt from the root of the repository.

  • Documentation- If you would like to add to our documentation or suggest improvements/changes, let us know or submit a pull request directly. Changes that fix rendering issues, grammar, or a broken code example help us a lot too. Take a look at the documentation guide for more specifics.

  • Add a new Operator or Template. Circuit structures crop up in literature faster than we can add them, so we are always looking for help. Take a look at the Contributing operators page for more information.

  • Develop a PennyLane plugin - PennyLane is designed to be device and quantum-framework agnostic. Users can switch a circuit’s device to any other compatible device with barely any code changes. We would love to support even more devices and quantum frameworks. If you would like to write a PennyLane plugin, see the page on “Building a plugin”.

Did we catch your interest?

Pull requests

If you would like to contribute directly to the PennyLane codebase, make a fork of the master branch and submit a pull request. We encourage everyone to fork and modify the PennyLane source code. However, we have a couple of guidelines on pull requests to ensure the master branch of PennyLane conforms to existing standards and quality. We can help you meet these standards during our code review process, so don’t let those stop you from getting started. Pull Requests do not need to be big and complicated. We appreciate even minor bug fixes or documentation improvements.

See our Development Guide and the page on submitting a pull request in particular for more information.

Thank you for your interest in PennyLane! 🎆