Skip to content

Commit

Permalink
website: add community governance, etc.
Browse files Browse the repository at this point in the history
Establish the governance model so as to facilitate getting more contributions from new and existing contributors.

I also expect that this will help getting more involvements from other maintainers for reviewing/merging PRs and making new releases.
Too much power and reponsibility have been concentrating on me.

This PR is intended to fulfill the requirements listed in [CNCF Incubation Application v1.5](https://github.com/cncf/toc/blob/8211f562bb3123a7be85c2de4f3b741a0e448e66/.github/ISSUE_TEMPLATE/template-incubation-application.md).

See also ["Applying to become an Incubating or Graduating project"](https://github.com/cncf/toc/tree/8211f562bb3123a7be85c2de4f3b741a0e448e66/process#applying-to-become-an-incubating-or-graduating-project)

- [X] Governance
- [X] Release process
- [X] Contribution guide
- [X] Subproject list

TODOs:
- Complete [OpenSSF Best Practices](https://www.bestpractices.dev/en/projects/6505)
- Submit [Security Self-Assessment](https://github.com/cncf/tag-security/blob/main/assessments/guide/self-assessment.md)
  to <https://github.com/cncf/tag-security/tree/main/assessments/projects>

- Submit an incubation application to <https://github.com/cncf/toc/issues>

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
  • Loading branch information
AkihiroSuda committed May 21, 2024
1 parent 3b48462 commit 41015df
Show file tree
Hide file tree
Showing 11 changed files with 183 additions and 23 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@ jobs:
The build log is available for 90 days: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
The sha256sum of the SHA256SUMS file itself is \`${shasha}\` .
- - -
Release manager: [ADD YOUR NAME HERE] (@[ADD YOUR GITHUB ID HERE])`
EOF
- name: "Create release"
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
Expand Down
11 changes: 1 addition & 10 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
@@ -1,10 +1 @@
# Lima maintainers

| Name | GitHub ID (not Twitter ID) | GPG fingerprint |
|--------------------|------------------------------------------------|------------------------------------------------------------------------------------------|
| Akihiro Suda | [@AkihiroSuda](https://github.com/AkihiroSuda) | [C020 EA87 6CE4 E06C 7AB9 5AEF 4952 4C6F 9F63 8F1A](https://github.com/AkihiroSuda.gpg) |
| Jan Dubois | [@jandubois](https://github.com/jandubois) | |
| Anders F Björklund | [@afbjorklund](https://github.com/afbjorklund) | |
| Balaji Vijayakumar | [@balajiv113](https://github.com/balajiv113) | |

See https://github.com/lima-vm/.github/blob/main/SECURITY.md for how to report security issues.
Moved to <https://lima-vm.io/docs/community/governance/>.
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ kubectl apply -f ...
See <https://lima-vm.io/docs/> for the further information.

## Community
<!-- TODO: move or copy the most of this section to https://lima-vm.io/community/ -->
### Adopters

Container environments:
Expand Down
12 changes: 1 addition & 11 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,11 +1 @@
# Lima roadmap

Instead of using a static text file, Lima uses the `roadmap` label on GitHub issues to designate features or bug fixes that we plan to implement.

Issues are tagged with the `roadmap` label when at least one maintainer or contributor has declared intent to work on or help with the implementation.

There are no commitments or timelines attached to the label, and the label may be removed again from an abandoned issue at any time.

Non-roadmap issues are kept open (as long as they fit the scope of the project) in case a volunteer one day appears and offers to work on them.

To find the items currently planned for Lima you can filter on [open issues with the `roadmap` label]( https://github.com/lima-vm/lima/issues?q=is%3Aissue+is%3Aopen+label%3Aroadmap).
Moved to <https://lima-vm.io/docs/community/roadmap/>.
14 changes: 14 additions & 0 deletions website/content/en/docs/Community/Adopters/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Projects using Lima
weight: 30
---

## Container environments
- [Rancher Desktop](https://rancherdesktop.io/): Kubernetes and container management to the desktop
- [Colima](https://github.com/abiosoft/colima): Docker (and Kubernetes) on macOS with minimal setup
- [Finch](https://github.com/runfinch/finch): Finch is a command line client for local container development
- [Podman Desktop](https://podman-desktop.io/): Podman Desktop GUI has a plug-in for Lima virtual machines

## GUI
- [Lima xbar plugin](https://github.com/unixorn/lima-xbar-plugin): [xbar](https://xbarapp.com/) plugin to start/stop VMs from the menu bar and see their running status.
- [lima-gui](https://github.com/afbjorklund/lima-gui): Qt GUI for Lima
29 changes: 29 additions & 0 deletions website/content/en/docs/Community/Contributing/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: Contributing
weight: 20
---

## Developer Certificate of Origin

Every commit must be signed off with the `Signed-off-by: REAL NAME <email@example.com>` line.

Use the `git commit -s` command to add the Signed-off-by line.

See also <https://github.com/cncf/foundation/blob/main/dco-guidelines.md>.

## Licensing

Lima is licensed under the terms of [Apache License, Version 2.0](https://github.com/lima-vm/lima/blob/master/LICENSE).

See also <https://github.com/cncf/foundation/blob/main/allowed-third-party-license-policy.md> for third-party dependencies.

## Sending pull requests

Pull requests can be submitted to <https://github.com/lima-vm/lima/pulls>.

## Merging pull requests

[Committers](../governance) can merge pull requests.

A Committer shouldn't merge their own pull requests, except for trivial ones
such as typo fixes and image updates (e.g., <https://github.com/lima-vm/lima/pull/2318>).
89 changes: 89 additions & 0 deletions website/content/en/docs/Community/Governance/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
title: Governance
weight: 10
---

<!-- The governance model is similar to https://github.com/containerd/project/blob/main/GOVERNANCE.md but simplified -->

## Code of Conduct
Lima follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).

## Maintainership
Lima is governed by Maintainers who are elected from active contributors.

As a [Cloud Native Computing Foundation](https://cncf.io/) project, Lima will keep its [vendor-neutrality](https://contribute.cncf.io/maintainers/community/vendor-neutrality/).

### Roles
Maintainers consist of two roles:

- **Committer** (Full maintainership): Committers have full write accesses to repos under <https://github.com/lima-vm>.
Committers' commits should still be made via GitHub pull requests (except for urgent secuirity fixes), and should not be pushed directly.
Committers are also recognized as Maintainers in <https://github.com/cncf/foundation/blob/main/project-maintainers.csv>.

- **Reviewer** (Limited maintainership): Reviewers may moderate GitHub issues and pull requests (such as adding labels and cleaning up spams),
but they do not have any access to merge pull requests nor push commits.
A Reviewer is considered to as a candidate of Committers.

See also the [Contributing](../contributing) page.

### Current maintainers

| Name | Role | GitHub ID (not Twitter ID) | GPG fingerprint |
|--------------------|-----------|------------------------------------------------|------------------------------------------------------------------------------------------|
| Akihiro Suda | Committer | [@AkihiroSuda](https://github.com/AkihiroSuda) | [C020 EA87 6CE4 E06C 7AB9 5AEF 4952 4C6F 9F63 8F1A](https://github.com/AkihiroSuda.gpg) |
| Jan Dubois | Committer | [@jandubois](https://github.com/jandubois) | |
| Anders F Björklund | Committer | [@afbjorklund](https://github.com/afbjorklund) | |
| Balaji Vijayakumar | Committer | [@balajiv113](https://github.com/balajiv113) | |

<!-- TODO: invite non-committer reviewers -->

### Addition and promotion of Maintainers
An active contributor to the project can be invited as a Reviewer,
and can be eventually promoted to a Committer after 2 months at least.

A contributor who have made significant contributions in quality and in quantity
can be also directly invited as a Committer.

A proposal to add or promote a Maintainer must be approved by 2/3 of the Committers who vote within 7 days.

A proposal should happen as a GitHub pull request to the Maintainer list above.
It is highly suggested to reach out to the Committers before submitting a pull request to check the will of the Committers.

### Removal and demotion of Maintainers
A Maintainer who do not show significant activities for 6 months, or, who have been violating the Code of Conduct,
may be demoted or removed from the project.

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.

A proposal may happen as a GitHub pull request, or, as a private discussion in the case of removal of a harmful Maintainer.
It is highly suggested to reach out to the Committers before submitting a pull request to check the will of the Committers.

### Other decisions
Any decision that is not documented here can be made by the Committers.
When a dispute happens across the Committers, it will be resolved through a majority vote within the Committers.

## Release process

Eligibility to be a release manager:
- MUST be an active Commiter
- MUST have the GPG fingerprint listed in the maintainer list above
- MUST upload the GPG public key to `https://github.com/USERNAME.gpg`
- MUST protect the GPG key with a passphrase or a hardware token.

Release steps:
- Open an issue to propose making a new release. e.g., <https://github.com/lima-vm/lima/issues/2296>.
The proposal should be public, with an exception for vulnerability fixes.
If this is the first time for you to take a role of release management,
you SHOULD make a beta (or alpha, RC) release as an exercise before releasing GA.
- Make sure that all the merged PRs are associated with the correct [Milestone](https://github.com/lima-vm/lima/milestones).
- Run `git tag --sign vX.Y.Z-beta.W` .
- Run `git push UPSTREAM vX.Y.Z-beta.W` .
- Wait for the `Release` action on GitHub Actions to complete. A draft release will appear in https://github.com/lima-vm/lima/releases .
- Download `SHA256SUMS` from the draft release, and confirm that it corresponds to the hashes printed in the build logs on the `Release` action.
- Sign `SHA256SUMS` with `gpg --detach-sign -a SHA256SUMS` to produce `SHA256SUMS.asc`, and upload it to the draft release.
- Add release notes in the draft release, to explain the changes and show appreciation to the contributors.
Make sure to fulfill the `Release manager: [ADD YOUR NAME HERE] (@[ADD YOUR GITHUB ID HERE])` line with your name.
e.g., `Release manager: Akihiro Suda (@AkihiroSuda)` .
- Click the `Set as a pre-release` checkbox if this release is a beta (or alpha, RC).
- Click the `Publish release` button.
- Close the [Milestone](https://github.com/lima-vm/lima/milestones).
14 changes: 14 additions & 0 deletions website/content/en/docs/Community/Roadmap/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Roadmap
weight: 50
---

Instead of using a static text file, Lima uses the `roadmap` label on GitHub issues to designate features or bug fixes that we plan to implement.

Issues are tagged with the `roadmap` label when at least one maintainer or contributor has declared intent to work on or help with the implementation.

There are no commitments or timelines attached to the label, and the label may be removed again from an abandoned issue at any time.

Non-roadmap issues are kept open (as long as they fit the scope of the project) in case a volunteer one day appears and offers to work on them.

To find the items currently planned for Lima you can filter on [open issues with the `roadmap` label]( https://github.com/lima-vm/lima/issues?q=is%3Aissue+is%3Aopen+label%3Aroadmap).
15 changes: 15 additions & 0 deletions website/content/en/docs/Community/Subprojects/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: Subprojects
weight: 90
---

Some portions of Lima are useful for other projects too and split out to separate repos:

- <https://github.com/lima-vm/socket_vmnet>: vmnet.framework support for unmodified rootless QEMU
- <https://github.com/lima-vm/go-qcow2reader>: qcow2 reader for Go
- <https://github.com/lima-vm/sshocker>: ssh + reverse sshfs + port forwarder, in Docker-like CLI (predecessor of Lima)
- <https://github.com/lima-vm/alpine-lima>: Create an alpine based image for lima

See also <https://github.com/lima-vm> for other subprojects.

The maintainership of the subprojects corresponds to the [maintainership](../governance) of Lima itself.
17 changes: 17 additions & 0 deletions website/content/en/docs/Community/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: Community
weight: 400
---

## Communication channels

- [GitHub Discussions](https://github.com/lima-vm/lima/discussions)

- `#lima` channel in the CNCF Slack
- New account: <https://slack.cncf.io/>
- Login: <https://cloud-native.slack.com/>

- Zoom meetings are currently not regularly held due to timezone diversity,
but feel free to reach out to us if you want to host meetings

- See <https://github.com/lima-vm/.github/blob/main/SECURITY.md> for how to report security issues.
2 changes: 1 addition & 1 deletion website/layouts/partials/community_links.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ <h2>{{ T "community_develop" }}</h2>
{{ end }}
<p>
{{ T "community_how_to" . }}
<a href="https://github.com/lima-vm/lima#developer-guide">{{ T "community_guideline" }}</a>.
<a href="/docs/community">{{ T "community_guideline" }}</a>.
</p>
</div>
</section>
Expand Down

0 comments on commit 41015df

Please sign in to comment.