From 352e676ed0857cd8540c5db0fa69f619719896de Mon Sep 17 00:00:00 2001 From: Rishi Verma Date: Thu, 29 Aug 2024 22:38:16 -0700 Subject: [PATCH] Updated registry and multiple governance models --- .../governance/governance-model/README.md | 31 +- ....md => GOVERNANCE-TEMPLATE-LARGE-TEAMS.md} | 266 +++++++++--------- .../GOVERNANCE-TEMPLATE-MEDIUM-TEAMS.md | 69 +++++ .../GOVERNANCE-TEMPLATE-SMALL-TEAMS.md | 42 +++ .../governance-template-small-team.md | 73 ----- static/data/slim-registry.json | 13 +- 6 files changed, 280 insertions(+), 214 deletions(-) rename static/assets/governance/governance-model/{GOVERNANCE-TEMPLATE.md => GOVERNANCE-TEMPLATE-LARGE-TEAMS.md} (74%) create mode 100644 static/assets/governance/governance-model/GOVERNANCE-TEMPLATE-MEDIUM-TEAMS.md create mode 100644 static/assets/governance/governance-model/GOVERNANCE-TEMPLATE-SMALL-TEAMS.md delete mode 100644 static/assets/governance/governance-model/governance-template-small-team.md diff --git a/docs/guides/governance/governance-model/README.md b/docs/guides/governance/governance-model/README.md index 6b77dd598..35f4bff6f 100644 --- a/docs/guides/governance/governance-model/README.md +++ b/docs/guides/governance/governance-model/README.md @@ -26,22 +26,35 @@ ## Quick Start -**[⬇️ Governance Model Template](pathname:///assets/governance/governance-model/GOVERNANCE-TEMPLATE.md)** ([see example](https://nasa-ammos.github.io/slim/docs/about/GOVERNANCE/)) +**[⬇️ Governance Model Template (Small Teams)](pathname:///assets/governance/governance-model/GOVERNANCE-TEMPLATE-SMALL-TEAMS.md)** -Access our recommended template to start integrating a governance model into your project. +Our recommended governance model for small teams of 1-3 active members. + +**[⬇️ Governance Model Template (Medium Teams)](pathname:///assets/governance/governance-model/GOVERNANCE-TEMPLATE-MEDIUM-TEAMS.md)** + +Our recommended governance model for small teams of 3-10 active members. + +**[⬇️ Governance Model Template (Large Teams)](pathname:///assets/governance/governance-model/GOVERNANCE-TEMPLATE-LARGE-TEAMS.md)** + +Our recommended governance model for small teams of 10+ active members. --- ## Step-by-Step Guide 1. **Team Consultation**: Collaborate with your team and stakeholders to discuss adopting the governance model template. You'll want to consider topics like: + - Decide on how big of a team you currently estimate wanting to be - Roles (and how contributors can be promoted between roles) - - Committees (the groups that guide your project) -2. **Customize the Template**: - - View and download our [Governance Model Template](GOVERNANCE-TEMPLATE.md). + - Committees (the groups that guide your project - if any) +2. **Choose the Right Template**: + - Depending on the size of your team, choose between: + - [Governance Model Template (Small Teams)](pathname:///assets/governance/governance-model/GOVERNANCE-TEMPLATE-SMALL-TEAMS.md) - ideal for 1-3 active team members. + - [Governance Model Template (Medium Teams)](pathname:///assets/governance/governance-model/GOVERNANCE-TEMPLATE-MEDIUM-TEAMS.md) - ideal for 3-10 active team members. + - [Governance Model Template (Large Teams)](pathname:///assets/governance/governance-model/GOVERNANCE-TEMPLATE-LARGE-TEAMS.md) - ideal for 10+ active team members. +3. **Customize the Template**: - Place the template in a `GOVERNANCE.md` file within the root folder of your repository. - Modify and personalize the template, replacing `[INSERT ...]` text with specifics for your project. -3. **Implement the Governance Model**: +4. **Implement the Governance Model**: - Commit the `GOVERNANCE.md` file to the `main` branch. - Link to the governance document in your `README.md` file under the `Contributing` section. @@ -64,6 +77,10 @@ Access our recommended template to start integrating a governance model into you - **Q: Can the governance structure be modified as the project evolves?** - A: Yes, the model is flexible and can adapt to changing project needs, subject to agreement by the Project Steering Committee (PMC) and stakeholders. + +- **Q: Should I choose the right GOVERNANCE template for my current team size or intended team size?** +- A: Governance models should evolve slowly - therefore, choose the governance model that is right for your aspirational team size and modify if needed in the future. + --- ## Credits @@ -85,4 +102,4 @@ This template was developed by evaluating best `GOVERNANCE.md` practices in the ## Feedback and Contributions -We invite feedback and contributions to refine this guide. Visit our [contribution guidelines](https://nasa-ammos.github.io/slim/docs/contribute/contributing/). +We invite feedback and contributions to refine this guide. Visit our [contribution guidelines](https://nasa-ammos.github.io/slim/docs/contribute/contributing/). \ No newline at end of file diff --git a/static/assets/governance/governance-model/GOVERNANCE-TEMPLATE.md b/static/assets/governance/governance-model/GOVERNANCE-TEMPLATE-LARGE-TEAMS.md similarity index 74% rename from static/assets/governance/governance-model/GOVERNANCE-TEMPLATE.md rename to static/assets/governance/governance-model/GOVERNANCE-TEMPLATE-LARGE-TEAMS.md index 171645e26..80dd6d77c 100644 --- a/static/assets/governance/governance-model/GOVERNANCE-TEMPLATE.md +++ b/static/assets/governance/governance-model/GOVERNANCE-TEMPLATE-LARGE-TEAMS.md @@ -1,130 +1,136 @@ -# [INSERT PROJECT NAME] Project Governance - -This governance model aims to create an open source community that encourages transparency, contributions, and collaboration, but maintains sound technical and quality standards. Our goal is to build a community comprised of members across the [INSERT PROJECT DOMAIN] community and beyond, including from private organizations, universities, government organizations, and international organizations. - -The project follows a fairly liberal contribution model where people and/or organizations who do the most work will have the most influence on project direction. Roles determine decision making influence, and governing committees (e.g. technical steering, project steering) are set up to ensure the project's direction is in-line with requirements / goals while supporting flexibility for future growth and membership. Technical decision making will primarily be made through a "[consensus-seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making)" approach within the respective governing committees. - -## Roles - -| Role | Restricted To | Description | Read/Clone | Propose Pull Request | Comment in Tickets / Discussions | Triage | Review | Commit | Technical Decisions | Project Decisions | -| ----------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| User | None | Anyone downloading, deploying, or operating the software to meet a specific objective. | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | -| Contributor | None | Anyone providing input to the project, including: code, issues, documentation, graphics, etc. | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | -| Triager | Contributor | Subset of contributors demonstrating a strong familiarity with the project. | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | -| Collaborator | Contributor | Subset of contributors granted write access to one or more of the project repositories upon selection by TSC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | -| Technical Steering Committee Member | Collaborator | A subset of collaborators having technical decision making authority and admin privileges | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| Project Steering Committee Member | Stakeholders | Sponsor organization representatives (i.e. those providing funding to the project) and key stakeholders with authority to guide project based on requirements, budget, schedule, etc. | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| Product Manager | Stakeholders | Overall manager of project with final authority over all key decisions when consensus cannot be reached | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - -### User - -Anyone who has downloaded, deployed, or operated [INSERT PROJECT NAME] to meet a specific objective. This project was primarily designed for [INSERT DESCRIPTION OF PROJECT PURPOSE], but let us know if you've found other uses for it. - -### Contributor - -Contributors include anyone that provides input to the project. This includes code, issues, documentation, graphics, designs, or anything else that tangibly improves the project. We encourage you to start contributing right away by joining our [Discussions]([INSERT LINK TO DISCUSSION BOARD OR MAILING LIST(S)]) or submitting an [Issue]([INSERT LINK TO ISSUE TRACKING SYSTEM]). - -### Triager - -Subset of contributors who have demonstrated a strong familiarity with the project and are regularly contributing to the project via issue creation, commenting, discussions, etc. Triagers are given specific permissions do the following: - - - Label issues and pull requests - - Comment, close, and reopen issues and pull requests - -[List of current Triagers]([INSERT LINK TO GITHUB, GITLAB, ETC. TEAM ASSOCIATED WITH TRIAGERS]) - -### Collaborator - -Subset of contributors who have been given write access to one or more project repositories. Both contributors and collaborators can propose changes to the project via pull requests, but only collaborators can formally review and approve (merge) these requests. Any contributor who has made a non-trivial contribution should be on-boarded as a collaborator in a timely manner. - -If you are planning on making a substantial contribution to the project or feel as though you should be given write access to a repository, please send a request to [INSERT LINK TO EMAIL/GITHUB USER HANDLE] - -[List of current collaborators]([INSERT LINK TO GITHUB, GITLAB, ETC. TEAM ASSOCIATED WITH COLLABORATORS]) - -### Technical Steering Committee Member - -A subset of the collaborators forms the Technical Steering Committee (TSC). The TSC has authority over the following aspects of this project: - -- Technical direction and guidance -- Committee governance and process -- Contribution policy -- Conduct guidelines -- Maintaining the list of collaborators - -#### TSC Committee Members -- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] -- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] - - -
- -Emeriti - -#### TSC Emeriti -- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] - -
- -#### Scope - -The TSC is primarily responsible for the following project repositories: - -- [INSERT LINK TO PROJECT REPOSITORIES] - -However, the TSC also has the responsibility to interface with and monitor third-party dependencies of the project for key changes impacting [INSERT PROJECT NAME]. These third-party dependencies include: - -- [INSERT LINK TO DEPENDENT PROJECT REPOSITORIES] - - -#### Decision Making Process - -Any community member can create an issue or comment asking the TSC to review something. Prior to implementing a substantial contribution, the design of that contribution should be reviewed by at least one member of the TSC. If consensus-seeking fails during the review of a pull request or in design discussions, the issue will be addressed by the TSC to make a determination on direction. TSC members will meet regularly and will keep track of decisions made when consensus was not met. - -The TSC can nominate new members at any time. Candidates for membership tend to be collaborators who have shown great dedication to the project and/or experts in a particular domain or project component. TSC members are expected to be active contributors or members who have made significant contributions within the past 12 months. - -### Project Management Committee (PMC) Member - -The Project Management Committee (PMC) is made up of sponsor organization representatives (i.e. those providing funding to the project) and key stakeholders who rely or plan to rely on the project to meet a critical need. The PMC has the following responsibilities: - -- Maintaining the overall project roadmap -- Determining project requirements and commitments to sponsors and stakeholders -- Assessing available resources and allocating them across the project -- Monitoring and reporting on progress against the roadmap -- On-boarding new sponsors and stakeholders -- Overall project governance (including this policy) -- Addressing any legal considerations - -#### PMC Committee Members -- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] -- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] - -
- -Emeriti - -#### PMC Emeriti -- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] - -
- -#### Scope - -The PMC has management authority over the same project repositories over which the TSC has technical authority over. - -#### Decision Making Process - -The PMC will consist of a product manager and additional representative from sponsors and key stakeholders. The PMC or sponsoring organizations can nominate new members at any time. Care should be taken not to include too many members from a single stakeholder project or organization. - -Regular stakeholder meetings are held to discuss current project status and propose changes to the project roadmap. If stakeholder representatives and sponsors concur with these proposals during the meeting, they will be immediately adopted. A member of the PMC will ensure the changes have been captured and recorded. Regular stakeholder meetings will be open to the entire community, but only members of the PMC have decision making authority. - -Additional meetings may be held if consensus is not met or to discuss significant changes to the roadmap due to changes in stakeholder priorities or available resources. Any decision made outside of stakeholder meetings must still be approved by all sponsors and stakeholders. If full consensus cannot be made, the product manager has the final authority to determine project direction. Any non-concurrences from stakeholders or sponsors will be noted. - -### Product Manager - -Overall manager of the project with final authority over all key decisions when consensus cannot be reached within the TSC or PSC. The product manager is often chosen at the onset of project initiation and can be reassigned by the PMC (with institutional approval, if applicable). - -# Acknowledgements - -Much of this governance model was adapted from the other notable open source projects including [node.js](https://github.com/nodejs/node/blob/main/GOVERNANCE.md), [OpenSSL](https://www.openssl.org/policies/omc-bylaws.html), [PostgresQL](https://www.postgresql.org/developer/), and [OpenMCT](https://github.com/nasa/openmct/blob/master/CONTRIBUTING.md). We would like to thank those projects for setting the foundation upon which this model was built. - - +--- +title: Governance Model (Large Teams) +sidebar_label: For Large Teams +--- + +````markdown +# [INSERT PROJECT NAME] Project Governance + +This governance model aims to create an open source community that encourages transparency, contributions, and collaboration, but maintains sound technical and quality standards. Our goal is to build a community comprised of members across the [INSERT PROJECT DOMAIN] community and beyond, including from private organizations, universities, government organizations, and international organizations. + +The project follows a fairly liberal contribution model where people and/or organizations who do the most work will have the most influence on project direction. Roles determine decision making influence, and governing committees (e.g. technical steering, project steering) are set up to ensure the project's direction is in-line with requirements / goals while supporting flexibility for future growth and membership. Technical decision making will primarily be made through a "[consensus-seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making)" approach within the respective governing committees. + +## Roles + +| Role | Restricted To | Description | Read/Clone | Propose Pull Request | Comment in Tickets / Discussions | Triage | Review | Commit | Technical Decisions | Project Decisions | +| ----------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | -------------------- | -------------------------------- | ------ | ------ | ------ | ------------------- | ----------------- | +| User | None | Anyone downloading, deploying, or operating the software to meet a specific objective. | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| Contributor | None | Anyone providing input to the project, including: code, issues, documentation, graphics, etc. | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| Triager | Contributor | Subset of contributors demonstrating a strong familiarity with the project. | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | +| Committer | Committer | Subset of contributors granted write access to one or more of the project repositories upon selection by TSC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| Technical Steering Committee Member | Committer | A subset of committers having technical decision making authority and admin privileges | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| Project Steering Committee Member | Stakeholders | Sponsor organization representatives (i.e. those providing funding to the project) and key stakeholders with authority to guide project based on requirements, budget, schedule, etc. | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Product Manager | Stakeholders | Overall manager of project with final authority over all key decisions when consensus cannot be reached | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | + +### User + +Anyone who has downloaded, deployed, or operated [INSERT PROJECT NAME] to meet a specific objective. This project was primarily designed for [INSERT DESCRIPTION OF PROJECT PURPOSE], but let us know if you've found other uses for it. + +### Contributor + +Contributors include anyone that provides input to the project. This includes code, issues, documentation, graphics, designs, or anything else that tangibly improves the project. We encourage you to start contributing right away by joining our [Discussions]([INSERT LINK TO DISCUSSION BOARD OR MAILING LIST(S)]) or submitting an [Issue]([INSERT LINK TO ISSUE TRACKING SYSTEM]). + +### Triager + +Subset of contributors who have demonstrated a strong familiarity with the project and are regularly contributing to the project via issue creation, commenting, discussions, etc. Triagers are given specific permissions do the following: + + - Label issues and pull requests + - Comment, close, and reopen issues and pull requests + +[List of current Triagers]([INSERT LINK TO GITHUB, GITLAB, ETC. TEAM ASSOCIATED WITH TRIAGERS]) + +### Committer + +Subset of contributors who have been given write access to one or more project repositories. Both contributors and committer can propose changes to the project via pull requests, but only committers can formally review and approve (merge) these requests. Any contributor who has made a non-trivial contribution should be on-boarded as a committer in a timely manner. + +If you are planning on making a substantial contribution to the project or feel as though you should be given write access to a repository, please send a request to [INSERT LINK TO EMAIL/GITHUB USER HANDLE] + +[List of current committers]([INSERT LINK TO GITHUB, GITLAB, ETC. TEAM ASSOCIATED WITH COMMITTERS]) + +### Technical Steering Committee Member + +A subset of the committers forms the Technical Steering Committee (TSC). The TSC has authority over the following aspects of this project: + +- Technical direction and guidance +- Committee governance and process +- Contribution policy +- Conduct guidelines +- Maintaining the list of committers + +#### TSC Committee Members +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] + + +
+ +Emeriti + +#### TSC Emeriti +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] + +
+ +#### Scope + +The TSC is primarily responsible for the following project repositories: + +- [INSERT LINK TO PROJECT REPOSITORIES] + +However, the TSC also has the responsibility to interface with and monitor third-party dependencies of the project for key changes impacting [INSERT PROJECT NAME]. These third-party dependencies include: + +- [INSERT LINK TO DEPENDENT PROJECT REPOSITORIES] + + +#### Decision Making Process + +Any community member can create an issue or comment asking the TSC to review something. Prior to implementing a substantial contribution, the design of that contribution should be reviewed by at least one member of the TSC. If consensus-seeking fails during the review of a pull request or in design discussions, the issue will be addressed by the TSC to make a determination on direction. TSC members will meet regularly and will keep track of decisions made when consensus was not met. + +The TSC can nominate new members at any time. Candidates for membership tend to be committers who have shown great dedication to the project and/or experts in a particular domain or project component. TSC members are expected to be active contributors or members who have made significant contributions within the past 12 months. + +### Project Management Committee (PMC) Member + +The Project Management Committee (PMC) is made up of sponsor organization representatives (i.e. those providing funding to the project) and key stakeholders who rely or plan to rely on the project to meet a critical need. The PMC has the following responsibilities: + +- Maintaining the overall project roadmap +- Determining project requirements and commitments to sponsors and stakeholders +- Assessing available resources and allocating them across the project +- Monitoring and reporting on progress against the roadmap +- On-boarding new sponsors and stakeholders +- Overall project governance (including this policy) +- Addressing any legal considerations + +#### PMC Committee Members +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] + +
+ +Emeriti + +#### PMC Emeriti +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] + +
+ +#### Scope + +The PMC has management authority over the same project repositories over which the TSC has technical authority over. + +#### Decision Making Process + +The PMC will consist of a product manager and additional representative from sponsors and key stakeholders. The PMC or sponsoring organizations can nominate new members at any time. Care should be taken not to include too many members from a single stakeholder project or organization. + +Regular stakeholder meetings are held to discuss current project status and propose changes to the project roadmap. If stakeholder representatives and sponsors concur with these proposals during the meeting, they will be immediately adopted. A member of the PMC will ensure the changes have been captured and recorded. Regular stakeholder meetings will be open to the entire community, but only members of the PMC have decision making authority. + +Additional meetings may be held if consensus is not met or to discuss significant changes to the roadmap due to changes in stakeholder priorities or available resources. Any decision made outside of stakeholder meetings must still be approved by all sponsors and stakeholders. If full consensus cannot be made, the product manager has the final authority to determine project direction. Any non-concurrences from stakeholders or sponsors will be noted. + +### Product Manager + +Overall manager of the project with final authority over all key decisions when consensus cannot be reached within the TSC or PSC. The product manager is often chosen at the onset of project initiation and can be reassigned by the PMC (with institutional approval, if applicable). + +# Acknowledgements + +Much of this governance model was adapted from the other notable open source projects including [node.js](https://github.com/nodejs/node/blob/main/GOVERNANCE.md), [OpenSSL](https://www.openssl.org/policies/omc-bylaws.html), [PostgresQL](https://www.postgresql.org/developer/), and [OpenMCT](https://github.com/nasa/openmct/blob/master/CONTRIBUTING.md). We would like to thank those projects for setting the foundation upon which this model was built. +```` + diff --git a/static/assets/governance/governance-model/GOVERNANCE-TEMPLATE-MEDIUM-TEAMS.md b/static/assets/governance/governance-model/GOVERNANCE-TEMPLATE-MEDIUM-TEAMS.md new file mode 100644 index 000000000..7d4693a54 --- /dev/null +++ b/static/assets/governance/governance-model/GOVERNANCE-TEMPLATE-MEDIUM-TEAMS.md @@ -0,0 +1,69 @@ +--- +title: Governance Model (Medium Teams) +sidebar_label: For Medium Teams +--- + +````markdown +# [INSERT PROJECT NAME] Project Governance + +This governance model aims to create an open source community that encourages transparency, contributions, and collaboration, but maintains sound technical and quality standards. Our goal is to build a community comprised of members across the [INSERT PROJECT DOMAIN] community and beyond, including from private organizations, universities, government organizations, and international organizations. + +The project follows a fairly liberal contribution model where people and/or organizations who do the most work will have the most influence on project direction. Roles determine decision making influence, and governing committees (e.g. technical steering, project steering) are set up to ensure the project's direction is in-line with requirements / goals while supporting flexibility for future growth and membership. Technical decision making will primarily be made through a "[consensus-seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making)" approach within the respective governing committees. + +## Roles + +| Role | Restricted To | Description | Read/Clone | Propose Pull Request | Comment in Tickets / Discussions | Review | Commit | Technical & Project Decisions | +| ------------------ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | -------------------- | -------------------------------- | ------ | ------ | ----------------- | +| Contributor | None | Anyone providing input to the project, including: code, issues, documentation, graphics, etc. | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| Committer | Contributor | Subset of contributors granted write access to one or more of the project repositories upon selection by the Steering Committee | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| Steering Committee | Committer | Members with decision-making authority on technical, strategic, and organizational matters. They have admin privileges and are responsible for the overall governance of the project. | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Product Manager | Steering Committee | Overall manager of the project with final authority over all key decisions when consensus cannot be reached | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | + +### Contributor + +Contributors include anyone that provides input to the project. This includes code, issues, documentation, graphics, designs, or anything else that tangibly improves the project. We encourage you to start contributing right away by joining our [Discussions]([INSERT LINK TO DISCUSSION BOARD OR MAILING LIST(S)]) or submitting an [Issue]([INSERT LINK TO ISSUE TRACKING SYSTEM]). + +### Committer + +Subset of contributors who have been given write access to one or more project repositories. Both contributors and committers can propose changes to the project via pull requests, but only committers can formally review and approve (merge) these requests. Any contributor who has made a non-trivial contribution should be onboarded as a committer in a timely manner. + +If you are planning on making a substantial contribution to the project or feel as though you should be given write access to a repository, please send a request to https://github.com/riverma/ + +#### List of Committers +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] + +### Steering Committee + +The Steering Committee is responsible for the overall governance of the project. This includes: + +- Technical direction and guidance +- Committee governance and process +- Contribution policy +- Conduct guidelines +- Maintaining the list of committers + +#### Steering Committee Members +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] + +
+Emeriti +#### SC Emeriti + +
+ +#### Decision Making Process + +Any community member can create an issue or comment asking the Steering Committee to review something. Prior to implementing a substantial contribution, the design of that contribution should be reviewed by at least one member of the Steering Committee. If consensus-seeking fails during the review of a pull request or in design discussions, the issue will be addressed by the Steering Committee to make a determination on direction. Committee members will meet regularly and will keep track of decisions made when consensus was not met. + +The Steering Committee can nominate new members at any time. Candidates for membership tend to be committers who have shown great dedication to the project and/or experts in a particular domain or project component. Committee members are expected to be active contributors or members who have made significant contributions within the past 12 months. + +### Product Manager + +Overall manager of the project with final authority over all key decisions when consensus cannot be reached within the Steering Committee. The product manager is often chosen at the onset of project initiation and can be reassigned by the Steering Committee (with institutional approval, if applicable). + +# Acknowledgements + +Much of this governance model was adapted from other notable open source projects including [node.js](https://github.com/nodejs/node/blob/main/GOVERNANCE.md), [OpenSSL](https://www.openssl.org/policies/omc-bylaws.html), [PostgresQL](https://www.postgresql.org/developer/), and [OpenMCT](https://github.com/nasa/openmct/blob/master/CONTRIBUTING.md). We would like to thank those projects for setting the foundation upon which this model was built. +```` \ No newline at end of file diff --git a/static/assets/governance/governance-model/GOVERNANCE-TEMPLATE-SMALL-TEAMS.md b/static/assets/governance/governance-model/GOVERNANCE-TEMPLATE-SMALL-TEAMS.md new file mode 100644 index 000000000..fe6eddab1 --- /dev/null +++ b/static/assets/governance/governance-model/GOVERNANCE-TEMPLATE-SMALL-TEAMS.md @@ -0,0 +1,42 @@ +--- +title: Governance Model (Small Teams) +sidebar_label: For Small Teams +--- + +````markdown +# [INSERT PROJECT NAME] Project Governance + +This governance model aims to create an open source community that encourages transparency, contributions, and collaboration, but maintains sound technical and quality standards. Our goal is to build a community comprised of members across the [INSERT PROJECT DOMAIN] community and beyond, including from private organizations, universities, government organizations, and international organizations. + +The project follows a fairly liberal contribution model where people and/or organizations who do the most work will have the most influence on project direction. Roles determine decision making influence, and governing committees (e.g. technical steering, project steering) are set up to ensure the project's direction is in-line with requirements / goals while supporting flexibility for future growth and membership. Technical decision making will primarily be made through a "[consensus-seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making)" approach within the respective governing committees. + +## Roles + +| Role | Restricted To | Description | Read/Clone | Propose Pull Request | Comment in Tickets / Discussions | Review | Commit | Technical & Project Decisions | +| --------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | -------------------- | -------------------------------- | ------ | ------ | ----------------------------- | +| Contributor | None | Anyone providing input to the project, including: code, issues, documentation, graphics, etc. | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| Committer | Contributor | Subset of contributors granted write access to one or more of the project repositories. Responsible for reviewing and approving proposed changes. | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| Product Manager | Committer | Overall manager of the project with final authority over all key decisions when consensus cannot be reached among contributors. | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | + +### Contributor + +Contributors include anyone that provides input to the project. This includes code, issues, documentation, graphics, designs, or anything else that tangibly improves the project. We encourage you to start contributing right away by joining our [Discussions]([INSERT LINK TO DISCUSSION BOARD OR MAILING LIST(S)]) or submitting an [Issue]([INSERT LINK TO ISSUE TRACKING SYSTEM]). + +### Committer + +Subset of contributors who have been given write access to one or more project repositories. Both contributors and committers can propose changes to the project via pull requests, but only committers can formally review and approve (merge) these requests. Any contributor who has made a non-trivial contribution should be onboarded as a committer in a timely manner. + +If you are planning on making a substantial contribution to the project or feel as though you should be given write access to a repository, please send a request to https://github.com/riverma/ + +#### List of Committers +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] +- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] + +### Product Manager + +Overall manager of the project with final authority over all key decisions when consensus cannot be reached among committers. The product manager is often chosen at the onset of project initiation and can be reassigned with stakeholder approval. + +# Acknowledgements + +Much of this governance model was adapted from other notable open source projects including [node.js](https://github.com/nodejs/node/blob/main/GOVERNANCE.md), [OpenSSL](https://www.openssl.org/policies/omc-bylaws.html), [PostgresQL](https://www.postgresql.org/developer/), and [OpenMCT](https://github.com/nasa/openmct/blob/master/CONTRIBUTING.md). We would like to thank those projects for setting the foundation upon which this model was built. +```` \ No newline at end of file diff --git a/static/assets/governance/governance-model/governance-template-small-team.md b/static/assets/governance/governance-model/governance-template-small-team.md deleted file mode 100644 index 512547e50..000000000 --- a/static/assets/governance/governance-model/governance-template-small-team.md +++ /dev/null @@ -1,73 +0,0 @@ -# [INSERT PROJECT NAME] Project Governance - -This governance model aims to create an open source community that encourages transparency, contributions, and collaboration, but maintains sound technical and quality standards. Our goal is to build a community comprised of members across the [INSERT PROJECT DOMAIN] community and beyond, including from private organizations, universities, government organizations, and international organizations. - -The project follows a fairly liberal contribution model where people and/or organizations who do the most work will have the most influence on project direction. Roles determine decision making influence, and a governing Steering Committee is set up to ensure the project's direction is in-line with requirements/goals while supporting flexibility for future growth and membership. Decision making will primarily be made through a "[consensus-seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making)" approach within the Steering Committee. - -## Roles - -| Role | Restricted To | Description | Read/Clone | Propose Pull Request | Comment in Tickets / Discussions | Triage | Review | Commit | Decisions | -| ------------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | -------------------- | -------------------------------- | ------ | ------ | ------ | ------------------------- | -| User | None | Anyone downloading, deploying, or operating the software to meet a specific objective. | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | -| Contributor | None | Anyone providing input to the project, including: code, issues, documentation, graphics, etc. | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | -| Committer | Contributor | Subset of contributors granted write access to one or more of the project repositories. | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| Steering Committee Member | Committer | A subset of committers with decision making authority over technical and project aspects, including admin privileges. | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| Product Manager | Steering Committee Member | Overall manager of project with final authority over all key decisions when consensus cannot be reached within the Steering Committee. | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - -### User - -Anyone who has downloaded, deployed, or operated [INSERT PROJECT NAME] to meet a specific objective. This project was primarily designed for [INSERT DESCRIPTION OF PROJECT PURPOSE], but let us know if you've found other uses for it. - -### Contributor - -Contributors include anyone that provides input to the project. This includes code, issues, documentation, graphics, designs, or anything else that tangibly improves the project. We encourage you to start contributing right away by joining our [Discussions]([INSERT LINK TO DISCUSSION BOARD OR MAILING LIST(S)]) or submitting an [Issue]([INSERT LINK TO ISSUE TRACKING SYSTEM]). - -### Triager - -Subset of contributors who have demonstrated a strong familiarity with the project and are regularly contributing to the project via issue creation, commenting, discussions, etc. Triagers are given specific permissions do the following: - - - Label issues and pull requests - - Comment, close, and reopen issues and pull requests - -[List of current Triagers]([INSERT LINK TO GITHUB, GITLAB, ETC. TEAM ASSOCIATED WITH TRIAGERS]) - -### Collaborator - -Subset of contributors who have been given write access to one or more project repositories. Both contributors and collaborators can propose changes to the project via pull requests, but only collaborators can formally review and approve (merge) these requests. Any contributor who has made a non-trivial contribution should be on-boarded as a collaborator in a timely manner. - -If you are planning on making a substantial contribution to the project or feel as though you should be given write access to a repository, please send a request to [INSERT LINK TO EMAIL/GITHUB USER HANDLE] - -[List of current collaborators]([INSERT LINK TO GITHUB, GITLAB, ETC. TEAM ASSOCIATED WITH COLLABORATORS]) - -### Steering Committee Member - -A subset of collaborators form the Steering Committee. The Steering Committee has authority over all aspects of this project: - -- Technical direction and guidance -- Project governance and process -- Contribution policy -- Conduct guidelines -- Maintaining the list of collaborators - -#### Committee Members -- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] -(Additional member listings) - -
-Emeriti -#### Committee Emeriti -- [INSERT MEMBER NAME] ([username1]([INSERT LINK TO USERNAME]), [INSERT ORG ASSOCIATION] -(Additional member listings) -
- -#### Scope -(Description remains the same as TSC Scope) - -#### Decision Making Process -(Description remains the same as TSC Decision Making Process) - -### Product Manager -(Description remains the same) - -# Acknowledgements -(Description remains the same) \ No newline at end of file diff --git a/static/data/slim-registry.json b/static/data/slim-registry.json index 972f521e2..ad922f81a 100644 --- a/static/data/slim-registry.json +++ b/static/data/slim-registry.json @@ -12,14 +12,19 @@ ], "assets": [ { - "name": "Governance Template", + "name": "Governance Template (Small Teams)", "type": "text/md", - "uri": "https://raw.githubusercontent.com/NASA-AMMOS/slim/main/static/assets/governance/governance-model/GOVERNANCE-TEMPLATE.md" + "uri": "https://raw.githubusercontent.com/NASA-AMMOS/slim/main/static/assets/governance/governance-model/GOVERNANCE_TEMPLATE_SMALL_TEAMS.md" }, { - "name": "Governance Template (Small Teams)", + "name": "Governance Template (Medium Teams)", + "type": "text/md", + "uri": "https://raw.githubusercontent.com/NASA-AMMOS/slim/main/static/assets/governance/governance-model/GOVERNANCE_TEMPLATE_MEDIUM_TEAMS.md" + }, + { + "name": "Governance Template (Large Teams)", "type": "text/md", - "uri": "https://raw.githubusercontent.com/NASA-AMMOS/slim/main/static/assets/governance/governance-model/governance-template-small-team.md" + "uri": "https://raw.githubusercontent.com/NASA-AMMOS/slim/main/static/assets/governance/governance-model/GOVERNANCE_TEMPLATE_LARGE_TEAMS.md" } ] },