# Contributing ## Adding items to the general corgihowfsc TODO list To add an idea or request to the general TODO list, please open a [GitHub issue](https://github.com/roman-corgi/corgihowfsc/issues) describing the problem. Add relevant labels where possible. Feel free to post in the #cpp-hardware Slack channel to discuss the issue and see if anyone might be planning to address it. ## Contributing code 1. Create a branch off of the `main` branch. 2. Open a Draft PR early to enable discussion, track progress, and review changes via diffs. In the PR: - Link the related issue if there is one (e.g. Fixes #188). - Provide a clear description of scope and expected changes, and keep it updated. - Assign contributors and add labels. The assignee is responsible for completion. - Before marking the PR as ready for review, ensure all work is complete: rebase, run tests, fix problems, and update documentation. - Rebase regularly if the branch is long-lived. Ask for help on Slack if needed. 3. Request at least one review and iterate with the reviewer. You can post in the #cpp-hardware Slack channel to ask for reviewers if needed. :::{important} Keep your PR as a Draft until it is actually ready to merge. ::: 4. Address all review comments: - Implement requested changes or create follow-up issues. - Explain how each comment was handled. - Request re-review when ready. - Leave in-line comment resolution to the reviewer. 5. Once approved, the PR can be merged. :::{note} Anyone can merge a PR once it has been approved and the CI checks have passed (if the merge button appears green). :::