126 lines
4.1 KiB
Markdown
126 lines
4.1 KiB
Markdown
---
|
|
title: Contributing to ZMK
|
|
sidebar_title: Contributing to ZMK
|
|
---
|
|
|
|
## Code of Conduct
|
|
|
|
All community members are expected to abide by the
|
|
[Code of Conduct](https://github.com/zmkfirmware/zmk/blob/main/CODE_OF_CONDUCT.md).
|
|
|
|
For any and all conduct inquiries or concerns, please contact
|
|
conduct@zmkfirmware.dev.
|
|
|
|
## How Can I Contribute
|
|
|
|
There are many different ways that you can contribute to ZMK, several of which
|
|
require no coding abilities. These include:
|
|
|
|
- Chat Support
|
|
- Issue Reporting/Commenting
|
|
- Testing
|
|
- Documentation
|
|
- Code Contributions
|
|
|
|
## Chat Support
|
|
|
|
Providing user support on the
|
|
[ZMK Discord Server](http://zmkfirmware.dev/community/discord/invite) is a great
|
|
way to help the project. In particular, answering questions in the
|
|
[#help](https://discord.com/channels/719497620560543766/719909884769992755)
|
|
channel is incredibly appreciated.
|
|
|
|
## Issue Reporting/Commenting
|
|
|
|
Often, you might encounter unexpected behavior when building, flashing, or
|
|
running the ZMK firmware. Submitting or commenting on issues on GitHub is a
|
|
great way to contribute to the ZMK project.
|
|
|
|
### Before Submitting a Report
|
|
|
|
- Review the [Frequently Asked Questions](faq).
|
|
- Check the [Troubleshooting Guide](troubleshooting) for answers.
|
|
- Search the [open issues](https://github.com/zmkfirmware/zmk/issues) for an
|
|
existing report that matches your problem.
|
|
|
|
### Opening A Report
|
|
|
|
To open a report:
|
|
|
|
- Head to https://github.com/zmkfirmware/zmk/issues/new
|
|
- Provide an accurate summary of the issue in the title.
|
|
- Provide as much detail as you can about the issue including:
|
|
- What [board/shield](faq#what-is-a-board) you are using.
|
|
- A link to the user repository, if you used it to build your firmware.
|
|
- Exact steps to reproduce the problem.
|
|
- Any relevant screenshots or [logs](development/usb-logging).
|
|
|
|
## Testing
|
|
|
|
The `help wanted` label will be added to any
|
|
[pull requests](https://github.com/zmkfirmware/zmk/pulls?q=is%3Aopen+is%3Apr+label%3A%22help+wanted%22)
|
|
or
|
|
[issues](https://github.com/zmkfirmware/zmk/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
|
|
where user testing can assist the ZMK contributors to verify fixes, confirm
|
|
bugs, etc.
|
|
|
|
When providing testing feedback, please provide:
|
|
|
|
- Exact steps used to test.
|
|
- Any hardware details relevant to testing.
|
|
- Pass/fail summary for testing.
|
|
- Full details of any failures, including:
|
|
- Logs
|
|
- Screenshots
|
|
|
|
## Documentation
|
|
|
|
Quality documentation is a huge part of what makes a successful project.
|
|
Contributions to add documentation to areas not currently covered are greatly
|
|
appreciated.
|
|
|
|
### Contributing
|
|
|
|
- The documentation site can be found in the main ZMK repo, in the
|
|
[docs/](https://github.com/zmkfirmware/zmk/tree/main/docs) subdirectory.
|
|
- The documentation is maintained using
|
|
[Docusaurus V2](https://v2.docusaurus.io/docs/).
|
|
- To get started, from the `docs/` directory, run `npm ci` and then `npm start`.
|
|
- Enhancements should be submitted as pull requests to the `main` branch of ZMK.
|
|
|
|
## Code Contributions
|
|
|
|
### Development Setup
|
|
|
|
To get your development environment setup going, start at the
|
|
[basic setup](development/setup) docs, and make sure you can build and flash
|
|
your own locally built firmware.
|
|
|
|
### Formatting
|
|
|
|
ZMK uses `clang-format` to ensure consist formatting for our source code. Before
|
|
submitting your changes, make sure you've manually run `clang-format`, or have
|
|
your IDE configured to auto-format on save.
|
|
|
|
### Commit Messages
|
|
|
|
The ZMK project is working towards, but not yet enforcing, the use of
|
|
[conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) for
|
|
commit messages.
|
|
|
|
Further documentation and details will be provided here soon.
|
|
|
|
### Pull Requests
|
|
|
|
When opening a pull request with your changes, please:
|
|
|
|
- Submit the PR to the `main` branch of the
|
|
[`zmkfirmware/zmk`](https://github.com/zmkfirmware/zmk) repository.
|
|
- Use a descriptive title that summarizes the change.
|
|
- In the description, include:
|
|
- References to any open issues fixed by the PR.
|
|
- Feature added by the PR.
|
|
- Bugs fixed by the PR.
|
|
- Testing you've performed locally.
|
|
- Requested testing by reviewers or testers.
|
|
- Screenshots or logs that support understanding the change.
|