Contributing to knative/docs

First off, thanks for taking the time to contribute!

The following are guidelines for contributing to the Knative documentation. These are just guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.

Before you begin

Code of conduct

Knative follows the Knative Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to knative-code-of-conduct@googlegroups.com.

Contributor license agreements

We'd love to accept your contributions! But before we can take them, you need to fill out the Google CLA. Important: You must fill out the CLA with the same email address that you used to create your GitHub account.

Once you are CLA'ed, we'll be able to accept your pull requests. This is necessary because you own the copyright to your changes, even after your contribution becomes part of this project. So this agreement simply gives us permission to use and redistribute your contributions as part of the project.

Note: Your contributions are verified using the email address for which you use to sign the CLA. Therefore, setting your GitHub account to private is unsupported because all commits from private accounts are sent from the noreply email address.

Style guide

Knative documentation follows the Google Developer Documentation Style Guide. Use this as a reference for writing style questions. use it as a reference for writing style questions.

Contributing to the documentation

Reporting documentation issues

Knative uses Github issues to track documentation issues and requests. If you see a problem with the documentation, submit an issue using the following steps:

  1. Check the Knative docs issues list before creating an issue to avoid making a duplicate.
  2. Use the correct template for your new issue. There are two templates available:
    • Bug report: If you're reporting an error in the existing documentation, use this template. This could be anything from broken samples to typos. When you create a bug report, include as many details as possible and include suggested fixes to the issue. If you know which Knative component your bug is related to, you can assign the appropriate Working Group Lead.
    • Feature request: For upcoming changes to the documentation or requests for more information on a particular subject.

Note that code issues should be filed against the individual Knative repositories, while documentation issues should go in the knative/docs repo. If the issue is specific to the https://knative.dev website, open the issue in the knative/website repo.

Working group

The Knative Documentation Working Group meets biweekly on Tuesdays at 9:30am PT. Click here to see the exact dates on the Knative working group calendar.

If you're interested in becoming more involved in Knative's documentation, start attending the working group meetings. You'll meet the writers currently steering our documentation efforts, who are happy to help you get started.

Getting started

There are a couple of different ways to get started with contributing to the Knative documentation:

A few pointers and other considerations

Submitting documentation PRs - what to expect

Here's what generally happens when you open a PR against the knative/docs repo:

  1. One of the assigned repo maintainers will triage the PR by assigning relative priority, adding appropriate labels, and performing an initial documentation review.

  2. If the PR involves significant technical changes, for example new features, or new and changed sample code, the PR is assigned to a Subject Matter Expert (SME), typically an engineer working on Knative, for technical review and approval.

  3. When both the technical writers and SMEs are satisfied with the quality of the writing and the technical accuracy of the content, the PR can be merged. A PR requires two labels before it can merge: lgtm and approved.

    • The SME is responsible for reviewing the technical accuracy and adding the lgtm label.

    • The Knative technical writers are who provide the approved label when the content meets quality, clarity, and organization standards (see Style Guide).

We appreciate contributions to the docs, so if you open a PR we will help you get it merged. You can also post in the #docs Slack channel to get input on your ideas before creating a PR.

Putting your docs in the right place

There are currently two general types of Knative docs, either contributor related content, or external-facing user content.

Choosing the correct repo

Depending on the type of content that you want to contribute, it might belong in one of the Knative code repositories (knative/serving, knative/eventing, etc.) or in knative/docs, the Knative documentation repo.

Determining where to add user focused code samples

There are currently two categories of user-focused code samples, Knative owned and maintained and Community owned and maintained.

While a sample might be out of date, it could still provide assistance and help you get up-and-running with certain use-cases. If you find that something is not right or contains outdated info, open an Issue. The sample might be fixed if bandwidth or available resource exists, or the sample might be taken down and archived into the last release branch where it worked.

Choosing the correct branch

It is likely that your docs contribution is either for new or changed features in the product, or for a fix or update existing content.

See a list of the available documentation versions in the branches page of the knative/docs repo.

Assigning owners and reviewers

For both documentation and code samples, you should assign your PR to a single owner ("Assignee") using the /assign Prow command. It's best to set the “Assignee” and include other stakeholders as “Reviewers” rather than leaving it unassigned or allowing Prow to auto assign reviewers.

Use the /assign command to set the owner. For example: /assign @owner_id

For code samples, initially set the owner of your PR to the SME who should review for technical accuracy. If you don't know who the appropriate owner is, nor who your reviewers should be for your PR, you can assign the current working group lead of the related component.

If you want to notify and include other stakeholders in your PR review, use the /cc command. For example: /cc @stakeholder_id1 @stakeholder_id2

Docs contributor roles

Because contributing to the documentation requires a different skill set than contributing to the Knative code base, we've defined the roles of documentation contributors separately from the roles of code contributors.

If you're looking for code contributor roles, see ROLES.

Member

Established contributor to the Knative docs.

Members are continuously active contributors in the community. They can have issues and PRs assigned to them, might participate in working group meetings, and pre-submit tests are automatically run for their PRs. Members are expected to remain active contributors to the Knative documentation.

All members are encouraged to help with PR reviews, although each PR must be reviewed by an official Approver. In their review, members should be looking for technical correctness of the documentation, adherence to the style guide, good spelling and grammar (writing quality), intuitive organization, and strong documentation usability. Members should be proficient in at least one of these review areas.

Requirements

Responsibilities and privileges

Becoming a member

First, reach out to an approver and ask them to sponsor you so that you can become a member. The easiest way to do this is using Slack.

If they are supportive of your membership, your sponsor will reach out to the Knative Steering committee to ask that you be added as a member of the Knative org.

Once your sponsor notifies you that you've been added to the Knative org, open a PR to add yourself as a docs-reviewer in the OWNERS_ALIASES file.

Approver

Docs approvers are able to both review and approve documentation contributions. While documentation review is focused on writing quality and correctness, approval is focused on holistic acceptance of a contribution including: long-term maintainability, adhering to style guide conventions, overall information architecture, and usability from an engineering standpoint. Docs approvers will enlist help from engineers for reviewing code-heavy contributions to the Docs repo.

Requirements

Responsibilities and privileges

Becoming an approver

If you want to become an approver, make your goal clear to the current Knative Docs approvers, either by contacting them in Slack or announcing your intention to become an approver at a meeting of the Documentation Working Group.

Once you feel you meet the criteria, you can ask one of the current approvers to nominate you to become an approver. If all existing approvers agree that you meet the criteria open a PR to add yourself as a docs-approver in the OWNERS_ALIASES file.