Proposal for Jupyter’s Sustainable Growth#

March 5, 2024

Discussion of this proposal is at jupyter/governance#204. You can also contact the EC in the EC office hours or by private email to share your thoughts.

Executive Summary#

The Jupyter Executive Council (EC) has the responsibility to ensure the healthy and sustainable evolution of Project Jupyter and to seek the best vehicles to support this. We, the EC, propose to create a new funding vehicle for the project, paired with some management and operational changes in support of this funding mechanism, in partnership with the Linux Foundation (LF). These changes will enable us to grow and develop ambitious efforts we have often discussed but lacked resources to implement, and provide long-term stability both for key Jupyter contributors and the project itself. While Project Jupyter has been impactful and successful in many areas, we currently struggle in our ability to scale in certain strategic directions and in maintaining core functions needed for an effort of our size and scope. We believe the plan below is the right path forward to meet these challenges; we’ve come to this plan after a detailed exploration of multiple options.

We propose that Project Jupyter – with its current governance structure, name, and trademarks – transfer from NumFOCUS to the Linux Foundation Charities 501(c)(3). This transition would be paired with the creation of a new resource, provisionally called the Jupyter Foundation, designated to secure corporate contributions, and an associated committee to make budgetary decisions associated with these funds. The Jupyter Foundation would be under the Linux Foundation 501(c)(6). Below, we provide more details about this proposal and answer questions. This document aims to be a reference point for the community to discuss this plan, which (after suitable community deliberation, refinement, and approval) the EC would like to implement as soon as possible.

Note – A 501(c)(3) and 501(c)(6) are both tax-exempt nonprofit structures in the United States. A (c)(3) is a vehicle to support collective fundraising for a scientific or charitable purpose. A (c)(6) is a vehicle to support collective fundraising for a common business interest in industry. Like many projects that the LF hosts, Project Jupyter aligns both with nonprofit models with scientific and educational goals, and with business interests. Therefore, it can take advantage of having both fundraising options available to donors through LF Charities, a 501(c)(3), and the Linux Foundation, a 501(c)(6).

Project Jupyter’s Needs#

Project Jupyter requires sustainable funding that is centrally managed for some key “backbone needs” of the project. There are activities and programs that are critical to the mission of Jupyter that are currently either underfunded or unfunded. Examples include JupyterCon, other Jupyter community and outreach events, Binder, NbViewer, jupyter.org, an Executive Director, other project-wide staff (release engineering, developer advocate, documentation writer, program manager, testing infrastructure, etc.), and more. We believe that if a few such “backbone” roles and activities are sustainably funded, it will become easier for individual subprojects and teams in the community to pursue strategic objectives, propose new developments, and seek targeted resources that rely on this stable foundation for coordination, planning, and project-wide interactions. The EC has a goal to raise $1-2 million/year in a sustainable manner.

The EC believes that this funding can come from a combination of non-profit (private foundations, government grants) and for-profit (corporate) sources. In the past, Jupyter has obtained grants on the order of a million dollars and above through private foundations, with smaller contributions coming from individuals and a few generous corporate partners. Securing consistent funding via grants has proven challenging given the lumpy nature of grant allocations and the limited number of people who can devote their time to grant writing for Jupyter. These inconsistent levels of funding make it very difficult to maintain a stable backbone for the project that enables long-term vision and strategic planning and execution. Similarly, we have faced challenges in raising consistent funding from corporations.

Additionally, Jupyter needs improved operational support. Jupyter needs a higher level of support for operating (legal/trademark, marketing, fundraising, accounting, contracts, internships, events, dev ops, etc.) than is currently available from NumFOCUS. The EC’s responsibility is to serve Jupyter’s pressing needs today and tomorrow; currently, the EC is spending a significant amount of its time on operational matters instead of fundraising and other activities that support Jupyter’s long-term mission. At this time, and after extensive conversations with NumFOCUS and time spent by Ana Ruvalcaba taking deep dives into operational matters, the EC’s assessment is that the best course of action is to secure operational support with a proven partner that can provide it today. Our assessment is that the Linux Foundation is such an ideal partner for Jupyter today.

Finally, Jupyter needs to be able to hire and manage full-time staff, including roles such as an Executive Director, CI/devops, program managers, test engineering, documentation writing, and release engineering. These require a sustained and full-time effort, beyond what is reasonable for volunteers or can be funded via project-specific initiatives and/or grants. In the past, we have funded, hired, and managed these types of roles through universities (Cal Poly State University, San Luis Obispo and UC Berkeley), but that is not sustainable for the institution or the staff who seek a long term career path associated with Jupyter, rather than with specific corporate or academic organizations. Again, Jupyter needs sustainable funding and operational support to hire, retain, and manage contributors in these types of roles.

