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

# Contribute to Bazel documentation

{% include "_buttons.html" %}

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.
