2022-12-21 17:36:30 +02:00
|
|
|
# How to Contribute
|
|
|
|
|
|
|
|
We'd love to accept your patches and contributions to this project. There are
|
|
|
|
just a few small guidelines you need to follow.
|
|
|
|
|
2023-10-30 00:02:16 +02:00
|
|
|
Make sure you can build the book, and that `mdbook serve` works. Please follow
|
|
|
|
the [instructions in the README].
|
|
|
|
|
|
|
|
[instructions in the README]: README.md#building
|
|
|
|
|
2023-10-20 13:52:36 +02:00
|
|
|
## Formatting
|
|
|
|
|
2023-10-30 00:02:16 +02:00
|
|
|
Please ensure that your files are formatted consistently. We use a few tools for
|
|
|
|
this:
|
2023-10-20 13:52:36 +02:00
|
|
|
|
2023-10-30 00:02:16 +02:00
|
|
|
- [`dprint`] for driving the formatting.
|
2023-10-20 13:52:36 +02:00
|
|
|
- [`rustfmt`] for formatting Rust code.
|
|
|
|
- [`yapf`] for formatting Python code.
|
|
|
|
- [`msgcat`] for formatting PO files.
|
|
|
|
|
2023-10-30 00:02:16 +02:00
|
|
|
Run `dprint fmt` to automatically format all files.
|
|
|
|
|
2023-10-20 13:52:36 +02:00
|
|
|
### Linux
|
|
|
|
|
2023-10-30 00:02:16 +02:00
|
|
|
Install `dprint` using their
|
|
|
|
[installation instructions](https://dprint.dev/install/) and install `rustfmt`
|
|
|
|
via `rustup`.
|
|
|
|
|
|
|
|
On Debian, you can install the other tools using:
|
2023-10-20 13:52:36 +02:00
|
|
|
|
|
|
|
```sh
|
|
|
|
sudo apt install yapf3 gettext
|
|
|
|
```
|
|
|
|
|
|
|
|
### MacOS
|
|
|
|
|
2023-10-30 00:02:16 +02:00
|
|
|
On MacOS with [Homebrew], you can install the necessary tools with:
|
2023-10-22 23:59:03 +02:00
|
|
|
|
|
|
|
```shell
|
2023-10-30 00:02:16 +02:00
|
|
|
brew install dprint yapf gettext
|
2023-10-22 23:59:03 +02:00
|
|
|
```
|
2023-10-20 13:52:36 +02:00
|
|
|
|
|
|
|
### Windows
|
|
|
|
|
2023-11-06 23:05:13 +02:00
|
|
|
On Windows, you can should install [Gettext tools for Windows].
|
|
|
|
|
|
|
|
Install `dprint` using their
|
|
|
|
[installation instructions](https://dprint.dev/install/) and install `rustfmt`
|
|
|
|
via `rustup`.
|
2023-10-20 13:52:36 +02:00
|
|
|
|
|
|
|
> _TODO: fill in how to install `yapf` on Windows._
|
|
|
|
|
|
|
|
[`dprint`]: https://dprint.dev/
|
|
|
|
[`rustfmt`]: https://github.com/rust-lang/rustfmt
|
|
|
|
[`yapf`]: https://github.com/google/yapf
|
|
|
|
[`msgcat`]: https://www.gnu.org/software/gettext/manual/html_node/msgcat-Invocation.html
|
2023-10-22 23:59:03 +02:00
|
|
|
[Homebrew]: https://brew.sh/
|
2023-11-06 23:05:13 +02:00
|
|
|
[Gettext tools for Windows]: https://github.com/vslavik/gettext-tools-windows/releases
|
2023-10-20 13:52:36 +02:00
|
|
|
|
2022-12-21 17:36:30 +02:00
|
|
|
## Contributor License Agreement
|
|
|
|
|
|
|
|
Contributions to this project must be accompanied by a Contributor License
|
|
|
|
Agreement. You (or your employer) retain the copyright to your contribution;
|
|
|
|
this simply gives us permission to use and redistribute your contributions as
|
|
|
|
part of the project. Head over to <https://cla.developers.google.com/> to see
|
|
|
|
your current agreements on file or to sign a new one.
|
|
|
|
|
|
|
|
You generally only need to submit a CLA once, so if you've already submitted one
|
|
|
|
(even if it was for a different project), you probably don't need to do it
|
|
|
|
again.
|
|
|
|
|
|
|
|
## Code Reviews
|
|
|
|
|
|
|
|
All submissions, including submissions by project members, require review. We
|
|
|
|
use GitHub pull requests for this purpose. Consult
|
|
|
|
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
|
|
|
|
information on using pull requests.
|
|
|
|
|
|
|
|
## Community Guidelines
|
|
|
|
|
2023-05-30 17:04:19 +02:00
|
|
|
This project follows
|
|
|
|
[Google's Open Source Community Guidelines](https://opensource.google/conduct/).
|