The Project
QuTiP, the Quantum Toolbox in Python, is an open-source software to study and simulate quantum systems. It provides functionalities to define and simulate the dynamics of quantum systems and thus provides tools to develop an intuitive understanding of quantum mechanics. Apart from the educational aspect where QuTiP can be used to visualize and simulate simple quantum systems, there exists advanced functionalities that enable state-of-the-art research in open quantum systems using QuTiP. It provides the most comprehensive toolbox to characterize noise and dissipation affecting quantum systems as well as quantum information processing features.
QuTiP has been developed and maintained by a group of open-source contributors for several years and has been used for research, teaching and in the emerging quantum technology industry. The QuTiP community has grown immensely with several projects that build on top of it.
In this document we refer to the “QuTiP project” or “ the project” with reference to all software developed under the QuTiP Github organization, hosted at “www.github.com/qutip” and all related activities involving its community happening through its official channels.
The Community
QuTiP is at the center of a lively ecosystem and creative community. As of October 2020, QuTiP’s large community comprises over 80 code contributors and thousands of users that have downloaded the software over 300,000 times. QuTiP enables an infrastructure of other scientific libraries for the investigation of specific quantum physics or quantum information processing features.
There are several ways through which members of the wider QuTiP community can receive information on QuTiP. This is through any of its official channels: the Google forum; the qutip.org/news webpage tracking the releases on Github, and opening Issues on Github to file bug reports or discuss and proposed enhancements. Users are encouraged to contribute bug fixes or enhancements to the project with Pull Requests.
Governance
This governance document outlines the governance of the QuTiP project, in order to better serve the community and provide robust liveliness and sustained maintenance for the project. Changes to this document need to be approved by ¾ of the Admin Team. The contents of this QuTiP Governance are shown on QuTiP’s website (qutip.org/goverance) and in its documentation. The changes are tracked at github.com/qutip/governance.
We view this governance model as the formalization of what we are already doing, rather than a change in direction.
This document is composed of information regarding the following:
1. Code of Conduct
2. Admin Team: Tasks, Composition, Decisions, Communications.
3. Board: Tasks, Composition, Decisions, Communications.
4. Non-profit Support.
The Contributor Covenant Code of Conduct applies to all of QuTiP activities. QuTiP project members and contributors agree to abide by it and to build an inclusive community where criticism is provided and taken constructively and with empathy. Admin team members are responsible to enforce the Code of Conduct. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at qutip-admin@googlegroups.com [activate this or alternate email].
The Admin Team leads technical code development and manages directly QuTiP-related activities. It’s thanks to their work and the broader community that the QuTiP project keeps lively, the software is maintained and the features keep expanding and improving.
Tasks
The admin team is listed on the qutip website and specific areas of competence are shown. Members of the admin team pledge to volunteer to:
- Maintain the project through software release updates and bug fixes (core code development, documentation, notebooks, website, other Github-related things).
**- Make decisions about specific technical issues, features, bugs and pull requests. They are the primary mechanism of guiding the code review process and merging pull requests. This includes closing pull requests or issues that are inactive for long or deemed not relevant. **
-
Develop new features in qutip/qutip and qutip/other-libraries.
-
Help keep a steady pace of qutip library releases (e.g., ~2 minor releases/year).
-
Actively participate / respond to the qutip-dev internal forum.
-
Help in the Q&A support group, qutip public forum.
-
Volunteer time for remote mentorship.
-
Discuss code developments.
-
Once a year, on a rotation basis, one admin team member is responsible for drafting a report for the QuTiP board.
-
For each subproject that is not qutip/qutip, at least one admin should actively be watching the repository.
-
If there are new projects that wish to come under the umbrella of qutip/, either one of the existing admins should get involved with the project, or the maintainer/developer of the new project joins the admin team upon a consensus reached by the existing admins.
Composition Admin Team members are Team members with Owner rights in QuTiP’s main Github Repository (qutip/qutip) that have been active in the past one year.
Additional Admin Team members can be nominated by the admin team among core developers and major contributors, and are voted by the admin team with a majority vote. Prospective Admin Team members can send self-candidatures with their proposed candidature, and two brief statements: one explaining their past involvement with the QuTiP project, and one with their commitment to the QuTiP for the future, e.g., how they would help and support the project in their activity. Emeriti Admin Team members, including previous core contributors, are listed on the QuTiP website (at qutip.org/devs), governance (github.com/qutip/governance) and documentation.
Decisions Each admin team member has a vote in decisions. As much as possible, admins try to take in feedback on changes from the wider community and timely communicate major changes in the software.
Communications The admin team agrees to keep in touch regularly, through the qutip-admin channel or chosed communication medium, through the repositories’ maintenance, and with regular virtual or in-person meetings. The admin team drafts a report, [once] a year and submits it to the Board to inform it of developments on the project.
Members of the Board make sure that the Admin Team and project is well supported financially and logistically. Thanks to them helping enable the financial and logistics support, through scientific advisory and by keeping an eye on the project, they make the life of the admin team easier.
Tasks Board members are volunteers that pledge to (as appropriate to their current positions and commitments elsewhere):
- Meet** [once] **a year to review the development of the project (also online).
- Be consulted for scientific advice by the admins.
- Help settle conflicts or roadblocks that may arise on the project development.
- Help review student applications of interns that may volunteer or work on the QuTiP project.
- Try to provide funding for QuTiP development and maintenance.
- Become ambassadors for scientific open source in general and QuTiP in particular.
- Take formal decisions to allocate eventual funds, upon recommendation of the Admin Team.
Composition Initial board members are invited by the admin team, based on their track-record in supporting the project and future helping it grow. The admins elect new board members, in agreement with existing board members or upon the suggestion of the current board.
Additional prospective board members should send an email with their proposed candidature and two brief statements: one explaining their past involvement with the QuTiP project and one with their commitment to the QuTiP for the future, e.g., how they would help and support the project in their activity. The minimum number of board members is [three] and maximum is [seven]. Board seats are held [indefinitely]. The board can decide, by majority vote, to remove a board member for good reasons, e.g., if they are not engaged with the project, do not reply to communications or attend board meetings.
Decisions Each board member has a vote in decisions, which are taken by a majority vote.
Communications The board agrees to meet [once a year] (also via online meeting). The board is informed at least [once a year] by the Admin Team on QuTiP development and other activities (via email in the qutip-board channel).
Since 2018, QuTiP is an affiliated project of NumFOCUS, a 501(c)(3) nonprofit organization registered in the USA. The mission of NumFOCUS is to promote open practices in research, data, and scientific computing. Unitary Fund pledges to support the QuTiP project as an affiliated project. QuTiP remains an affiliated project of NumFOCUS. Unitary Fund is a 501(c)(3) nonprofit organization registered in the USA working to create a quantum technology ecosystem that benefits the most people. Due to its role in the quantum software community, Unitary Fund pledges to:
- Promote the knowledge of QuTiP in the quantum software and sci-dev community.
- Provide scientific and technical software advice upon request of the Admin team and Board.
- Provide logistic and financial support for code projects and meetings (subject to request by the QuTiP admins and availability of Unitary Fund funds).
- Accept financial support on behalf of the QuTiP project. These funds will be allocated to and managed by the QuTiP admins on board’s approval in coordination with Unitary Fund.
- Provide access to expert legal advice (subject to request by the QuTiP board or admin team and availability of Unitary Fund funds) through its legal counsel, useful for matters related to licensing, copyright, collaborations with industry and to protect the QuTiP brand and project.