Skip to content

Commit

Permalink
Merge pull request #1 from spidernet-io/community1
Browse files Browse the repository at this point in the history
init community
  • Loading branch information
cyclinder committed Dec 13, 2023
2 parents 06b0076 + cd68c14 commit fb5e017
Show file tree
Hide file tree
Showing 8 changed files with 327 additions and 1 deletion.
27 changes: 27 additions & 0 deletions .github/markdownlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# rules https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md
# example https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml
# example https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.jsonc

# Default state for all rules
default: true

# Multiple consecutive blank lines
MD012: false

# Line length
MD013: false

# Multiple headings with the same content
MD024: false

# Fenced code blocks should have a language specified
MD040: false

# Dollar signs used before commands without showing output
MD014: false

# Inline HTML
MD033: false

# no-trailing-spaces Trailing spaces
MD009: false
Empty file added .github/markdownlintignore
Empty file.
49 changes: 49 additions & 0 deletions .github/workflows/lint-markdown.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Auto MarkDown Lint

on:
push:
branches:
- main
- github_pages
paths:
- "**.md"
pull_request:
branches:
- main
- release-*
- github_pages
paths:
- "**.md"
# checkout all markdown
workflow_dispatch:
inputs:
ref:
description: "check all md for branch, sha, tag"
required: true
default: main

jobs:
markdown-link-check:
name: Markdown Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
if: ${{ github.event_name == 'workflow_dispatch' }}
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.ref }}

- name: Checkout
if: ${{ github.event_name != 'workflow_dispatch' }}
uses: actions/checkout@v4

- name: markdownlint-cli
uses: nosborn/github-action-markdown-cli@v3.3.0
with:
files: .
config_file: ".github/markdownlint.yaml"
ignore_path: ".github/markdownlintignore"

# - name: Run Spell Lint
# run: |
# make lint-markdown-spell
49 changes: 49 additions & 0 deletions CODE-OF-CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# CODE OF CONDUCT

Before you proceed with reading the following content, we'd like to share some guidelines with you:

> 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 <weizhou.lan@daocloud.io> and <qifeng.guo@daocloud.io>. 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 <https://www.contributor-covenant.org/version/1/4/code-of-conduct.html>

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

For answers to common questions about this code of conduct, see
<https://www.contributor-covenant.org/faq>
167 changes: 167 additions & 0 deletions CONTRIBUTOR-LADDER.md
Original file line number Diff line number Diff line change
@@ -1 +1,168 @@
# Contributor Ladder

This docs different ways to get involved and level up within the project. You can see different roles within the project in the contributor roles.

<!-- template begins here -->

