2.9 KiB
Contributing to the Glean SDK
Note: This document describes contributing to the cross-platform implementation of the Glean SDK. To contribute to the Android-specific implementation, see android-components.
Anyone is welcome to help with the Glean SDK project. Feel free to get in touch with other community members on IRC or through issues here on GitHub.
- IRC:
#telemetry
onirc.mozilla.org
- and of course, the issues list
Participation in this project is governed by the Mozilla Community Participation Guidelines.
Bug Reports
You can file issues here on GitHub. Please try to include as much information as you can and under what conditions you saw the issue.
Making Code Changes
To work on the code in this repo you will need to be familiar with the Rust programming language. You can get a working rust compiler and toolchain via rustup.
You can check that everything compiles by running the following from the root of your checkout:
cargo test --all
If you plan to work on the Android component bindings, you should also review the instructions for setting up an Android build environment
Sending Pull Requests
Patches should be submitted as pull requests (PRs).
Before submitting a PR:
- Your code must run and pass all the automated tests before you submit your PR for review. "Work in progress" pull requests are allowed to be submitted, but should be clearly labeled as such and should not be merged until all tests pass and the code has been reviewed.
- Run
cargo test --all
to make sure all tests still pass and no warnings are emitted. - Run
cargo fmt
to ensure the code is formatted correctly.
- Run
- Your patch should include new tests that cover your changes. It is your and your reviewer's responsibility to ensure your patch includes adequate tests.
When submitting a PR:
- You agree to license your code under the project's open source license (MPL 2.0).
- Base your branch off the current
master
(see below for an example workflow). - Add both your code and new tests if relevant.
- Run
cargo test
to make sure your code passes linting and tests. - Please do not include merge commits in pull requests; include only commits with the new relevant code.
Code Review
This project is production Mozilla code and subject to our engineering practices and quality standards. Every patch must be peer reviewed by a member of the Application Services team.