docs/contribute-to-docs/getting-started/branches-and-cherrypicking.md

66 lines
2.9 KiB
Markdown

# Branches and cherrypicking
Knative attempts to [support the last 4 releases](https://github.com/knative/community/blob/main/mechanics/RELEASE-VERSIONING-PRINCIPLES.md).
By default, new documentation should be written on the `main` branch and then
cherry-picked to the release branches if needed. Note that the default view of
[Knative website](https://knative.dev/) is of the most recent release branch, which means that
changes to `main` don't show up unless explicitly cherrypicked. This also
means that documentation changes for a release _should be made during the
development cycle_, rather than at the last minute or after the release.
## Docs versioning
Each version of the Knative docs are separated by branches in the `knative/docs`
repository. The `main` branch represents the "in active development" version
of the docs. All content in the `main` branch is renders on the
[Knative website](https://knative.dev/) under
the **Pre-release** menu and might not be tested nor working.
Content in all the other branches of the `knative/docs` repo
represent "released versions of the docs" and use the naming convention
`release-#.#` where `#.#` is the version of Knative to which those docs
correspond.
## 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.
- **New or changed features**: If you are adding or updating documentation for a
new or changed feature, you likely want to open your PR against the `main`
branch. All pre-release content for active Knative development belongs in
[`main`](https://github.com/knative/docs/tree/main/).
- **Fixes and updates**: If you find an issue in a past release, for example a
typo or out-of-date content, you likely need to cherrypick your PR.
Add the "`cherrypick` labels" to your
original PR to indicate in which of the past release that your change affects.
See a list of the available documentation versions in the
[branches page](https://github.com/knative/docs/branches) of the `knative/docs`
repo.
## Cherrypicking
You can use the [`/cherrypick` tool](https://github.com/kubernetes/test-infra/tree/master/prow/external-plugins/cherrypicker#cherrypicker)
to automatically cherrypick changes from `main` to previous releases.
For example, if you find a typo in a page of the `v1.0` release, then that
page in the `main` branch likely also has that typo.
To fix the typo:
1. Open a PR against the
[`main`](https://github.com/knative/docs/tree/main/) branch.
1. In a comment on your PR, use the
[`/cherrypick` tool](https://github.com/kubernetes/test-infra/tree/master/prow/external-plugins/cherrypicker#cherrypicker)
to indicate which of the past release branches should also be fixed. Generally, we only
maintain the most recent numbered release.
After the original PR is merged, the /cherrypick tool automatically creates a
new PR with your changes on the specified branch.