Skip to content

Commit

Permalink
Update OSS documentation and guidelines for contribution (#2920)
Browse files Browse the repository at this point in the history
* Readme.md refactor to improve UX

* Add comments to readme.md

* Add MAINTAINERS.md

* Alphabetical order of maintainers

* Formatting with Prettier

* Add GOVERNANCE.md file

* Update CODE_OF_CONDUCT.md to Contributor Covenant 2.0

* Update CODE_OF_CONDUCT.md

* Update CONTRIBUTING.md

Signed-off-by: Pepe Baena <ppbaena@gmail.com>

* Add Adopters.md and folder for logos

Signed-off-by: Pepe Baena <ppbaena@gmail.com>

* Remove initial list of adopters

Signed-off-by: Pepe Baena <ppbaena@gmail.com>

* Include project board link in README.md

Signed-off-by: Pepe Baena <ppbaena@gmail.com>

* Add comments in the PR to documentation

Signed-off-by: Pepe Baena <ppbaena@gmail.com>

* Refactor docs after revision

Signed-off-by: Pepe Baena <ppbaena@gmail.com>
  • Loading branch information
ppbaena committed Jul 7, 2021
1 parent 09161da commit 2ee3202
Show file tree
Hide file tree
Showing 7 changed files with 254 additions and 140 deletions.
13 changes: 13 additions & 0 deletions ADOPTERS.md
@@ -0,0 +1,13 @@
# Kubeapps Adopters

If you're using Kubeapps and want to add your organization to this list, follow these directions!

## Adding your organization to the list of adopters

If you are using Kubeapps and would like to be included in the list of Kubeapps Adopters it is possible through the following options:

- **Send a PR**: add an SVG version of your logo that is less than 150 KB to the [logo directory](./docs/logos) in this repo and submit a pull request with your change including 1-2 sentences describing how your organization is using Kubeapps. Name the image file something that reflects your company (e.g., if your company is called Acme, name the image acme.svg).
- **Slack**: Open a new thread in the [Kubeapps slack channel](https://kubernetes.slack.com/messages/kubeapps) with the request and the information described above.
- **Email**: Directly contact through [email](tanzu-kubeapps-team@vmware.com) to our DL.

Project maintainers will help and assess to include your organization as a Kubeapps adopter. Please feel free to send us a message in [#kubeapps](https://kubernetes.slack.com/messages/kubeapps) with any questions you may have.
101 changes: 54 additions & 47 deletions CODE_OF_CONDUCT.md
Expand Up @@ -2,75 +2,82 @@

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
- Using welcoming and inclusive language
- Being respectful of differing opinions, viewpoints and experiences
- Gracefully accepting constructive feedback
- Focusing on what is best not just for us as individuals, but for the overall community
- Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities
## Enforcement Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at containers@bitnami.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at tanzu-kubeapps-team@vmware.com. All complaints will be reviewed and investigated promptly and fairly.

Project maintainers are obligated to respect the privacy and security of the reporter of any incident.

## Enforcement Guidelines

Project maintainers will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.

Consequence: A private, written warning from project maintainers, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.

### 2. Warning

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
Community Impact: A violation through a single incident or series of actions.

Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.

### 3. Temporary Ban

Community Impact: A serious violation of community standards, including sustained inappropriate behavior.

Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.

Consequence: A permanent ban from any sort of public interaction within the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct/

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).

For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq.
55 changes: 3 additions & 52 deletions CONTRIBUTING.md
Expand Up @@ -2,7 +2,9 @@

When contributing to Kubeapps, please first discuss the change you wish to make via an issue with this repository before making a change.

Please note we have a code of conduct, please follow it in all your interactions with the project.
> Kubeapps distribution is delegated to the official [Bitnami Kubeapps chart](https://github.com/bitnami/charts/tree/master/bitnami/kubeapps) from the separate Bitnami charts repository. PRs and issues related to the official chart should be created in the Bitnami charts repository.
Please note we have a [code of conduct](./CODE_OF_CONDUCT.md), please follow it in all your interactions with the project.

## Pull Request Process

Expand Down Expand Up @@ -68,54 +70,3 @@ By making a contribution to this project, I certify that:
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```

## Code of Conduct

### Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

### Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

### Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

### Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

### Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at **ara AT bitnami DOT com**. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

### Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
69 changes: 69 additions & 0 deletions GOVERNANCE.md
@@ -0,0 +1,69 @@
# Kubeapps Governance

This document defines the project governance for Kubeapps.

## Overview

**Kubeapps**, an open-source project, is committed to building an open, inclusive, productive and self-governing open source community involved to simplifying how applications are deployed and managed in Kubernetes clusters. The community is governed by this document to define how the community should work together to achieve this goal.

## Code Repositories

The following code repositories are governed by Kubeapps community and maintained under the `kubeapps\kubeapps` organization.

- [kubeapps](https://github.com/kubeapps/kubeapps): Main Kubeapps codebase.
- [hub](https://github.com/kubeapps/hub): Kubeapps Hub UI codebase.

## Community Roles

- **Users**: Members that engage with the Kubeapps community via any medium ([Slack](https://kubernetes.slack.com/messages/kubeapps), [GitHub](https://github.com/kubeapps/kubeapps), etc.).
- **Contributors**: Members contributing to projects (documentation, code reviews, responding to issues, participation in proposal discussions, contributing code, etc.).
- **Maintainers**: The Kubeapps project leaders. They are responsible for the overall health and direction of the project; final reviewers of PRs and responsible for releases. Maintainers are expected to contribute code and documentation, review PRs including ensuring the quality of code, triage issues, proactively fix bugs and perform maintenance tasks for Kubeapps components.

### Maintainers

New maintainers must be nominated by an existing maintainer and must be elected by a supermajority of existing maintainers. Likewise, maintainers can be removed by a supermajority of the existing maintainers or can resign by notifying one of the maintainers.

### Supermajority

A supermajority of Maintainers is required for certain decisions as outlined above. A supermajority is defined as two-thirds of members in the group. A supermajority vote is equivalent to the number of votes in favor, being at least twice the number of votes against (i.e. if you have 5 maintainers, a supermajority vote is 4 votes).

Voting on decisions can happen on GitHub, Slack, email, or via a voting service, when appropriate. Maintainers can either vote "agree, yes, +1", "disagree, no, -1", or "abstain". A vote passes when supermajority is met. An abstain vote equals not voting at all.

### Decision Making

Ideally, all project decisions are resolved by consensus. If impossible, any maintainer may call a vote. Unless otherwise specified in this document, any vote will be decided by a supermajority of maintainers.

Votes by maintainers belonging to the same company will count as one vote; e.g., 4 maintainers employed by fictional company foo will only have one combined vote. If voting members from a given company do not agree, the company's vote is determined by a supermajority of voters from that company. If no supermajority is achieved, the company is considered to have abstained.

## Proposal Process

One of the most important aspects of any open source community is the concept of proposals. Large changes to the codebase and/or new features should be preceded by a proposal in our community repo. This process allows for all members of the community to weigh in on the concept (including the technical details), share their comments and ideas, and offer to help. It also ensures that members are not duplicating work or inadvertently stepping on toes by making large conflicting changes.

Proposals should cover the high-level objectives, use cases, and technical recommendations on how to implement them. In general, the community member(s) interested in implementing the proposal should be either deeply engaged in the proposal process or be an author of the proposal.

The proposal should be documented as a separate markdown file pushed to the root of the [design-proposals](./docs/architecture/design-proposals) folder in the [Kubeapps repository](https://github.com/kubeapps/kubeapps) via PR.

### Proposal Lifecycle

The proposal PR can follow the GitHub lifecycle of the PR to indicate its status:

- **Open**: The proposal is created and under review and discussion.
- **Merged**: The proposal has been reviewed and is accepted (either by consensus or through a vote).
- **Closed**: The proposal has been reviewed and was rejected (either by consensus or through a vote).

### Lazy Consensus

To maintain velocity in a project as busy as Kubeapps, the concept of [Lazy Consensus](http://en.osswiki.info/concepts/lazy_consensus) is practiced. Ideas and/or proposals should be shared by maintainers via GitHub. Out of respect for other contributors, major changes should also be accompanied by a ping on Slack. Author(s) of the proposal, Pull Requests, issues, etc. will give a time period of no less than five (5) working days for comment and remain cognizant of popular observed world holidays.

Other maintainers may chime in and request additional time for review but should remain cognizant of blocking progress and abstain from delaying progress unless absolutely needed. The expectation is that blocking progress is accompanied by a guarantee to review and respond to the relevant action(s) (proposals, PRs, issues, etc.) in short order.

Lazy consensus does not apply to the process of:
Removal of maintainers from Kubeapps

## Updating Governance

All substantive changes in Governance require a supermajority agreement by all [maintainers](./MAINTAINERS.md).

## Credits

Sections of this documents have been borrowed from [Velero](https://github.com/vmware-tanzu/velero) project.

0 comments on commit 2ee3202

Please sign in to comment.