Files
unleashed-firmware/CONTRIBUTING.md
T

5.8 KiB

Welcome to the Flipper Zero contribution guide

Thank you for investing your time in contributing to our project!

Read our Code of Conduct to keep our community approachable and respectable.

In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging PRs.

New to open source?

See the ReadMe file to get an overview of the project. Also, read these helpful resources to get you comfortable with open source contribution:

How to contribute

Step 1. Review the guidelines

Before writing code and creating a PR, make sure your contribution aligns with our mission and guidelines:

  • All our devices are intended for research and education.
  • We won't accept code intended to commit crimes.
  • Follow our Coding Style.
  • Use code compatible with the project License.
  • Your PR will only be merged if it passes CI/CD.
  • A code owner must approve the PR.
  • AI-generated PRs (especially changes in core parts like FURI, FreeRTOS, Libs, SDK) will be reviewed separately from others. PRs that do not provide sufficient value to the project may be rejected by maintainers or remain in draft.

Feel free to ask questions in issues or discussions if you're not sure. For feature requests and voting, follow our Discussion Guidelines.

Step 2. Check for an existing issue

Before you start working on something, check if this problem was already reported. Search the existing issues first to avoid duplicating effort. Here is more info on how to search issues.

If an issue doesn't exist, you can open a new one using a relevant issue form.

Step 3. Fork the repo and set up the project

  1. Fork the repository to your own GitHub account. This creates a copy you can push to freely. (New to forking? See GitHub's fork a repo guide, or do it from GitHub Desktop.)

  2. Clone your fork to your computer. Use --recursive so all submodules are fully loaded:

git clone --recursive https://github.com/YOUR-USERNAME/flipperzero-firmware.git
  1. Create a working branch. Use a descriptive name such as feature/your-change then start making your changes.

  2. Install build requirements and build with the Flipper Build Tool (FBT). See FBT documentation for details. Basic commands:

  • ./fbt — build firmware with debug flags enabled.
  • ./fbt COMPACT=1 DEBUG=0 updater_package — build full updater package .tgz with release flags.
  • ./fbt vscode_dist — add VS Code environment to the project.
  • ./fbt format — format code in the project folder (apply this before making a PR).

Step 4. Make changes

Implement the changes to the firmware code, following the Coding Style guidelines.

Step 5. Commit changes

Commit the changes once you are happy with them. Make sure code compilation succeeds, tests pass, and formatting follows Coding Style and ./fbt format is applied. Use clear, descriptive commit messages.

Step 6. Create a pull request

When you're done making the changes, open a pull request:

  • Fill out the "Ready for review" template, so we can review your PR. This template helps reviewers understand your changes and the purpose of your pull request.
  • Don't forget to link PR to issue if you are solving one.
  • Make sure the Allow edits from maintainers checkbox is checked so the branch can be updated before merging.

Step 7. Respond to review

  • We may ask for changes to be made before a PR can be merged, either using suggested changes or pull request comments. You can apply suggested changes directly through the UI. You can make any other changes in your fork, then commit them to your branch.
  • As you update your PR and apply changes, mark each conversation as resolved.
  • If you run into any merge issues, check out this tutorial to help you resolve merge conflicts and other issues.

Your PR is merged!

Congratulations 🎉! The Flipper Devices team thanks you for your contribution