Community Input

Hello, friends.

We have been working on restructuring the way Project Jupyter’s governance functions to reflect how our community has expanded since our original governance model was constructed. As part of our governance reform process, we have been reaching out to some members of our community who have insight into different aspects of running open-source organizations. We have been posting our governance meeting minutes in this forum.

One important realization that has come out of our recent conversations is that we recognize there are folks in the wider community who may have valuable contributions and input. In this thread, we are asking people who want to contribute to these conversations to post links to blog posts or articles to address whichever aspects you want to discuss.

Here are some guidelines for what we are asking for:

  • Please post content (e.g., a blog post or an article) that you have written yourself about aspects of governance that are specific to Project Jupyter. We don’t know how much traffic may come your way, so we want to ensure only authors who want visitors from this forum post their content here.
  • It is up to you whether you enable comments on your post; this thread is only for posting a link to your post, not to actually comment or debate it. We want to make sure any author who wishes can make a point without having to “argue” the point.
  • If you wish to respond to an article linked here, please feel free to write a response and link to it here.
  • Please do not use this thread as a venue to respond to others or to post your content directly. We are specifcally asking for content that is hosted elsewhere, whether that is a personal hosted blog, a blogging platform, a publication, etc., so we will moderate this thread to make sure it does not devolve into side-channel conversations (i.e. please no cross-talking, here).
3 Likes

Hi everyone In the weekly governance office hours (please join!) we were talking about this thread. We realize it is a big ask and that it can be challenging to get started. To help with this, we encourage folks to use the governance questions detailed in this adjacent thread as writing prompts:

1 Like

Hi all - one of the projects that I most-admire for their ability to manage complexity and technical growth with an open and inclusive community is the Rust project. To that extent,
I wrote up a short post as a thought-experiment. It asks the question: what would Jupyter governance look like if we simply ported over the Rust governance model. I hope it sparks some thoughts and conversation!

7 Likes

I love Rust’s governance structure. Thanks for writing this post and sharing.

1 Like

Another post, very similar to the last one I posted about Rust. This time I tried porting over the latest Python PEP013 proposal to Jupyter governance. I hope folks find it interesting!

2 Likes

I wanted to note that there are some conversations that might be relevant to this process over in the jupyter/governance repository. e.g. here’s one about voting and abstaining (:wave: @damianavila and @Ruv7). Just linking in case folks are interested!

quick thought on “executive” and “organizational” bodies

In the last few meetings we’ve seen some crystallization around a few governing bodies within the Jupyter community. I appreciate the efforts taken to boil things down to concrete items that we can start commenting and iterating on. In the last meeting I had to jump off so I wanted to quickly write down a possible structure for others to think about.

My understanding is that we are currently working towards two organizational bodes:

the executive body would be made up of representatives from each major sub-group within Jupyter (both technical projects and non-technical projects). Members of this body are individuals, not organizations, and in a sense this body knows nothing about “where a person works”. It is up to the sub-projects to decide who their representative on the executive body will be.

The organizational body would have seats for organizational representation, through some kind of membership model. This might include paying for a seat on this organizational body, though the number of seats per organization would be capped, maybe at “1”.

We were discussing how these two bodies could interact with each other, delegate different kinds of decisions, etc. Here’s one idea:

In this case I am primarily thinking about two different things:

  1. how does the Jupyter project decide what it wants to or should work on
  2. how does it decide what to prioritize or focus its efforts on.

Currently there isn’t really a mechanism for #2 - people work on things either on a volunteer basis, or because they work at an organization that prioritizes certain kinds of features. #1 is done in a fairly heterogenous way - we have many mechanisms for making decisions, some formal and some informal. For example, there is a JEP process but it is rarely used, we have sub-communities with formal review requirements but others that do not.

So how could this situation feed into the governance refactor?

The executive body

The executive body is tasked with deciding the direction of the Jupyter project as a whole. It is made up of representatives from each of the major sub-groups, as well as a finite number of seats that represent the organizational body. The executive body defines roadmapping, scope, and the general constraints of what Jupyter “should” be working on. It makes most of its decisions after an open-comment period - its goal is not to reach consensus with the community, but to gather as much information from the community as possible in order to make an effective decision. This is only for broad, community-wide decisions (e.g., decisions that span multiple sub-projects). More specific decisions are delegated to the respective sub-communities.

note: to me this feels more like a “steering council” than an executive committee

Sub-communities

Sub-communities have more flexibility in operating in a manner that works for their groups, with a few constraints. They must make decisions in a deliberative and “open” manner - whether that involves open issues / PRs, public requests for comments, or piggy-backing on the JEP process is up to them. This includes roadmapping and scoping features that they consider worthy of including in their projects or plans.

The organizational body

The organizational body is a membership organization that serves a few primary purposes:

  • Provide a mechanism for organizations to contribute resources to the Jupyter community at-large
  • Provide a space for organizations to discuss and coordinate their needs within the Jupyter project
  • Provide some oversight of staff that are supported by this organizational body (e.g., as an advisory council)
  • Provide a signal that can highlight the features that are valuable to these organizations, to potentially influence the roadmapping process of sub-projects (e.g., through this organizations membership on the “executive group”)
  • Provide a way to prioritize paid-staff efforts within the boundaries set forth by the executive and sub-community teams.

Membership on the organizational body is attained by committing resources to the Jupyter project (e.g., $100K a year over 3 years), or through exceptions made for resources that may align with the Jupyter project’s mission (e.g., some non-profits or university groups).

Summary

In summary, the executive body and the sub-communities make all decisions about where the Jupyter project should go (though note that many organizations may have representation in sub-communities). The organizations group is a mechanism to collect information about the needs of organizations that support the Jupyter project, and to direct some of those resources towards features that have already been deemed in-scope by the executive body and sub-communities.

I’m sure there is a lot that could go wrong with the above picture, but that’s what I had in my head as we were discussing in the governance meeting :slight_smile: ping @ellisonbg and @fperez who were the ones asking for feedback. Also curious what @lresende and @afshin think as they were both also representing the perspective of companies in this conversation