Skip to content

Contributing

We encourage community contributions to FlatBuffers through pull requests at the main http://github.com/google/flatbuffers repository.

Note

The FlatBuffers project is not staffed by any full time Google employee, and is managed by a small team of 20%ers. So response time and expertise vary.

Before you contribute

Before we can use your contributions, you must sign one of the following license agreements. The agreements are self-served at the following links.

Our code review process will automatically check if you have signed the CLA, so don't fret. Though it may be prudent to check before spending a lot of time on contribution.

Individual Contributions

For individuals, the Google Individual Contributor License Agreement (CLA) which is self served at the link. The CLA is required since you own the copyright to your changes, even after your contribution becomes part of our codebase, so we need your permission to use and distribute your code.

Corporate Contributions

Contributions made by corporations are covered by the Google Software Grant and Corporate Contributor License Agreement.

Code Reviews

All submissions require a code review via Github Pull Requests.

  1. Please adhere to the Google Style Guide for the language(s) you are submitting in.
  2. Keep PRs small and focused. Its good practice and makes it more likely your PR will be approved.
  3. Please add tests if possible.
  4. Include descriptive commit messages and context to the change/issues fixed.

Documentation

FlatBuffers uses MkDocs to generate the static documentation pages served at https://flatbuffers.dev. Specifically, we use the Material for MkDocs framework.

The documentation source is contained in the main repo under the docs/ directory. This automatically get built and published when the commit is made.

Local Development

We encourage contributors to keep the documentation up-to-date as well, and it is easy to with MkDocs local building and serving tools.

First install mkdocs-material (see Installation for other ways)

pip install mkdocs-material
pip install mkdocs-redirects

Then, in the root directory of flatbuffers, run

mkdocs serve -f docs/mkdocs.yml

This will continually watch the repo for changes to the documentation and serve the rendered pages locally.

Submit your documentation changes with your code changes and they will automatically get published when your code is submitted.