|
| 1 | +// SPDX-License-Identifier: MPL-2.0 |
| 2 | +// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> |
| 3 | += Governance Model |
| 4 | +:toc: preamble |
| 5 | + |
| 6 | +This document describes the governance model for this repository. |
| 7 | + |
| 8 | +== Overview |
| 9 | + |
| 10 | +This repository follows a **Sole Maintainer Governance Model**: |
| 11 | + |
| 12 | +* Single maintainer (@hyperpolymath) has full authority over the project |
| 13 | +* All contributions are welcome and reviewed by the maintainer |
| 14 | +* Decisions are made transparently through GitHub issues and discussions |
| 15 | +* The project adheres to the hyperpolymath estate policies where applicable |
| 16 | + |
| 17 | +== Core Principles |
| 18 | + |
| 19 | +[cols="1,2"] |
| 20 | +|=== |
| 21 | +| Principle | Description |
| 22 | + |
| 23 | +| **Benevolent Dictatorship** | Maintainer has final decision authority but seeks community input |
| 24 | + |
| 25 | +| **Meritocracy** | Contributions are judged on technical merit, not contributor identity |
| 26 | + |
| 27 | +| **Transparency** | All significant decisions are documented publicly |
| 28 | + |
| 29 | +| **Consensus-Seeking** | Maintainer prefers consensus but will decide when necessary |
| 30 | + |
| 31 | +| **Open Contribution** | Anyone can contribute via fork and pull request |
| 32 | + |
| 33 | +|=== |
| 34 | + |
| 35 | +== Roles and Permissions |
| 36 | + |
| 37 | +[cols="1,2,2"] |
| 38 | +|=== |
| 39 | +| Role | Permissions | Assignment |
| 40 | + |
| 41 | +| **Maintainer** | Write access, merge rights, admin | @hyperpolymath |
| 42 | +| **Contributors** | Read access, fork, submit PRs | All GitHub users |
| 43 | +| **Users** | Use the software, report issues | All GitHub users |
| 44 | + |
| 45 | +|=== |
| 46 | + |
| 47 | +== Decision Making Framework |
| 48 | + |
| 49 | +=== Routine Decisions |
| 50 | + |
| 51 | +* Bug fixes |
| 52 | +* Documentation improvements |
| 53 | +* Minor feature additions |
| 54 | +* Dependency updates |
| 55 | + |
| 56 | +**Process**: Maintainer reviews and merges PRs that meet quality standards. |
| 57 | + |
| 58 | +=== Significant Changes |
| 59 | + |
| 60 | +* New major features |
| 61 | +* API changes |
| 62 | +* Architecture modifications |
| 63 | +* Breaking changes |
| 64 | + |
| 65 | +**Process**: |
| 66 | +. Open issue describing the change |
| 67 | +. Discuss with community (minimum 72 hours) |
| 68 | +. Maintainer makes final decision |
| 69 | +. Document rationale in issue/PR |
| 70 | + |
| 71 | +=== Structural Decisions |
| 72 | + |
| 73 | +* Repository purpose/renaming |
| 74 | +* License changes |
| 75 | +* Ownership transfer |
| 76 | +* Deprecation/archival |
| 77 | + |
| 78 | +**Process**: |
| 79 | +. Extended discussion (minimum 1 week) |
| 80 | +. Maintainer makes final decision |
| 81 | +. Document in CHANGELOG and governance docs |
| 82 | + |
| 83 | +== Contribution Lifecycle |
| 84 | + |
| 85 | +[cols="1,2"] |
| 86 | +|=== |
| 87 | +| Stage | Process |
| 88 | + |
| 89 | +| **Ideation** | Open issue, discuss feasibility |
| 90 | + |
| 91 | +| **Development** | Fork, implement, test thoroughly |
| 92 | + |
| 93 | +| **Review** | Submit PR, maintainer reviews within 7 days |
| 94 | + |
| 95 | +| **Merge** | Maintainer merges or requests changes |
| 96 | + |
| 97 | +| **Release** | Maintainer publishes according to project conventions |
| 98 | + |
| 99 | +|=== |
| 100 | + |
| 101 | +== Conflict Resolution |
| 102 | + |
| 103 | +In case of disagreements: |
| 104 | + |
| 105 | +. Discuss in the relevant GitHub issue or PR |
| 106 | +. Provide technical justification for positions |
| 107 | +. Maintainer mediates and makes final decision |
| 108 | +. Decision is documented and can be revisited later |
| 109 | + |
| 110 | +== Project Policies |
| 111 | + |
| 112 | +This repository adheres to hyperpolymath estate-wide policies: |
| 113 | + |
| 114 | +* **License**: MPL-2.0 for code, CC-BY-SA-4.0 for prose (per standards/LICENCE-POLICY.adoc) |
| 115 | +* **Code of Conduct**: Follows hyperpolymath CODE_OF_CONDUCT.md |
| 116 | +* **Security**: Follows hyperpolymath SECURITY.md |
| 117 | +* **Contributing**: Follows hyperpolymath CONTRIBUTING.adoc conventions |
| 118 | + |
| 119 | +== Repository-Specific Conventions |
| 120 | + |
| 121 | +[cols="1,2"] |
| 122 | +|=== |
| 123 | +| Convention | Description |
| 124 | + |
| 125 | +| **Signing** | All commits must be signed (SSH or GPG) |
| 126 | + |
| 127 | +| **SPDX Headers** | All source files must have SPDX license identifiers |
| 128 | + |
| 129 | +| **Contractiles** | Mustfile, Trustfile, Intendfile, Adjustfile in root |
| 130 | + |
| 131 | +| **Machine Readable** | META.a2ml in .machine_readable/6a2/ |
| 132 | + |
| 133 | +| **CI/CD** | GitHub Actions workflows in .github/workflows/ |
| 134 | + |
| 135 | +|=== |
| 136 | + |
| 137 | +== Governance Evolution |
| 138 | + |
| 139 | +As the project grows, this governance model may evolve: |
| 140 | + |
| 141 | +* **Adding Co-Maintainers**: When contribution volume warrants it |
| 142 | +* **Forming a Team**: For complex multi-maintainer projects |
| 143 | +* **Adopting TPCF**: For large, multi-repository projects (see rhodium-standard-repositories) |
| 144 | + |
| 145 | +Changes to this document require the same process as Significant Changes above. |
| 146 | + |
| 147 | +== See Also |
| 148 | + |
| 149 | +* link:MAINTAINERS.adoc[Maintainers] |
| 150 | +* link:CODE_OF_CONDUCT.md[Code of Conduct] |
| 151 | +* link:CONTRIBUTING.adoc[Contributing Guide] |
| 152 | +* link:https://github.com/hyperpolymath/standards/blob/main/LICENCE-POLICY.adoc[Estate License Policy] |
| 153 | +* link:https://github.com/hyperpolymath/standards[rhodium-standard-repositories (TPCF)] |
| 154 | + |
| 155 | +== Changelog |
| 156 | + |
| 157 | +[cols="1,1,1"] |
| 158 | +|=== |
| 159 | +| Date | Change | By |
| 160 | + |
| 161 | +| 2026-06-07 | Initial governance model established | @hyperpolymath |
| 162 | +|=== |
0 commit comments