Skip to content

Commit a733230

Browse files
authored
Merge pull request #4456 from vishakhanihore/get
Cutting down readme for contributor-site
2 parents 072fbab + bcdf5d2 commit a733230

File tree

4 files changed

+276
-257
lines changed

4 files changed

+276
-257
lines changed

contributors/guide/README.md

+4-257
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Kubernetes Contributor Guide"
2+
title: "Getting Started with Contributing"
33
weight: 1
44
slug: "guide"
55
---
@@ -17,30 +17,9 @@ Feel free to browse the [open issues](https://github.com/kubernetes/community/is
1717
Welcome to Kubernetes!
1818

1919
- [Welcome](#welcome)
20-
- [Before you get started](#before-you-get-started)
21-
- [Sign the CLA](#sign-the-cla)
22-
- [Code of Conduct](#code-of-conduct)
23-
- [Setting up your development environment](#setting-up-your-development-environment)
24-
- [Community Expectations and Roles](#community-expectations-and-roles)
25-
- [Your First Contribution](#your-first-contribution)
26-
- [Find something to work on](#find-something-to-work-on)
27-
- [Find a good first topic](#find-a-good-first-topic)
28-
- [Issue Assignment in Github](#issue-assignment-in-github)
29-
- [Learn about SIGs](#learn-about-sigs)
30-
- [SIG structure](#sig-structure)
31-
- [Find a SIG that is related to your contribution](#find-a-sig-that-is-related-to-your-contribution)
32-
- [SIG-specific contributing guidelines](#sig-specific-contributing-guidelines)
33-
- [File an Issue](#file-an-issue)
34-
- [Contributing](#contributing)
35-
- [Communication](#communication)
36-
- [GitHub workflow](#github-workflow)
37-
- [Open a Pull Request](#open-a-pull-request)
38-
- [Code Review](#code-review)
39-
- [Best Practices](#best-practices)
40-
- [Testing](#testing)
41-
- [Security](#security)
42-
- [Documentation](#documentation)
43-
- [Issues Management or Triage](#issues-management-or-triage)
20+
- [Before you get started](getting-started.md)
21+
- [Your First Contribution](first-contribution.md)
22+
- [Contributing](contributing.md)
4423
- [Kubernetes Contributor Playground](#kubernetes-contributor-playground)
4524
- [Youtube playlist](#youtube-playlist)
4625
- [Community](#community)
@@ -50,238 +29,6 @@ Welcome to Kubernetes!
5029
- [Mentorship](#mentorship)
5130
- [Advanced Topics](#advanced-topics)
5231

53-
# Before you get started
54-
55-
## Sign the CLA
56-
57-
Before you can contribute, you will need to sign the [Contributor License Agreement](/CLA.md).
58-
59-
## Code of Conduct
60-
61-
Please make sure to read and observe our [Code of Conduct](/code-of-conduct.md).
62-
63-
## Setting up your development environment
64-
65-
If you haven’t set up your environment, check the [developer resources](/contributors/devel/README.md#setting-up-your-dev-environment-coding-and-debugging).
66-
67-
## Community Expectations and Roles
68-
69-
Kubernetes is a community project.
70-
Consequently, it is wholly dependent on its community to provide a productive, friendly and collaborative environment.
71-
72-
- Read and review the [Community Expectations](expectations.md) for an understanding of code and review expectations.
73-
- See [Community Membership](/community-membership.md) for a list the various responsibilities of contributor roles. You are encouraged to move up this contributor ladder as you gain experience.
74-
75-
# Your First Contribution
76-
77-
Have you ever wanted to contribute to the coolest cloud technology?
78-
We will help you understand the organization of the Kubernetes project and direct you to the best places to get started.
79-
You'll be able to pick up issues, write code to fix them, and get your work reviewed and merged.
80-
81-
Please be aware that due to the large number of issues our triage team deals with, we cannot offer technical support in GitHub issues.
82-
If you have questions about the development process, feel free to jump into our [Slack Channel](http://slack.k8s.io/) or join our [mailing list](https://groups.google.com/forum/#!forum/kubernetes-dev).
83-
You can also ask questions on [ServerFault](https://serverfault.com/questions/tagged/kubernetes) or [Stack Overflow](https://stackoverflow.com/questions/tagged/kubernetes).
84-
The Kubernetes team scans Stack Overflow on a regular basis and will try to ensure your questions don't go unanswered.
85-
86-
## Find something to work on
87-
88-
Help is always welcome! For example, documentation (like the text you are reading now) can always use improvement.
89-
There's always code that can be clarified and variables or functions that can be renamed or commented.
90-
There's always a need for more test coverage.
91-
You get the idea - if you ever see something you think should be fixed, you should own it.
92-
Here is how you get started.
93-
If you have no idea what to start on, you can browse the [Contributor Role Board](https://discuss.kubernetes.io/c/contributors/role-board) to see who is looking for help.
94-
Those interested in contributing without writing code may also find ideas in the [Non-Code Contributions Guide](non-code-contributions.md).
95-
96-
### Find a good first topic
97-
98-
There are [multiple repositories](https://github.com/kubernetes/) within the Kubernetes organization.
99-
Each repository has beginner-friendly issues that provide a good first issue.
100-
For example, [kubernetes/kubernetes](https://git.k8s.io/kubernetes) has [help wanted](https://go.k8s.io/help-wanted) and [good first issue](https://go.k8s.io/good-first-issue) labels for issues that should not need deep knowledge of the system.
101-
The `good first issue` label indicates that members have committed to providing [extra assistance](/contributors/guide/help-wanted.md) for new contributors.
102-
<!-- TODO: review removing this note after 3 months or after the 1.12 release -->
103-
Please note that while several of the repositories in the Kubernetes community have `good first issue` labels already, they are still being applied throughout the community.
104-
105-
Another good strategy is to find a documentation improvement, such as a missing/broken link, which will give you exposure to the code submission/review process without the added complication of technical depth. Please see [Contributing](#contributing) below for the workflow.
106-
107-
#### Issue Assignment in Github
108-
109-
When you are willing to take on an issue, you can assign it to yourself. Just reply with `/assign` or `/assign @yourself` on an issue,
110-
then the robot will assign the issue to you and your name will present at `Assignees` list.
111-
112-
### Learn about SIGs
113-
114-
#### SIG structure
115-
116-
You may have noticed that some repositories in the Kubernetes Organization are owned by Special Interest Groups, or SIGs.
117-
We organize the community into SIGs in order to improve our workflow and more easily manage what is a very large community project.
118-
The developers within each SIG have autonomy and ownership over that SIG's part of Kubernetes.
119-
120-
A SIG is an open, community effort.
121-
Anybody is welcome to jump into a SIG and begin fixing issues, critiquing design proposals and reviewing code.
122-
SIGs have regular [video meetings](https://kubernetes.io/community/) which everyone is welcome to.
123-
Each SIG has a slack channel that you can join as well.
124-
125-
There is an entire SIG ([sig-contributor-experience](/sig-contributor-experience/README.md)) devoted to improving your experience as a contributor.
126-
Contributing to Kubernetes should be easy.
127-
If you find a rough edge, let us know! Better yet, help us fix it by joining the SIG; just
128-
show up to one of the [bi-weekly meetings](https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/edit).
129-
130-
#### Find a SIG that is related to your contribution
131-
132-
Finding the appropriate SIG for your contribution and adding a SIG label will help you ask questions in the correct place and give your contribution higher visibility and a faster community response.
133-
134-
For Pull Requests, the automatically assigned reviewer will add a SIG label if you haven't done so. See [Open A Pull Request](#open-a-pull-request) below.
135-
136-
For Issues, we are still working on a more automated workflow.
137-
Since SIGs do not directly map onto Kubernetes subrepositories, it may be difficult to find which SIG your contribution belongs in.
138-
Here is the [list of SIGs](/sig-list.md) so that you can determine which is most likely related to your contribution.
139-
140-
*Example:* if you are filing a CNI issue (that's [Container Networking Interface](https://github.com/containernetworking/cni)), you should choose the [Network SIG](http://git.k8s.io/community/sig-network). Add the SIG label in a comment like so:
141-
```
142-
/sig network
143-
```
144-
145-
Follow the link in the SIG name column to reach each SIGs README.
146-
Most SIGs will have a set of GitHub Teams with tags that can be mentioned in a comment on issues and pull requests for higher visibility.
147-
If you are not sure about the correct SIG for an issue, you can try SIG-contributor-experience [here](/sig-contributor-experience#github-teams), or [ask in Slack](http://slack.k8s.io/).
148-
149-
### SIG-specific contributing guidelines
150-
Some SIGs have their own `CONTRIBUTING.md` files, which may contain extra information or guidelines in addition to these general ones.
151-
These are located in the SIG-specific community directories:
152-
153-
- [`/sig-apps/CONTRIBUTING.md`](/sig-apps/CONTRIBUTING.md)
154-
- [`/sig-cli/CONTRIBUTING.md`](/sig-cli/CONTRIBUTING.md)
155-
- [`/sig-multicluster/CONTRIBUTING.md`](/sig-multicluster/CONTRIBUTING.md)
156-
- [`/sig-storage/CONTRIBUTING.md`](/sig-storage/CONTRIBUTING.md)
157-
- [`/sig-windows/CONTRIBUTING.md`](/sig-windows/CONTRIBUTING.md)
158-
159-
### File an Issue
160-
161-
Not ready to contribute code, but see something that needs work?
162-
While the community encourages everyone to contribute code, it is also appreciated when someone reports an issue (aka problem).
163-
Issues should be filed under the appropriate Kubernetes subrepository.
164-
Check the [issue triage guide](./issue-triage.md) for more information.
165-
166-
*Example:* a documentation issue should be opened to [kubernetes/website](https://github.com/kubernetes/website/issues).
167-
168-
Make sure to adhere to the prompted submission guidelines while opening an issue.
169-
170-
# Contributing
171-
172-
Kubernetes is open source, but many of the people working on it do so as their day job.
173-
In order to avoid forcing people to be "at work" effectively 24/7, we want to establish some semi-formal protocols around development.
174-
Hopefully, these rules make things go more smoothly.
175-
If you find that this is not the case, please complain loudly.
176-
177-
As a potential contributor, your changes and ideas are welcome at any hour of the day or night, weekdays, weekends, and holidays.
178-
Please do not ever hesitate to ask a question or send a pull request.
179-
180-
Check out our [community guiding principles](/contributors/guide/collab.md) on how to create great code as a big group.
181-
182-
Beginner focused information can be found below in [Open a Pull Request](#open-a-pull-request) and [Code Review](#code-review).
183-
184-
For quick reference on contributor resources, we have a handy [contributor cheatsheet](./contributor-cheatsheet/).
185-
186-
### Communication
187-
188-
It is best to contact your [SIG](#learn-about-sigs) for issues related to the SIG's topic. Your SIG will be able to help you much more quickly than a general question would.
189-
190-
For general questions and troubleshooting, use the [standard lines of communication](/communication/README.md) and work through the [troubleshooting guide](https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/).
191-
192-
## GitHub workflow
193-
194-
To check out code to work on, please refer to [the GitHub Workflow Guide](./github-workflow.md).
195-
196-
## Open a Pull Request
197-
198-
Pull requests are often called simply "PR".
199-
Kubernetes generally follows the standard [github pull request](https://help.github.com/articles/about-pull-requests/) process, but there is a layer of additional kubernetes specific (and sometimes SIG specific) differences:
200-
201-
- [Kubernetes-specific github workflow](pull-requests.md#the-testing-and-merge-workflow).
202-
203-
The first difference you'll see is that a bot will begin applying structured labels to your PR.
204-
205-
The bot may also make some helpful suggestions for commands to run in your PR to facilitate review.
206-
These `/command` options can be entered in comments to trigger auto-labeling and notifications.
207-
Refer to its [command reference documentation](https://go.k8s.io/bot-commands).
208-
209-
Common new contributor PR issues are:
210-
211-
* not having correctly signed the CLA ahead of your first PR (see [Sign the CLA](#sign-the-cla) section)
212-
* finding the right SIG or reviewer(s) for the PR (see [Code Review](#code-review) section) and following any SIG or repository specific contributing guidelines (see [Learn about SIGs](#learn-about-sigs) section)
213-
* dealing with test cases which fail on your PR, unrelated to the changes you introduce (see [Test Flakes](http://velodrome.k8s.io/dashboard/db/bigquery-metrics?orgId=1))
214-
* Not following [scalability good practices](scalability-good-practices.md)
215-
* Include mentions (like @person) and [keywords](https://help.github.com/en/articles/closing-issues-using-keywords) which could close the issue (like fixes #xxxx) in commit messages.
216-
217-
## Code Review
218-
219-
For a brief description of the importance of code review, please read [On Code Review](/contributors/guide/expectations.md#code-review).
220-
There are two aspects of code review: giving and receiving.
221-
222-
To make it easier for your PR to receive reviews, consider the reviewers will need you to:
223-
224-
* follow the project [coding conventions](coding-conventions.md)
225-
* write [good commit messages](https://chris.beams.io/posts/git-commit/)
226-
* break large changes into a logical series of smaller patches which individually make easily understandable changes, and in aggregate solve a broader issue
227-
* label PRs with appropriate SIGs and reviewers: to do this read the messages the bot sends you to guide you through the PR process
228-
229-
Reviewers, the people giving the review, are highly encouraged to revisit the [Code of Conduct](/code-of-conduct.md) as well as [community expectations](./expectations.md#expectations-of-reviewers-review-latency) and must go above and beyond to promote a collaborative, respectful community.
230-
When reviewing PRs from others [The Gentle Art of Patch Review](http://sage.thesharps.us/2014/09/01/the-gentle-art-of-patch-review/) suggests an iterative series of focuses which is designed to lead new contributors to positive collaboration without inundating them initially with nuances:
231-
232-
* Is the idea behind the contribution sound?
233-
* Is the contribution architected correctly?
234-
* Is the contribution polished?
235-
236-
Note: if your pull request isn't getting enough attention, you can use the [#pr-reviews](https://kubernetes.slack.com/messages/pr-reviews) channel on Slack to get help finding reviewers.
237-
238-
## Best practices
239-
240-
- Write clear and meaningful git commit messages.
241-
- If the PR will *completely* fix a specific issue, include `fixes #123` in the PR body (where 123 is the specific issue number the PR will fix. This will automatically close the issue when the PR is merged.
242-
- Make sure you don't include `@mentions` or `fixes` keywords in your git commit messages. These should be included in the PR body instead.
243-
- When you make a PR for small change (such as fixing a typo, style change, or grammar fix), please squash your commits so that we can maintain a cleaner git history.
244-
- Make sure you include a clear and detailed PR description explaining the reasons for the changes, and ensuring there is sufficient information for the reviewer to understand your PR.
245-
- Additional Readings :
246-
- [chris.beams.io/posts/git-commit/](https://chris.beams.io/posts/git-commit/)
247-
- [github.com/blog/1506-closing-issues-via-pull-requests ](https://github.com/blog/1506-closing-issues-via-pull-requests )
248-
- [davidwalsh.name/squash-commits-git ](https://davidwalsh.name/squash-commits-git )
249-
250-
## Testing
251-
252-
Testing is the responsibility of all contributors and is in part owned by all SIGs, but is also coordinated by [sig-testing](/sig-testing).
253-
Refer to the [Testing Guide](/contributors/devel/sig-testing/testing.md) for more information.
254-
255-
There are multiple types of tests.
256-
The location of the test code varies with type, as do the specifics of the environment needed to successfully run the test:
257-
258-
* Unit: These confirm that a particular function behaves as intended. Golang includes a native ability for unit testing via the [testing](https://golang.org/pkg/testing/) package. Unit test source code can be found adjacent to the corresponding source code within a given package. For example: functions defined in [kubernetes/cmd/kubeadm/app/util/version.go](https://git.k8s.io/kubernetes/cmd/kubeadm/app/util/version.go) will have unit tests in [kubernetes/cmd/kubeadm/app/util/version_test.go](https://git.k8s.io/kubernetes/cmd/kubeadm/app/util/version_test.go). These are easily run locally by any developer on any OS.
259-
* Integration: These tests cover interactions of package components or interactions between kubernetes components and some other non-kubernetes system resource (eg: etcd). An example would be testing whether a piece of code can correctly store data to or retrieve data from etcd. Integration tests are stored in [kubernetes/test/integration/](https://git.k8s.io/kubernetes/test/integration). Running these can require the developer set up additional functionality on their development system.
260-
* End-to-end ("e2e"): These are broad tests of overall system behavior and coherence. These are more complicated as they require a functional kubernetes cluster built from the sources to be tested. A separate [document detailing e2e testing](/contributors/devel/sig-testing/e2e-tests.md) and test cases themselves can be found in [kubernetes/test/e2e/](https://git.k8s.io/kubernetes/test/e2e).
261-
* Conformance: These are a set of testcases, currently a subset of the integration/e2e tests, that the Architecture SIG has approved to define the core set of interoperable features that all Kubernetes deployments must support. For more information on Conformance tests please see the [Conformance Testing](/contributors/devel/sig-architecture/conformance-tests.md) Document.
262-
263-
Continuous integration will run these tests either as pre-submits on PRs, post-submits against master/release branches, or both.
264-
The results appear on [testgrid](https://testgrid.k8s.io).
265-
266-
sig-testing is responsible for that official infrastructure and CI.
267-
The associated automation is tracked in the [test-infra repo](https://git.k8s.io/test-infra).
268-
If you're looking to run e2e tests on your own infrastructure, [kubetest](https://git.k8s.io/test-infra/kubetest) is the mechanism.
269-
270-
## Security
271-
272-
- [Security Release Page](https://git.k8s.io/security/security-release-process.md) - outlines the procedures for the handling of security issues.
273-
- [Security and Disclosure Information](https://kubernetes.io/docs/reference/issues-security/security/) - check this page if you wish to report a security vulnerability.
274-
275-
## Documentation
276-
277-
- [Contributing to Documentation](https://kubernetes.io/editdocs/)
278-
279-
## Issues Management or Triage
280-
281-
Have you ever noticed the total number of [open issues](https://issues.k8s.io)?
282-
Helping to manage or triage these open issues can be a great contribution and a great opportunity to learn about the various areas of the project. Triaging is the word we use to describe the process of adding multiple types of descriptive labels to GitHub issues, in order to speed up routing issues to the right folks.
283-
Refer to the [Issue Triage Guidelines](/contributors/guide/issue-triage.md) for more information.
284-
28532
# Kubernetes Contributor Playground
28633

28734
If you are looking for a safe place, where you can familiarize yourself with (some of) the Kubernetes Project's review and pull request processes, then the [Kubernetes Contributor Playground](https://github.com/kubernetes-sigs/contributor-playground/) is the right place for you.

0 commit comments

Comments
 (0)