Skip to content

Latest commit

 

History

History
57 lines (40 loc) · 2.41 KB

File metadata and controls

57 lines (40 loc) · 2.41 KB

How to Contribute

Thank you for your interest in contributing to Crubit!

Testing

For now, the only direction of Crubit that can be tested in the GitHub repo is cc_bindings_from_rs, and only via cargo build --bin cc_bindings_from_rs. Beyond that, it is on us to clean up the PR.

Copybara

Today, Crubit lives in Google's monorepo, with a bidirectional export/import to/from GitHub using Copybara. This has implications for contributors.

Non-reversible transforms

Some changes performed by copybara are non-reversible, which means that a pull request cannot touch those changes. For example, many URLs, and any comment that says the moral equivalent of "REDACTED". If a pull request touched these, the resulting import into Crubit's source of truth would either be missing information or contain incomplete/corrupted information.

Reversible transforms

We do our best to make these transforms reversible so that pull requests can touch them. For example, in the monorepo, a Rust dependency is spelled (for example) "//third_party/rust/syn/v1:syn",. This is transformed to "@crate_index//:syn", # v1. But if a pull request broke this -- for example, by specifying v72, or by making it three spaces instead of two -- then the resulting reverse transformation would not work for the pull request import, and produce code that does not compile.

Invisible test coverage

At the moment there is no automated testing for GitHub pull requests, so all test coverage comes in the form of "I reviewed your change, imported the PR, and it broke something you can't see". Sorry. With luck many of these can be fixed by the reviewer. We are working on bringing better testing to the GitHub repository, stay tuned.

Contributor License Agreement

Contributions to this project must be accompanied by a Contributor License Agreement (CLA). 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.

Community Guidelines

This project follows Google's Open Source Community Guidelines.