4.9 KiB
title | linkTitle | weight | type |
---|---|---|---|
Building API docs from the Knative component repos | Generating API docs | 85 | docs |
The Knative API docs are built from the code in the Knative Serving and Eventing repos.
New API docs are generated and then published at https://www.knative.dev/docs/reference/api for every release.
Source files
API source files are located at:
Updating API Reference docs (for Knative maintainers)
The Knative API reference documentation is manually generated using the
gen-api-reference-docs.sh
tool. If you need to generate a new
version of the API docs for a recent update or for a new release, you can use
the following steps.
To learn more about the tool, see the gen-crd-api-reference-docs reference page.
Before you begin
You must meet the following requirements to run the gen-api-reference-docs.sh
tool:
- You need the following software installed:
- Clone knative/docs locally. For example:
git clone git@github.com:knative/docs.git
Generating the API
To generate a version of the API:
-
Ensure that your
GOPATH
is empty. Thegen-api-reference-docs.sh
script will result in theGOPATH should not be set
error if yourGOPATH
is configured. You view the value by running the following command:echo $GOPATH
If your
GOPATH
is already configured, temporarily clear theGOPATH
value by running the following command:export GOPATH=""
-
Locate the commits or tags that correspond to the version of the API that you want to generate:
-
To run the
gen-api-reference-docs.sh
command from thehack
directory, you specify the commits or tags for each of the corresponding Knative component variables (KNATIVE_[component_name]_COMMIT
):cd hack KNATIVE_SERVING_COMMIT=[commit_or_tag] \ KNATIVE_EVENTING_COMMIT=[commit_or_tag] \ ./gen-api-reference-docs.sh
where
[commit_or_tag]
is the commit or tag in the specific repo that represents the version of the API that you want to generate. Also see the example below.Result
The
gen-api-reference-docs.sh
tool generates the API in atmp
folder. After a successful build, the tool automatically opens that folder in thetmp
directory.If the script fails, there are a couple possible causes.
-
If you get the
F1116 15:21:23.549503 63473 main.go:129] no API packages found in ./pkg/apis
error, check if a new version of the script is available: https://github.com/ahmetb/gen-crd-api-reference-docs/tagsThe script is kept up-to-date with changes that go into the Kubernetes API. As Knative adds support for those APIs, you might need to make sure the corresponding script
gen-crd-api-reference-docs
version is used. -
If you get the
F0807 13:58:20.621526 168834 main.go:444] type invalid type has kind=Unsupported which is unhandled
error, the import target might have moved. There might be other causes for that error but view #2054 (and the linked Issues) for details about how we handled that error in the past.
-
-
Copy the generated API files into the
docs/reference
directory of your knative/docs clone. -
The linter now fails for content with trailing whitespaces. Use a tool of your choice to remove all trailing whitespace. For example, search for and remove:
\s+$
You can now perform the necessary steps to open a PR, complete a review, and
merge the new API files into the appropriate branch of the knative/docs
repo.
See the contributor flow for details
about requesting changes in the knative/docs
repo.
Example
To build a set of Knative API docs for v0.18, you can use the v0.18.0
the tags
from each of the Knative component repositories, like
Serving v0.18.0. If you want to
use a commit for Serving v0.18.0, you would use
850b7c.
Using tags from each repo, you would run the following command to generate the v0.18.0 API source files:
KNATIVE_SERVING_COMMIT=v0.18.0 \
KNATIVE_EVENTING_COMMIT=v0.18.0 \
./gen-api-reference-docs.sh