The code of conduct applies to all contributions, please go check that out first.
While the software in this library is fully open source, it is depended upon by the Light Phone's existing products. Above all else, we need to maintain compatibility with those products so we can continue to deliver safe, timely, and functional updates to our customers. We are excited to pull more closed code from those products into our open repositories, but it will take time. Ultimately, this means we are currently not interested in certain types of contributions from the community:
- Public API changes
- Additional/updated third-party dependencies (we'll do our best to stay up-to-date)
- Meaningful architectural changes
We expect contributions to come in the form of GitHub issues and pull requests. Not every issue requires a pull request, but we will close any pull requests that are not associated with an existing issue. If you are interested in submitting code changes for your issue, please state that clearly. Someone from the Light team will explicitly indicate on an issue that we would welcome a relevant PR. We reserve the right to politely refuse any proposed work. If having your work merged is important to you, please wait until we give a green light on your issue!
We expect all modules in this repository to compile, and all tests to pass for each PR. We will have an automated check that runs on GitHub, but to save time/resources, please check that this is true before opening your PR. For this repo, you can run ./gradlew check in the root directory.
Types of issues we are excited to receive:
- Bug Reports (something does not work as it is intended to)
- Please include the commit on which you are experiencing the issue, a description, and detailed reproduction steps.
- Feature Requests ("it would be helpful if this software could also do
X")- This includes requests to add open source third-party libraries or Android APIs to the build plugin's allow-list!
- New features should be relevant to a meaningful percentage of Light Phone users / consumers of this software. We reserve the right to make the final call on whether or not this is true for your issue.
- Security Issues (something in this software might allow a bad actor to degrade a Light Phone user's experience or violate their privacy)
- Material Performance Improvements (something in this software is actively degrading a Light Phone user's experience, or is egregiously consuming resources)
(Adapted from Astral's)
We like talking to people!
- We expect all communication in this repository to come from a human. That includes issue/PR descriptions, comments, and replies. If you are a non-native English speaker using an LLM to translate for you, we would be grateful if you included your original content alongside the translation.
- We expect you to be able to explain any proposed code changes in your own words.
- We find that code comments produced by LLMs tend to be overly verbose and/or specific to your dev session. Please delete them, or if you think they're genuinely useful, make sure they are brief and in your voice.
- You are responsible for any code or other communication that comes from your account.
- We (the humans on the Light dev team) are responsible for any code that gets merged.