summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2023-11-22CLI parallel search updates (#22525)Nick Brassel
2023-11-21Fix `qmk find` failure due to circular imports (#22523)Sergey Vlasov
There was an import cycle in the Python modules: - `qmk.build_targets` imported `qmk.cli.generate.compilation_database`; - importing `qmk.cli.generate.compilation_database` requires initializing `qmk.cli` first; - the initialization of `qmk.cli` imported the modules for all CLI commands; - `qmk.cli.compile` imported `qmk.build_targets`. This cycle did not matter in most cases, because `qmk.cli` was imported first, and in that case importing `qmk.cli.generate.compilation_database` did not trigger the initialization of `qmk.cli` again. However, there was one corner case when `qmk.bulld_targets` was getting imported first: - The `qmk find` command uses the `multiprocessing` module. - The `multiprocessing` module uses the `spawn` start method on macOS and Windows. - When the `spawn` method is used, the child processes initialize without any Python modules loaded, and the required modules are loaded on demand by the `pickle` module when receiving the serialized objects from the main process. The result was that the `qmk find` command did not work properly on macOS (and probably Windows too); it reported exceptions like this: ImportError: cannot import name 'KeyboardKeymapBuildTarget' from partially initialized module 'qmk.build_targets' (most likely due to a circular import) Moving the offending `qmk.cli.generate.compilation_database` import into the method which actually uses it fixes the problem.
2023-11-20Enable linking of encoders to switch within layout macros (#22264)Joel Challis
2023-11-19`qmk find`: Fix failure with multiple filters (#22497)Sergey Vlasov
When multiple `-f FILTER` options were specified, `qmk find` did not return anything at all instead of printing the list of entries that matched all of the specified filters. The problem was that the statement in `_filter_keymap_targets()` that filled `targets` had a wrong indent and therefore was executed for every filter instead of only once after applying all filters, and `valid_keymaps` was actually an iterator and therefore could be used only once. Moving the statement outside of the loop fixes the problem.
2023-11-15CLI refactoring for common build target APIs (#22221)Nick Brassel
2023-11-11Merge remote-tracking branch 'origin/master' into developQMK Bot
2023-11-11Add `qmk license-check` developer-level CLI command. (#22075)Nick Brassel
2023-11-01Improve argument handling of c2json (#22170)Joel Challis
* Improve argument handling of c2json * Add automagic
2023-11-01Generate switch statement helpers for keycode ranges (#20059)Joel Challis
2023-11-01Implement data driven lighting defaults (#21825)Joel Challis
2023-11-01Add dd mapping for hardware based split handedness (#22369)Joel Challis
2023-10-30Remove use of broken split.main (#22363)Joel Challis
2023-10-29Fix 'to_c' for config.h mappings (#22364)Joel Challis
2023-10-29Implement data driven dip switches (#22017)Joel Challis
* Add data driven dip switches * Autogen weak matrix_mask
2023-10-21Support additional split sync items for info.json (#22193)Joel Challis
2023-10-16Merge remote-tracking branch 'origin/master' into developQMK Bot
2023-10-17Allow for disabling of parallel processing of qmk find and `qmk ↵Nick Brassel
mass-compile`. (#22160) Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-10-08Merge remote-tracking branch 'origin/master' into developQMK Bot
2023-10-08Flag vial keymaps in 'qmk lint' (#22227)Joel Challis
2023-10-05Merge remote-tracking branch 'origin/master' into developQMK Bot
2023-10-06Add `qmk ci-validate-aliases` (#22205)Nick Brassel
2023-09-28Merge remote-tracking branch 'origin/master' into developQMK Bot
2023-09-29Allow for `qmk mass-compile all:<keymap>` (#22116)Nick Brassel
Co-authored-by: Joel Challis <git@zvecr.com>
2023-09-28Merge remote-tracking branch 'origin/master' into developQMK Bot
2023-09-28Allow inline generation of compile_commands.json while doing a `qmk ↵Nick Brassel
compile`, using `--compiledb` (#21549)
2023-09-27Fix parsing/validation for 21939 (#22148)Joel Challis
2023-09-23Merge remote-tracking branch 'origin/master' into developQMK Bot
2023-09-23Fix up `qmk mass-compile` makefile indenting. (#22115)Nick Brassel
2023-09-22Merge remote-tracking branch 'origin/master' into developQMK Bot
2023-09-22Allow for `qmk compile -kb all`. (#22022)Nick Brassel
2023-09-14Merge remote-tracking branch 'origin/master' into developQMK Bot
2023-09-14`qmk format-json`: Add an in-place mode to format json command (#21610)Andrew Kannan
2023-09-13Generate keymap.json config options more forcefully (#21960)Joel Challis
2023-08-27Add *_MATRIX_LED_COUNT generation (#21110)Joel Challis
2023-08-01Remove layout aliases from keyboard_aliases.hjson (#21658)Joel Challis
2023-07-31keycode aliases: work around ChibiOS ch.h include guard (#21497)Ryan
2023-07-31CLI: Improve error messages when layout key matrix row/col is OOB (#21640)Ryan
2023-07-17[Core] Update ChibiOS-Contrib (#21553)Stefan Kerkmann
2023-07-08feat, docs: WB32 flashing (#21217)Less/Rikki
2023-07-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2023-07-08Adjust width requirement for big enter (#21470)Ryan
2023-07-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2023-07-07[Refactor] Python-ify QP's converter code (#20102)Pablo Martínez
2023-06-28STM32H723 support (#21352)Nick Brassel
2023-06-26[Bug] Fix non-functional S3 wakeup / resume from suspense (#19780)Stefan Kerkmann
* Update ChibiOS-Contrib for USB suspend fixes * Remove S3 wakup workaround ChibiOS OTGv1 driver has a remote wakeup bug that prevents the device to resume it's operation. 02516cbc24647f522eee975e69cc0c8a925470eb introduced a hotfix that forcefully restarted the usb driver as a workaround. This workaround broke multiple boards which do not use this driver / peripheral. With the update of ChibiOS this hotfix is now obsolete. * Remove restart_usb_driver overrides they are no longer necessary as the workaround is not needed anymore for stm32f4 * Remove unused RP_USB_USE_SOF_INTR defines The SOF interrupt is enabled dynamically by the RP2040 usb driver
2023-06-21Consolidate `KEYBOARD_OUTPUT`+`KEYMAP_OUTPUT`=>`INTERMEDIATE_OUTPUT` (#21272)Nick Brassel
2023-06-08Slightly refine `g_led_config` parsing (#21170)Ryan
2023-05-30`qmk find`: Fix handling of functions in filters (#21090)Sergey Vlasov
Functions in filters did not work properly except when used in the last (or only) filter. The problem was caused by the peculiarity of the `lambda` behavior in Python — any variables from the outer scope are captured only by reference, therefore any subsequent reassignment of those variables is propagated to all lambdas created earlier in the same scope. Together with the laziness of `filter()` (it returns an iterator which performs filtering on demand) this resulted in all function filters using the values of the `key` and `value` variables which correspond to the last filter in the sequence, therefore the result of filtering was wrong if some filter with a function was not the last one in the sequence. Apparently the shortest way to make a Python lambda capture some variables by value is to add arguments with default values for such variables (default values are evaluated when the lambda is created, and any subsequent reassignments in the outer scope no longer changes them). This makes filters with functions work properly even when such filters are not at the last position in the sequence.
2023-05-27Fix up `qmk find` when not specifying filters. (#21059)Nick Brassel
2023-05-26Merge remote-tracking branch 'origin/master' into developQMK Bot