SPEC 9 — Governance

Authors:
Sanket Verma <svsanketverma5@gmail.com>, Inessa Pawson <inessapawson@gmail.com>, Daniel McCloy <dan@mccloy.info>, Matt Haberland <mhaberla@calpoly.edu>, Jarrod Millman <millman@berkeley.edu>
History:
https://github.com/scientific-python/specs/commits/main/spec-0009
Endorsed by:
Discussion:
Comments below
Attention

This is a draft document.

Description#

This SPEC describes what governance is, and offers recommendations for choosing a governance model for open-source projects.

Open-source project communities are amalgamations of software and the humans who use and maintain it. Governance models define methods for decision-making within a project, roles for the community members imbued with decision-making authority, and processes for filling (and, if needed, vacating) those leadership roles. In the context of open-source software projects, governance models often also define the granting of necessary permissions or access to organization secrets necessary for the implementation of project-related decisions. Governance models are complementary to Codes of Conduct and Community Guidelines, which define the expectations and responsibilities of all participants in a project (including users of the software), regardless of their status as a project leader (cf. SPEC XXX), ensuring the long-term sustainability of a project.

The open source communities interact and contribute through various mediums, such as distributed version control systems, chat platforms, blog posts, discussion forums, mailing lists, and social media. Having clear guidelines for participation helps maintain a continuous stream of contributions.

This SPEC outlines the definition of governance, various open-source governance models, the steps to choose the right governance model, and what needs to be done post-adoption.

Please note that these are recommendations and not bylaws. If you have suggestions/thoughts, we’re more than happy to consider them.

Core Project Endorsement#

Ecosystem Adoption#

Badges#

Projects can highlight their adoption of this SPEC by including a SPEC badge.

SPEC 9 — Governance
[![SPEC 9 — Governance](https://img.shields.io/badge/SPEC-9-green?labelColor=%23004811&color=%235CA038)](https://scientific-python.org/specs/spec-0009/)
|SPEC 9 — Governance| 

.. |SPEC 9 — Governance| image:: https://img.shields.io/badge/SPEC-9-green?labelColor=%23004811&color=%235CA038
   :target: https://scientific-python.org/specs/spec-0009/
To indicate adoption of multiple SPECS with one badge, see this.

Implementation#

Choosing a governance model#

When you define governance for a project, you need to identify a few things:

There are few pre-defined models for governance used across open-source projects. We’ll mention them here for reference:

Other governance models

How to pick the appropriate governance model?#

Choosing the right governance model for your open-source project involves considering several factors to ensure the structure aligns with your project’s goals, community, and resources. Most open-source projects start with the BDFL model; eventually, they grow and adopt more open models.

A few things you should consider while choosing the appropriate model for your project:

What to do after the adoption?#

Once a project has adopted a governance model, the several important steps could be followed to ensure smooth implementation and operation.

Notes#


On this page