Skip to content

Commit

Permalink
Update CONTRIBUTING.md
Browse files Browse the repository at this point in the history
Signed-off-by: Xinwei Xiong <86140903+cubxxw@users.noreply.github.com>
  • Loading branch information
cubxxw authored May 19, 2023
1 parent bf2b061 commit e5a86a6
Showing 1 changed file with 46 additions and 46 deletions.
92 changes: 46 additions & 46 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing to k8s-iam
# Contributing to log

So, you want to hack on k8s-iam? Yay!
So, you want to hack on log? Yay!

First of all, thank you for considering contributing to our project! We appreciate your time and effort, and we value any contribution, whether it's reporting a bug, suggesting a new feature, or submitting a pull request.

Expand All @@ -18,21 +18,21 @@ This document provides guidelines and best practices to help you contribute effe

## What we expect of you

We hope that anyone can join k8s-iam , even if you are a student, writer, translator
We hope that anyone can join log , even if you are a student, writer, translator

Please meet the minimum version of the Go language published in [go.mod](./go.mod). If you want to manage the Go language version, we provide tools to install [gvm](https://github.com/moovweb/gvm) in our [Makefile](./Makefile)

You'd better use Linux OR WSL as the development environment, Linux with [Makefile](./Makefile) can help you quickly build and test k8s-iam project.
You'd better use Linux OR WSL as the development environment, Linux with [Makefile](./Makefile) can help you quickly build and test log project.

If you are familiar with [Makefile](./Makefile) , you can easily see the clever design of the k8s-iam Makefile. Storing the necessary tools such as golangci in the `/tools` directory can avoid some tool version issues.
If you are familiar with [Makefile](./Makefile) , you can easily see the clever design of the log Makefile. Storing the necessary tools such as golangci in the `/tools` directory can avoid some tool version issues.

The [Makefile](./Makefile) is for every developer, even if you don't know how to use the Makefile tool, don't worry, we provide two great commands to get you up to speed with the Makefile architecture, `make help` and `make help-all`, it can reduce problems of the developing environment.

## Code of ConductCode of Conduct

#### Code and doc contribution

Every action to make project k8s-iam better is encouraged. On GitHub, every improvement for k8s-iam could be via a [PR](https://github.com/k8s-iam/pulls) (short for pull request).
Every action to make project log better is encouraged. On GitHub, every improvement for log could be via a [PR](https://github.com/log/pulls) (short for pull request).

+ If you find a typo, try to fix it!
+ If you find a bug, try to fix it!
Expand All @@ -47,14 +47,14 @@ Every action to make project k8s-iam better is encouraged. On GitHub, every impr

#### Where should I start?

+ If you are new to the project, don't know how to contribute k8s-iam, please check out the [good first issue](https://github.com/kubecub/k8s-iam/issues?q=is%3Aopen+label%3A"good+first+issue"+sort%3Aupdated-desc) label.
+ You should be good at filtering the k8s-iam issue tags and finding the ones you like, such as [RFC](https://github.com/kubecub/k8s-iam/issues?q=is%3Aissue+is%3Aopen+RFC+label%3ARFC) for big initiatives, features for [feature](https://github.com/kubecub/k8s-iam/issues?q=is%3Aissue+label%3Afeature) proposals, and [bug](https://github.com/{github/issues?q=is%3Aissue+label%3Abug+) fixes.
+ If you are looking for something to work on, check out our [open issues](https://github.com/kubecub/k8s-iam/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc).
+ If you have an idea for a new feature, please [open an issue](https://github.com/kubecub/k8s-iam/issues/new/choose), and we can discuss it.
+ If you are new to the project, don't know how to contribute log, please check out the [good first issue](https://github.com/kubecub/log/issues?q=is%3Aopen+label%3A"good+first+issue"+sort%3Aupdated-desc) label.
+ You should be good at filtering the log issue tags and finding the ones you like, such as [RFC](https://github.com/kubecub/log/issues?q=is%3Aissue+is%3Aopen+RFC+label%3ARFC) for big initiatives, features for [feature](https://github.com/kubecub/log/issues?q=is%3Aissue+label%3Afeature) proposals, and [bug](https://github.com/{github/issues?q=is%3Aissue+label%3Abug+) fixes.
+ If you are looking for something to work on, check out our [open issues](https://github.com/kubecub/log/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc).
+ If you have an idea for a new feature, please [open an issue](https://github.com/kubecub/log/issues/new/choose), and we can discuss it.

#### Design documents

For any substantial design, there should be a well-crafted design document. This document is not just a simple record, but also a detailed description and manifestation, which can help team members better understand the design thinking and grasp the design direction. In the process of writing the design document, we can choose to use tools such as `Google Docs` or `Notion`, and even mark RFC in [issues](https://github.com/kubecub/k8s-iam/issues?q=is%3Aissue+is%3Aopen+RFC+label%3ARFC) or [discussions](https://github.com/kubecub/k8s-iam/discussions) for better collaboration. Of course, after completing the design document, we should also add it to our [Shared Drive](https://drive.google.com/drive/) and notify the appropriate working group to let everyone know of its existence. Only by doing so can we maximize the effectiveness of the design document and provide strong support for the smooth progress of the project.
For any substantial design, there should be a well-crafted design document. This document is not just a simple record, but also a detailed description and manifestation, which can help team members better understand the design thinking and grasp the design direction. In the process of writing the design document, we can choose to use tools such as `Google Docs` or `Notion`, and even mark RFC in [issues](https://github.com/kubecub/log/issues?q=is%3Aissue+is%3Aopen+RFC+label%3ARFC) or [discussions](https://github.com/kubecub/log/discussions) for better collaboration. Of course, after completing the design document, we should also add it to our [Shared Drive](https://drive.google.com/drive/) and notify the appropriate working group to let everyone know of its existence. Only by doing so can we maximize the effectiveness of the design document and provide strong support for the smooth progress of the project.

Anybody can access the shared Drive for reading. To get access to comment. Once you've done that, head to the [shared Drive](https://drive.google.com/) and behold all the docs.

Expand All @@ -65,7 +65,7 @@ When documenting a new design, we recommend a 2-step approach:
1. Use the short-form RFC template to outline your ideas and get early feedback.
2. Once you have received sufficient feedback and consensus, you may use the longer-form design doc template to specify and discuss your design in more details.

In order to contribute a feature to k8s-iam you'll need to go through the following steps:
In order to contribute a feature to log you'll need to go through the following steps:

+ Discuss your idea with the appropriate [working groups](https://join.slack.com/t/c-ub/shared_invite/zt-1se0k2bae-lkYzz0_T~BYh3rjkvlcUqQ) on the working group's Slack channel.
+ Once there is general agreement that the feature is useful, create a GitHub issue to track the discussion. The issue should include information about the requirements and use cases that it is trying to address.
Expand All @@ -75,26 +75,26 @@ But keep in mind that there is no guarantee of it being accepted and so it is us

## Getting Started

To propose PR for the k8s-iam item, we assume you have registered a GitHub ID. Then you could finish the preparation in the following steps:
To propose PR for the log item, we assume you have registered a GitHub ID. Then you could finish the preparation in the following steps:

1. Fork the repository(k8s-iam)
1. Fork the repository(log)

2. **CLONE** your own repository to master locally. Use `git clone https://github.com/<your-username>/k8s-iam.git` to clone repository to your local machine. Then you can create new branches to finish the change you wish to make.
2. **CLONE** your own repository to master locally. Use `git clone https://github.com/<your-username>/log.git` to clone repository to your local machine. Then you can create new branches to finish the change you wish to make.

3. **Set Remote** upstream to be `https://github.com/kubecub/k8s-iam.git` using the following two commands:
3. **Set Remote** upstream to be `https://github.com/kubecub/log.git` using the following two commands:

```bash
❯ git remote add upstream https://github.com/kubecub/k8s-iam.git
❯ git remote add upstream https://github.com/kubecub/log.git
❯ git remote set-url --push upstream no-pushing
```

With this remote setting, you can check your git remote configuration like this:

```bash
❯ git remote -v
origin https://github.com/<your-username>/k8s-iam.git (fetch)
origin https://github.com/<your-username>/k8s-iam.git (push)
upstream https://github.com/kubecub/k8s-iam.git (fetch)
origin https://github.com/<your-username>/log.git (fetch)
origin https://github.com/<your-username>/log.git (push)
upstream https://github.com/kubecub/log.git (fetch)
upstream no-pushing (push)
```

Expand All @@ -103,7 +103,7 @@ To propose PR for the k8s-iam item, we assume you have registered a GitHub ID. T
4. Create a new branch for your changes (use a descriptive name, such as `fix-bug-123` or `add-new-feature`).

```bash
cd k8s-iam
cd log
❯ git fetch upstream
❯ git checkout upstream/main
```
Expand Down Expand Up @@ -155,7 +155,7 @@ To propose PR for the k8s-iam item, we assume you have registered a GitHub ID. T
# then create pull request, and merge
```

7. **Open a pull request** to `kubecub/k8s-iam:main`
7. **Open a pull request** to `kubecub/log:main`

It is recommended to review your changes before filing a pull request. Check if your code doesn't conflict with the main branch and no redundant code is included.

Expand All @@ -165,42 +165,42 @@ We divide the problem into security and general problems:

#### Reporting security issues

Security issues are always treated seriously. As our usual principle, we discourage anyone to spread security issues. If you find a security issue of k8s-iam, please do not discuss it in public and even do not open a public issue.
Security issues are always treated seriously. As our usual principle, we discourage anyone to spread security issues. If you find a security issue of log, please do not discuss it in public and even do not open a public issue.

Instead we encourage you to send us a private email to [3293172751nss@gmail.com](mailto:3293172751nss@gmail.com) to report this.

#### Reporting general issues

To be honest, we regard every user of k8s-iamas a very kind contributor. After experiencing k8s-iam, you may have some feedback for the project. Then feel free to open an issue via [NEW ISSUE](https://github.com/kubecub/k8s-iam/issues/new/choose).
To be honest, we regard every user of logas a very kind contributor. After experiencing log, you may have some feedback for the project. Then feel free to open an issue via [NEW ISSUE](https://github.com/kubecub/log/issues/new/choose).

Since we collaborate project k8s-iam in a distributed way, we appreciate **WELL-WRITTEN**, **DETAILED**, **EXPLICIT** issue reports. To make the communication more efficient, we wish everyone could search if your issue is an existing one in the searching list. If you find it existing, please add your details in comments under the existing issue instead of opening a brand new one.
Since we collaborate project log in a distributed way, we appreciate **WELL-WRITTEN**, **DETAILED**, **EXPLICIT** issue reports. To make the communication more efficient, we wish everyone could search if your issue is an existing one in the searching list. If you find it existing, please add your details in comments under the existing issue instead of opening a brand new one.

To make the issue details as standard as possible, we setup an [ISSUE TEMPLATE](https://github.com/kubecub/k8s-iam/tree/main/.github/ISSUE_TEMPLATE) for issue reporters. You can find three kinds of issue templates there: question, bug report and feature request. Please **BE SURE** to follow the instructions to fill fields in template.
To make the issue details as standard as possible, we setup an [ISSUE TEMPLATE](https://github.com/kubecub/log/tree/main/.github/ISSUE_TEMPLATE) for issue reporters. You can find three kinds of issue templates there: question, bug report and feature request. Please **BE SURE** to follow the instructions to fill fields in template.

**There are a lot of cases when you could open an issue:**

+ bug report
+ feature request
+ k8s-iam performance issues
+ log performance issues
+ feature proposal
+ feature design
+ help wanted
+ doc incomplete
+ test improvement
+ any questions on k8s-iam project
+ any questions on log project
+ and so on

Also, we must be reminded when submitting a new question about k8s-iam, please remember to remove the sensitive data from your post. Sensitive data could be password, secret key, network locations, private business data and so on.
Also, we must be reminded when submitting a new question about log, please remember to remove the sensitive data from your post. Sensitive data could be password, secret key, network locations, private business data and so on.

#### Commit Rules

Actually in k8s-iam, we take two rules serious when committing:
Actually in log, we take two rules serious when committing:

**🥇 Commit Message:**

Commit message could help reviewers better understand what the purpose of submitted PR is. It could help accelerate the code review procedure as well. We encourage contributors to use **EXPLICIT** commit message rather than ambiguous message. In general, we advocate the following commit message type:

We use [Semantic Commits](https://www.conventionalcommits.org/en/v1.0.0/) to make it easier to understand what a commit does and to build pretty changek8s-iams. Please use the following prefixes for your commits:
We use [Semantic Commits](https://www.conventionalcommits.org/en/v1.0.0/) to make it easier to understand what a commit does and to build pretty changelogs. Please use the following prefixes for your commits:

+ `docs: xxxx`. For example, "docs: add docs about storage installation".
+ `feature: xxxx`.For example, "feature: make result show in sorted order".
Expand Down Expand Up @@ -237,9 +237,9 @@ An example for this could be:

#### PR Description

PR is the only way to make change to k8s-iam project files. To help reviewers better get your purpose, PR description could not be too detailed. We encourage contributors to follow the [PR template](https://github.com/kubecub/k8s-iam/tree/main/.github/PULL_REQUEST_TEMPLATE.md) to finish the pull request.
PR is the only way to make change to log project files. To help reviewers better get your purpose, PR description could not be too detailed. We encourage contributors to follow the [PR template](https://github.com/kubecub/log/tree/main/.github/PULL_REQUEST_TEMPLATE.md) to finish the pull request.

You can find some very formal PR in [RFC](https://github.com/kubecub/k8s-iam/issues?q=is%3Aissue+is%3Aopen+RFC+label%3ARFC) issues and learn about them.
You can find some very formal PR in [RFC](https://github.com/kubecub/log/issues?q=is%3Aissue+is%3Aopen+RFC+label%3ARFC) issues and learn about them.

**📖 Opening PRs:**

Expand Down Expand Up @@ -286,12 +286,12 @@ git() {

#### Docs Contribution

The documentation for k8s-iam includes:
The documentation for log includes:

+ [README.md](https://github.com/kubecub/k8s-iam/blob/main/README.md): This file includes the basic information and instructions for getting started with k8s-iam.
+ [CONTRIBUTING.md](https://github.com/kubecub/k8s-iam/blob/main/CONTRIBUTING.md): This file contains guidelines for contributing to k8s-iam's codebase, such as how to submit issues, pull requests, and code reviews.
+ [DEVELOPGUIDE.md](https://github.com/kubecub/k8s-iam/blob/main/DEVELOPGUIDE.md): This file provides a more in-depth guide to developing k8s-iam, including information on the project's architecture, coding conventions, and testing practices.
+ [Official Documentation](nsddd.top): This is the official documentation for k8s-iam, which includes comprehensive information on all of its features, configuration options, and troubleshooting tips.
+ [README.md](https://github.com/kubecub/log/blob/main/README.md): This file includes the basic information and instructions for getting started with log.
+ [CONTRIBUTING.md](https://github.com/kubecub/log/blob/main/CONTRIBUTING.md): This file contains guidelines for contributing to log's codebase, such as how to submit issues, pull requests, and code reviews.
+ [DEVELOPGUIDE.md](https://github.com/kubecub/log/blob/main/DEVELOPGUIDE.md): This file provides a more in-depth guide to developing log, including information on the project's architecture, coding conventions, and testing practices.
+ [Official Documentation](nsddd.top): This is the official documentation for log, which includes comprehensive information on all of its features, configuration options, and troubleshooting tips.

Please obey the following rules to better format the docs, which would greatly improve the reading experience.

Expand All @@ -304,20 +304,20 @@ Please obey the following rules to better format the docs, which would greatly i

## Engage to help anything

We choose GitHub as the primary place for k8s-iam to collaborate. So the latest updates of k8s-iam are always here. Although contributions via PR is an explicit way to help, we still call for any other ways.
We choose GitHub as the primary place for log to collaborate. So the latest updates of log are always here. Although contributions via PR is an explicit way to help, we still call for any other ways.

+ reply to other's [issues](https://github.com/kubecub/k8s-iam/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) if you could;
+ reply to other's [issues](https://github.com/kubecub/log/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) if you could;
+ help solve other user's problems;
+ help review other's [PR](https://github.com/kubecub/k8s-iam/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) design;
+ discuss about k8s-iam to make things clearer;
+ advocate [k8s-iam](google.com/search?q=k8s-iam) technok8s-iamy beyond GitHub;
+ write bk8s-iams on k8s-iam and so on.
+ help review other's [PR](https://github.com/kubecub/log/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) design;
+ discuss about log to make things clearer;
+ advocate [log](google.com/search?q=log) technology beyond GitHub;
+ write blogs on log and so on.

In a word, **ANY HELP IS CONTRIBUTION.**

## Release version

Releases of k8s-iam are done using [Release Please](https://github.com/googleapis/release-please) and [GoReleaser](https://goreleaser.com/). The workflow looks like this:
Releases of log are done using [Release Please](https://github.com/googleapis/release-please) and [GoReleaser](https://goreleaser.com/). The workflow looks like this:

🎯 A PR is merged to the `main` branch:

Expand All @@ -326,7 +326,7 @@ Releases of k8s-iam are done using [Release Please](https://github.com/googleapi

🎯 Merging the 'release please' PR to `main`:

+ Release please is triggered, creates a new release and updates the changek8s-iam based on the commit messages
+ Release please is triggered, creates a new release and updates the changelog based on the commit messages
+ GoReleaser is triggered, builds the binaries and attaches them to the release
+ Containers are created and pushed to the container registry

Expand Down

0 comments on commit e5a86a6

Please sign in to comment.