forked from BigfootDev/flatbuffers
81 lines
3.0 KiB
Markdown
81 lines
3.0 KiB
Markdown
# Contributing
|
|
|
|
We encourage community contributions to FlatBuffers through pull requests at the
|
|
main
|
|
[http://github.com/google/flatbuffers](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)](https://cla.developers.google.com/about/google-individual?csw=1) 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](https://cla.developers.google.com/about/google-corporate).
|
|
|
|
## Code Reviews
|
|
|
|
All submissions require a code review via Github Pull Requests.
|
|
|
|
1. Please adhere to the [Google Style Guide](https://google.github.io/styleguide/cppguide.html) 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](https://www.mkdocs.org/) to generate the static
|
|
documentation pages served at
|
|
[https://flatbuffers.dev](https://flatbuffers.dev). Specifically, we use the
|
|
[Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) framework.
|
|
|
|
The documentation source is contained in the main repo under the
|
|
[docs/](https://github.com/google/flatbuffers/tree/master/docs) directory. This
|
|
[automatically](https://github.com/google/flatbuffers/blob/46cc3d6432da17cca7694777dcce12e49dd48387/.github/workflows/docs.yml#L6-L11) 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](https://squidfunk.github.io/mkdocs-material/getting-started/) 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.
|