summaryrefslogtreecommitdiff
path: root/docs/pr_checklist.md
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2024-05-30 12:00:41 +1000
committerGitHub <noreply@github.com>2024-05-30 12:00:41 +1000
commit6ef97172889ccd5db376b2a9f8825489e24fdac4 (patch)
tree334e3bf41c8554d4bee73a140822f95f60eb64e9 /docs/pr_checklist.md
parent395766657ff98a4b1fd0dcba5917557f8acbb9e4 (diff)
Vitepress conversion of docs. (#23795)
Diffstat (limited to 'docs/pr_checklist.md')
-rw-r--r--docs/pr_checklist.md28
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
44Note 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
198There are instructions on how to keep your fork updated here: 200There 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
204Thanks for contributing! 206Thanks for contributing!
205``` 207```