2021-04-24 03:35:44 +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.
|
|
|
|
|
|
|
|
## 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 a [Gerrit](https://www.gerritcodereview.com) instance hosted at
|
2023-04-07 15:10:16 +02:00
|
|
|
https://chromium-review.googlesource.com for this purpose.
|
|
|
|
|
|
|
|
## Sending patches
|
|
|
|
|
|
|
|
The basic git workflow for modifying libwebp code and sending for review is:
|
|
|
|
|
|
|
|
1. Get the latest version of the repository locally:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
git clone https://chromium.googlesource.com/webm/libwebp && cd libwebp
|
|
|
|
```
|
|
|
|
|
|
|
|
2. Copy the commit-msg script into ./git/hooks (this will add an ID to all of
|
|
|
|
your commits):
|
|
|
|
|
|
|
|
```sh
|
|
|
|
curl -Lo .git/hooks/commit-msg https://chromium-review.googlesource.com/tools/hooks/commit-msg && chmod u+x .git/hooks/commit-msg
|
|
|
|
```
|
|
|
|
|
|
|
|
3. Modify the local copy of libwebp. Make sure the code
|
|
|
|
[builds successfully](https://chromium.googlesource.com/webm/libwebp/+/HEAD/doc/building.md#cmake).
|
|
|
|
|
|
|
|
4. Choose a short and representative commit message:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
git commit -a -m "Set commit message here"
|
|
|
|
```
|
|
|
|
|
|
|
|
5. Send the patch for review:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
git push https://chromium-review.googlesource.com/webm/libwebp HEAD:refs/for/main
|
|
|
|
```
|
|
|
|
|
|
|
|
Go to https://chromium-review.googlesource.com to view your patch and
|
|
|
|
request a review from the maintainers.
|
|
|
|
|
|
|
|
See the
|
2021-04-24 03:35:44 +02:00
|
|
|
[WebM Project page](https://www.webmproject.org/code/contribute/submitting-patches/)
|
|
|
|
for additional details.
|
|
|
|
|
2023-05-30 21:23:04 +02:00
|
|
|
## Code Style
|
|
|
|
|
|
|
|
The C code style is based on the
|
|
|
|
[Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html) and
|
|
|
|
`clang-format --style=Google`, though this project doesn't use the tool to
|
|
|
|
enforce the formatting.
|
|
|
|
|
|
|
|
CMake files are formatted with
|
|
|
|
[cmake-format](https://cmake-format.readthedocs.io/en/latest/). `cmake-format
|
|
|
|
-i` can be used to format individual files, it will use the settings from
|
|
|
|
`.cmake-format.py`.
|
|
|
|
|
2021-04-24 03:35:44 +02:00
|
|
|
## Community Guidelines
|
|
|
|
|
|
|
|
This project follows
|
|
|
|
[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/).
|