• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.