* [Contributor Ladder](#contributor-ladder)
* [Community Participant](#community-participant)
* [Contributor](#contributor)
* [Organization Member](#organization-member)
* [Reviewer](#reviewer)
* [Maintainer](#maintainer)
* [Inactivity](#inactivity)
* [Involuntary Removal](#involuntary-removal-or-demotion)

## Contributor Ladder

Hello! We are excited that you want to learn more about our project contributor ladder! This contributor ladder outlines the different contributor roles within the project, along with the responsibilities and privileges that come with them. Community members generally start at the first levels of the "ladder" and advance up it as their involvement in the project grows. Our project members are happy to help you advance along the contributor ladder.

Each of the contributor roles below is organized into lists of three types of things. "Responsibilities" are things that a contributor is expected to do. "Requirements" are qualifications a person needs to meet to be in that role, and "Privileges" are things contributors on that level are entitled to.

### Community Participant

Description: A Community Participant engages with the project and its community, contributing their time, thoughts, etc. Community participants are usually users who have stopped being anonymous and started being active in project discussions.

* Responsibilities:
* Must follow the [CNCF CoC](https://github.com/cncf/foundation/blob/main/code-of-conduct.md)
* How users can get involved with the community:
* Participating in community discussions
* Helping other users
* Submitting bug reports
* Commenting on issues
* Trying out new releases
* Attending community events

### Contributor

Description: A Contributor contributes directly to the project and adds value to it. Contributions need not be code. People at the Contributor level may be new contributors, or they may only contribute occasionally.

* Responsibilities include:
* Follow the CNCF CoC
* Follow the project contributing guide
* Requirements (one or several of the below):
* Report and sometimes resolve issues
* Occasionally submit PRs
* Contribute to the documentation
* Show up at meetings, takes notes
* Answer questions from other community members
* Submit feedback on issues and PRs
* Test releases and patches and submit reviews
* Run or helps run events
* Promote the project in public
* Help run the project infrastructure
* [TODO: other small contributions]
* Privileges:
* Invitations to contributor events
* Eligible to become an Organization Member

A very special thanks to the [long list of people](https://github.com/spidernet-io/spiderpool/blob/main/AUTHORS) who have contributed to and helped maintain the project. We wouldn't be where we are today without your contributions. Thank you! 💖

As long as you contribute to Spiderpool, your name will be added [here](https://github.com/spidernet-io/spiderpool/blob/main/AUTHORS). If you don't find your name, please contact us to add it.

### Organization Member

Description: An Organization Member is an established contributor who regularly participates in the project. Organization Members have privileges in both project repositories and elections, and as such are expected to act in the interests of the whole project.

An Organization Member must meet the responsibilities and has the requirements of a Contributor, plus:

* Responsibilities include:
* Continues to contribute regularly, as demonstrated by having at least 50 GitHub contributions per year
* Requirements:
* Must have successful contributions to the project, including at least one of the following:
* 5 accepted PRs,
* Reviewed 5 PRs,
* Resolved and closed 3 Issues,
* Become responsible for a key project management area,
* Or some equivalent combination or contribution
* Must have been contributing for at least 1 months
* Must be actively contributing to at least one project area
* Must have two sponsors who are also Organization Members, at least one of whom does not work for the same employer

* Privileges:
* May be assigned Issues and Reviews
* May give commands to CI/CD automation
* Can be added to [TODO: Repo Host] teams
* Can recommend other contributors to become Org Members

The process for a Contributor to become an Organization Member is as follows:

1. Contact Maintainers and get at least two maintainers to agree
2. Submit an Issue application to become a Member

### Reviewer

Description: A Reviewer has responsibility for specific code, documentation, test, or other project areas. They are collectively responsible, with other Reviewers, for reviewing all changes to those areas and indicating whether those changes are ready to merge. They have a track record of contribution and review in the project.

Reviewers are responsible for a "specific area." This can be a specific code directory, driver, chapter of the docs, test job, event, or other clearly-defined project component that is smaller than an entire repository or subproject. Most often it is one or a set of directories in one or more Git repositories. The "specific area" below refers to this area of responsibility.

Reviewers have all the rights and responsibilities of an Organization Member, plus:

* Responsibilities include:
* Following the reviewing guide
* Reviewing most Pull Requests against their specific areas of responsibility
* Reviewing at least 20 PRs per year
* Helping other contributors become reviewers
* Requirements:
* Experience as a Contributor for at least 3 months
* Is an Organization Member
* Has reviewed, or helped review, at least 10 Pull Requests
* Has analyzed and resolved test failures in their specific area
* Has demonstrated an in-depth knowledge of the specific area
* Commits to being responsible for that specific area
* Is supportive of new and occasional contributors and helps get useful PRs in shape to commit
* Additional privileges:
* Has GitHub or CI/CD rights to approve pull requests in specific directories
* Can recommend and review other contributors to become Reviewers

The process of becoming a Reviewer is:

1. The contributor is nominated by opening a PR against the appropriate repository, which adds their GitHub username to the OWNERS file for one or more directories.
2. At least two members of the team that owns that repository or main directory, who are already Approvers, approve the PR.

### Maintainer

Description: Maintainers are very established contributors who are responsible for the entire project. As such, they have the ability to approve PRs against any area of the project, and are expected to participate in making decisions about the strategy and priorities of the project.

A Maintainer must meet the responsibilities and requirements of a Reviewer, plus:

Spiderpool was created by WeiZhou Lan, The current list of maintainers can be found in the [MAINTAINERS](https://github.com/spidernet-io/spiderpool/blob/main/MAINTAINERS.md).

### An active maintainer should

* Actively participate in reviewing pull requests and incoming issues. Note that there are no hard rules on what is “active enough” and this is left up to the judgement of the current group of maintainers.

* Actively participate in discussions about design and the future of the project.

* Take responsibility for backports to appropriate branches for PRs they approve and merge.

* Do their best to follow all code, testing, and design conventions as determined by consensus among active maintainers.

* Gracefully step down from their maintainership role when they are no longer planning to actively participate in the project.

### How to be a maintainer

New maintainers are added by consensus among the current group of maintainers. This can be done via a private discussion via Slack or email. A majority of maintainers should support the addition of the new person, and no single maintainer should object to adding the new maintainer.

When adding a new maintainer, we should file a PR to [Spiderpool](https://github.com/spidernet-io/spiderpool) and update [MAINTAINERS](https://github.com/spidernet-io/spiderpool/blob/main/MAINTAINERS.md). Once this PR is merged, you will become a maintainer of Spiderpool.

### Removing Maintainers

It is normal for maintainers to come and go based on their other responsibilities. Inactive maintainers may be removed if there is no expectation of ongoing participation. If a former maintainer resumes participation, they should be given quick consideration for re-adding to the team.

## Inactivity

It is important for contributors to be and stay active to set an example and show commitment to the project. Inactivity is harmful to the project as it may lead to unexpected delays, contributor attrition, and a lost of trust in the project.

* Inactivity is measured by:
* Periods of no contributions for longer than 3 months
* Periods of no communication for longer than 3 months
* Consequences of being inactive include:
* Involuntary removal or demotion
* Being asked to move to Emeritus status

## Involuntary Removal or Demotion

Involuntary removal/demotion of a contributor happens when responsibilities and requirements aren't being met. This may include repeated patterns of inactivity, extended period of inactivity, a period of failing to meet the requirements of your role, and/or a violation of the Code of Conduct. This process is important because it protects the community and its deliverables while also opens up opportunities for new contributors to step in.

Involuntary removal or demotion is handled through a vote by a majority of the current Maintainers.
36 changes: 35 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,35 @@
# community
#

![spiderpool](./images/spiderpool.png)

## Spiderpool community

Spiderpool is the underlay and RDMA network solution of the Kubernetes, for bare metal, VM and any public cloud. The Spiderpool Community is committed to fostering an open and welcoming environment, with several ways to engage with other users and developers. We encourage and welcome your participation in the community.

## Community Meetings

The Spiderpool maintainers hold a community meeting on the 1st of every month at 15:00 (GMT+8) to discuss the latest plans for Spiderpool. If you have any topics of interest, feel free to join us and please add it to the upcoming meeting agenda.

- [Zoom meeting](https://us05web.zoom.us/j/84012992082?pwd=gWWIvpvCZOh8uCVeacoHjGpJULfIJW.1)
- [Meeting Details](https://docs.google.com/document/d/1tpNzxRWOz9-jVd30xGS2n5X02uXQuvqJAdNZzwBLTmI/edit)(agenda, minutes, and recordings)

## Socializing

- Slack: join the [#Spiderpool](https://cloud-native.slack.com/messages/spiderpool) channel on CNCF Slack by requesting an [invitation](https://slack.cncf.io/) from CNCF Slack. Once you have access to CNCF Slack, you can join the Spiderpool channel.

- WeChat group: scan the QR code below to join the Spiderpool technical discussion group and engage in further conversations with us.

![QR-code](./images/wechat.png)

## Contributing

We welcome any contributions of new features, bug fixes, or documentation updates and more. To get started, please read this [guide](https://github.com/spidernet-io/spiderpool/blob/main/docs/develop/contributing.md).

Before you start contributing to this project, please check out [CODE OF CONDUCT](CODE-OF-CONDUCT.md) and [Contributor-Ladder](./CONTRIBUTOR-LADDER.md) for different ways to get involved and level up within the project and see different roles within the project in the contributor roles.

If you have a public GitHub account, feel free to submit issues or pull requests to get in touch with us, these filters are a good starting point (you must be logged in to GitHub to see these issues):

- [Good first issue](https://github.com/spidernet-io/spiderpool/labels/good%20first%20issue)
- [Help wanted](https://github.com/spidernet-io/spiderpool/issues?q=label%3A%22help+wanted%22)

If you don't have a public GitHub account, you can feel free to contact us through Slack or WeChat Group.
Binary file added images/spiderpool.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/wechat.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit fb5e017

Please sign in to comment.