|
| 1 | +# Twelve-Factor Governance |
| 2 | + |
| 3 | +This document defines the governance structure for the twelve-factor manifesto |
| 4 | +maintained at [https://12factor.net](https://12factor.net). This project is |
| 5 | +committed to building an open, inclusive, productive and self-governing open |
| 6 | +source community. The guidelines herein describe how the twelve-factor |
| 7 | +community should work together to achieve this goal. |
| 8 | + |
| 9 | +## Membership |
| 10 | + |
| 11 | +A member of the project is a person who has contributed to twelve-factor via |
| 12 | +source code, documentation, pull requests, issues, or discussions. A member may |
| 13 | +additionally have one of the roles listed below. Roles are tied to individuals, |
| 14 | +not companies. Therefore a person leaving a role from a company cannot transfer |
| 15 | +the role to someone else in that company. |
| 16 | + |
| 17 | +### Maintainers |
| 18 | + |
| 19 | +Maintainers are members who are in charge of the day-to-day work of the project |
| 20 | +and its technical governing body. The [maintainership group](MAINTAINERS.md) should be |
| 21 | +sufficiently large to provide diverse perspectives and ensure sustainable |
| 22 | +governance, ideally comprising more than ten but fewer than fifty members. |
| 23 | +Maintainers oversee all aspects of the project and have a mandate to drive |
| 24 | +consensus for: |
| 25 | + |
| 26 | +* Defining and maintaining the mission and charter for the project. |
| 27 | +* Fostering a healthy and welcoming community, including by defining and |
| 28 | + enforcing our Code of Conduct. |
| 29 | +* Defining the governance structure of the project including how changes are |
| 30 | + proposed and merged. |
| 31 | +* Anything else that falls through the cracks. |
| 32 | + |
| 33 | +New maintainers must be nominated by existing maintainers and elected by a |
| 34 | +(66%+) supermajority of the maintainers. Maintainers may graduate to emeritus |
| 35 | +status by request or by a super-majority vote of the rest of the maintainers. |
| 36 | + |
| 37 | +### Contributors |
| 38 | + |
| 39 | +Contributors are members who make regular contributions (documentation, |
| 40 | +reviews, responding to issues, participation in proposal discussions, code, |
| 41 | +etc.) and are therefore granted additional permissions (triaging issues, |
| 42 | +merging approved PRs, pushing to non-protected branches) that support those |
| 43 | +activities. |
| 44 | + |
| 45 | +New contributors may be self-nominated or be nominated by existing |
| 46 | +contributors, and must be approved by a super-majority of the maintainers. |
| 47 | +Likewise, contributors may resign or can be removed by a super-majority of |
| 48 | +maintainers. |
| 49 | + |
| 50 | +### Emeritus |
| 51 | + |
| 52 | +Serving as a member of an open source project requires a significant amount of |
| 53 | +work that cannot be sustained indefinitely. The project recognizes emeritus |
| 54 | +members to whom we will always be grateful, but who no longer actively |
| 55 | +participate in the project. |
| 56 | + |
| 57 | +Project members should graduate to emeritus status through self-nomination when |
| 58 | +they no longer intend to actively fulfill an assigned role in the project. |
| 59 | +Members holding multiple roles may choose emeritus status for one role while |
| 60 | +retaining other roles. |
| 61 | + |
| 62 | +As a guideline, when members have not been active contributors for longer than |
| 63 | +3 months they should be nominated to be moved to emeritus. Out of courtesy, a |
| 64 | +notice for nomination should be given to members that fall under this category |
| 65 | +prior to being nominated. |
| 66 | + |
| 67 | +If emeritus members in a leadership position in the project wish to regain an |
| 68 | +active role, they may skip the normal nomination process and can do so by |
| 69 | +renewing their contributions for at least two weeks and contacting an existing |
| 70 | +maintainer to review their work and mark them active again. |
| 71 | + |
| 72 | +## Change Management Process |
| 73 | + |
| 74 | +The twelve-factor manifesto is treated as a foundational reference, so changes |
| 75 | +follow a defined process: |
| 76 | + |
| 77 | +* **Change Principles**: To accept or reject a change, the following principles |
| 78 | + will be used: |
| 79 | + * Changes should align with the core values and objectives in the |
| 80 | + [Twelve-Factor Vision](VISION.md). |
| 81 | + * Consensus among maintainers is preferred, aiming for broad agreement. |
| 82 | +* **Change Approval**: Changes require different levels of approval depending |
| 83 | + on their significance. Medium and large changes should be open for feedback |
| 84 | + for a minimum of one week. This ensures the community has time to comment. |
| 85 | + Members can \-1 the change to represent concerns that need to be discussed. A |
| 86 | + vote should only be held if consensus cannot be reached. |
| 87 | + * **Small Changes**: These include minor updates such as grammar corrections, |
| 88 | + clarifications, or updates to examples. Small changes require sign-off from |
| 89 | + at least one maintainer, with no active maintainer concerns. |
| 90 | + * **Medium Changes**: These include significant modifications to an existing |
| 91 | + factor, such as changing recommendations or updating the scope of a factor. |
| 92 | + Medium changes require sign-off from at least three maintainers, with no |
| 93 | + active maintainer concerns. |
| 94 | + * **Large Changes**: These include adding a new factor, removing an existing |
| 95 | + factor, or making substantial alterations to core principles. Large changes |
| 96 | + require sign-off from at least five maintainers, with no active maintainer |
| 97 | + concerns. |
| 98 | +* **Version Control**: Medium and large changes will be made in a "next" branch |
| 99 | + within the version control system (e.g., Git), allowing the community to test |
| 100 | + and evaluate proposed modifications before they are finalized. This ensures |
| 101 | + traceability and the ability to easily review and revert changes if needed. |
| 102 | + |
| 103 | +## Major Releases |
| 104 | + |
| 105 | +Once the changes in the "next" branch have been tested and reviewed, |
| 106 | +maintainers will review the set of changes and sign off with a supermajority on |
| 107 | +"major releases" of the principles. This process moves the changes from the |
| 108 | +"next" branch to the main branch, officially updating the manifesto. Major |
| 109 | +releases will happen no more than once a year to ensure stability and provide |
| 110 | +sufficient time for evaluation and community feedback. |
| 111 | + |
| 112 | +## Updating Governance |
| 113 | + |
| 114 | +All substantive changes in Governance require a supermajority agreement by the |
| 115 | +maintainers. |
| 116 | + |
| 117 | +## Brand |
| 118 | + |
| 119 | +In its pre-foundation form, Heroku will retain control over the brand of the |
| 120 | +project. The brand is inclusive of any associated logos, trademarks, and site |
| 121 | +designs. The intent is to find a longer term home where this will all be |
| 122 | +transferred to a foundation for community governance. The governance will be |
| 123 | +updated to reflect when this change occurs. |
| 124 | + |
| 125 | +## Code of Conduct |
| 126 | + |
| 127 | +For code of conduct, we will follow the [Contributor |
| 128 | +Covenant](https://www.contributor-covenant.org/). In case of violations of the |
| 129 | +covenant, the following process will be followed: |
| 130 | + |
| 131 | +1. **Initial Report**: Violations must be reported to the |
| 132 | + [maintainers](MAINTAINERS.md). Reports can be submitted anonymously or |
| 133 | + directly to a designated maintainer. |
| 134 | +2. **Assessment**: Upon receiving a report, a team of three (3) maintainers |
| 135 | + will be selected to assess the situation and gather relevant information. |
| 136 | + This may involve interviewing the involved parties and any witnesses. |
| 137 | +3. **Decision**: Based on the gathered information, maintainers will decide on |
| 138 | + the appropriate action. Actions may include issuing warnings, requiring a |
| 139 | + formal apology, removing members from roles, or banning individuals from |
| 140 | + participation. |
| 141 | +4. **Notification**: The involved parties will be informed of the decision, and |
| 142 | + a record will be kept for future reference. |
| 143 | +5. **Appeal**: The individual subject to disciplinary action has the right to |
| 144 | + appeal the decision. Appeals will be reviewed by a panel of maintainers not |
| 145 | + directly involved in the initial assessment. |
| 146 | + |
| 147 | +Actions may vary depending on the severity of the infraction, and maintainers |
| 148 | +will strive to apply consequences consistently and fairly. |
| 149 | + |
| 150 | +## Definitions |
| 151 | + |
| 152 | +#### Supermajority |
| 153 | + |
| 154 | +Throughout these documents, "supermajority" means 66%+. |
0 commit comments