|
| 1 | +--- |
| 2 | +title: Governance |
| 3 | +weight: 10 |
| 4 | +--- |
| 5 | + |
| 6 | +<!-- The governance model is similar to https://github.com/containerd/project/blob/main/GOVERNANCE.md but simplified --> |
| 7 | + |
| 8 | +## Code of Conduct |
| 9 | +Lima follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). |
| 10 | + |
| 11 | +## Maintainership |
| 12 | +Lima is governed by Maintainers who are elected from active contributors. |
| 13 | + |
| 14 | +As a [Cloud Native Computing Foundation](https://cncf.io/) project, Lima will keep its [vendor-neutrality](https://contribute.cncf.io/maintainers/community/vendor-neutrality/). |
| 15 | + |
| 16 | +### Roles |
| 17 | +Maintainers consist of two roles: |
| 18 | + |
| 19 | +- **Committer** (Full maintainership): Committers have full write accesses to repos under <https://github.com/lima-vm>. |
| 20 | + Committers' commits should still be made via GitHub pull requests (except for urgent security fixes), and should not be pushed directly. |
| 21 | + Committers are also recognized as Maintainers in <https://github.com/cncf/foundation/blob/main/project-maintainers.csv>. |
| 22 | + |
| 23 | +- **Reviewer** (Limited maintainership): Reviewers may moderate GitHub issues and pull requests (such as adding labels and cleaning up spams), |
| 24 | + but they do not have any access to merge pull requests nor push commits. |
| 25 | + A Reviewer is considered as a candidate to become a Committer. |
| 26 | + Reviewers are not recognized as Maintainers in <https://github.com/cncf/foundation/blob/main/project-maintainers.csv>. |
| 27 | + |
| 28 | +See also the [Contributing](../contributing) page. |
| 29 | + |
| 30 | +### Current maintainers |
| 31 | + |
| 32 | +| Name | Role | GitHub ID (not X ID) | GPG fingerprint | |
| 33 | +|--------------------|-----------|------------------------------------------------|------------------------------------------------------------------------------------------| |
| 34 | +| Akihiro Suda | Committer | [@AkihiroSuda](https://github.com/AkihiroSuda) | [C020 EA87 6CE4 E06C 7AB9 5AEF 4952 4C6F 9F63 8F1A](https://github.com/AkihiroSuda.gpg) | |
| 35 | +| Jan Dubois | Committer | [@jandubois](https://github.com/jandubois) | [DBF6 DA01 BD81 2D63 3B77 300F A2CA E583 3B6A D416](https://github.com/jandubois.gpg) | |
| 36 | +| Anders F Björklund | Committer | [@afbjorklund](https://github.com/afbjorklund) | [5981 D2E8 4E4B 9197 95B3 2174 DC05 CAD2 E73B 0C92](https://github.com/afbjorklund.gpg) | |
| 37 | +| Balaji Vijayakumar | Committer | [@balajiv113](https://github.com/balajiv113) | [80E1 01FE 5C89 FCF6 6171 72C8 377C 6A63 934B 8E6E](https://github.com/balajiv113.gpg) | |
| 38 | + |
| 39 | +<!-- TODO: invite non-committer reviewers --> |
| 40 | + |
| 41 | +### Addition and promotion of Maintainers |
| 42 | +An active contributor to the project can be invited as a Reviewer, |
| 43 | +and can be eventually promoted to a Committer after 2 months at least. |
| 44 | + |
| 45 | +A contributor who have made significant contributions in quality and in quantity |
| 46 | +can be also directly invited as a Committer. |
| 47 | + |
| 48 | +A proposal to add or promote a Maintainer must be approved by 2/3 of the Committers who vote within 7 days. |
| 49 | +Voting needs 2 approvals at least. The proposer can vote too. |
| 50 | + |
| 51 | +A proposal should happen as a GitHub pull request to the Maintainer list above. |
| 52 | +It is highly suggested to reach out to the Committers before submitting a pull request to check the will of the Committers. |
| 53 | + |
| 54 | +### Removal and demotion of Maintainers |
| 55 | +A Maintainer who do not show significant activities for 6 months, or, who have been violating the Code of Conduct, |
| 56 | +may be demoted or removed from the project. |
| 57 | + |
| 58 | +A proposal to demote or remove a Maintainer must be approved by 2/3 of the Committers (excluding the person in question) who vote within 14 days. |
| 59 | +Voting needs 2 approvals at least. The proposer can vote too. |
| 60 | + |
| 61 | +A proposal may happen as a GitHub pull request, or, as a private discussion in the case of removal of a harmful Maintainer. |
| 62 | +It is highly suggested to reach out to the Committers before submitting a pull request to check the will of the Committers. |
| 63 | + |
| 64 | +### Other decisions |
| 65 | +Any decision that is not documented here can be made by the Committers. |
| 66 | +When a dispute happens across the Committers, it will be resolved through a majority vote within the Committers. |
| 67 | +A tie should be considered as a failed vote. |
| 68 | + |
| 69 | +## Release process |
| 70 | + |
| 71 | +Eligibility to be a release manager: |
| 72 | +- MUST be an active Committer |
| 73 | +- MUST have the GPG fingerprint listed in the maintainer list above |
| 74 | +- MUST upload the GPG public key to `https://github.com/USERNAME.gpg` |
| 75 | +- MUST protect the GPG key with a passphrase or a hardware token. |
| 76 | + |
| 77 | +Release steps: |
| 78 | +- Open an issue to propose making a new release. e.g., <https://github.com/lima-vm/lima/issues/2296>. |
| 79 | + The proposal should be public, with an exception for vulnerability fixes. |
| 80 | + If this is the first time for you to take a role of release management, |
| 81 | + you SHOULD make a beta (or alpha, RC) release as an exercise before releasing GA. |
| 82 | +- Make sure that all the merged PRs are associated with the correct [Milestone](https://github.com/lima-vm/lima/milestones). |
| 83 | +- Run `git tag --sign vX.Y.Z-beta.W` . |
| 84 | +- Run `git push UPSTREAM vX.Y.Z-beta.W` . |
| 85 | +- Wait for the `Release` action on GitHub Actions to complete. A draft release will appear in https://github.com/lima-vm/lima/releases . |
| 86 | +- Download `SHA256SUMS` from the draft release, and confirm that it corresponds to the hashes printed in the build logs on the `Release` action. |
| 87 | +- Sign `SHA256SUMS` with `gpg --detach-sign -a SHA256SUMS` to produce `SHA256SUMS.asc`, and upload it to the draft release. |
| 88 | +- Add release notes in the draft release, to explain the changes and show appreciation to the contributors. |
| 89 | + Make sure to fulfill the `Release manager: [ADD YOUR NAME HERE] (@[ADD YOUR GITHUB ID HERE])` line with your name. |
| 90 | + e.g., `Release manager: Akihiro Suda (@AkihiroSuda)` . |
| 91 | +- Click the `Set as a pre-release` checkbox if this release is a beta (or alpha, RC). |
| 92 | +- Click the `Publish release` button. |
| 93 | +- Close the [Milestone](https://github.com/lima-vm/lima/milestones). |
0 commit comments