Skip to content

Merge getting started into the main page as they're required. #4876

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 23, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 44 additions & 8 deletions contributors/guide/README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,63 @@
# Welcome

Have you ever wanted to contribute to the coolest cloud technology?
We will help you understand the organization of the Kubernetes project and direct you to the best places to get started.
You'll be able to pick up issues, write code to fix them, and get your work reviewed and merged.

This document is the single source of truth for how to contribute to the code base.
Feel free to browse the [open issues](https://github.com/kubernetes/community/issues?q=is%3Aissue+is%3Aopen+label%3Aarea%2Fcontributor-guide) and file new ones, all feedback welcome!

# Welcome
## Contributor Guide

Welcome to Kubernetes! This guide is broken up into the following sections.
It is recommended that you follow these steps in order.

Welcome to Kubernetes!
- [Welcome](#welcome) - this page
- [Prerequisites](#prerequisites) - things you need to complete before contributing
- [Your First Contribution](first-contribution.md) - things you need to know before your first contribution
- [Contributing](contributing.md) - the main guide with contributor information

## Resources Available

- [Welcome](#welcome)
- [Before you get started](getting-started.md)
- [Your First Contribution](first-contribution.md)
- [Contributing](contributing.md)
- [Kubernetes Contributor Playground](#kubernetes-contributor-playground)
- [Youtube playlist](#youtube-playlist)
- [Contributor Workshops](#contributor-workshops)
- [Community](#community)
- [Communication](#communication-1)
- [Events](#events)
- [Meetups](#meetups)
- [Mentorship](#mentorship)
- [Advanced Topics](#advanced-topics)

# Prerequisites

Before submitting code to the project you should first take care of the following prerequisites.
These steps are checked by a bot during your first submission, so doing these steps first will make your first contribution easier:

## Sign the CLA

Before you can contribute, you will need to sign the [Contributor License Agreement](/CLA.md).

## Code of Conduct

Please make sure to read and observe our [Code of Conduct](/code-of-conduct.md) and [Community Values](/values.md)

## Setting up your development environment

If you haven’t set up your environment, check the [developer resources](/contributors/devel/README.md#setting-up-your-dev-environment-coding-and-debugging).

## Community Expectations and Roles

Kubernetes is a community project.
Consequently, it is wholly dependent on its community to provide a productive, friendly and collaborative environment.

- Read and review the [Community Expectations](expectations.md) for an understanding of code and review expectations.
- 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.

# Kubernetes Contributor Playground

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.

## Youtube playlist
## Contributor Workshops

A [Youtube playlist](https://www.youtube.com/playlist?list=PL69nYSiGNLP3M5X7stuD7N4r3uP2PZQUx) of the New Contributor workshop has been posted, and an outline of the video content can be found [here](/events/2018/05-contributor-summit).

Expand Down Expand Up @@ -50,6 +85,7 @@ You may also contact Paris Pittman via direct message on Kubernetes Slack (@pari

Please learn about our mentoring initiatives [here](http://git.k8s.io/community/mentoring/README.md).
Feel free to ask us anything during our [Meet Our Contributors](https://github.com/kubernetes/community/blob/master/mentoring/programs/meet-our-contributors.md) to connect with us.

# Advanced Topics

This section includes things that need to be documented, but typical contributors do not need to interact with regularly.
Expand Down
4 changes: 2 additions & 2 deletions contributors/guide/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ To check out code to work on, please refer to [the GitHub Workflow Guide](./gith

## Open a Pull Request

Pull requests are often called simply "PR".
Pull requests are often called a "PR".
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:

- [Kubernetes-specific github workflow](pull-requests.md#the-testing-and-merge-workflow).
Expand All @@ -56,7 +56,7 @@ Refer to its [command reference documentation](https://go.k8s.io/bot-commands).

Common new contributor PR issues are:

* not having correctly signed the CLA ahead of your first PR (see [Sign the CLA](/contributors/guide/getting-started.md#sign-the-cla) section)
* not having correctly signed the CLA ahead of your first PR. See the [CLA page](/CLA.md) for troubleshooting help, in some cases you might need to file a ticket with the CNCF to resolve a CLA problem.
* 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)
* 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))
* Not following [scalability good practices](scalability-good-practices.md)
Expand Down
44 changes: 20 additions & 24 deletions contributors/guide/expectations.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,31 @@ description: |
community.
---

Kubernetes is a community project. Consequently, it is wholly dependent on
its community to provide a productive, friendly and collaborative environment.
Kubernetes is a community project.
Consequently, it is wholly dependent on its community to provide a productive, friendly and collaborative environment.

The first and foremost goal of the Kubernetes community is to develop orchestration
technology that radically simplifies the process of creating reliable
distributed systems. However a second, equally important goal is the creation
distributed systems.
However a second, equally important goal is the creation
of a community that fosters easy, agile development of such orchestration
systems.

We therefore describe the expectations for
members of the Kubernetes community. This document is intended to be a living one
that evolves as the community evolves via the same PR and code review process
that shapes the rest of the project. It currently covers the expectations
of conduct that govern all members of the community as well as the expectations
around code review that govern all active contributors to Kubernetes.
We therefore describe the expectations for members of the Kubernetes community.
This document is intended to be a living one that evolves as the community evolves via the same PR and code review process that shapes the rest of the project.
It currently covers the expectations of conduct that govern all members of the community as well as the expectations around code review that govern all active contributors to Kubernetes.

## Code review

As a community we believe in the value of code review for all contributions.
Code review increases both the quality and readability of our codebase, which
in turn produces high quality software.

See the [pull request documentation](/contributors/guide/pull-requests.md) for more information
on code review.
See the [pull request documentation](/contributors/guide/pull-requests.md) for more information on code review.

Consequently, as a community we expect that all active participants in the
community will also be active reviewers. The
[community membership](/community-membership.md) outlines the responsibilities
community will also be active reviewers.
The [community membership](/community-membership.md) outlines the responsibilities
of the different contributor roles.

Expect reviewers to request that you avoid [common go style
Expand All @@ -44,27 +41,26 @@ mistakes](https://github.com/golang/go/wiki/CodeReviewComments) in your PRs.
Because reviewers are often the first points of contact between new members of
the community and can significantly impact the first impression of the
Kubernetes community, reviewers are especially important in shaping the
Kubernetes community. Reviewers are highly encouraged to review the
[code of conduct](/governance.md#code-of-conduct) and are strongly
encouraged to go above and beyond the code of conduct to promote a collaborative,
respectful Kubernetes community.
Kubernetes community.
Reviewers are highly encouraged to not only abide by the [code of conduct](/governance.md#code-of-conduct) but are strongly encouraged to go above and beyond the code of conduct to promote a collaborative, respectful Kubernetes community.

## Expectations of reviewers: Review latency

Reviewers are expected to respond in a timely fashion to PRs that are assigned
to them. Reviewers are expected to respond to an *active* PRs with reasonable
latency, and if reviewers fail to respond, those PRs may be assigned to other
reviewers.
to them.
Reviewers are expected to respond to an *active* PRs with reasonable latency, and if reviewers fail to respond, those PRs may be assigned to other reviewers.

If reviewers are unavailable to review for some time, they are expected to set their [user status](https://help.github.com/en/articles/personalizing-your-profile#setting-a-status) to "busy" so that the bot will not request reviews from them on new PRs automatically. If they are unavailable for a longer period of time, they are expected to remove themselves from the OWNERS file and potentially nominate someone else.
If reviewers are unavailable to review for some time, they are expected to set their [user status](https://help.github.com/en/articles/personalizing-your-profile#setting-a-status) to "busy" so that the bot will not request reviews from them on new PRs automatically.
If they are unavailable for a longer period of time, they are expected to remove themselves from the OWNERS file and potentially nominate someone else.

*Active* PRs are considered those which have a proper CLA (`cla:yes`) label
and do not need rebase to be merged. PRs that do not have a proper CLA, or
require a rebase are not considered active PRs.
and do not need rebase to be merged.
PRs that do not have a proper CLA, or require a rebase are not considered active PRs.

## Thanks

Many thanks in advance to everyone who contributes their time and effort to
making Kubernetes both a successful system as well as a successful community.
The strength of our software shines in the strengths of each individual
community member. Thanks!
community member.
Thanks!
24 changes: 7 additions & 17 deletions contributors/guide/first-contribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,6 @@ description: |
- [SIG-specific contributing guidelines](#sig-specific-contributing-guidelines)
- [File an Issue](#file-an-issue)


Have you ever wanted to contribute to the coolest cloud technology?
We will help you understand the organization of the Kubernetes project and direct you to the best places to get started.
You'll be able to pick up issues, write code to fix them, and get your work reviewed and merged.

Please be aware that due to the large number of issues our triage team deals with, we cannot offer technical support in GitHub issues.
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).
You can also ask questions on [ServerFault](https://serverfault.com/questions/tagged/kubernetes) or [Stack Overflow](https://stackoverflow.com/questions/tagged/kubernetes).
The Kubernetes team scans Stack Overflow on a regular basis and will try to ensure your questions don't go unanswered.

## Find something to work on

Help is always welcome! For example, documentation (like the text you are reading now) can always use improvement.
Expand All @@ -43,8 +33,6 @@ There are [multiple repositories](https://github.com/kubernetes/) within the Kub
Each repository has beginner-friendly issues that provide a good first issue.
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.
The `good first issue` label indicates that members have committed to providing [extra assistance](/contributors/guide/help-wanted.md) for new contributors.
<!-- TODO: review removing this note after 3 months or after the 1.12 release -->
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.

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.

Expand All @@ -55,16 +43,18 @@ then the robot will assign the issue to you and your name will present at `Assig

### Learn about SIGs

#### SIG structure

You may have noticed that some repositories in the Kubernetes Organization are owned by Special Interest Groups, or SIGs.
You may have noticed that some repositories in the Kubernetes Organization are owned by [Special Interest Groups](/sig-list.md), or SIGs.
We organize the community into SIGs in order to improve our workflow and more easily manage what is a very large community project.
The developers within each SIG have autonomy and ownership over that SIG's part of Kubernetes.
The developers within each SIG have autonomy and ownership over that SIG's part of Kubernetes. Check out the [list of SIGs](/sig-list.md) for contact information.

Understanding how to interact with SIGs is an important part of contributing.

#### SIG structure

A SIG is an open, community effort.
Anybody is welcome to jump into a SIG and begin fixing issues, critiquing design proposals and reviewing code.
SIGs have regular [video meetings](https://kubernetes.io/community/) which everyone is welcome to.
Each SIG has a slack channel that you can join as well.
Each SIG has a slack channel, meeting notes, and their own documentation that is useful to read and understand.

There is an entire SIG ([sig-contributor-experience](/sig-contributor-experience/README.md)) devoted to improving your experience as a contributor.
Contributing to Kubernetes should be easy.
Expand Down
36 changes: 0 additions & 36 deletions contributors/guide/getting-started.md

This file was deleted.