1# Contributing 2 3We encourage community contributions to FlatBuffers through pull requests at the 4main 5[http://github.com/google/flatbuffers](http://github.com/google/flatbuffers) 6repository. 7 8!!! note 9 10 The FlatBuffers project is not staffed by any full time Google employee, and 11 is managed by a small team of 20%ers. So response time and expertise vary. 12 13## Before you contribute 14 15Before we can use your contributions, you __must__ sign one of the following license agreements. The agreements are self-served at the following links. 16 17Our code review process will automatically check if you have signed the CLA, so 18don't fret. Though it may be prudent to check before spending a lot of time on 19contribution. 20 21### Individual Contributions 22 23For individuals, the [Google Individual 24Contributor License Agreement 25(CLA)](https://cla.developers.google.com/about/google-individual?csw=1) which is 26self served at the link. The CLA is required since you own the copyright to your 27changes, even after your contribution becomes part of our codebase, so we need 28your permission to use and distribute your code. 29 30### Corporate Contributions 31 32Contributions made by corporations are covered by the [Google Software Grant and 33Corporate Contributor License 34Agreement](https://cla.developers.google.com/about/google-corporate). 35 36## Code Reviews 37 38All submissions require a code review via Github Pull Requests. 39 401. Please adhere to the [Google Style Guide](https://google.github.io/styleguide/cppguide.html) for the language(s) you are submitting in. 412. Keep PRs small and focused. Its good practice and makes it more likely your PR will be approved. 423. Please add tests if possible. 434. Include descriptive commit messages and context to the change/issues fixed. 44 45## Documentation 46 47FlatBuffers uses [MkDocs](https://www.mkdocs.org/) to generate the static 48documentation pages served at 49[https://flatbuffers.dev](https://flatbuffers.dev). Specifically, we use the 50[Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) framework. 51 52The documentation source is contained in the main repo under the 53[docs/](https://github.com/google/flatbuffers/tree/master/docs) directory. This 54[automatically](https://github.com/google/flatbuffers/blob/46cc3d6432da17cca7694777dcce12e49dd48387/.github/workflows/docs.yml#L6-L11) get built and published when the commit is made. 55 56### Local Development 57 58We encourage contributors to keep the documentation up-to-date as well, and it 59is easy to with `MkDocs` local building and serving tools. 60 61First install `mkdocs-material` (see 62[Installation](https://squidfunk.github.io/mkdocs-material/getting-started/) for 63other ways) 64 65``` 66pip install mkdocs-material 67pip install mkdocs-redirects 68``` 69 70Then, in the `root` directory of flatbuffers, run 71 72``` 73mkdocs serve -f docs/mkdocs.yml 74``` 75 76This will continually watch the repo for changes to the documentation and serve 77the rendered pages locally. 78 79Submit your documentation changes with your code changes and they will 80automatically get published when your code is submitted.