Skip to content

Commit

Permalink
Update labels (#745)
Browse files Browse the repository at this point in the history
### Summary

This PR updates the labels to the new list for the new ecosystem page.
There are a few changes here but it's not easy to split them into PRs as
many rely on eachother. To make reviewing easier, you can instead view
each commit.

1. cdad7f6 updates `labels.json` with
the new list of labels.
2. 8a0249a uses a short script to
automatically remove and update labels. This commit also adds the
`ibm_maintained` attribute to the repository model, which will be
required for the new page.
  
   <details><summary>Show script</summary>

   ```python
   from ecosystem.daos import DAO

   REMOVED_LABELS = [
       "Advocate mentorship project",
       "Circuit",
       "IBM maintained",
       "Julia",
       "Jupyter notebook",
       "Partner",
       "Education",
       "Hardware",
       "OpenQASM",
       "Productivity",
       "Prototype",
       "Quantum information",
       "Rust",
       "Visualization",
   ]

   dao = DAO("ecosystem/resources/")

   for repo in dao.get_all():
       # Pull IBM maintenance status into attribute
       if "IBM maintained" in repo.labels:
           repo.ibm_maintained = True

       # Update labels
       if "Circuit" in repo.labels:
           repo.labels.append("Circuit building tool")
       repo.labels = [l for l in repo.labels if l not in REMOVED_LABELS]
       repo.labels.sort()

       # Turn group attribute into label
       if repo.group == "transpiler_plugin":
           repo.labels.append("Transpiler plugin")
       if repo.group == "applications":
           repo.labels.append("Application package")
       if repo.group == "provider":
           repo.labels.append("Compute provider")

       dao.write(repo)
   ```
   </details>

The `group` attribute can be ignored by the new ecosystem page, so it
will remain until the current page it taken down.

3. 26e1594 manually reviews each member
again to make sure labels are still relevant.
4. 84061e3 adds some logic to have the
`ibm_maintained` attribute appear as a label on the current webpage.
Like #742, this makes the current website generation script a bit more
brittle. This is ok as it's a temporary trade-off; the current page will
not be online much longer.
5. 71e13b7 updates the issue template
with the new labels and `ibm_maintained` attribute. It also updates the
parser to handle the new attribute. See
https://github.com/frankharkins/ecosystem/pull/95/files for an example
of the parser working correctly.
  • Loading branch information
frankharkins authored Jul 4, 2024
1 parent cca6c6b commit b130a13
Show file tree
Hide file tree
Showing 68 changed files with 140 additions and 76 deletions.
26 changes: 12 additions & 14 deletions .github/ISSUE_TEMPLATE/submission.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,15 @@ body:
placeholder: None
validations:
required: false
- type: checkboxes
id: ibm_maintained
attributes:
label: IBM maintenance status
options:
- label: This project is officially maintained by IBM Quantum
required: false
validations:
required: false
- type: dropdown
id: group
attributes:
Expand All @@ -120,35 +129,24 @@ body:
label: Labels
multiple: true
options:
- Advocate mentorship project
- Algorithms
- Application package
- Chemistry
- Circuit
- Circuit building tool
- Circuit simulator
- Compute provider
- Converter
- Error correction
- Error mitigation
- Education
- Finance
- Game
- Hardware
- IBM maintained
- Julia
- Jupyter notebook
- Machine learning
- OpenQASM
- Optimization
- Paper implementation
- Partner
- Physics
- Productivity
- Prototype
- Provider
- Quantum information
- Rust
- Software development kit
- Transpiler plugin
- Visualization
- type: input
id: documentation
attributes:
Expand Down
3 changes: 3 additions & 0 deletions ecosystem/cli/website.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ def _load_from_file(
for category in json.loads((resources_dir / "labels.json").read_text()).values():
for label in category:
label_descriptions[label["name"]] = label["description"]
label_descriptions["IBM maintained"] = "Officially maintained by IBM Quantum"

# Website strings
web_data = toml.loads((resources_dir / "website.toml").read_text())
Expand Down Expand Up @@ -100,6 +101,8 @@ def _build_html(projects, web_data, label_descriptions, templates) -> str:
min_chars_description_hidden = 100
count_read_more = 1
for repo in projects:
if repo.ibm_maintained:
repo.labels.append("IBM maintained")
# Card tags
tags = ""
for index, label in enumerate(repo.labels):
Expand Down
1 change: 1 addition & 0 deletions ecosystem/models/repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ class Repository(JsonSerializable):
alternatives: str | None = None
affiliations: str | None = None
labels: list[str] = new_list()
ibm_maintained: bool = False
created_at: int | None = None
updated_at: int | None = None
website: str | None = None
Expand Down
20 changes: 5 additions & 15 deletions ecosystem/resources/labels.json
Original file line number Diff line number Diff line change
@@ -1,34 +1,24 @@
{
"types": [
{ "name": "Advocate mentorship project", "description": "Developed as part of the Qiskit Advocate Mentorship Program (QAMP)" },
{ "name": "Circuit", "description": "Builds or modifies quantum circuits" },
{ "name": "Application package", "description": "Applies quantum technology to real-world use cases" },
{ "name": "Compute provider", "description": "Provides access to remote quantum computers or simulators" },
{ "name": "Circuit building tool", "description": "Builds or modifies quantum circuits" },
{ "name": "Circuit simulator", "description": "Simulates quantum computers" },
{ "name": "Converter", "description": "Converts Qiskit objects (such as QuantumCircuit) for use in other programs" },
{ "name": "Game", "description": "Games or playful education resources" },
{ "name": "IBM maintained", "description": "Officially maintained by IBM Quantum" },
{ "name": "Julia", "description": "Written in the Julia programming language" },
{ "name": "Jupyter notebook", "description": "Uses or supports Jupyter notebooks" },
{ "name": "Paper implementation", "description": "Implements ideas from research papers" },
{ "name": "Partner", "description": "Part of the Qiskit Partnership Program" },
{ "name": "Software development kit", "description": "Helps develop Qiskit code" },
{ "name": "Transpiler plugin", "description": "Extends Qiskit's transpiler" }
{ "name": "Transpiler plugin", "description": "Extends Qiskit's transpiler to compile and optimize quantum circuits" }
],
"subjects": [
{ "name": "Algorithms", "description": "Implements quantum algorithms" },
{ "name": "Chemistry", "description": "Applies quantum computing to chemistry" },
{ "name": "Error correction", "description": "Performs or investigates quantum error correction" },
{ "name": "Error mitigation", "description": "Includes tools for mitigating errors" },
{ "name": "Education", "description": "For learning or teaching about quantum computing" },
{ "name": "Finance", "description": "Applies quantum computing to finance" },
{ "name": "Hardware", "description": "For quantum hardware design or quantum control" },
{ "name": "Machine learning", "description": "Uses or applies to machine learning" },
{ "name": "Optimization", "description": "Applies quantum computing to optimization problems" },
{ "name": "Physics", "description": "Applies quantum computing to physics" },
{ "name": "OpenQASM", "description": "Supports Open Quantum Assembly Language" },
{ "name": "Productivity", "description": "Tool to make working with Qiskit easier" },
{ "name": "Prototype", "description": "Written by the Qiskit prototypes team" },
{ "name": "Quantum information", "description": "Tool for quantum information experiments" },
{ "name": "Rust", "description": "Written in the Rust programming language" },
{ "name": "Visualization", "description": "Produces images, animations, or graphical user interfaces" }
{ "name": "Quantum information", "description": "Includes tools for quantum information experiments" }
]
}
1 change: 1 addition & 0 deletions ecosystem/resources/members/QPong.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ description = "A quantum version of the classic game Pong built with Qiskit and
licence = "Apache 2.0"
contact_info = "[email protected]"
labels = [ "Game",]
ibm_maintained = false
created_at = 1678827877.979398
updated_at = 1678827877.979398
stars = 119
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/QiskitOpt.jl.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ description = "QiskitOpt.jl is a Julia package that exports a JuMP wrapper for q
licence = "MIT license"
contact_info = "[email protected], [email protected], [email protected], [email protected], [email protected]"
affiliations = "@psrenergy and USRA"
labels = [ "Algorithms", "Julia",]
labels = [ "Algorithms", "Application package",]
ibm_maintained = false
created_at = 1673642669.650459
updated_at = 1673642669.650464
stars = 9
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/QoptKIT.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ description = "Optical circuits in Qiskit. Translate Qiskit circuits to quantum-
licence = "Apache License 2.0"
contact_info = "[email protected]"
affiliations = "National University of Ireland Maynooth"
labels = [ "Circuit simulator",]
labels = [ "Circuit simulator", "Converter",]
ibm_maintained = false
stars = 1
group = "other"
documentation = "https://soqcsadmin.github.io/QoptKIT/"
3 changes: 2 additions & 1 deletion ecosystem/resources/members/Quantum-MasterChef.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ url = "https://github.com/shravanpatel30/Quantum-MasterChef"
description = "A unique and immersive quantum computing game that combines the excitement of culinary arts with the challenges of quantum mechanics to teach about qiskit and quantum computing."
licence = "Apache License 2.0"
contact_info = "[email protected]"
labels = [ "Circuit", "Education", "Game",]
labels = [ "Game",]
ibm_maintained = false
stars = 2
group = "other"
1 change: 1 addition & 0 deletions ecosystem/resources/members/RasQberry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ description = "RasQberry is a functional model of IBM Quantum System One, and ca
licence = "Apache License 2.0"
contact_info = "[email protected]"
labels = [ "Game",]
ibm_maintained = false
created_at = 1674598082.072493
updated_at = 1674598082.072494
stars = 129
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/azure-quantum-python.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ name = "Azure Quantum"
url = "https://github.com/microsoft/azure-quantum-python"
description = "Submit quantum jobs written in Q#, Qiskit, or Cirq to the Azure Quantum service."
licence = "MIT license"
labels = []
labels = [ "Compute provider",]
ibm_maintained = false
created_at = 1715084759.598566
stars = 117
group = "provider"
3 changes: 2 additions & 1 deletion ecosystem/resources/members/bosonic-qiskit.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ name = "Bosonic Qiskit"
url = "https://github.com/C2QA/bosonic-qiskit"
description = "NQI C2QA project to simulate hybrid boson-qubit systems within Qiskit."
licence = "BSD 2-Clause Simplified or FreeBSD license"
labels = [ "Physics",]
labels = [ "Physics", "Application package",]
ibm_maintained = false
created_at = 1678827878.841977
updated_at = 1678827878.841978
stars = 44
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/caml_qiskit.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ url = "https://github.com/dakk/caml_qiskit"
description = "OCaml wrapper for Qiskit quantum computing toolkit"
licence = "MIT license"
contact_info = "[email protected]"
labels = []
labels = [ "Converter",]
ibm_maintained = false
stars = 9
group = "other"
documentation = "https://dakk.github.io/caml_qiskit/"
3 changes: 2 additions & 1 deletion ecosystem/resources/members/circuit-knitting-toolbox.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ url = "https://github.com/Qiskit-Extensions/circuit-knitting-toolbox"
description = "Decompose large circuits into smaller, hardware-executable circuits, then use their results to reconstruct the original circuit's outcome. This toolbox includes entanglement forging, circuit knitting, and classical embedding."
licence = "Apache License 2.0"
contact_info = "[email protected]"
labels = [ "Algorithms", "Circuit",]
labels = [ "Algorithms", "Circuit building tool",]
ibm_maintained = false
created_at = 1670427445.884067
updated_at = 1670427445.884068
stars = 67
Expand Down
1 change: 1 addition & 0 deletions ecosystem/resources/members/dense-ev.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ licence = "Apache License 2.0"
contact_info = "[email protected]"
affiliations = "University of Illinois at Urbana-Champaign"
labels = [ "Paper implementation",]
ibm_maintained = false
stars = 9
group = "other"
reference_paper = "https://arxiv.org/abs/2305.11847"
3 changes: 2 additions & 1 deletion ecosystem/resources/members/dsm-swap.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ name = "dsm-swap"
url = "https://github.com/qiskit-community/dsm-swap"
description = "A doubly stochastic matrices-based approach to optimal qubit routing."
licence = "Apache License 2.0"
labels = [ "Paper implementation", "Circuit",]
labels = [ "Circuit building tool", "Paper implementation", "Transpiler plugin",]
ibm_maintained = false
created_at = 1678827878.56605
updated_at = 1678827878.566051
stars = 7
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/dynacir.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ url = "https://github.com/derek-wang-ibm/dynacir"
description = "Dynacir is a transpilation plugin for Qiskit that optimizes dynamic quantum circuits."
licence = "Apache License 2.0"
affiliations = "IBM Quantum"
labels = []
labels = [ "Transpiler plugin",]
ibm_maintained = false
stars = 0
group = "transpiler_plugin"
3 changes: 2 additions & 1 deletion ecosystem/resources/members/ffsim.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ url = "https://github.com/qiskit-community/ffsim"
description = "ffsim is a software library for simulating fermionic quantum circuits that conserve particle number and the Z component of spin."
licence = "Apache License 2.0"
affiliations = "IBM"
labels = [ "Chemistry", "Circuit simulator", "IBM maintained", "Rust",]
labels = [ "Chemistry", "Circuit simulator", "Application package",]
ibm_maintained = true
website = "https://qiskit-community.github.io/ffsim/"
stars = 19
group = "applications"
1 change: 1 addition & 0 deletions ecosystem/resources/members/mitiq.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ url = "https://github.com/unitaryfund/mitiq"
description = "Mitiq is a Python toolkit for implementing error mitigation techniques on quantum computers."
licence = "Apache 2.0"
labels = [ "Error mitigation",]
ibm_maintained = false
created_at = 1678827878.932437
updated_at = 1678827878.932437
stars = 344
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/mthree.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ description = "Matrix-free Measurement Mitigation (M3). Reduce the effects of re
licence = "Apache 2.0"
contact_info = ""
alternatives = ""
labels = [ "IBM maintained", "Error mitigation",]
labels = [ "Error mitigation",]
ibm_maintained = true
created_at = 1678827878.805163
updated_at = 1678827878.805164
stars = 35
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/openqasm.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ url = "https://github.com/openqasm/openqasm"
description = "An imperative programming language for near-term quantum computing. Describe quantum programs by using the measurement-based quantum circuit model with support for classical feedforward flow control based on measurement outcomes."
licence = "Apache 2.0"
affiliations = "OpenQASM specification contributors"
labels = [ "OpenQASM",]
labels = []
ibm_maintained = false
created_at = 1660223774.444544
updated_at = 1660223774.44455
website = "https://openqasm.com/"
Expand Down
1 change: 1 addition & 0 deletions ecosystem/resources/members/pennylane-qiskit.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ url = "https://github.com/PennyLaneAI/pennylane-qiskit"
description = "The PennyLane-Qiskit plugin integrates the Qiskit quantum computing framework with PennyLane's quantum machine learning capabilities."
licence = "Apache 2.0"
labels = [ "Converter",]
ibm_maintained = false
created_at = 1678827878.782751
updated_at = 1678827878.782752
stars = 175
Expand Down
1 change: 1 addition & 0 deletions ecosystem/resources/members/povm-toolbox.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ contact_info = "[email protected]"
alternatives = "_No response_"
affiliations = "_No response_"
labels = [ "Quantum information",]
ibm_maintained = false
stars = 6
group = "other"
documentation = "https://qiskit-community.github.io/povm-toolbox/"
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ description = "Train and use quantum kernels for machine learning. This toolkit
licence = "Apache 2.0"
contact_info = ""
alternatives = ""
labels = [ "Prototype", "Machine learning",]
labels = [ "Machine learning", "Application package",]
ibm_maintained = false
created_at = 1645480343.964777
updated_at = 1645480343.964777
stars = 39
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/purplecaffeine.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ url = "https://github.com/IceKhan13/purplecaffeine"
description = "Project is aimed to create simple general interface to track quantum experiments, store and search them in an easy way."
licence = "Apache License 2.0"
affiliations = "QAMP"
labels = [ "Productivity", "Jupyter notebook",]
labels = []
ibm_maintained = false
created_at = 1688661859.080258
updated_at = 1688661859.080264
stars = 6
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/pyRiemann-qiskit.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ description = "A library for supervised machine learning based on quantum comput
licence = "BSD 3-Clause \"New\" or \"Revised\" license"
contact_info = "[email protected]"
affiliations = "pyRiemann (https://github.com/pyRiemann)"
labels = [ "Machine learning",]
labels = [ "Machine learning", "Application package",]
ibm_maintained = false
stars = 21
group = "applications"
documentation = "https://pyriemann-qiskit.readthedocs.io/"
1 change: 1 addition & 0 deletions ecosystem/resources/members/pytket-qiskit.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ url = "https://github.com/CQCL/pytket-qiskit"
description = "An extension to Pytket (a python module for interfacing with CQC tket) that allows Pytket circuits to be run on IBM backends and simulators, as well as conversion to and from Qiskit representations."
licence = "Apache 2.0"
labels = [ "Converter",]
ibm_maintained = false
created_at = 1661869851.523229
updated_at = 1661869851.523229
stars = 13
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/qBraid.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ licence = "GNU General Public License (GPL)"
contact_info = "[email protected]"
alternatives = "There are some alternatives to individual modules within the qBraid-SDK e.g. to execute a Qiskit circuit on an AWS device, you could use the qiskit-braket-provider. However, there aren't any other existing projects that support the same matrix of quantum program types and backends through a single, unified interface."
affiliations = "qBraid Co."
labels = [ "Circuit", "OpenQASM", "Converter", "Software development kit",]
labels = [ "Circuit building tool", "Converter", "Software development kit",]
ibm_maintained = false
created_at = 1690263743.561744
updated_at = 1690263743.56175
website = "https://qbraid.com"
Expand Down
1 change: 1 addition & 0 deletions ecosystem/resources/members/qdao.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ licence = "Apache License 2.0"
contact_info = "[email protected]"
affiliations = "Institute of Computing Technology, Chinese Academy of Sciences."
labels = [ "Circuit simulator",]
ibm_maintained = false
stars = 7
group = "other"
3 changes: 2 additions & 1 deletion ecosystem/resources/members/qiskit-aer.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ name = "Qiskit Aer"
url = "https://github.com/Qiskit/qiskit-aer"
description = "High-performance quantum computing simulators with realistic noise models."
licence = "Apache 2.0"
labels = [ "IBM maintained", "Circuit simulator",]
labels = [ "Circuit simulator",]
ibm_maintained = true
created_at = 1636403010.377695
updated_at = 1636403010.377697
stars = 467
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/qiskit-algorithms.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ description = "A library of quantum algorithms for near-term quantum devices wit
licence = "Apache License 2.0"
contact_info = "[email protected]"
affiliations = "IBM Quantum"
labels = [ "Algorithms",]
labels = [ "Algorithms", "Application package",]
ibm_maintained = false
stars = 89
group = "applications"
documentation = "https://qiskit-community.github.io/qiskit-algorithms/"
3 changes: 2 additions & 1 deletion ecosystem/resources/members/qiskit-alice-bob-provider.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ name = "Alice & Bob Qiskit provider"
url = "https://github.com/Alice-Bob-SW/qiskit-alice-bob-provider"
description = "Access Alice & Bob QPUs and emulators using Qiskit."
licence = "Apache 2.0"
labels = []
labels = [ "Compute provider",]
ibm_maintained = false
created_at = 1715084994.136498
stars = 19
group = "provider"
3 changes: 2 additions & 1 deletion ecosystem/resources/members/qiskit-aqt-provider.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ description = "Qiskit provider for ion-trap quantum computers from Alpine Quantu
licence = "Apache License 2.0"
contact_info = "[email protected]"
affiliations = "Alpine Quantum Technologies GmbH"
labels = []
labels = [ "Compute provider",]
ibm_maintained = false
website = "https://www.aqt.eu/qc-systems/"
stars = 26
group = "provider"
Expand Down
3 changes: 2 additions & 1 deletion ecosystem/resources/members/qiskit-braket-provider.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ name = "Qiskit Braket provider"
url = "https://github.com/qiskit-community/qiskit-braket-provider"
description = "Execute Qiskit programs on AWS quantum computing hardware devices through Amazon Braket."
licence = "Apache 2.0"
labels = []
labels = [ "Compute provider",]
ibm_maintained = false
created_at = 1715085130.096724
stars = 56
group = "provider"
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ url = "https://github.com/KMU-quantum-classroom/qiskit-classroom-converter"
description = "Convert quantum circuits, matrices, and bra-ket strings. This converter includes the following conversion functions: quantum circuit to bra-ket notation, quantum circuit to matrix, matrix to quantum circuit, bra-ket notation to matrix."
licence = "Apache License 2.0"
labels = [ "Converter",]
ibm_maintained = false
website = "https://github.com/KMU-quantum-classroom"
stars = 2
group = "other"
Loading

0 comments on commit b130a13

Please sign in to comment.