So, what would be changing?#

We have spent time and effort in discussions with the Linux Foundation team, to ensure that this transition introduces the smallest possible changes to Jupyter’s operations while meeting our above goals.

Under this proposal, Jupyter keeps its current governance structure and transfers from NumFOCUS to LF Charities 501(c)(3). An additional funding vehicle will be created called the Jupyter Foundation under the Linux Foundation 501(c)(6) providing corporations a well-known and proven method to support the Jupyter Project.

In order to manage this new resource (the Jupyter Foundation), we propose to create a new committee (JFC), populated by representatives of our corporate funders. The role of this committee will be to approve the use of the corporate funding available, in coordination with the EC. The JFC and EC members will vote on Jupyter Foundation resource allocation with exact details to be determined soon (for example, the funding committee model typically has one vote per corporate funding representative).

As part of the normal course of business, and to encourage strategic engagement of the corporate partners (beyond just giving money), the EC meetings will be open to members of the JFC, though the EC reserves the right to call a separate closed meeting should the need arise.

In addition, the Linux Foundation through its 501(c)(3) and 501(c)(6) will provide back-office operational support as needed for the project operations such as grants and events as well as the ability to hire staff for the benefit of the project.

What other options have we explored?#

We have investigated the following options:

  • Remaining at NumFOCUS

  • Joining several other 501(c)(3) organizations.

  • Partnering with Linux Foundation via its 501(c)(3) and 501(c)(6) support structures (our proposed path)

  • Creating our own 501(c)(3).

NumFocus, as previously stated, is not able to meet our needs and our goals for Project Jupyter at this time.

Other 501(c)(3) organizations were either larger in scale, but without deep experience supporting open source projects and their communities, or smaller in scale but with experience supporting software projects.

The costs to instantiate and operate a new 501(c)(3) are very high and the focus on building up back-office infrastructure expertise and capabilities would limit our ability to focus on the needs stated earlier.

After carefully evaluating all these options and engaging in multiple detailed discussions, we concluded that the Linux Foundation is the best option. LF can support our existing community and governance structure, and it has a proven track record of supporting software projects with a sustainable operational and multi-modal funding model that scales.

How does this affect our project’s mission regarding both open science, education, and access to all regardless of money or industrial relationships?#

Project Jupyter’s mission and focus on open science remains unchanged and driven by its contributors. Project Jupyter will develop a formal mission statement that will reiterate our commitment to open science, education, research and broad access to interactive computing. Based on many previous discussions we’ve had on this topic, we propose here a rough draft of such a mission statement: “Project Jupyter is an open and collaborative community that develops interactive computing tools, software, standards, and infrastructure for research, education, and industry.” As part of the transition to LF, we will open an issue to discuss and approve an official mission statement.

Other Questions (FAQ)#

What is the proposed timeline?#

The EC anticipates community discussion in March 2024 leads to a formal governance change proposal in April 2024 to move from NumFOCUS to LF Charities 501(c)(3), creation of an LF 501(c)(6) foundation, and the operational details of how these entities will be managed (e.g., creation of a budget process). The EC anticipates this proposal will be voted on by the newly-elected EC and SSC by the end of April 2024. If approved, the EC anticipates that the effective date of a move to LF could be 60 days later, by the end of June 2024.

What Jupyter assets would be maintained by the 501(c)(3) LF Charities?#

Project trademarks, domain name registrations, and GitHub account access for Project Jupyter GitHub organizations will be maintained by the 501(c)(3) LF Charities. Additionally, any 501(c)(3) contributions to Project Jupyter will be maintained by LF Charities and controlled by the Project Jupyter EC.

How would this move to LF change our relationship with NumFOCUS?#

Once the transition is concluded and assets (such as trademarks) are transferred, Project Jupyter would not have a legal relationship with NumFOCUS. However, we will always maintain a collaborative relationship with NumFOCUS and its various projects: Jupyter is for many a portal into a broad ecosystem of projects that currently operate under NumFOCUS, and we’ll continue collaborating with all of them as before. In this regard, NumFOCUS is and would remain a key partner for Project Jupyter, and we wish the NumFOCUS team success.

We will work out a transition plan between NF and the LF Charities that will minimize disruption to the projects. For exampe, there may be some funds that are simpler to wind down through NF and some that are easier to move to the LF Charities.

What is the process for Jupyter leaving NumFOCUS and whose authority/approvals does it require?#

