Project: /_project.yaml
Book: /_book.yaml

# Contribute to Bazel documentation

Thank you for contributing to Bazel's documentation! There are a few ways to
help create better docs for our community.

## Documentation types

This site includes a few types of content.

 - *Narrative documentation*, which is written by technical writers and
   engineers. Most of this site is narrative documentation that covers
   conceptual and task-based guides.
 - *Reference documentation*, which is generated documentation from code comments.
   You can't make changes to the reference doc pages directly, but instead need
   to change their source.

## Documentation infrastructure

Bazel documentation is served from Google and the source files are mirrored in
Bazel's GitHub repository. You can make changes to the source files in GitHub.
If approved, you can merge the changes and a Bazel maintainer will update the
website source to publish your updates.


## Small changes

You can approach small changes, such as fixing errors or typos, in a couple of
ways.

 - **Pull request**. You can create a pull request in GitHub with the
   [web-based editor](https://docs.github.com/repositories/working-with-files/managing-files/editing-files) or on a branch.
 - **Bug**. You can file a bug with details and suggested changes and the Bazel
   documentation owners will make the update.

## Large changes

If you want to make substantial changes to existing documentation or propose
new documentation, you can either create a pull request or start with a Google
doc and contact the Bazel Owners to collaborate.
