diff options
| author | Nick Brassel <nick@tzarc.org> | 2024-05-30 12:00:41 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-30 12:00:41 +1000 |
| commit | 6ef97172889ccd5db376b2a9f8825489e24fdac4 (patch) | |
| tree | 334e3bf41c8554d4bee73a140822f95f60eb64e9 /docs/pr_checklist.md | |
| parent | 395766657ff98a4b1fd0dcba5917557f8acbb9e4 (diff) | |
Vitepress conversion of docs. (#23795)
Diffstat (limited to 'docs/pr_checklist.md')
| -rw-r--r-- | docs/pr_checklist.md | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 94ff7eed66..e5ed1d67b6 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md | |||
| @@ -8,7 +8,7 @@ If there are any inconsistencies with these recommendations, you're best off [cr | |||
| 8 | 8 | ||
| 9 | - PR should be submitted using a non-`master` branch on the source repository | 9 | - PR should be submitted using a non-`master` branch on the source repository |
| 10 | - this does not mean you target a different branch for your PR, rather that you're not working out of your own master branch | 10 | - this does not mean you target a different branch for your PR, rather that you're not working out of your own master branch |
| 11 | - if submitter _does_ use their own `master` branch, they'll be given a link to the ["how to git"](newbs_git_using_your_master_branch.md) page after merging -- (end of this document will contain the contents of the message) | 11 | - if submitter _does_ use their own `master` branch, they'll be given a link to the ["how to git"](newbs_git_using_your_master_branch) page after merging -- (end of this document will contain the contents of the message) |
| 12 | - Note, frequently merging upstream with your branch is not needed and is discouraged. Valid reason for updating your branch may be resolving merge conflicts and pulling in new changes relevant to your PR. | 12 | - Note, frequently merging upstream with your branch is not needed and is discouraged. Valid reason for updating your branch may be resolving merge conflicts and pulling in new changes relevant to your PR. |
| 13 | - PRs should contain the smallest amount of modifications required for a single change to the codebase | 13 | - PRs should contain the smallest amount of modifications required for a single change to the codebase |
| 14 | - multiple keyboards at the same time is not acceptable | 14 | - multiple keyboards at the same time is not acceptable |
| @@ -40,7 +40,9 @@ If there are any inconsistencies with these recommendations, you're best off [cr | |||
| 40 | 40 | ||
| 41 | ## Keymap PRs | 41 | ## Keymap PRs |
| 42 | 42 | ||
| 43 | !> Note that personal keymap submissions will no longer be accepted. This section applies to manufacturer-supported keymaps. Please see this [issue](https://github.com/qmk/qmk_firmware/issues/22724) for more information. | 43 | ::: warning |
| 44 | Note that personal keymap submissions will no longer be accepted. This section applies to manufacturer-supported keymaps. Please see this [issue](https://github.com/qmk/qmk_firmware/issues/22724) for more information. | ||
| 45 | ::: | ||
| 44 | 46 | ||
| 45 | - PRs for vendor specific keymaps will be permitted. The naming convention for these should be `default_${vendor}`, `via_${vendor}` i.e. `via_clueboard`. | 47 | - PRs for vendor specific keymaps will be permitted. The naming convention for these should be `default_${vendor}`, `via_${vendor}` i.e. `via_clueboard`. |
| 46 | - vendor specific keymaps do not necessarily need to be "vanilla" and can be more richly featured than `default` or `via` stock keymaps. | 48 | - vendor specific keymaps do not necessarily need to be "vanilla" and can be more richly featured than `default` or `via` stock keymaps. |
| @@ -59,7 +61,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard | |||
| 59 | - keyboard updates and refactors (eg. to data driven) *must* go through `develop` to reduce `master` -> `develop` merge conflicts | 61 | - keyboard updates and refactors (eg. to data driven) *must* go through `develop` to reduce `master` -> `develop` merge conflicts |
| 60 | - PR submissions from a `kbfirmware` export (or equivalent) will not be accepted unless converted to new QMK standards -- try `qmk import-kbfirmware` first | 62 | - PR submissions from a `kbfirmware` export (or equivalent) will not be accepted unless converted to new QMK standards -- try `qmk import-kbfirmware` first |
| 61 | - `info.json` | 63 | - `info.json` |
| 62 | - With the move to [data driven](https://docs.qmk.fm/#/data_driven_config) keyboard configuration, we encourage contributors to utilise as many features as possible of the info.json [schema](https://github.com/qmk/qmk_firmware/blob/master/data/schemas/keyboard.jsonschema). | 64 | - With the move to [data driven](data_driven_config) keyboard configuration, we encourage contributors to utilise as many features as possible of the info.json [schema](https://github.com/qmk/qmk_firmware/blob/master/data/schemas/keyboard.jsonschema). |
| 63 | - the mandatory elements for a minimally complete `info.json` at present are: | 65 | - the mandatory elements for a minimally complete `info.json` at present are: |
| 64 | - valid URL | 66 | - valid URL |
| 65 | - valid maintainer | 67 | - valid maintainer |
| @@ -86,7 +88,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard | |||
| 86 | - RGB Matrix Configuration | 88 | - RGB Matrix Configuration |
| 87 | - Run `qmk format-json` on this file before submitting your PR. Be sure to append the `-i` flag to directly modify the file, or paste the outputted code into the file. | 89 | - Run `qmk format-json` on this file before submitting your PR. Be sure to append the `-i` flag to directly modify the file, or paste the outputted code into the file. |
| 88 | - `readme.md` | 90 | - `readme.md` |
| 89 | - must follow the [template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md) | 91 | - must follow the [template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme) |
| 90 | - flash command is present, and has `:flash` at end | 92 | - flash command is present, and has `:flash` at end |
| 91 | - valid hardware availability link (unless handwired) -- private groupbuys are okay, but one-off prototypes will be questioned. If open-source, a link to files should be provided. | 93 | - valid hardware availability link (unless handwired) -- private groupbuys are okay, but one-off prototypes will be questioned. If open-source, a link to files should be provided. |
| 92 | - clear instructions on how to reset the board into bootloader mode | 94 | - clear instructions on how to reset the board into bootloader mode |
| @@ -122,9 +124,9 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard | |||
| 122 | - `<keyboard>.c` | 124 | - `<keyboard>.c` |
| 123 | - empty `xxxx_xxxx_kb()`, `xxxx_xxxx_user()`, or other weak-defined default implemented functions removed | 125 | - empty `xxxx_xxxx_kb()`, `xxxx_xxxx_user()`, or other weak-defined default implemented functions removed |
| 124 | - commented-out functions removed too | 126 | - commented-out functions removed too |
| 125 | - `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](custom_quantum_functions.md?id=keyboard_pre_init_-function-documentation) | 127 | - `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](custom_quantum_functions#keyboard_pre_init_-function-documentation) |
| 126 | - prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](custom_matrix.md?id=lite) | 128 | - prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](custom_matrix#lite) |
| 127 | - prefer LED indicator [Configuration Options](feature_led_indicators.md?id=configuration-options) to custom `led_update_*()` implementations where possible | 129 | - prefer LED indicator [Configuration Options](feature_led_indicators#configuration-options) to custom `led_update_*()` implementations where possible |
| 128 | - hardware that's enabled at the keyboard level and requires configuration such as OLED displays or encoders should have basic functionality implemented here | 130 | - hardware that's enabled at the keyboard level and requires configuration such as OLED displays or encoders should have basic functionality implemented here |
| 129 | - `<keyboard>.h` | 131 | - `<keyboard>.h` |
| 130 | - `#include "quantum.h"` appears at the top | 132 | - `#include "quantum.h"` appears at the top |
| @@ -133,12 +135,12 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard | |||
| 133 | - no duplication of `rules.mk` or `config.h` from keyboard | 135 | - no duplication of `rules.mk` or `config.h` from keyboard |
| 134 | - `keymaps/default/keymap.c` | 136 | - `keymaps/default/keymap.c` |
| 135 | - `QMKBEST`/`QMKURL` example macros removed | 137 | - `QMKBEST`/`QMKURL` example macros removed |
| 136 | - if using `MO(1)` and `MO(2)` keycodes together to access a third layer, the [Tri Layer](https://docs.qmk.fm/#/feature_tri_layer) feature should be used, rather than manually implementing this using `layer_on/off()` and `update_tri_layer()` functions in the keymap's `process_record_user()`. | 138 | - if using `MO(1)` and `MO(2)` keycodes together to access a third layer, the [Tri Layer](feature_tri_layer) feature should be used, rather than manually implementing this using `layer_on/off()` and `update_tri_layer()` functions in the keymap's `process_record_user()`. |
| 137 | - default (and via) keymaps should be "pristine" | 139 | - default (and via) keymaps should be "pristine" |
| 138 | - bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap | 140 | - bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap |
| 139 | - what does pristine mean? no custom keycodes. no advanced features like tap dance or macros. basic mod taps and home row mods would be acceptable where their use is necessary | 141 | - what does pristine mean? no custom keycodes. no advanced features like tap dance or macros. basic mod taps and home row mods would be acceptable where their use is necessary |
| 140 | - standard layouts preferred in these keymaps, if possible | 142 | - standard layouts preferred in these keymaps, if possible |
| 141 | - should use [encoder map feature](https://docs.qmk.fm/#/feature_encoders?id=encoder-map), rather than `encoder_update_user()` | 143 | - should use [encoder map feature](feature_encoders#encoder-map), rather than `encoder_update_user()` |
| 142 | - default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via` | 144 | - default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via` |
| 143 | - submitters can add an example (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap | 145 | - submitters can add an example (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap |
| 144 | - submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board | 146 | - submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board |
| @@ -163,11 +165,11 @@ Also, specific to ChibiOS: | |||
| 163 | - New board definitions must not be embedded in a keyboard PR | 165 | - New board definitions must not be embedded in a keyboard PR |
| 164 | - See [Core PRs](#core-pr) below for the procedure for adding a new board to QMK | 166 | - See [Core PRs](#core-pr) below for the procedure for adding a new board to QMK |
| 165 | - if a board definition is unavoidable, `board.c` must have a standard `__early_init()` (as per normal ChibiOS board defs) and an empty `boardInit()`: | 167 | - if a board definition is unavoidable, `board.c` must have a standard `__early_init()` (as per normal ChibiOS board defs) and an empty `boardInit()`: |
| 166 | - see Arm/ChibiOS [early initialization](platformdev_chibios_earlyinit.md?id=board-init) | 168 | - see Arm/ChibiOS [early initialization](platformdev_chibios_earlyinit#board-init) |
| 167 | - `__early_init()` should be replaced by either `early_hardware_init_pre()` or `early_hardware_init_post()` as appropriate | 169 | - `__early_init()` should be replaced by either `early_hardware_init_pre()` or `early_hardware_init_post()` as appropriate |
| 168 | - `boardInit()` should be migrated to `board_init()` | 170 | - `boardInit()` should be migrated to `board_init()` |
| 169 | 171 | ||
| 170 | ## Core PRs :id=core-pr | 172 | ## Core PRs {#core-pr} |
| 171 | 173 | ||
| 172 | - all core PRs must now target `develop` branch, which will subsequently be merged back to `master` on the breaking changes timeline | 174 | - all core PRs must now target `develop` branch, which will subsequently be merged back to `master` on the breaking changes timeline |
| 173 | - as indicated above, the smallest set of changes to core components should be included in each PR | 175 | - as indicated above, the smallest set of changes to core components should be included in each PR |
| @@ -197,9 +199,9 @@ For future reference, we recommend against committing to your `master` branch as | |||
| 197 | 199 | ||
| 198 | There are instructions on how to keep your fork updated here: | 200 | There are instructions on how to keep your fork updated here: |
| 199 | 201 | ||
| 200 | [**Best Practices: Your Fork's Master: Update Often, Commit Never**](https://docs.qmk.fm/#/newbs_git_using_your_master_branch) | 202 | [**Best Practices: Your Fork's Master: Update Often, Commit Never**](newbs_git_using_your_master_branch) |
| 201 | 203 | ||
| 202 | [Fixing Your Branch](https://docs.qmk.fm/#/newbs_git_resynchronize_a_branch) will walk you through fixing up your `master` branch moving forward. If you need any help with this just ask. | 204 | [Fixing Your Branch](newbs_git_resynchronize_a_branch) will walk you through fixing up your `master` branch moving forward. If you need any help with this just ask. |
| 203 | 205 | ||
| 204 | Thanks for contributing! | 206 | Thanks for contributing! |
| 205 | ``` | 207 | ``` |
