This is a Governance FAQ topic to help the community get some general information about Project Jupyter Governance.
Governance sounds like a complicated subject but essentially it is the process of how we organise ourselves, interact, collaborate and take decisions to achieve our project goals.
- The formal Project Jupyter governance documentation can be found in this GitHub repository: https://github.com/jupyter/governance
- You can view the governance documentation at this website: https://jupyter.org/governance/intro.html.
The governance document covers a lot of information so I’d like to use these FAQs to try to simplify and respond to specific questions yet also reference back to it.
NOTE: This FAQ is not authoritative, it is mostly a distilled interpretation of the governance documentation as it is written. We have included links and references to the original documentation where possible.
How do most decisions get made in the Jupyter Community?
Jupyter is organized as a collection of sub-projects and communities. For example, JupyterHub, JupyterLab, the Jupyter Server, etc.
The majority of technical decisions across the community are made within these sub-projects according to their decision-making processes. Generally, this involves a process of consensus-seeking and open dialogue, with project maintainers having the ability to merge changes to code as they wish.
For wide-reaching technical decisions, or organizational decisions that have implications for the legal, financial, or governance aspects of the Jupyter Project, a Steering Council will vote to make decisions. See the Jupyter governance documentation for the process and rationale of this body.
In extreme circumstances, the Jupyter Project has a Benevolent Dictator for Life, or BDFL, who has the final-say on matters.
What is a BDFL and why does Project Jupyter have one?
BDFL stands for Benevolent Dictator For Life, and Fernando Perez is currently Project Jupyter’s BDFL. Fernando created IPython in 2001 and is also a co-founder of Project Jupyter. As such, he has been given this special BDFL status in the project.
The BDFL has the authority to make all final decisions for Project Jupyter. In practice, this authority is deferred to the Steering Council or to community consensus for most project decisions. The BDFL’s executive privilege is very rarely used, and is generally reserved for unblocking decisions for which consensus is unobtainable.
What is the Steering Council and what do they do?
The Steering Council is a group of leaders in the Jupyter Community with a mandate to “ensure, through working with and serving the broader Jupyter community, the long-term well-being of the project, both technically and as a community.”
While most technical decisions are made by individual sub-projects in Jupyter, the Steering Council occasionally votes on large decisions that are cross-cutting for the project, and is also involved in organizational decisions that don’t easily fit into one sub-project (such as formalizing an organizing committee for events).
Is Project Jupyter an open source foundation?
Project Jupyter has 501c3 non-profit status as a fiscally sponsored project of NumFocus. This means it is not a standalone open source foundation in its own right, but receives non-profit status through its affiliation with NumFOCUS (which itself is a 501©(3) non profit charitable organisation)
What is the relationship between Project Jupyter and NumFOCUS?
NumFOCUS is a 501©(3) public non profit charitable organisation and Project Jupyter is formally affiliated to this legal entity. In this relationship NumFOCUS acts as the fiscal sponsor of Project Jupyter meaning that it provides Project Jupyter with access to professional services such as financial administration (e.g managing donations) and also legal support (e.g trademarks, IP etc).
NumFOCUS does not manage or drive the direction of Project Jupyter. Its key role is operational especially in helping collect donations on behalf of Project Jupyter.
What is the relationship between Project Jupyter and IPython?
Project Jupyter is an evolution of the IPython project (see this announcement) with the goal of making a language-agnostic ecosystem of tools for interactive computing. IPython continues to exist as a Python kernel for interactive computing.
Give us feedback
Do you have any questions?
If you have any questions that you would like to include in this FAQ then please add them by responding to this post.
Are you interested in getting involved with Project Jupyter Governance?
We hold a weekly meeting on Tuesdays to work on and discuss governance related topics, so please feel to come along. You can find details about the meetings in the Community Calendar. Jupyter Community Calendar