Jupyter’s current governance model requires any changes to Jupyter’s governance to be approved by the Jupyter Executive Council and Software Steering Council. Once these two bodies have voted to leave NumFOCUS and transfer the project to LF Charities 501(c)(3), the NumFOCUS FSA Committee will formally notify NumFOCUS of our plans. The current FSA requires us to give NumFOCUS a 60-day notice before moving. The NumFOCUS FSA Committee currently consists of Matthias Bussonnier, Benjamin Ragan-Kelley, Fernando Pérez, Ana Ruvalcaba, and Thomas Kluyver.

What will be the process for Jupyter potentially leaving the Linux Foundation in the future?#

When requested by the governing body for a project, the LF has moved projects out of its stewardship to the governing body’s designated entity. In our case, this would be considered a governance change that requires approval from the EC and SSC. The Project Jupyter assets in the 501(c)(3) would transfer to another 501(c)(3) and 501(c)(6) assets could be transferred to another 501(c)(6) or to the 501(c)(3), in accordance with tax rules and subject to grant agreements then in effect. Similarly, there will be a notice period, and wind-down component related to employees, IP, etc.

What happens to our IP if LF Charities dissolves?#

Upon dissolution of any entity (LF Charities, NumFOCUS, etc), the entity would have to either transfer assets or identify the entity taking them over. Hypothetically, in a dissolution scenario, LF Charities would have to plan out the path with the project governing body to see where the LF Charity project assets would go. There may be complications or other factors depending on the reason for any dissolution (e.g. bankruptcy). To be clear, there are no plans to dissolve LF Charities.

How does corporate membership work in terms of levels and dues amount?#

The details need to be finalized and we welcome input from the community on this. Based on what is common with other funds under the Linux Foundation 501(c)(6), typically there are 2 levels, Premier and General. For example, Premier members each get a seat on the funding committee and General members collectively have one elected representative from the general member class that represents them alongside the Premier members. The dues amount will be determined based on the financial needs of Project Jupyter and corresponding alignment with corporate budgets that have a precedent for supporting critical projects upon which companies depend. The Linux Foundation also has (free) Associate memberships for government, education, research, and non-profit organizations. Given the importance of these types of organizations to the mission of Jupyter, the EC would like to work through how they can be included.

Did we consider the Apache Software Foundation (ASF)?#

Yes. In our due diligence process, we considered several potential homes for Jupyter. Specifically regarding ASF, moving to Apache would entail changing our software license (to Apache), changing our project name to be prefixed with “Apache”, and drastically changing our project governance and communication channels. We saw these disruptions to the community as too extreme compared to the benefits it would provide.

Is this a major change to Project Jupyter’s governance?#

No. The control of the Project will remain with the same bodies (EC and SSC) that have control under the umbrella of NumFocus when and if we move to the Linux Foundation. There will be a new standing committee created to handle corporate fundraising for the benefit of Project Jupyter. This committee will be tasked with raising funds and budgeting the funds they raise in close collaboration with the Project’s leadership (EC).

What measures will the EC take to ensure that Jupyter has a level playing field for participation that is not skewed by the financial resources of its players?#

The decision-making authority of Project Jupyter is vested in the voting bodies of our governance model. This does not change when we change fiscal sponsors. The primary authority that we are granting to players with substantial financial resources is to have a vote in how the funds they donate will be spent for the benefit of Project Jupyter and the goals that are set by the EC and the SSC. To ensure this, our agreement with the Linux Foundation will be to explicitly leave intact our current governance model as it is.

How will a transition to LF affect grant funding that community members may seek?#

The EC believes that the Jupyter community needs a diverse set of funding mechanisms to be sustainable and scale. In the past, grant funding that benefited Jupyter has included academic grants managed directly by universities, grants from private foundations that flowed through Jupyter’s 501(c)(3) fiscal sponsor, and grants managed through other entities and foundations. We expect that these sorts of funding arrangements will continue to be possible under the LF umbrella, with community members able to seek grant funding themselves for Jupyter’s benefit. We expect the central roles that we hire, such as an executive director, program manager, etc., will be active in raising central “backbone” funding for Jupyter and will help in the strategic coordination of community members seeking additional funding.

The Linux Foundation and LF Charities have both received and managed grant-making programs. Under the LF umbrella, if you are writing a grant and desire the grant funding to flow through the LF Charities Jupyter 501(c)(3) account, we will have a process to approve the request. The LF staff would work with you on the budget for the grant and any other details for the transaction, but would rely on you for the grant writing and reporting requirements. Each grant-making organization usually has terms and reporting requirements that the LF and the grant recipients will need to work together on. The Tazama project is an example of a recent grant LF Charities is administering from the Bill and Melinda Gates Foundation.