Introducing the Qiskit Ecosystem: Join Today!
By Abby Mitchell and Luciano Bello
If you’ve been paying close attention to our website and our Qiskit Community Github Organization over the last few months, you may have noticed a bunch of activity around the Qiskit Ecosystem! The Ecosystem is a new way to spotlight your project for the broader Qiskit community, improve its quality and credibility, and check its compatibility with upcoming versions of Qiskit.
What is the Qiskit Ecosystem?
The Qiskit Ecosystem is a catalog of open-source projects, tools, utilities, libraries, and tutorials from a broad community of developers and researchers. The goal of the Ecosystem is to celebrate, support and accelerate development of quantum technologies surrounding Qiskit. Any open-source project that uses one of the main Qiskit packages and fits the criteria of one of the specified “Tiers” can apply to join the Ecosystem.
What do the different Tiers mean?
If you look at the filters on the qiskit.org/ecosystem page you will see a list of Tiers that each project in the Ecosystem falls under. These Tiers are categories designed to help users understand what different types of projects exist and which are affiliated or maintained by IBM Quantum or not.
There are three tiers today, but these categories may be extended in future:
- Main — these are the closest packages to Qiskit (Terra) without being Qiskit itself. These packages are actively developed and maintained by teams within IBM Quantum. This includes your favorites such as Qiskit Experiments, the Qiskit Applications modules, Qiskit Aer etc.
- Extensions— these are projects developed and maintained by IBM Quantum teams but do not form part of the Main package group. They aim to extend the Main packages and have more niche applications. This group also includes projects from members of the Qiskit Partners Program, as well as prototypes supporting cutting-edge research on quantum algorithms and applications.
- Community — these are projects that are supported by the broader community which are not maintained by the IBM Quantum teams or aren’t officially affiliated with IBM. They nonetheless show promising work and hence we want to recognize their impact and commitment to Quantum Open Source Software and the Qiskit community.
What do the test results mean?
Members of the Qiskit Ecosystem can configure unit tests to run every week to verify if a given project is compatible with different versions of the Qiskit Main package it depends on.
The test results for a given version are then shown on the website, so users can easily see which versions of Qiskit they can use with the member project. Four different test results are normally shown for each project:
- Standard — This test result indicates that the tests were run using the version of Qiskit specified in the member project’s dependency list (e.g. in their
requirements.txt
file) - Stable — This test result indicates that the tests were run using the latest stable version of Qiskit
- Development — This test result indicates that the tests were run using the latest development version of Qiskit (i.e. the version in the main branch)
- Last Passing Version — This row in the test table indicates the latest version of Qiskit for which the tests passed. E.g. if the tests show failures for v0.20.0 and above, but pass for v0.19.2 then this row will show v0.19.0
Why should you join the Qiskit Ecosystem?
If you work on an open source project that uses one of the Main Qiskit packages, then you should consider joining the Ecosystem for a few reasons:
1. Improve the quality and credibility of your project
By joining the Qiskit Ecosystem, your project is able to have regular automated tests run against it to verify its compatibility with different versions of Qiskit. This emphasis on regular testing encourages software development best practices among members of the Ecosystem and highlights this to potential users of your project, increasing trust in your project as a reliable tool for quantum development.
While enabling the test configuration is currently optional for joining the program, we encourage all new members to enable this in order to make the most out of the Qiskit Ecosystem features. The tests are completely automated with Github Actions, only requiring an initial setup and a few unit tests (which you may already have!). You can find more details about configuring tests in the Ecosystem documentation here.
2. Easily check your project’s compatibility with upcoming Qiskit versions
The Ecosystem automated tests are run every week, meaning that after the initial set-up you can continue to monitor the compatibility of your project with Qiskit even as new versions are developed and released.
If the automated tests fail for your project with a certain version of Qiskit, you can easily see which version is failing and see the corresponding test logs associated with it in order to easily identify the cause of the problem.
In addition, the tests are also run using the development version of Qiskit (not just the latest release). This means that if an upcoming change in the next Qiskit release causes your project to break, you can find out before the official release. This gives you the ability to anticipate and fix bugs before your users are affected.
3. Have your project featured on qiskit.org!
Every member of the Qiskit Ecosystem gets displayed on the Qiskit website at qiskit.org/ecosystem. Each project gets its own tile with information about what the project does, which Tier it belongs to, test results, and links to the project Github repo. This is a great way to attract new users (and contributors!) to your project.
In addition, your project will be featured in the README of the both the Qiskit Ecosystem and Awesome Qiskit Github repos!
How can I join the Qiskit Ecosystem?
All the information about how to join the ecosystem (as well as lots of other info about how tests are run etc.) can be found in the Qiskit Ecosystem Github repository.
The TL;DR of how to join is:
- Follow the minimum requirements for joining the ecosystem here.
- Open an issue on the Ecosystem Github to submit your project
- GitHub CI will run preliminary tests, if they pass a PR will be opened
- An Ecosystem maintainer reviews the PR and merges
- Your project is now a member of the Ecosystem and will be featured on the website within 24 hours!
Created by the Qiskit Community, for the Qiskit Community
Not only is the Qiskit Ecosystem designed to help promote and support quantum open-source software, but is itself open-source too!
The development of the Ecosystem infrastructure was a joint effort by internal IBMers, Qiskit maintainers and Qiskit Advocates. Qiskit Advocates Michael Rollin and Balaji Seetharaman made crucial contributions to the project as part of the Qiskit Advocates Mentorship Program (QAMP). You can see what they say about the project below:
The Ecosystem was fun to code and I hope it becomes useful for people to use to discover cool projects and nice tools to use in their experiments or in their general quantum crafting. (Michael Rollin, Qiskit Advocate)
The Ecosystem project helps the Quantum Community to manage their projects and get them recognized… Thanks to my mentor Iskandar Sitdikov and Qiskit Advocate Program! (Balaji Seetharaman, Qiskit Advocate)
If you want to become a Qiskit Advocate and participate in the QAMP you can take a look at the application guide here.
What’s Next?
The Qiskit community is continuously improving the Ecosystem, so look out for the following features coming up next in the roadmap:
- Deprecation warnings — as well as pass/fail results for tests, users will be able to see if tests throw any deprecation warnings for a given project.
- Projects can have the testing feature enabled using dependencies other than Qiskit Terra (e.g. Qiskit Nature).
- More filtering and sorting of projects on qiskit.org/ecosystem.
- Additional info to be added to project tiles on qiskit.org/ecosystem, such as how to cite.
This concludes our overview of the Qiskit Ecosystem! If you have any feedback, or would like to request a particular feature for the Ecosystem please feel free to let us know by opening an issue in the Ecosystem Github!