Nick Brassel
46b996a55e
CLI parallel search updates ( #22525 )
2023-11-22 11:14:34 +11:00
Sergey Vlasov
7e27d72cbc
Fix qmk find
failure due to circular imports ( #22523 )
...
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-21 15:05:29 +00:00
Joel Challis
e279c78ba3
Enable linking of encoders to switch within layout macros ( #22264 )
2023-11-20 15:41:48 +00:00
Sergey Vlasov
62cca5c43a
qmk find
: Fix failure with multiple filters (#22497 )
...
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-19 08:26:00 +11:00
Nick Brassel
4938210711
CLI refactoring for common build target APIs ( #22221 )
2023-11-15 16:24:54 +11:00
QMK Bot
d8176fb0f2
Merge remote-tracking branch 'origin/master' into develop
2023-11-11 09:51:03 +00:00
Nick Brassel
211fbbd16d
Add qmk license-check
developer-level CLI command. ( #22075 )
2023-11-11 20:50:33 +11:00
Joel Challis
8ea955c72f
Improve argument handling of c2json ( #22170 )
...
* Improve argument handling of c2json
* Add automagic
2023-11-01 22:37:05 +00:00
Joel Challis
b31426252e
Generate switch statement helpers for keycode ranges ( #20059 )
2023-11-01 13:11:42 +11:00
Joel Challis
fbbb221a31
Implement data driven lighting defaults ( #21825 )
2023-11-01 01:26:24 +00:00
Joel Challis
a19ae3d784
Add dd mapping for hardware based split handedness ( #22369 )
2023-11-01 00:55:48 +00:00
Joel Challis
17c3182b1c
Remove use of broken split.main ( #22363 )
2023-10-30 00:49:56 +00:00
Joel Challis
559450a099
Fix 'to_c' for config.h mappings ( #22364 )
2023-10-29 23:41:44 +00:00
Joel Challis
98530cad3b
Implement data driven dip switches ( #22017 )
...
* Add data driven dip switches
* Autogen weak matrix_mask
2023-10-29 01:09:02 +01:00
Joel Challis
e4c54a9612
Support additional split sync items for info.json ( #22193 )
2023-10-21 01:48:05 +01:00
QMK Bot
20cefe254d
Merge remote-tracking branch 'origin/master' into develop
2023-10-16 22:44:27 +00:00
Nick Brassel
f6c70c40af
Allow for disabling of parallel processing of qmk find and qmk mass-compile
. ( #22160 )
...
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-10-17 09:43:50 +11:00
QMK Bot
690792eca9
Merge remote-tracking branch 'origin/master' into develop
2023-10-08 11:45:49 +00:00
Joel Challis
7ca652ce6d
Flag vial keymaps in 'qmk lint' ( #22227 )
2023-10-08 12:45:13 +01:00
QMK Bot
0ca60eb759
Merge remote-tracking branch 'origin/master' into develop
2023-10-05 23:35:02 +00:00
Nick Brassel
127560ae22
Add qmk ci-validate-aliases
( #22205 )
2023-10-06 10:34:23 +11:00
QMK Bot
a268437f17
Merge remote-tracking branch 'origin/master' into develop
2023-09-28 20:48:55 +00:00
Nick Brassel
c5706ef791
Allow for qmk mass-compile all:<keymap>
( #22116 )
...
Co-authored-by: Joel Challis <git@zvecr.com>
2023-09-29 06:48:20 +10:00
QMK Bot
f4677c866e
Merge remote-tracking branch 'origin/master' into develop
2023-09-28 10:49:40 +00:00
Nick Brassel
fb0c64a567
Allow inline generation of compile_commands.json while doing a qmk compile
, using --compiledb
( #21549 )
2023-09-28 11:48:58 +01:00
Joel Challis
4e86dca49d
Fix parsing/validation for 21939 ( #22148 )
2023-09-27 03:57:37 +01:00
QMK Bot
ac3a1c3569
Merge remote-tracking branch 'origin/master' into develop
2023-09-23 03:08:19 +00:00
Nick Brassel
73ffa4594d
Fix up qmk mass-compile
makefile indenting. ( #22115 )
2023-09-23 13:07:38 +10:00
QMK Bot
8ea8b80b85
Merge remote-tracking branch 'origin/master' into develop
2023-09-22 02:12:53 +00:00
Nick Brassel
abd432fd7a
Allow for qmk compile -kb all
. ( #22022 )
2023-09-22 12:12:20 +10:00
QMK Bot
24a922b54b
Merge remote-tracking branch 'origin/master' into develop
2023-09-14 20:39:17 +00:00
Andrew Kannan
46d679ab11
qmk format-json
: Add an in-place mode to format json command (#21610 )
2023-09-14 21:38:42 +01:00
Joel Challis
de381ad3b7
Generate keymap.json config options more forcefully ( #21960 )
2023-09-13 01:12:46 +01:00
Joel Challis
95681b8ff4
Add *_MATRIX_LED_COUNT generation ( #21110 )
2023-08-27 04:00:14 +01:00
Joel Challis
27ff1d4153
Remove layout aliases from keyboard_aliases.hjson ( #21658 )
2023-08-01 01:54:28 +01:00
Ryan
f407d90598
keycode aliases: work around ChibiOS ch.h include guard ( #21497 )
2023-07-31 09:35:06 +10:00
Ryan
030511ece3
CLI: Improve error messages when layout key matrix row/col is OOB ( #21640 )
2023-07-31 09:34:19 +10:00
Less/Rikki
a0ea7a6b17
feat, docs: WB32 flashing ( #21217 )
2023-07-08 00:48:45 +10:00
QMK Bot
21263438e5
Merge remote-tracking branch 'origin/master' into develop
2023-07-07 14:08:56 +00:00
Ryan
ef39ecd1b7
Adjust width requirement for big enter ( #21470 )
2023-07-08 00:08:13 +10:00
QMK Bot
8974e056a9
Merge remote-tracking branch 'origin/master' into develop
2023-07-07 12:09:59 +00:00
Pablo Martínez
6bdd8e2782
[Refactor] Python-ify QP's converter code ( #20102 )
2023-07-07 22:09:17 +10:00
Nick Brassel
c814be0296
STM32H723 support ( #21352 )
2023-06-28 13:07:14 +10:00
Nick Brassel
ffdc70bf0a
Consolidate KEYBOARD_OUTPUT
+KEYMAP_OUTPUT
=>INTERMEDIATE_OUTPUT
( #21272 )
2023-06-21 08:41:49 +10:00
Ryan
a9f677b518
Slightly refine g_led_config
parsing ( #21170 )
2023-06-08 21:08:02 +01:00
Sergey Vlasov
1411c79aef
qmk find
: Fix handling of functions in filters (#21090 )
...
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-30 19:24:19 +01:00
Nick Brassel
5642bd1807
Fix up qmk find
when not specifying filters. ( #21059 )
2023-05-27 13:23:07 +10:00
QMK Bot
5efdc28a86
Merge remote-tracking branch 'origin/master' into develop
2023-05-26 02:07:54 +00:00
Pablo Martínez
1c1bc565de
[Bugfix + Refactor] qmk painter-convert-graphics
( #19994 )
2023-05-26 03:07:06 +01:00
Joel Challis
6e41377824
qmk info - Remove printing of "Keyboard Folder" ( #21033 )
2023-05-24 23:27:57 +01:00
Joel Challis
fb056c5437
Update json2c to use dump_lines ( #21013 )
2023-05-22 07:03:59 +01:00
QMK Bot
9d96bfc5f5
Merge remote-tracking branch 'origin/master' into develop
2023-05-20 21:29:58 +00:00
Nick Brassel
420e35f922
qmk generate-make-dependencies
improvements (#21001 )
...
* Recommendations from @sigprof
* Fix CI tests
2023-05-20 22:29:21 +01:00
Ryan
6d90fa2300
qmk format-json
: Expose full key path and respect sort_keys
(#20836 )
2023-05-20 22:15:05 +10:00
Ryan
102c42b14b
qmk find
: usability improvements (#20440 )
2023-05-20 22:14:43 +10:00
Peter
7b31c18d46
Fix English word list retrieval in qmk generate-autocorrect-data ( #20915 )
2023-05-20 22:11:57 +10:00
Ryan
dc75c23f5c
CLI: Improve keymap folder resolution ( #20981 )
2023-05-19 16:05:43 +10:00
Nick Brassel
433dc60686
Merge remote-tracking branch 'upstream/master' into develop
2023-05-15 22:10:42 +10:00
Nick Brassel
507e32b28c
Generate make
dependency file during build for info.json's etc. ( #20451 )
2023-05-15 21:58:12 +10:00
Ryan
578102b400
Fix test_json2c_no_json()
( #20756 )
2023-05-06 14:00:27 +01:00
Ryan
998a4d744e
Remove FLIP_HALF
layouts and move to data driven ( #20588 )
2023-04-30 01:51:45 +10:00
Nick Brassel
c9f619124d
Encodermap direction define. ( #20454 )
2023-04-15 16:18:44 +01:00
QMK Bot
6c172772db
Merge remote-tracking branch 'origin/master' into develop
2023-04-09 16:42:12 +00:00
Dasky
6e0acf0548
Add autocomplete to generate-compilation-database ( #20387 )
2023-04-09 17:41:30 +01:00
QMK Bot
4aa2cd45a1
Merge remote-tracking branch 'origin/master' into develop
2023-04-07 13:08:43 +00:00
Joel Challis
e9b36bebb2
Avoid generating empty ENCODER_RESOLUTION ( #20179 )
2023-04-07 14:07:59 +01:00
QMK Bot
5bc514036b
Merge remote-tracking branch 'origin/master' into develop
2023-04-07 06:37:46 +00:00
Nick Brassel
2e766a9c7a
Add Discord webhook at end of each CI run. ( #20355 )
2023-04-07 16:37:06 +10:00
QMK Bot
0e7acb777a
Merge remote-tracking branch 'origin/master' into develop
2023-04-04 05:10:36 +00:00
Nick Brassel
687883cf7d
Resolve keyboard names for qmk mass-compile
. ( #20335 )
2023-04-04 15:09:55 +10:00
Ryan
81f321d331
qmk info
: account for ISO enter when calculating layout X offset (#20325 )
2023-04-04 01:15:35 +01:00
Albert Y
47a51fda5d
Append user variables to the end of make command ( #20177 )
2023-04-03 15:20:39 +10:00
QMK Bot
8686c527f7
Merge remote-tracking branch 'origin/master' into develop
2023-03-30 21:41:53 +00:00
Nick Brassel
c3c401f91d
[QP] Fix up delta frame boundaries ( #20296 )
2023-03-31 08:41:11 +11:00
QMK Bot
66f19518b4
Merge remote-tracking branch 'origin/master' into develop
2023-03-29 12:01:55 +00:00
Joel Challis
f56580404d
Minify content published to API ( #20285 )
2023-03-29 13:01:16 +01:00
QMK Bot
2026165d8c
Merge remote-tracking branch 'origin/master' into develop
2023-03-29 10:26:46 +00:00
Nick Brassel
5bb8f7ae84
Add ability for qmk mass-compile
to build specified targets ( #20294 )
2023-03-29 21:26:05 +11:00
Joel Challis
f186abdf29
Reduce _validate complexity ( #20274 )
2023-03-28 02:53:28 +01:00
Joel Challis
79b0f9168e
Custom keycodes in JSON ( #19925 )
2023-03-27 20:01:07 +01:00
Joel Challis
e35bb8ebfa
Add force support to 'qmk git-submodule' ( #19705 )
2023-03-27 19:15:25 +01:00
QMK Bot
2ae5a4a535
Merge remote-tracking branch 'origin/master' into develop
2023-03-24 02:47:22 +00:00
Ryan
d6ce42ae5b
Check for multiple matrix positions assigned to same key ( #20039 )
2023-03-24 13:46:42 +11:00
Joel Challis
fa4dfb542f
Strip API specific output from qmk info
( #20234 )
2023-03-23 11:19:30 +00:00
Albert Y
0e1e543836
Increase verbosity of make command ( #20172 )
2023-03-21 01:25:08 -07:00
QMK Bot
79ae14ae0a
Merge remote-tracking branch 'origin/master' into develop
2023-03-16 20:36:32 +00:00
Nick Brassel
1b3f7fcf7d
Add qmk find
command, reuse logic for qmk mass-compile
. ( #20139 )
2023-03-16 20:35:49 +00:00
QMK Bot
291834b162
Merge remote-tracking branch 'origin/master' into develop
2023-03-14 21:31:50 +00:00
Nick Brassel
e62fc866db
Let's use workflows to parallelise the builds. ( #20120 )
...
* Let's use workflows to parallelise the builds.
* Nofail if files aren't present.
* Formatting.
2023-03-15 08:31:10 +11:00
Ryan
91e0457b0e
JSON encoder: improve sorting of layout dict keys ( #19974 )
2023-03-13 23:20:54 +11:00
QMK Bot
57112d700a
Merge remote-tracking branch 'origin/master' into develop
2023-03-09 22:39:30 +00:00
Ryan
76fb534269
qmk info
: add warning when layout is offset (#20070 )
2023-03-09 20:27:04 +00:00
Joel Challis
c3c40dfda8
Remove some use of keymap.h ( #19980 )
2023-03-03 11:26:53 +00:00
QMK Bot
0a7f15964c
Merge remote-tracking branch 'origin/master' into develop
2023-03-01 23:57:53 +00:00
Ryan
6fabc330e3
Check all keys have matrix positions when parsing C LAYOUT macros ( #19781 )
2023-03-02 10:56:45 +11:00
Ryan
9b09e7c6d7
Check all rows have the correct number of columns when parsing g_led_config
( #19954 )
2023-03-01 01:51:18 +00:00
Joel Challis
9f2cd9119f
Reallocate user/kb keycode ranges ( #19907 )
2023-02-23 09:50:09 +11:00
Nick Brassel
1283863c0e
Add mass-compile
ability to filter by key existence. ( #19885 )
2023-02-18 18:04:50 -08:00
Joel Challis
6ceff1367d
Tidy up use of keycode range helpers ( #19813 )
2023-02-12 17:09:34 +00:00
Joel Challis
90f3d6201a
Reduce false positives in layout name validation ( #19646 )
2023-02-11 20:36:11 +00:00