The Ultimate Guide for Contributing to Qiskit — No Matter Your Background

Qiskit
Qiskit
Published in
8 min readMay 25, 2021

By Abby Mitchell, Qiskit Developer Advocate

One of the best things about Qiskit is the fact that it’s Open Source, enabling anyone to participate in building a future for quantum computing. We wouldn’t be where we are today without the ongoing support of our diverse and interdisciplinary contributors.

Whether you’re a quantum wizard, a Python software developer, or someone who just can’t stop talking about qubits, there are a TON of ways to use your skills to contribute to Qiskit and the growing Qiskit community. This article aims to help guide you toward the types of contributions that are a good fit for your interests and background.

Additionally, if you’re interested in applying to be a Qiskit Advocate, these are the types contributions we take into consideration when selecting our yearly cohorts!

One last thing before we dive in, the Qiskit community is proud of the way we interact with each other, with respect and kindness. We trust you will do so, too. You can read our Code of Conduct here.

First Time Contributions

Everyone has to start somewhere. If you haven’t contributed to open source before, these are great options for getting to know the fantastic Qiskit community and building your confidence. They are also a great option if you prefer to commit your time in small nuggets:

  • Participate in the Qiskit Slack: This is a great place to discuss ideas and help others.
  • Answer Qiskit related questions on Quantum Computing StackExchange or StackOverflow: Many Qiskitters share their struggles on this forum. If you like problem solving, lend them a hand!
  • Upvote and comment on GitHub Issues: This is a great way to give feedback to maintainers and help get important bugs and features prioritized. In a related aspect, trying to reproduce old issues is also very useful. Sometimes the problem is not there anymore and the issue can be closed. Or, the API changed and the code snippet necessary to reproduce the issue is slightly different in the current main branch.

These types of contributions may not seem like much, but they quickly add up. The support you give to other Qiskitters could be the difference between someone giving up on quantum or managing to push through their issue and reach their next goal. Quantum computing is an emerging and interdisciplinary field, and we make the most progress when we collaborate and support each other.

Code

The code that forms the Qiskit ecosystem is spread across multiple GitHub Repositories in 3 separate organizations:

  • Qiskit: These repos make up the software development kit for working with quantum computers (pulses, circuits, algorithms, tutorials).
  • Qiskit Community: These repos cover the supplementary resources and applications that support the community (qiskit textbook, qiskit.org, qiskit challenges)
  • Qiskit Partners: These repos contain the various Qiskit providers for a range of backends (e.g. IBM Quantum Services, IonQ)

Take a look at the different repos to find an area most suited to your quantum/coding background.

Once you’ve selected a repo check out the CONTRIBUTING.md file for the most important information. There are a number of ways to make code contributions, including:

  • Opening Issues (e.g. if you’ve found a bug or would like to request a new feature)
  • Fixing Bugs
  • Increasing test coverage
  • Reviewing/commenting on other PRs
  • Extend documentation, tutorials and textbook chapters (see next section)

If you’re new to Open Source:

  • Check out the labeling system for the repo you are looking at, as this will help you find issues that are most relevant to you. Some repos (such as qiskit-terra) will label issues with a ‘good first issue’ tag to help contributors who are new to the community get started.
  • Read this guide for some general advice on contributing to Open Source projects.

Create your own Qiskit project

If you’ve created a substantial project using Qiskit, consider open sourcing it! You can start by publishing it to your own GitHub and making it public so others can use and contribute to it.

Documentation

If you find formatting errors, mistakes, or gaps in our documentation, or would like to add new sections, you can submit issues and PRs in the same way you would for code.

Qiskit documentation broadly falls into 3 categories:

  • API Reference — to contribute to this, you need to go to the relevant repo in the Qiskit GitHub that contains the code for the section you want to work on.
  • Qiskit Textbook — you can contribute to the repo here. Also, most pages in the textbook have a ‘Contribute to GitHub’ link on the right hand panel that will take you to the exact file you want to work on.
  • Qiskit Tutorials — you can contribute to the repo here.

NOTE: if you find typos in a particular tutorial or textbook chapter, you can PR a fix for all of them at the same time, rather than on PR per each typo. This makes things easier for the maintainers and your PR will likely be addressed quicker.

Online Content

When you can’t figure out how to do something, your code just won’t work, you’re stuck on your homework or you just want to know how other people approach a particular problem, what is the first thing you do? Well I don’t know about you, but I type my problem into Google and pray to Shrödinger that some nice blogger or YouTuber has already tackled the same topic.

If you have a talent for writing, speaking or video editing, these are some great options for contributing to Qiskit:

  • Blogs: The most effective types of blogs tend to be instructional (e.g. How to Put Your Cat into Superposition). If you’ve figured out how to do something cool with qiskit, tell the rest of us! Any and all blogs count as Qiskit contributions, regardless of the platform. If you have a story you think the entire Qiskit Community would be interested in, then you can write for the Qiskit blog by pitching here.
  • YouTube: It’s generally good practice to keep videos short (5–15 min) to maintain high engagement. If you are working on a long piece, consider breaking it up into multiple videos to make it more manageable for viewers.
  • Podcasts: This is a great option if you’re camera shy, but the lack of visual aids means you should make sure to explain difficult concepts very clearly and carefully.
  • Virtual Talks/Workshops: This includes giving presentations, demos and hands on workshops at meetups, events and conferences. If you are doing an in-person talk, you can often get organizers to record your talks and then upload them to YouTube afterwards. If you’re nervous about talking in front of people, it’s a good idea to start at smaller gatherings, and consider presenting with a buddy!

Events

Participation:

IBM Quantum and Qiskit organize a huge range of events every year. Not even a global pandemic has stopped us — we’ve replaced our in person events with virtual alternatives. Participating in these events and performing well is a great way to build your reputation in the field. It’s also a great way to grow your network and work with talented people from a diverse range of backgrounds.

Some of our events (past and future) include the following:

Organization

A ton of work goes in behind the scenes to put together a fun and engaging Qiskit event, if you’re up for the challenge and want to organize your own, then go for it! You don’t have to start with a 1000+ participant hackathon. Get some experience running smaller events and clubs first before taking on larger ones.

For some guidance on organizing quantum events check out the following resources:

Academia

If you are a researcher in the field of quantum computing, then you are probably already working on publications. There are two main ways that Qiskit can help you in this context:

  • Qiskit as a tool: The only thing better than a paper is a paper with code. Publishing your Qiskit code as part of your paper helps promote the openness and reproducibility of your work. If you aren’t already using Qiskit code for your research, consider doing so, as it can demonstrate practical applications of your research.
  • Comparing with and extending Qiskit: For example, if you are publishing a paper developing cutting edge algorithms, you may need to do some comparisons with some existing algorithms. Qiskit includes many algorithms that you can use for your benchmarking.

You can see an example paper using Qiskit here.

Translations

Qiskitters all over the globe can benefit from documentation that is accessible in their native language. If you’re fluent in another language, you can contribute to Qiskit Documentation Localization here.

Qiskit Localization Contributors can also earn badges at 4 different levels for their translations

Conclusion

In sum, there are plenty of ways to contribute to the Qiskit open source community — and even more than we mention here. Why not create quantum art about Qiskit, devise quantum-inspired recipes and share them with the community, or host quantum cultural exchanges? Anything that contributes to the improvement of the Qiskit code or the Qiskit community counts as a contribution. After all, diverse set of contributions and contributors is what makes Qiskit the best open source quantum community in the world.

Thank-you, gracias, 谢谢, danke, 🙏

--

--

Qiskit
Qiskit

An open source quantum computing framework for writing quantum experiments and applications