Commit graph

683 commits

Author SHA1 Message Date
Nick Brassel 1f2b1dedcc
Quantum Painter (#10174)
* Install dependencies before executing unit tests.

* Split out UTF-8 decoder.

* Fixup python formatting rules.

* Add documentation for QGF/QFF and the RLE format used.

* Add CLI commands for converting images and fonts.

* Add stub rules.mk for QP.

* Add stream type.

* Add base driver and comms interfaces.

* Add support for SPI, SPI+D/C comms drivers.

* Include <qp.h> when enabled.

* Add base support for SPI+D/C+RST panels, as well as concrete implementation of ST7789.

* Add support for GC9A01.

* Add support for ILI9341.

* Add support for ILI9163.

* Add support for SSD1351.

* Implement qp_setpixel, including pixdata buffer management.

* Implement qp_line.

* Implement qp_rect.

* Implement qp_circle.

* Implement qp_ellipse.

* Implement palette interpolation.

* Allow for streams to work with either flash or RAM.

* Image loading.

* Font loading.

* QGF palette loading.

* Progressive decoder of pixel data supporting Raw+RLE, 1-,2-,4-,8-bpp monochrome and palette-based images.

* Image drawing.

* Animations.

* Font rendering.

* Check against 256 colours, dump out the loaded palette if debugging enabled.

* Fix build.

* AVR is not the intended audience.

* `qmk format-c`

* Generation fix.

* First batch of docs.

* More docs and examples.

* Review comments.

* Public API documentation.
2022-04-13 18:00:18 +10:00
Joel Challis 2cfbc1445c
Allow new-keyboard to use development_board presets (#16785) 2022-04-08 20:12:32 +01:00
Erovia 85de020573
CLI: Bump the 'jsonschema' version (#16635)
* CLI: Bump the 'jsonschema' version

Update the used meta-schema from Draft 7 from 2018 to the latest one,
Draft 2020-12.
Currently, the validator falls back to Draft 7 if the newer validator is
not available. Draft 2020-12 support was introduced to 'jsonschema' in
version 4.0.0.

* Fix formatting
2022-04-06 19:46:16 +01:00
Joel Challis c0ac3f7372
Add frameworking for development board presets (#16637)
* Add frameworking for development board presets

* Update lib/python/qmk/info.py

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-04-03 18:45:10 +01:00
QMK Bot d75ae52fe6 Merge remote-tracking branch 'origin/master' into develop 2022-03-30 20:55:16 +00:00
Ryan 64974a7f8f
yapf: disable arithmetic predecence indication (#16749) 2022-03-30 21:54:13 +01:00
QMK Bot 03f9b8db15 Merge remote-tracking branch 'origin/master' into develop 2022-03-27 20:29:09 +00:00
Erovia 8c0198334c
CLI: Lint non-data driven macros in info.json (#16739)
* CLI: Lint non-data driven macros in info.json

Macros in info.json should either have the "matrix" key with the matrix
data or should should be also present in <keyboard>.h

* Add verification of matrix data

* Use generic '<keyboard>.h' in output

* Add keyboard name to output

* Make C layout macro finding more robust

The old code missed C macros if they had whitespace between '#' and
'define' or had whitespace before '#'.
2022-03-27 21:28:36 +01:00
QMK Bot 05ac5727f2 Merge remote-tracking branch 'origin/master' into develop 2022-03-26 19:15:58 +00:00
Erovia 55e5daa868
Fix bug when 'info.json' lookup escapes keyboard dir (#16734) 2022-03-26 19:15:25 +00:00
QMK Bot 2957f60dc1 Merge remote-tracking branch 'origin/master' into develop 2022-03-24 20:14:36 +00:00
Erovia efc9c525b1
CLI: Add 'via2json' subcommand (#16468) 2022-03-24 21:13:40 +01:00
Joel Challis 23f365f8bc
Ignore transport defaults if SPLIT_KEYBOARD is unset (#16706)
* Ignore transport defaults if SPLIT_KEYBOARD is unset

* keep exists check
2022-03-22 10:48:13 +00:00
Joel Challis 4f8cc32cf5
Extend 'qmk info' to handle keymap level overrides (#16702) 2022-03-21 11:57:41 +01:00
QMK Bot 729d7c2b2e Merge remote-tracking branch 'origin/master' into develop 2022-03-19 20:59:03 +00:00
Ryan 2f095b8925
qmk.path.FileType: fix argument handling (#16693)
* qmk.path.FileType: pass in mode as first argument

* Better solution

* Grammar...
2022-03-19 20:58:30 +00:00
QMK Bot 3a08deb7fe Merge remote-tracking branch 'origin/master' into develop 2022-03-18 16:02:57 +00:00
Joel Challis ed773ab73c
Relocate CLI git interactions (#16682) 2022-03-18 16:02:24 +00:00
zvecr bffb209eee Merge remote-tracking branch 'origin/master' into develop 2022-03-18 01:15:23 +00:00
Joel Challis e5823b5650
[CLI] Add common util for dumping generated content (#16674) 2022-03-18 01:09:29 +00:00
QMK Bot 31eb82c911 Merge remote-tracking branch 'origin/master' into develop 2022-03-10 21:34:11 +00:00
Erovia b75f6691a1
CLI: Fix 'cd' subcommand on Windows (#16610)
The 'cd' subcommand was failing as the current shell's Windows path was
mangled while milc processed it.
Using 'subprocess' directly avoids this issue and an extra layer of
subshell.
2022-03-10 21:33:41 +00:00
Nick Brassel 8d5eacb7dd
Add support for encoder mapping. (#13286) 2022-03-09 19:29:00 +11:00
QMK Bot 49bc3b530b Merge remote-tracking branch 'origin/master' into develop 2022-03-08 20:46:24 +00:00
Ryan b593cfccbd
qmk info: Nicer rendering of big-ass enter (#16541)
* `qmk info`: Nicer rendering of big-ass enter

* Formatting...
2022-03-08 20:45:47 +00:00
Ryan 75544d9127
Move Doxygen docs to subdirectory (#16561) 2022-03-07 11:22:22 +00:00
Nick Brassel 44f1bd9b3a
ChibiOS 21.11.1 update. (#16251)
* ChibiOS 21.11.1 update.

* `uf2-tinyuf2` => `tinyuf2`

* Updated chibios-contrib, fixup preprocessor for tinyuf2 bootloader.

* Fixup keychron L433 boards.

* Makefile cleanup.

* RISC-V build fixes.

* Fixup RISC-V build.
2022-03-07 21:04:22 +11:00
QMK Bot f7512d61bd Merge remote-tracking branch 'origin/master' into develop 2022-03-05 22:55:11 +00:00
Ryan 8e9d45d270
qmk info: nicer rendering of ISO enter (#16466) 2022-03-05 22:54:32 +00:00
Ryan 7d41639d54
Map data driven DESCRIPTION as string literal (#16523) 2022-03-05 00:20:34 +00:00
Ryan ace0603f4f
Change data driven "str" type to represent a quoted string literal (#16516)
* Change data driven "str" type to represent a quoted string literal

* Update docs
2022-03-04 13:25:24 +00:00
QMK Bot 36e47cb3aa Merge remote-tracking branch 'origin/master' into develop 2022-02-28 20:03:22 +00:00
Erovia fbfd5312b9
CLI: Validate JSON keymap input (#16261)
* Fix schema validator

It should use the passed schema.

* Add required attributes to keymap schema

* Rework subcommands to validate the JSON keymaps

The 'compile', 'flash' and 'json2c' subcommands were reworked to add
JSON keymap validation so error is reported for non-JSON and
non-compliant-JSON inputs.

* Fix required fields in keymap schema

* Add tests

* Fix compiling keymaps directly from keymap directory

* Schema should not require version for now.
2022-02-28 20:02:39 +00:00
QMK Bot 3c7c9bdd86 Merge remote-tracking branch 'origin/master' into develop 2022-02-27 12:40:01 +00:00
Joel Challis 779c7debcf
Fix issues with data driven split keyboards (#16457) 2022-02-27 13:39:24 +01:00
Joel Challis e4a6afa369
Rework generate-api CLI command to use .build directory (#16441) 2022-02-27 12:28:51 +01:00
Joel Challis 77cdb20e16
Revert CLI default for manufacturer (#16467) 2022-02-27 10:34:26 +00:00
Joel Challis cf31355f08
Changelog 2022q1 (#16380)
* Initial changelog pass

* update generate-develop-pr-list content

* Fix bad word-ness

* Fix generate-develop-pr-list ignores

* Update docs/ChangeLog/20220226.md

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-02-23 17:33:08 +00:00
QMK Bot bd01e1cee8 Merge remote-tracking branch 'origin/master' into develop 2022-02-22 18:32:43 +00:00
QMK Bot 8aec20c0da
Format code according to conventions (#16435) 2022-02-22 18:29:47 +00:00
fauxpark a44abeb99a Merge remote-tracking branch 'upstream/master' into develop 2022-02-22 03:04:41 +11:00
Ryan f30f963a0b
Internal docs generation updates (#16411) 2022-02-21 15:47:44 +00:00
Joel Challis b0621223bc
Various fixes for new-keyboard (#16358) 2022-02-15 01:42:58 +00:00
Erovia 23c238a180
CLI: Minor additions #12795 (#16276) 2022-02-14 12:02:35 +01:00
Joel Challis f7e7671f69
Migrate more makefile utilities to builddefs sub-directory (#16002) 2022-02-10 09:45:51 -08:00
Joel Challis 2e279f1b88
Initial pass at data driven new-keyboard subcommand (#12795)
* Initial pass at a data driven keyboard subcommand

* format

* lint

* Handle bootloader now its mandatory
2022-02-09 06:03:30 +11:00
Nick Brassel 8fd8b2dc92
Skip categorisation of PR if it's only for code formatting. (#16215) 2022-02-05 07:36:57 +11:00
Nick Brassel db43e45077
Ensure version.h is recreated each build. (#16188) 2022-02-04 07:36:02 +11:00
Drashna Jaelre d4dc743a85
Fix issues with Python Tests (#16162)
* Reformat python due to yapf changes

* Fix pytest keymap list test

* revert formatting

* Use contra, because, well

https://www.reddit.com/r/MechanicalKeyboards/comments/8riofq/did_i_kill_my_contra/
2022-02-02 15:44:42 +11:00
QMK Bot 7d38aec3ac Merge remote-tracking branch 'origin/master' into develop 2022-02-02 04:31:44 +00:00
Ryan c9f88d7c67
qmk doctor: display qmk_firmware version tag (#16155) 2022-02-01 20:31:42 -08:00
Nick Brassel 6e2b03cf69
Fixup multibuild filegen (#16166)
* Add env variable support to multibuild.

* Generate version.h in build-specific location.
2022-02-02 15:30:22 +11:00
Nick Brassel 77062e9a36
Add L432, L442. (#16016) 2022-01-24 08:49:36 +11:00
QMK Bot fe1f53ce8f Merge remote-tracking branch 'origin/master' into develop 2022-01-20 20:12:20 +00:00
Gigahawk 1a676c927f
Add missing STM32F405 definition in qmk.constants (#15937) 2022-01-21 07:11:24 +11:00
Ryan c72ed7c024
CLI: Parse USB device version BCD (#14580)
* CLI: Parse USB device version BCD

* Apply suggestions
2022-01-17 08:44:34 +11:00
Ryan 5fb93934d0
Fixes for bootloader refactor build failures (#15638) 2022-01-06 06:55:46 +11:00
QMK Bot c089541938 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 22:42:47 +00:00
Joel Challis 550c9a315f
Refix "No C files in filelist: None" (#15728) 2022-01-03 22:42:15 +00:00
QMK Bot 73e372d920 Merge remote-tracking branch 'origin/master' into develop 2022-01-03 21:55:23 +00:00
Joel Challis aea7155423
Fix "No C files in filelist: None" (#15560)
* Fix "No C files in filelist: None"

* Align other commands

* force absolute paths
2022-01-03 21:54:46 +00:00
QMK Bot dde5cd1c54 Merge remote-tracking branch 'origin/master' into develop 2021-12-29 21:36:08 +00:00
Joel Challis 1a8a842cfb
Fix compilation-database command under MSYS (#15652)
* Fix compilation-database command under MSYS

* Add comment
2021-12-30 08:35:35 +11:00
Nick Brassel 7b018f097d
Use the PR title rather than parsing the commit message. (#15537) 2021-12-22 05:44:47 +11:00
Joel Challis aecb387692
Add test filter to 'qmk pytest' (#15432)
* Add test filter to 'qmk pytest'

* Bodge for some test filters not resolving qmk

* Update docs
2021-12-09 17:42:11 +11:00
Joel Challis 285afa3a8a
Fix 'format-c --core-only' matching keyboard level folders (#15337) 2021-11-29 15:08:39 +00:00
Nick Brassel 88fe5c16a5
Changelog 2021q4 (#15325)
* Changelog.

* Remove the asymmetric encoder PR from listing due to revert.

* More docs

* More docs

* More docs

* Links to changelog, updated schedule, slotted in 2 weeks of testing at the end so that there's no ambiguity with PR merge dates.

* Clarify keyboard moves.

* Fix dates

* Sidebar

* Fixup dates.

* Fixup dates.

* Wording.
2021-11-28 10:41:48 +11:00
Joy Lee 68838bb700
Westberrytech pr (#14422)
* Added support for WB32 MCU

* Modified eeprom_wb32.c

* Remove the eeprom_wb32-related code
2021-11-27 09:28:18 +11:00
QMK Bot 69853175d0 Merge remote-tracking branch 'origin/master' into develop 2021-11-23 00:24:00 +00:00
Joel Challis dbc7b53517
qmk format-python - filter for Python files (#15271)
* qmk format-python filter all files

* filter changed files too
2021-11-23 00:23:23 +00:00
Zach White 08ce0142ba
Macros in JSON keymaps (#14374)
* macros in json keymaps

* add advanced macro support to json

* add a note about escaping macro strings

* add simple examples

* format json

* add support for language specific keymap extras

* switch to dictionaries instead of inline text for macros

* use SS_TAP on the innermost tap keycode

* add the new macro format to the schema

* document the macro limit

* add the json keyword for syntax highlighting

* fix format that vscode screwed up

* Update feature_macros.md

* add tests for macros

* change ding to beep

* add json support for SENDSTRING_BELL

* update doc based on feedback from sigprof

* document host_layout

* remove unused var

* improve carriage return handling

* support tab characters as well

* Update docs/feature_macros.md

Co-authored-by: Nick Brassel <nick@tzarc.org>

* escape backslash characters

* format

* flake8

* Update quantum/quantum_keycodes.h

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-11-22 11:11:35 -08:00
Drashna Jael're 4be9919e9f
Merge remote-tracking branch 'origin/master' into develop 2021-11-19 09:48:23 -08:00
Ryan aee10ccc5c
[CLI] list-keymaps/list-layouts: Check keyboard passed in (#15204)
* [CLI] `list-keymaps`/`list-layouts`: Check keyboard passed in

* Update lib/python/qmk/cli/list/keymaps.py

Co-authored-by: Joel Challis <git@zvecr.com>

* Update lib/python/qmk/cli/list/layouts.py

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Joel Challis <git@zvecr.com>
2021-11-18 17:55:07 +00:00
Nick Brassel b9148eb1bd
[cli] Export list of develop PRs to be merged into master (#13944)
* Add developer-only command for exporting the list of PRs associated with a merge to `develop`.

* qmk pytest

* Imports.

* Remove dependencies from requirements file, manually handle.

* Reduce complexity, qmk generate-api taking too long so relying on CI
2021-11-18 17:05:08 +00:00
Joel Challis cd50fdf7ee
Add diff logic to python format subcommand (#15156)
* Add diff logic to python format subcommand

* Update test

* Add in filter per format-c

* fix tests

* Update new workflow
2021-11-17 23:02:45 +00:00
QMK Bot 462c3a6151 Merge remote-tracking branch 'origin/master' into develop 2021-11-14 23:06:50 +00:00
Joel Challis ec0bb791f8
Partially reinstate CI formatting process (#15155)
* Partially reinstate CI formatting process

* Fix exit code on clean run

* Fix exit code on clean run
2021-11-14 23:06:22 +00:00
Nick Brassel 92e9bbd9b9 Merge remote-tracking branch 'upstream/master' into develop 2021-11-05 08:55:55 +11:00
Nick Brassel c8da63382c
Fixup actions. (#15057) 2021-11-04 21:49:09 +00:00
Erovia c8b09d0d4a
CLI: Add 'cd' subcommand (#12584)
* CLI: Add 'cd' subcommand

Go to your qmk_firmware dir with ease.

* Fix for Windows and do not run if already under QMK Home

* Make flake8 happy

* Fix prompt for Windows

* Make flake8 happy once again

* I'll get it right eventually

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* Add subcommand to __init__.py and fixup after rebase

* Update Windows code to use milc's run

* Unify the subshell starting with os.execl

* Exit with error msg when output is redirected to non-TTY.

* Revert Windows-specific code

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-11-05 08:21:09 +11:00
James Young 84ea77ead6
Remove BOOTMAGIC_ENABLE = lite option (#15002)
* remove BOOTMAGIC_ENABLE=lite setting

* change keyboard BOOTMAGIC_ENABLE rules

Edits keyboard-level instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

* change keyboard BOOTMAGIC_ENABLE inline comments

Edits keyboard-level BOOTMAGIC_ENABLE inline comments to "Enable Bootmagic Lite".

* change keymap BOOTMAGIC_ENABLE rules

Edits keymap-level instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

* change keymap BOOTMAGIC_ENABLE inline comments

Edits/adds keymap-level BOOTMAGIC_ENABLE inline comments to read "Enable Bootmagic Lite".

* change layout/user BOOTMAGIC_ENABLE rules/comments

Edits instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

Edits/adds keymap-level BOOTMAGIC_ENABLE inline comments to read "Enable Bootmagic Lite".

* update non-rules.mk BOOTMAGIC_ENABLE references in keyboards/

* remove docs references to Full Bootmagic

* convert data-driven Bootmagic Lite instances

* remove Bootmagic Lite bodge from data-driven generation

* Merge remote-tracking branch 'upstream/develop' into rm/bootmagic-full_q4a

* update docs/ja/config_options.md per mtei

* update docs/faq_misc.md per mtei

Remove remaining Full Bootmagic reference.
2021-11-05 08:18:09 +11:00
QMK Bot 4b6db33a1d Merge remote-tracking branch 'origin/master' into develop 2021-11-04 21:15:20 +00:00
Mikkel Jeppesen fefd7fdc51
Refactor new-keyboard to be python3.7 compatible (#14707)
* Use copy_tree from distutils for python 3.7 support

* Bump python version in docs

* Changed new-keyboard to use printf-style format strings

* Use username for manunfacturer / maintainer

* Update lib/python/qmk/cli/new/keyboard.py

Co-authored-by: Zach White <skullydazed@drpepper.org>

Co-authored-by: Zach White <skullydazed@drpepper.org>
2021-11-05 08:14:43 +11:00
Ryan 9401836727
Map PRODUCT define to keyboard_name (#14372)
* Map `PRODUCT` define to `keyboard_name`

* Fix tests

* Fix last test
2021-11-05 08:08:52 +11:00
QMK Bot 45a8176e32 Merge remote-tracking branch 'origin/master' into develop 2021-11-04 21:03:11 +00:00
Ryan 6437045166
qmk docs: Run docsify serve if available (#15056) 2021-11-05 08:02:27 +11:00
Nick Brassel 5da04fb45b
Update to ChibiOS 20.3.4, support builds against trunk (#14208)
* Add support for building against ChibiOS svn/trunk.

* Swap to 21.6.x

* Update to latest branch revision as released version is broken.

* Updated configs.

* Conf updates.

* Updated ChibiOS

* Convert STM32L422 to actual L422 ChibiOS platform.

* Downgrade to 20.3.4 as ChibiOS 21.6.x is being aborted.

* Rollback L422-based boards.
2021-11-03 08:26:40 +11:00
QMK Bot b25218ccc1 Merge remote-tracking branch 'origin/master' into develop 2021-10-31 08:21:50 +00:00
Mateusz Ż fe0acdd2cb
[CLI] Fix broken layout rendering in qmk info by '\n' (#14970) 2021-10-31 01:21:20 -07:00
Joel Challis 01b702bece
Split out HAPTIC_ENABLE to have separate DRIVER option (#14854)
* DRIVER -> ENABLE

* Update generic_features.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update common_features.mk

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-18 12:55:44 +01:00
Stefan Kerkmann e50867d52d
[Core] Add support for RISC-V builds and GD32VF103 MCU (#12508)
* Add support for RISC-V builds and GD32VF103 MCU

* Add toolchain selection in chibios.mk based on the mcu selected in
mcu_selection.mk
* Reorder and added comments to chibios.mk to have a streamlined makefile
* Add GD32VF103 mcu to possible targets for QMK.
* Add STM32 compatibility for GD32VF103 MCU, this is hacky but more efficent
  then rewriting every driver.
* Add GigaDevice DFU bootloader as flash target, please note that
  dfu-util of at least version 0.10 is needed.
* Add analog driver compatibility
* Add apa102 bitbang driver compatibility
* Add ws2812 bitbang driver compatibility
* Add eeprom in flash emulation compatibility
* Allow faster re-builds with ccache

* Add SiPeed Longan Nano to platform files

* Add SiPeed Longan Nano Onekeys

* Make quine compatible with other bootloaders

* Support builds with picolibc

* Add risc-v toolchain to arch and debian/ubuntu scripts
2021-10-18 16:23:20 +11:00
QMK Bot b0c2dd8d50 Merge remote-tracking branch 'origin/master' into develop 2021-10-16 16:45:28 +00:00
Ryan 3c0eeec755
Try to clarify "number of elements in info.json does not match" error (#14844) 2021-10-16 17:44:56 +01:00
Joel Challis 40bc5a8192
Enable CLI flashing via mdloader (#14729)
* Enable CLI flashing via mdloader

* remove flag

* Update qmk flash help
2021-10-15 22:07:33 +01:00
Joel Challis dace4d5f0d
Remove QWIIC_DRIVERS (#14174) 2021-10-09 14:48:27 +01:00
Nick Brassel b2a186cf92
Purge uGFX. (#14720)
* Purge uGFX.

* Remove remnants of visualizer.

* Remove remnants of uGFX.
2021-10-07 10:57:48 +11:00
QMK Bot 4af4ef3428 Merge remote-tracking branch 'origin/master' into develop 2021-10-04 16:26:57 +00:00
Zach White 20f81af98a
Allow community layouts to be specified in info.json (#14682)
* move the community layout detection to python

* fixup tests
2021-10-04 09:26:19 -07:00
Ryan 1a9e7b95ab
Change MK66F18 -> MK66FX1M0 (#14659) 2021-09-30 23:14:37 +01:00
QMK Bot bca7a99e7a Merge remote-tracking branch 'origin/master' into develop 2021-09-27 17:03:42 +00:00
Zach White fce9cb9338
Cleanup issues identified by lgtm (#14459)
* cleanup issues identified by lgtm

* fix the git_status check
2021-09-27 10:02:54 -07:00
Nick Brassel 28b8b578b0
compiledb: query include paths from gcc directly. (#14462)
* Query include paths from gcc directly.

* Change to -isystem

* qmk format-python

* tests
2021-09-20 14:15:07 +10:00
Bao 590b405468
New CLI subcommand to create clang-compatible compilation database (compile_commands.json) (#14370)
* pulled source from dev branch

* missed a file from origin

* formatting

* revised argument names. relaxed matching rules to work for avr too

* add docstrings

* added docs. tightened up regex

* remove unused imports

* cleaning up command file. use existing qmk dir constant

* rename parser library file

* move lib functions into command file. there are only 2 and they aren't large

* currently debugging...

* more robustly find config

* updated docs

* remove unused imports

* reuse make executable from the main make command

* pulled source from dev branch

* missed a file from origin

* formatting

* revised argument names. relaxed matching rules to work for avr too

* add docstrings

* added docs. tightened up regex

* remove unused imports

* cleaning up command file. use existing qmk dir constant

* rename parser library file

* move lib functions into command file. there are only 2 and they aren't large

* currently debugging...

* more robustly find config

* updated docs

* remove unused imports

* reuse make executable from the main make command

* remove MAKEFLAGS from environment for better control over process management

* Update .gitignore

Co-authored-by: Michael Forster <forster@google.com>

* add a usage line to docs

* doc change as suggested

Co-authored-by: Nick Brassel <nick@tzarc.org>

* rename command

* remove debug print statements

* generate-compilation-database: fix arg handling

* generate-comilation-db: improve error handling

* use cli.run() instead of Popen()

Co-authored-by: Xton <cdewan@apple.com>
Co-authored-by: Christon DeWan <cmdpix@mac.com>
Co-authored-by: Michael Forster <forster@google.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-09-16 14:59:57 +10:00
Nick Brassel 8a3f97b20f
Update ChibiOS-Contrib (#14419) 2021-09-13 15:38:04 +10:00
Nick Brassel 2bafc7a4b0
Update ChibiOS-Contrib (#14408) 2021-09-13 09:06:25 +10:00
fauxpark 1895151a9c Merge remote-tracking branch 'upstream/master' into develop 2021-09-12 14:10:26 +10:00
Ryan 4791cfae1a
Remove width, height and key_count from info.json (#14274) 2021-09-12 14:04:56 +10:00
Ryan d5cb7de5e4
Change USBasp and bootloadHID bootloaders to lowercase (#14354) 2021-09-10 17:17:54 +10:00
Zach White 596c4a1f87
Remove bin/qmk (#14231)
* Remove the bin/qmk script

* remove bin/qmk from workflows
2021-08-29 16:50:22 -07:00
QMK Bot b46064a891 Merge remote-tracking branch 'origin/master' into develop 2021-08-29 23:47:04 +00:00
Zach White baa423004a
ensure that the directory for sys.executable is in the user's path (#14229) 2021-08-29 16:46:36 -07:00
Zach White c729df09ca
fix automatic directory for qmk lint (#14215) 2021-08-28 23:02:31 -07:00
Zach White 566d598516
Add check for non-assignment code in rules.mk (#12108)
* Add check for non-assignment code in rules.mk

* fix lint check

* fix lint

* fixup to reflect the final state of #8422

* fix lint
2021-08-29 12:37:55 +10:00
Zach White f155865804
remove qmk console, which is now part of the global cli (#14206) 2021-08-29 11:27:57 +10:00
Nick Brassel 4bad375d7c
2021Q3 pre-merge develop changelog, keyboard aliases (#14198)
* Initial changelog.

* Data driven.

* Submodule update.

* Updated breaking changes docs.

* Aliases.

* Aliases.
2021-08-29 08:18:18 +10:00
Joel Challis 2cade3a483
Align some quantum sub-directories (#14134)
* Misc folder tidy

* Review comments

* Remove redundant entry
2021-08-24 17:07:11 +01:00
Zach White 1ec6ce8c37 Merge remote-tracking branch 'origin/master' into develop
Resolved Conflicts:
	lib/python/qmk/info.py
2021-08-20 08:22:41 -07:00
Joel Challis c1add5d0e2
Restore layout count validation (#14068) 2021-08-20 08:16:59 -07:00
Joel Challis 2e734fb6b9
Add config.h and rules.mk support for data driven keymaps (#12859)
* Add config.h and rules.mk support for data driven keymaps

* tidy up after rebase

* Rename key as it can contain more than just keyboard overrides

* tidy up after rebase

* Add validation
2021-08-18 21:52:41 +01:00
Ryan b16091659c
Move USB Host Shield and Arduino core to lib/ (#13973) 2021-08-18 18:20:25 +10:00
ruro 3b28178deb
--parallel improvements (#13800)
* improve make parallel jobs support

* document the --parallel option

* disable the output-sync for interactive targets
2021-08-18 08:46:59 +10:00
Drashna Jaelre 85351dc23d
[CLI] Add qmk-hid bootloader detection support to qmk console (#14038)
* [CLI] Add qmk-hid bootloader detection support to `qmk console`

* Remove duplicate entry

Co-authored-by: Ryan <fauxpark@gmail.com>

* Begrudgingly add lufa-ms

* Add udev rules for hid bootloaders

* Update util/udev/50-qmk.rules

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Fix VID/PID combos

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2021-08-18 04:13:54 +10:00
Zach White 8d9bfdc254
Add a lot more data to info.json (#13366)
* add some split data to info.json

* add tags

* add half of config_options.md to info.json

* add support for designating master split

* sort out split transport and primary

* fix bad data in UNUSED_PINS

* fixup custom transport

* wip

* allow for setting split right half keyboard matrix

* add SPLIT_USB_DETECT

* minor cleanup

* fix an erroneous message

* rework split.usb_detect

* adding missing rgblight vars to info.json

* add mouse_key to info.json

* add all remaining options from docs/config_options.md

* fix audio voices

* qmk info: Change text output to use dotted notation

* tweak layout output

* resolve alias names

* break out some functions to make flake8 happy

* add a field for bootloader instructions

* qmk generate-info-json: add a write-to-file argument

Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal.

* -arg_only, +action

Because it was never my intention that one would have to specify a value for the argument that enables writing the file.

* Bring qmk generate-info-json inline with other generate commands

* pytest fixup

* fix esca/getawayvan

* fix data driven errors for bpiphany converters

* features.force_nkro -> usb.force_nkro

* split.primary->split.main

* fix esca/getawayvan_f042

* fix the bpiphany converters for real

* fix bpiphany/tiger_lily

* Apply suggestions from code review

Co-authored-by: Nick Brassel <nick@tzarc.org>

* fix generate-api errors

* fix matrix pin extraction for split boards

* fix ploopyco/trackball_nano/rev1_001

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-16 23:33:30 +01:00
Zach White fd340f8957
Defer the expensive search for layout macros until info.json has been processed (#14007)
* defer the expensive search for layout macros until info.json has been processed

* fixup names
2021-08-16 06:30:58 +10:00
QMK Bot cdba934f86 Merge remote-tracking branch 'origin/master' into develop 2021-08-13 17:38:51 +00:00
Zach White 4742a3a48f
use sudo to install modules if needed (#13984) 2021-08-13 10:38:05 -07:00
QMK Bot d888ac17ea Merge remote-tracking branch 'origin/master' into develop 2021-08-10 14:48:55 +00:00
Zach White ed84a4e7e3
Improve the qmk lint readme check (#13941)
* improve lint readme check

* improve if
2021-08-10 07:48:22 -07:00
Zach White 12681bacc4 Merge remote-tracking branch 'origin/master' into develop
Conflicts:
	keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.c
2021-08-09 08:34:14 -07:00
Zach White e6c171bdd6
Fix generate api (#13930)
* Add missing returncode to exit()

* fix the aozora/hotswap vendor id
2021-08-09 08:28:51 -07:00
Zach White 5eb0e406fd
make json imports more robust (#13928) 2021-08-09 08:27:02 -07:00
thpoll83 b43c6bc176
Add support for STM32F407x MCUs. (#13718)
* Add support for STM32F407x MCUs.

* Removing STMF407 MCU variation

* Update quantum/mcu_selection.mk

Remove options for dfu flashing

Co-authored-by: Ryan <fauxpark@gmail.com>

* DISABLE STM32_USB_USE_OTG1

* Update platforms/chibios/GENERIC_STM32_F407XE/configs/mcuconf.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update platforms/chibios/GENERIC_STM32_F407XE/configs/mcuconf.h

Co-authored-by: thomas.pollak <thomas.pollak@dynatrace.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-09 06:52:13 +10:00
Nick Brassel f24bca5bb3
Update ChibiOS-Contrib, mirroring script. (#13896) 2021-08-06 16:40:12 +10:00
Joel Challis 5bbc527460
Bump gtest (#13885)
* Bump gtest

* Pin to latest release
2021-08-05 10:46:14 +10:00
Drashna Jaelre f587ee5b5b
Update LUFA Submodule (2021-07-30) (#13819) 2021-07-31 06:08:44 -07:00
ruro 52dad230d6
[CLI] Make qmk doctor more lenient about system config (#13804) 2021-07-30 21:43:42 -07:00
Ryan b021c2f2c5
Port new_keyboard.sh to CLI (#13706)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-07-30 21:57:40 +01:00
QMK Bot 4735aab75b Merge remote-tracking branch 'origin/master' into develop 2021-07-30 13:48:29 +00:00
Ryan 8b39a3c484
qmk docs: Add flag to open in browser (#13788)
* `qmk docs`: Add flag to open in browser

* Add docs
2021-07-30 14:47:34 +01:00
Ryan 25f43837d2
Remove references to info.json width and height in CLI (#13728) 2021-07-29 22:37:18 -07:00
Drashna Jaelre 71e9f8fc11
Update LUFA (18-07-2021) and add QMK-HID Bootloader support (#13588)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-24 23:00:57 -07:00
Erovia fdcea06336
CLI/Docs: Fix the format commands' name (#13668)
PR #13296 changed the name of the `cformat` and `pyformat` commands to
`format-c` and `format-py` respectively. This PR updates the documentation
and some parts of the CLI to use the new names.
Also add documentation for the new `format-text` subcommand, introduced
in the same PR.
2021-07-23 21:41:33 +01:00
Zach White 4ab8734d6e
Move all our CLI file formatters to the format dir (#13296)
* move all our file formatters to the format dir

* Apply suggestions from code review

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-07-20 11:52:14 -07:00
Zach White 44d322623e Merge remote-tracking branch 'origin/master' into develop
Resolved Conflicts:
	keyboards/checkerboards/nop60/info.json
2021-07-14 10:30:28 -07:00
Zach White ffdfe3798b
switch to qmk-dotty-dict (#13460) 2021-07-14 09:08:48 -07:00
Zach White 0b06452d00
Matrix consistency check (#13470)
* Add a check to make sure the matrix sizes match the actual matrix size

* make flake8 happy
2021-07-11 09:43:58 -07:00
Erovia e05f9c4a08
CLI: Add git and venv info to doctor's output (#13405)
Most of the checks are saved from zvecr's retired 'up/status'
subcommand PR.
2021-07-10 16:04:50 +01:00
Nick Brassel 8bb231aa1c
Adds support for STM32L412xB, STM32L422xB. (#13383)
* Adds support for STM32L412xB, STM32L422xB.

* Add to list of supported MCUs.

* Disable SPI1 by default.
2021-06-30 10:07:40 +10:00
QMK Bot 5a5015594f Merge remote-tracking branch 'origin/master' into develop 2021-06-27 03:22:31 +00:00
Ryan 53ace430fe
Doctor: print CLI version (#13356) 2021-06-27 13:21:53 +10:00
Ryan bbe43a91eb
CLI: Add subcommand to generate version.h (#13151) 2021-06-27 02:29:02 +10:00
Zach White b908275354
Optimize our jsonschema by using refs (#13271)
* fix some broken info.json files

* optimize our jsonschema using refs

* fix formatting after vscode broke it

* make flake8 happy

* cleanup

* make our schema validation more compact and flexible
2021-06-24 20:48:53 -07:00
QMK Bot 9d4412cb8b Merge remote-tracking branch 'origin/master' into develop 2021-06-25 03:32:21 +00:00
Zach White 7c2bd4dd88
add doctor to safe_commands (#13324) 2021-06-24 20:31:46 -07:00
QMK Bot 8d87bfd46a Merge remote-tracking branch 'origin/master' into develop 2021-06-24 03:36:07 +00:00
Zach White 42f4528a45
expand the size of the textpad to allow for taller keyboards (#13319) 2021-06-23 20:35:36 -07:00
Zach White df794fa5cc
Remove the redundant pin name validation (#13251)
* remove the redundant pin name validation

* fix submodules
2021-06-22 12:02:12 -07:00
Zach White e87d231645
Refactor doctor.py into a directory (#13298) 2021-06-22 19:50:53 +01:00
Michael Stapelberg 7c5ef4060e
allow LINE_PINxx for Teensy 4.x pins (#13247)
fixes https://github.com/qmk/qmk_firmware/issues/13052
2021-06-19 15:21:56 -07:00
QMK Bot a2a524afbb Merge remote-tracking branch 'origin/master' into develop 2021-06-14 23:52:31 +00:00
Zach White 0713797c58
Ensure that safe_commands always run (#13199)
* ensure that safe_commands always run

* import the config subcommand in bin/qmk
2021-06-14 16:51:58 -07:00
QMK Bot 9177e22d2c Merge remote-tracking branch 'origin/master' into develop 2021-06-09 07:25:59 +00:00
Nick Brassel 21aa7890cb
Allow limiting the multibuild based on keymap name. (#13066) 2021-06-09 17:25:21 +10:00
QMK Bot a6f030fb42 Merge remote-tracking branch 'origin/master' into develop 2021-06-03 15:53:38 +00:00
Ryan af91221ddb
qmk multibuild: Fix bug with Path objects (#13093) 2021-06-03 16:53:03 +01:00
Nick Brassel 554c36a055
Update ChibiOS, ChibiOS-Contrib. (#13056)
* Update ChibiOS, ChibiOS-Contrib.

* Add instructions.

* Wrong remote name

* Explicit version tag.

* Add link to procedure on the breaking changes page.
2021-06-01 08:11:50 +10:00
Erovia 305cca9a5e
CLI: Fix automagic (#13046) 2021-05-30 16:17:40 +01:00
James Young 1646c0f26c
2021 May 29 Breaking Changes Update (#13034)
* Add Per Key functionality for AutoShift (#11536)

* LED Matrix: Reactive effect buffers & advanced indicators (#12588)

* [Keyboard] kint36: switch to sym_eager_pk debouncing (#12626)

* [Keyboard] kint2pp: reduce input latency by ≈10ms (#12625)

* LED Matrix: Split (#12633)

* [CI] Format code according to conventions (#12650)

* feat: infinite timeout for leader key (#6580)

* feat: implement leader_no_timeout logic

* docs(leader_key): infinite leader timeout docs

* Format code according to conventions (#12680)

* Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx (#12403)

* Fix default ADC_RESOLUTION for ADCv3 (and ADCv4)

Recent ChibiOS update removed ADC_CFGR1_RES_10BIT from the ADCv3 headers
(that macro should not have been there, because ADCv3 has CFGR instead of
CFGR1).  Fix the default value for ADC_RESOLUTION to use ADC_CFGR_RES_10BITS
if it is defined (that name is used for ADCv3 and ADCv4).

* Update ADC docs to match the actually used resolution

ADC driver for ChibiOS actually uses the 10-bit resolution by default
(probably to match AVR); fix the documentation accordingly.  Also add
both ADC_CFGR_RES_10BITS and ADC_CFGR1_RES_10BIT constants (these names
differ according to the ADC implementation in the particular MCU).

* Fix pinToMux() for B12 and B13 on STM32F3xx

Testing on STM32F303CCT6 revealed that the ADC mux values for B12 and
B13 pins were wrong.

* Add support for all possible analog pins on STM32F1xx

Added ADC mux values for pins A0...A7, B0, B1, C0...C5 on STM32F1xx
(they are the same at least for STM32F103x8 and larger F103 devices, and
also F102, F105, F107 families).  Actually tested on STM32F103C8T6
(therefore pins C0...C5 were not tested).

Pins F6...F10, which are present on STM32F103x[C-G] in 144-pin packages,
cannot be supported at the moment, because those pins are connected only
to ADC3, but the ChibiOS ADC driver for STM32F1xx supports only ADC1.

* Add support for all possible analog pins on STM32F4xx

Added ADC mux values for pins A0...A7, B0, B1, C0...C5 and optionally
F3...F10 (if STM32_ADC_USE_ADC3 is enabled).  These mux values are
apparently the same for all F4xx devices, except some smaller devices may
not have ADC3.

Actually tested on STM32F401CCU6, STM32F401CEU6, STM32F411CEU6 (using
various WeAct “Blackpill” boards); only pins A0...A7, B0, B1 were tested.

Pins F3...F10 are inside `#if STM32_ADC_USE_ADC3` because some devices
which don't have ADC3 also don't have the GPIOF port, therefore the code
which refers to Fx pins does not compile.

* Fix STM32F3xx ADC mux table in documentation

The ADC driver documentation had some errors in the mux table for STM32F3xx.
Fix this table to match the datasheet and the actual code (mux settings for
B12 and B13 were also tested on a real STM32F303CCT6 chip).

* Add STM32F1xx ADC pins to the documentation

* Add STM32F4xx ADC pins to the documentation

* Add initial support for tinyuf2 bootloader (when hosted on F411 blackpill) (#12600)

* Add support for jumping to tinyuf2 bootloader. Adds blackpill UF2 example.

* Update flashing.md

* Update chconf.h

* Update config.h

* Update halconf.h

* Update mcuconf.h

* eeprom driver: Refactor where eeprom driver initialisation (and EEPROM emulation initialisation) occurs to make it non-target-specific. (#12671)

* Add support for MCU = STM32F446 (#12619)

* Add support for MCU = STM32F446

* Update platforms/chibios/GENERIC_STM32_F446XE/configs/config.h

* Restore mcuconf.h to the one used by RT-STM32F446RE-NUCLEO64

* stm32f446: update mcuconf.h and board.h for 16MHz operation, with USB enabled, and other peripherals disabled.

* Format code according to conventions (#12682)

* Format code according to conventions (#12687)

* Add STM32L433 and L443 support (#12063)

* initial L433 commit

* change to XC

* fix L433

* disable all peripherals

* update system and peripheral clocks

* 433 change

* use its own board  files

* revert its own board files

* l433 specific change

* fix stm32l432xx define

* remove duplicate #define

* fix bootloader jump

* move to L443xx and add i2c2, spi2, usart3 to mcuconf.h

* move to L443

* move to L443

* fix sdmmc in mcuconf.h

* include STM32L443

* add L443

* Include L443 in compatible microcontrollers

* Include L443 in compatible microcontrollers

* Update config bootloader jump description

* Update ChibiOS define reasoning

* Update quantum/mcu_selection.mk

* fix git conflict

* Updated Function96 with V2 files and removed chconf.h and halconf.h (#12613)

* Fix bad PR merge for #6580. (#12721)

* Change RGB/LED Matrix to use a simple define for USB suspend (#12697)

* [CI] Format code according to conventions (#12731)

* Fixing transport's led/rgb matrix suspend state logic (#12770)

* [CI] Format code according to conventions (#12772)

* Fix comment parsing (#12750)

* Added OLED fade out support (#12086)

* fix some references to bin/qmk that slipped in (#12832)

* Resolve a number of warnings in `qmk generate-api` (#12833)

* New command: qmk console (#12828)

* stash poc

* stash

* tidy up implementation

* Tidy up slightly for review

* Tidy up slightly for review

* Bodge environment to make tests pass

* Refactor away from asyncio due to windows issues

* Filter devices

* align vid/pid printing

* Add hidapi to the installers

* start preparing for multiple hid_listeners

* udev rules for hid_listen

* refactor to move closer to end state

* very basic implementation of the threaded model

* refactor how vid/pid/index are supplied and parsed

* windows improvements

* read the report directly when usage page isn't available

* add per-device colors, the choice to show names or numbers, and refactor

* add timestamps

* Add support for showing bootloaders

* tweak the color for bootloaders

* Align bootloader disconnect with connect color

* add support for showing all bootloaders

* fix the pyusb check

* tweaks

* fix exception

* hide a stack trace behind -v

* add --no-bootloaders option

* add documentation for qmk console

* Apply suggestions from code review

* pyformat

* clean up and flesh out KNOWN_BOOTLOADERS

* Remove pointless SERIAL_LINK_ENABLE rules (#12846)

* Make Swap Hands use PROGMEM (#12284)

This converts the array that the Swap Hands feature uses to use PROGMEM,
and to read from that array, as such. Since this array never changes at
runtime, there is no reason to keep it in memory. Especially for AVR
boards, as memory is a precious resource.

* Fix another bin/qmk reference (#12856)

* [Keymap] Turn OLED off on suspend in soundmonster keymap (#10419)

* Fixup build errors on `develop` branch. (#12723)

* LED Matrix: Effects! (#12651)

* Fix syntax error when compiling for ARM (#12866)

* Remove KEYMAP and LAYOUT_kc (#12160)

* alias KEYMAP to LAYOUT

* remove KEYMAP and LAYOUT_kc

* Add setup, clone, and env to the list of commands we allow even with broken modules (#12868)

* Rename `point_t` -> `led_point_t` (#12864)

* [Keyboard] updated a vendor name / fixed minor keymap issues (#12881)

* Add missing LED Matrix suspend code to suspend.c (#12878)

* LED Matrix: Documentation (#12685)

* Deprecate `send_unicode_hex_string()` (#12602)

* Fix spelling mistake regarding LED Matrix in split_common. (#12888)

* [Keymap] Fix QWERTY/DVORAK status output for kzar keymap (#12895)

* Use milc.subcommand.config instead of qmk.cli.config (#12915)

* Use milc.subcommand.config instead

* pyformat

* remove the config test

* Add function to allow repeated blinking of one layer (#12237)

* Implement function rgblight_blink_layer_repeat to allow repeated blinking of one layer at a time

* Update doc

* Rework rgblight blinking according to requested change

* optimize storage

* Fixup housekeeping from being invoked twice per loop. (#12933)

* matrix: wait for row signal to go HIGH for every row (#12945)

I noticed this discrepancy (last row of the matrix treated differently than the
others) when optimizing the input latency of my keyboard controller, see also
https://michael.stapelberg.ch/posts/2021-05-08-keyboard-input-latency-qmk-kinesis/

Before this commit, when tuning the delays I noticed ghost key presses when
pressing the F2 key, which is on the last row of the keyboard matrix: the
dead_grave key, which is on the first row of the keyboard matrix, would be
incorrectly detected as pressed.

After this commit, all keyboard matrix rows are interpreted correctly.

I suspect that my setup is more susceptible to this nuance than others because I
use GPIO_INPUT_PIN_DELAY=0 and hence don’t have another delay that might mask
the problem.

* ensure we do not conflict with existing keymap aliases (#12976)

* Add support for up to 4 IS31FL3733 drivers (#12342)

* Convert Encoder callbacks to be boolean functions (#12805)

* [Keyboard] Fix Terrazzo build failure (#12977)

* Do not hard set config in CPTC files (#11864)

* [Keyboard] Corne - Remove legacy revision support (#12226)

* [Keymap] Update to Drashna keymap and user code (based on develop) (#12936)

* Add Full-duplex serial driver for ARM boards (#9842)

* Document LED_MATRIX_FRAMEBUFFER_EFFECTS (#12987)

* Backlight: add defines for default level and breathing state (#12560)

* Add dire message about LUFA mass storage bootloader (#13014)

* [Keyboard] Remove redundant legacy and common headers for crkbd (#13023)

Was causing compiler errors on some systems.

* Fix keyboards/keymaps for boolean encoder callback changes (#12985)

* `backlight.c`: include `eeprom.h` (#13024)

* Add changelog for 2021-05-29 Breaking Changes merge (#12939)

* Add ChangeLog for 2021-05-29 Breaking Changes Merge: initial version

* Add recent develop changes

* Sort recent develop changes

* Remove sections for ChibiOS changes per tzarc

No ChibiOS changes this round.

* Add and sort recent develop changes

* add notes about keyboard moves/deletions

* import changelog for PR 12172

Documents the change to BOOTMAGIC_ENABLE.

* update section headings

* re-sort changelog

* add additional note regarding Bootmagic changes

* remove changelog timestamp

* update dates in main Breaking Changes docs

* fix broken section anchors in previous changelogs

* add link to backlight/eeprom patch to changelog

* highlight some more changes

* link PRs from section headers

* Restore standard readme

* run: qmk cformat --core-only
2021-05-29 14:38:50 -07:00
Erovia f55e39e8a2
World domination (#13021)
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-05-29 20:05:46 +01:00
Erovia 84883d3400
CLI/c2json: Print 'cpp' error when executed in verbose mode (#12869)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-05-27 17:42:38 +01:00
Zach White aa97f52963
Use milc.subcommand.config instead of qmk.cli.config (#13002)
* Use milc.subcommand.config instead

* pyformat

* remove the config test
2021-05-24 23:36:38 -07:00
Zach White bc67ca6a59
search for the readme in higher directories as well (#12997) 2021-05-24 19:38:27 -07:00
Zach White db1eacdaac
Align our subprocess usage with current best practices. (#12940)
* Align our subprocess usage with current best practices.

* remove unused import

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* fix the cpp invocation for older python

* allow for unprompted installation

* make sure qmk new-keyboard works on windows

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-05-19 15:24:46 -07:00
Erovia 3023015c5b
Make sure 'cformat' only runs on core files (#12909)
Co-authored-by: Zach White <skullydazed@drpepper.org>
2021-05-18 21:26:17 +02:00
Zach White bc38c38f8c
Move the module checking and updating to lib/python (#12416)
* move the module checking and updating to lib/python

* make flake8 happy

* Update lib/python/qmk/cli/__init__.py

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

* prompt the user to disable developer mode

* pyformat

* flake8

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-05-10 12:00:52 -07:00
Zach White a3e7f3e7c5
Improve our CI tests (#11476)
* add a test and dry-run to qmk generate-api

* add a dry-run to qmk pyformat

* Add a --dry-run to qmk cformat

* reverse the order of nose2 and flake8 tests

* run CI test against cformat and pyformat

* fix programming errors

* tweak job name

* fix argument

* refine the files we select

* fix stack trace in --ci

* make cformat exit clean

* fix c file extensions

* decouple CI from pyformat

* remove --ci arg

* make ci happy

* use the environment var instead

* change output to text

* fix log message

* replace tabs
2021-05-10 11:18:44 -07:00
Joel Challis 3f854e16ac
Catch 'LAYOUTS = all' in lint (#12848)
Co-authored-by: Zach White <skullydazed@drpepper.org>
2021-05-09 22:39:48 +02:00
Zach White 5c924efa04
fix the makefile snippet so flake8 and yapf don't fight (#12849) 2021-05-09 11:30:17 -07:00
Erovia 30aae6298b
CLI: Use BASH if SHELL variable is not set (Windows) (#12847) 2021-05-09 19:19:42 +02:00
github-actions[bot] 6c5e94061c
[CI] Format code according to conventions (#12838)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-05-10 03:15:00 +10:00
Nick Brassel 1426ffc0ee
Add script to perform parallel builds. (#12497)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-05-09 17:06:44 +02:00
Joel Challis f544b60aaa
Align qmk info ascii logic with milc logging (#11627) 2021-05-09 15:53:18 +02:00
Joel Challis 7725d813c9
Allow MAKE environment override for 'qmk clean' (#12473) 2021-05-09 12:57:49 +02:00
Joel Challis 25c97e0019
Shim cli to new keyboard script (#12780)
* Shim cli to new keyboard script

* Shim cli to new keyboard script

* Add docs
2021-05-02 16:59:10 +01:00
Joel Challis 0fd8faa1ad
Fix unused import in recent generation code (#12781) 2021-05-02 08:43:40 -07:00
Joel Challis fc2b51194c
Allow <keyboard>.h to be optional when going data driven (#12706)
* Allow <keyboard>.h to be optional when going data driven

* Remove stub files as no longer required

* Rename function

* Remove include of layouts.h for now

* Take advantage of type=keyboard_folder

* Take advantage of type=keyboard_folder - kb should still be mandatory
2021-05-01 02:00:04 +01:00
Nick Brassel b88498ba85
Fix CLI incorrectly following DEFAULT_FOLDER (#12529)
* Attempt to sort out incorrectly following DEFAULT_FOLDER.

* Fix CI checks.

* qmk pyformat
2021-04-25 11:15:54 +10:00
Zach White 588bcdc8ca
Add support for tab completion (#12411)
* Add support for tab completion

* make flake8 happy

* Add documentation
2021-04-14 19:00:22 -07:00
Ryan 2170b75b26
qmk chibios-confmigrate: Make -i and -r required (#12515) 2021-04-08 14:16:15 +10:00
Ryan cd981ec56a
qmk doctor: Fix WSL /mnt check (#12466) 2021-04-02 22:24:09 +01:00
Ryan 12f308748f
qmk doctor: Display macOS and Windows versions, and add WSL warning for /mnt (#12441) 2021-04-02 21:44:27 +11:00
github-actions[bot] 8a950a7116
Format code according to conventions (#12437)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-31 10:16:14 +11:00
Nick Brassel 64551a8386
Allow for clang-format up to v20. (#12407) 2021-03-31 09:33:26 +11:00
Zach White 5dc7951dc0
add utf-8 encoding to the open() call (#12388) 2021-03-27 08:55:47 -07:00
Zach White 3e60997edb
Add a qmk format-json command that will format JSON files (#12372)
* Add a command to format json files

* change to work after rebase

* add test for qmk format-json

* add documentation for qmk format-json

* Update lib/python/qmk/cli/format/json.py
2021-03-25 22:38:10 +11:00
github-actions[bot] 54b80ecf9f
[CI] Format code according to conventions (#12363)
* Format code according to conventions

* Update lib/python/qmk/cli/generate/api.py

* Update lib/python/qmk/cli/generate/api.py

Co-authored-by: QMK Bot <hello@qmk.fm>
Co-authored-by: Zach White <skullydazed@gmail.com>
2021-03-24 20:33:25 -07:00
Zach White 299008be36
Add support for qmk_configurator style aliases (#11954)
* Add support for qmk_configurator style aliases

* add the keyboard aliases to the api data

* add support for a keyboard metadata file

* make flake8 happy
2021-03-24 09:26:38 -07:00
Zach White e1a7027fe8
use layout aliases when processing info.json (#12333) 2021-03-22 18:58:07 -07:00
Ryan 69eca63a84
qmk doctor: Don't run udev checks under WSL (#12231) 2021-03-19 04:24:21 +11:00
Ryan aed8bace97
Fix typo in get_git_version() (#12182) 2021-03-10 08:36:39 +11:00
Zach White 6d8d20774f improve detection of community layout support 2021-03-09 08:04:07 -08:00
Ryan 6461087c86
qmk generate-rules-mk: add --escape switch for makefile logic (#12101) 2021-03-04 15:09:22 +11:00
Joel Challis f8266a228c
Migrate make_dfu_header to CLI (#12061)
* Migrate make_dfu_header to CLI

* lint fixes

* Update lib/python/qmk/cli/generate/dfu_header.py

Co-authored-by: Ryan <fauxpark@gmail.com>

* Rename object

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-02-28 21:25:09 +00:00
Joel Challis 59c7deab09
Fix generated file output while target exists (#12062) 2021-02-28 20:19:07 +00:00
Zach White 0828d0f5c7
Fix compile errors (#12048)
* fix compile errors

* fix broken json files
2021-02-27 23:25:41 +00:00
Zach White 1581ea48dc
Fix develop (#12039)
Fixes file encoding errors on Windows, and layouts not correctly merging into info.json.

* force utf8 encoding

* correctly merge layouts and layout aliases

* show what aliases point to
2021-02-27 12:00:50 -08:00
Zach White 23ef327e11 make LAYOUT parsing more robust 2021-02-24 16:47:38 -08:00
Zach White cd336b2b54
bump to python 3.7 (#11408) 2021-02-13 10:26:45 -08:00
Zach White 448cc1acd5
remove deprecated qmk json-keymap (#11823) 2021-02-08 11:03:08 +00:00
QMK Bot d9dea7c4ec Merge remote-tracking branch 'origin/master' into develop 2021-02-07 21:03:27 +00:00
Joel Challis ccc9c43161
Allow flash/compile to accept relative json paths (#11767)
* Allow flash/compile to accept relative paths

* Review suggestions

* Review comments

* Put back exists check otherwise stdin fails

* fix lint
2021-02-07 21:02:51 +00:00
Nick Brassel 620a946d01
Add STM32G431 and STM32G474 board definitions. (#11793)
* Add STM32G431 and STM32G474 board definitions.

* Add docs.
2021-02-06 11:27:46 +11:00
QMK Bot 85079d6a2e Merge remote-tracking branch 'origin/master' into develop 2021-02-01 19:56:36 +00:00
Erovia 7db826dce8
CLI: Fix json flashing (#11765) 2021-02-01 20:55:35 +01:00
Zach White ef6329af7c
Create a system to map between info.json and config.h/rules.mk (#11548)
* generate rules.mk from a json mapping

* generate rules.mk from a json mapping

* support for config.h from json maps

* improve the mapping system

* document the mapping system

* move data/maps to data/mappings

* fix flake8 errors

* fixup LED_MATRIX_DRIVER

* remove product and description from the vision_division keymap level

* reduce the complexity of generate-rules-mk

* add tests for the generate commands

* fix qmk doctor when submodules are not clean
2021-01-31 12:46:00 -08:00
Dasky d92ffd1157
Adds AT90USB162 support (#11570)
* at90usb162 support

* fix missing bracket

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-29 19:53:56 -08:00
Nick Brassel bdb757e189
ChibiOS conf migrations... take 11 (#11646)
* Allow forcing re-migration.

* ChibiOS conf upgrade for acheron/arctic

 acheron/arctic - 2aedbe9103fff6c37e596c33c9ed337957647368

* ChibiOS conf upgrade for acheron/austin

 acheron/austin - c2f4e3b7fc9f1c3d64f47d139bc58367afeca1b7

* ChibiOS conf upgrade for acheron/keebspcb

 acheron/keebspcb - 1ba976e409732bfa5c0487dd33e20bec06852ce4

* ChibiOS conf upgrade for acheron/lasgweloth

 acheron/lasgweloth - 01a2e70d0d86de0ff05d0b898a6e3b4428ee1581

* ChibiOS conf upgrade for aeboards/ext65/rev2

 aeboards/ext65/rev2 - 3c9a45cafb4ed6d9672aaff4548b105193633a87

* ChibiOS conf upgrade for ai03/vega

 ai03/vega - 1bd0dfccb99baa69bacd2d55f2bfa72019b8bf80

* ChibiOS conf upgrade for akegata_denki/device_one

 akegata_denki/device_one - a013823188660f5fca37c5763f160f8646aed7a7

* ChibiOS conf upgrade for at_at/660m

 at_at/660m - 9999583e8bec2772046132a22818482d24e18c84

* ChibiOS conf upgrade for box75

 box75 - 1126206109a942237eea96f3a9608e3c9ed55f8e

* ChibiOS conf upgrade for bt66tech/bt66tech60

 bt66tech/bt66tech60 - b69120638a8b2c86c008fd0592be918383d8a454

* ChibiOS conf upgrade for cannonkeys/an_c

 cannonkeys/an_c - c755f6caaccbe2b30d95661a3d441b836534c29f

* ChibiOS conf upgrade for cannonkeys/atlas

 cannonkeys/atlas - 1a18c55492a834b82715516ea4cd4d3d94508743

* ChibiOS conf upgrade for cannonkeys/chimera65

 cannonkeys/chimera65 - 6bf226ef353da9106c381a8ac95a9b90529327e5

* ChibiOS conf upgrade for cannonkeys/db60

 cannonkeys/db60 - 07e3246f8e3adc5b6918809e6a5aa1ad064b9a09

* ChibiOS conf upgrade for cannonkeys/devastatingtkl

 cannonkeys/devastatingtkl - 907d258e29eb7e35b1f868c1ea6148bfd1e3a3f2

* ChibiOS conf upgrade for cannonkeys/instant60

 cannonkeys/instant60 - ac876ff6746b08839a3936dd4126b52683b763f4

* ChibiOS conf upgrade for cannonkeys/instant65

 cannonkeys/instant65 - 3b8c89ec5fecbdb35cccb00c45e64a798528dbda

* ChibiOS conf upgrade for cannonkeys/iron165

 cannonkeys/iron165 - 0814ec4067d9857b0134e38384f272cf7172fb03

* ChibiOS conf upgrade for cannonkeys/obliterated75

 cannonkeys/obliterated75 - 0f376e5d9a232c62e9c60f8fdc81d12732352ddc

* ChibiOS conf upgrade for cannonkeys/onyx

 cannonkeys/onyx - d35134ebe09046b91ab176035d3742d80b23ed8e

* ChibiOS conf upgrade for cannonkeys/ortho48

 cannonkeys/ortho48 - 828dbfbb013ff4fefe75044b3c9fd31fec5e95a1

* ChibiOS conf upgrade for cannonkeys/ortho60

 cannonkeys/ortho60 - 2aca4dd4234e0dac828f5fa15ae5b3bc3c0605dc

* ChibiOS conf upgrade for cannonkeys/ortho75

 cannonkeys/ortho75 - 4af8aaaded0ff53e9c01473f5968cc169f268647

* ChibiOS conf upgrade for cannonkeys/practice60

 cannonkeys/practice60 - e01df551d9483eeb3f825fcc453317fe65f674b5

* ChibiOS conf upgrade for cannonkeys/practice65

 cannonkeys/practice65 - 156163789d4c96cdd4787895788c1d02a2367f5c

* ChibiOS conf upgrade for cannonkeys/rekt1800

 cannonkeys/rekt1800 - 15882afb6373dea3e5f7ed13c19744ee2463f3bf

* ChibiOS conf upgrade for cannonkeys/sagittarius

 cannonkeys/sagittarius - f49fee611ffcc02cb3dc7f249fc8c83f136907b9

* ChibiOS conf upgrade for cannonkeys/satisfaction75

 cannonkeys/satisfaction75 - 2c9fbbea3a38820774f6ff436ef51017b545475a

* ChibiOS conf upgrade for cannonkeys/savage65

 cannonkeys/savage65 - ddd764be363c46f3e9b1a16151bd02d8f66b2dd4

* ChibiOS conf upgrade for cannonkeys/tmov2

 cannonkeys/tmov2 - 7af36cd2a42015838b77697624e90008ffa72778

* ChibiOS conf upgrade for cannonkeys/tsukuyomi

 cannonkeys/tsukuyomi - a120bea5dacb2cd6f143458cece46d2860ea196d

* ChibiOS conf upgrade for cheshire/curiosity

 cheshire/curiosity - 93d8fe3b7a8e028d4b015941ee71b50afe86bc8a

* ChibiOS conf upgrade for coarse/cordillera

 coarse/cordillera - 7d986d3f534786f302cbf74a5e6b7e51ffe60093

* ChibiOS conf upgrade for converter/siemens_tastatur

 converter/siemens_tastatur - 3f79f1467bbc56f284aceafd76ab5c6a1cbb68f4

* ChibiOS conf upgrade for cutie_club/borsdorf

 cutie_club/borsdorf - f8c6015b7aacfd5edef4f22f719eea30660005e7

* ChibiOS conf upgrade for dekunukem/duckypad

 dekunukem/duckypad - d9c162d0867d3925cca2e653a3a3870eac2d23d2

* ChibiOS conf upgrade for ebastler/isometria_75/rev1

 ebastler/isometria_75/rev1 - 2ecdd00b8c6cc794a7014747185b88374d5766c0

* ChibiOS conf upgrade for ergodox_infinity

 ergodox_infinity - 76736c701db22e890764481c25bd38badf32a1cf

* ChibiOS conf upgrade for ergodox_stm32

 ergodox_stm32 - a7bdb0b7822617ca0f9d316a082874ac0fef5964

* ChibiOS conf upgrade for function96

 function96 - 1b9e394a86dab24b85d160afe9281b5e7652afe2

* ChibiOS conf upgrade for geekboards/macropad_v2

 geekboards/macropad_v2 - de261e46a42cc7b7ff793e26200669f94b1dbb18

* ChibiOS conf upgrade for generic_panda/panda65_01

 generic_panda/panda65_01 - 592d2443033875e0309506aa8cb5212389054458

* ChibiOS conf upgrade for handwired/ck4x4

 handwired/ck4x4 - 9d7d4af7f2d787afd638e976334cd37c490040d7

* ChibiOS conf upgrade for handwired/onekey/blackpill_f401

 handwired/onekey/blackpill_f401 - c9257a30203b3a0e5aa18b35e07281fcd043ab5d

* ChibiOS conf upgrade for handwired/onekey/blackpill_f411

 handwired/onekey/blackpill_f411 - dfccc2c6b245cfb561faba60c9f3fc7af8c3db30

* ChibiOS conf upgrade for handwired/onekey/bluepill

 handwired/onekey/bluepill - 393f4b94e9a0fbc9cd00de1acde346ad72250b4a

* ChibiOS conf upgrade for handwired/onekey/stm32f0_disco

 handwired/onekey/stm32f0_disco - d827881f9bed09fd41c7c4e9d066e96b6643a099

* ChibiOS conf upgrade for handwired/onekey/teensy_32

 handwired/onekey/teensy_32 - dd90f6c823da80ba43afa41249a2bdbbab98b04c

* ChibiOS conf upgrade for handwired/onekey/teensy_lc

 handwired/onekey/teensy_lc - 34596f2eeb62403cce532d20cf893ebd77fe2d05

* ChibiOS conf upgrade for handwired/pill60/blackpill_f401

 handwired/pill60/blackpill_f401 - 20bbccb5058085076357f4fa956eede2c0af86e8

* ChibiOS conf upgrade for handwired/pill60/blackpill_f411

 handwired/pill60/blackpill_f411 - e03a4c3ec3b9ba65b8067126a039a8eb2cd10e51

* ChibiOS conf upgrade for handwired/pill60/bluepill

 handwired/pill60/bluepill - 2fb721fb4376cde2067eed1c0c8acbf3bf5851c3

* ChibiOS conf upgrade for handwired/riblee_f401

 handwired/riblee_f401 - 2823cd98d64c91b146dae343a32176d51772952b

* ChibiOS conf upgrade for handwired/riblee_f411

 handwired/riblee_f411 - 5cf7589c9a11c4ed14e7d28676ac836fbb07d013

* ChibiOS conf upgrade for handwired/sono1

 handwired/sono1 - d972acee03efb4917fc42f7d72c0a416b67ebd4a

* ChibiOS conf upgrade for handwired/t111

 handwired/t111 - f947c1d59025fe04e7d7b999d80e20277be4366c

* ChibiOS conf upgrade for handwired/twadlee/tp69

 handwired/twadlee/tp69 - 48ab62464ba1f2651f4468cbec7c6058e3b8c158

* ChibiOS conf upgrade for handwired/z150

 handwired/z150 - 35e85696845e965d7f2dcdb372ed20c17d42c2bb

* ChibiOS conf upgrade for hub20

 hub20 - f094036a182169b5a73f89f09f2ccaa3e5fc9e7e

* ChibiOS conf upgrade for iron180

 iron180 - 5efb6f21c848b3c964795d9debddceac7628933d

* ChibiOS conf upgrade for jm60

 jm60 - dbbdbe8b27b3c1d0a25981b2f75728d163d5d299

* ChibiOS conf upgrade for keebio/bdn9/rev2

 keebio/bdn9/rev2 - 0031632523dddfc8f7b3a02cf9c5990ebbb3856d

* ChibiOS conf upgrade for keebio/choconum

 keebio/choconum - 4484ef6936a497610ca5ae4d378bc07b2bc1b1c7

* ChibiOS conf upgrade for matrix/m20add

 matrix/m20add - 6068aeff5b14c26de8838180f4397800abe9f1aa

* ChibiOS conf upgrade for matrix/noah

 matrix/noah - fcde175fb1d3f5bf0716ac5a880c2cc9ab4bbf7f

* ChibiOS conf upgrade for misterknife/knife66

 misterknife/knife66 - e7f3ceffb94fb8e680da2af27fa7cb1a0a52b699

* ChibiOS conf upgrade for misterknife/knife66_iso

 misterknife/knife66_iso - ee027db939c098f908f70f02ffa9cc3952139f70

* ChibiOS conf upgrade for nebula12

 nebula12 - 2f3a25b6675dcd0fabe75e7bb63038d3cac19610

* ChibiOS conf upgrade for nemui

 nemui - 4030faa372512f766fd747876cb28176302453f9

* ChibiOS conf upgrade for nibiria/stream15

 nibiria/stream15 - fd7b09affa208403099ef9bff1b756fac0d4f918

* ChibiOS conf upgrade for nightingale_studios/hailey

 nightingale_studios/hailey - 496a44b2f789cc59a6110c7c1c41d57e59c722be

* ChibiOS conf upgrade for planck/rev6

 planck/rev6 - 6fb8f0bc21b4ab774ce3d339fdf6f25d96059f10

* ChibiOS conf upgrade for primekb/meridian

 primekb/meridian - 8021ed99e8bdf92faab806780186cc924dd59e50

* ChibiOS conf upgrade for projectkb/alice

 projectkb/alice - ad7678d475a14c54f28b62d1c1b15f5b4c4448bc

* ChibiOS conf upgrade for projectkb/signature87

 projectkb/signature87 - de61338b0a5c477f39c000df8117dd3017c2643d

* ChibiOS conf upgrade for ramonimbao/squishy65

 ramonimbao/squishy65 - 2ea1a8b18c39d0e193bbbf5836191874d3aafc53

* ChibiOS conf upgrade for ramonimbao/wete

 ramonimbao/wete - a80b3b309f06566adcdf20234d81c1d5aa599b00

* ChibiOS conf upgrade for rart/rartlice

 rart/rartlice - c8c80c302428d62bb8b08e3185509a233a94f5f0

* ChibiOS conf upgrade for retro_75

 retro_75 - 7434e266bba43ded8ca1ff75d77faa506473ca91

* ChibiOS conf upgrade for rocketboard_16

 rocketboard_16 - 1182a8730a84b58eba5a470286b6db6134d36f54

* ChibiOS conf upgrade for satt/vision

 satt/vision - c85a28a8d7e321511a17a7e7084d0a7876d1779a

* ChibiOS conf upgrade for technika

 technika - 7c59de348f0ec5f6ac9e260806a87aaf16fbafa2

* ChibiOS conf upgrade for tkc/godspeed75

 tkc/godspeed75 - e447b39dca393736fbf289049699d5b4748bb8c6

* ChibiOS conf upgrade for tkw/stoutgat/v2/f411

 tkw/stoutgat/v2/f411 - 58e9b909379ad107affbff0508e3923264b75426

* ChibiOS conf upgrade for viktus/styrka

 viktus/styrka - 36bf0921be79a8b037fdc25343584574a312be60

* ChibiOS conf upgrade for westfoxtrot/prophet

 westfoxtrot/prophet - 80036c8f986c8d3261d6b0748d2057eccab6430b

* ChibiOS conf upgrade for whitefox

 whitefox - c9eccac0196c3e2e2ea6c90d3036283a3eabff2c

* ChibiOS conf upgrade for wolfmarkclub/wm1

 wolfmarkclub/wm1 - 0d22a426255b829a7805bd6a3ff927198b1e31b4

* ChibiOS conf upgrade for xelus/kangaroo

 xelus/kangaroo - fdb1ffb66f4841f662e968929f058d4fd403c97e

* ChibiOS conf upgrade for xelus/trinityxttkl

 xelus/trinityxttkl - a9641e5b39b7bb38351b9109f0f381837b2e8e79

* ChibiOS conf upgrade for xelus/valor_frl_tkl

 xelus/valor_frl_tkl - 6c3b577852736a68727ec319c30712b3088e65cd

* ChibiOS conf upgrade for xiaomi/mk02

 xiaomi/mk02 - 4c1406ebfee73551a844ef7ab29fc5788d7e875c

* ChibiOS conf upgrade for zoo/wampus

 zoo/wampus - 930c903e85478e220a235f45593c03512c66bc2a

* ChibiOS conf upgrade for zvecr/split_blackpill

 zvecr/split_blackpill - c0e3e1583262e4cb0ebfe2efa6356ed6c5c957ca
2021-01-21 17:00:53 +11:00
QMK Bot ea51cbf1d9 Merge remote-tracking branch 'origin/master' into develop 2021-01-20 20:39:04 +00:00
Zach White 111eb8990d
Fix QMK_BUILDDATE (#11641) 2021-01-20 20:38:18 +00:00
Nick Brassel 78fe155b72
Fix up comments showing how to execute config migration. (#11621) 2021-01-20 02:19:36 +11:00
Nick Brassel a7c45daeb8
ChibiOS 20.3.2 (#11495)
* Update ChibiOS submodule

* Update ChibiOS-Contrib submodule

* Update ChibiOS config files
2021-01-20 00:59:12 +11:00
QMK Bot 3a06e88566 Merge remote-tracking branch 'origin/master' into develop 2021-01-17 17:33:59 +00:00
Zach White da40242dbc
Generate version.h when compiling json files (#11581)
* generate version.h when compiling json files

* make flake8 happy

* fix formatting and verbose

* quiet up the compile output
2021-01-17 17:33:29 +00:00
Zach White 5abe666749 Merge remote-tracking branch 'origin/master' into develop 2021-01-16 15:21:06 -08:00
Zach White d9785ec313
Improve the compile and flash subcommands (#11334)
* add support for --clean to compile and flash

* compile standalone JSON keymaps without polluting the tree

* Add support for passing environment vars to make

* make flake8 happy

* document changes to qmk compile and flash

* add -e support to json export compiling

* Fix python 3.6

* honor $MAKE

* add support for parallel builds
2021-01-16 15:13:04 -08:00
Zach White eaa9106ec7
Add support for specifying BOARD in info.json (#11492)
* add support for specifying BOARD in info.json

* move BOARD from rules.mk to info.json for clueboard

* fix keyboards that do not require board

* remove out of compliance values
2021-01-09 20:18:47 -08:00
Zach White 962bc8d9dd
Use the schema to eliminate custom code (#11108)
* use the schema to eliminate custom code

* Update docs/reference_info_json.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* make flake8 happy

* bugfix

* do not overwrite make vars from json

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-01-09 13:34:14 -08:00
Zach White e2c7f89347 typo fix 2021-01-08 08:46:51 -08:00
Zach White 58fcdf8c07 remove extraneous comment 2021-01-08 08:40:23 -08:00
Zach White 30331b383f fix bugs triggered by certain boards 2021-01-08 08:40:23 -08:00
Zach White e2e793c1c3 Revert "change invalid pin from error to warning"
This reverts commit 68da9cd19658071f0c2f22e97956303281703176.
2021-01-07 21:21:12 -08:00
Zach White b44532aa3d change invalid pin from error to warning 2021-01-07 21:21:12 -08:00
Zach White 9a178f6826 fix rgblight properties 2021-01-07 21:21:12 -08:00
Zach White 56ef80216a make flake8 happy 2021-01-07 21:21:12 -08:00
Zach White b2c26f7cdd get qmk generate-api into a good state 2021-01-07 21:21:12 -08:00
Zach White ededff8556 validate keyboard data with jsonschema 2021-01-07 21:21:12 -08:00
Zach White cf2f13fc77 Merge remote-tracking branch 'origin/master' into develop 2021-01-05 11:04:56 -08:00
Joel Challis f03b10b6c1
Migrate python tests away from onekey (#11367)
* Migrate python tests away from onekey

* Add stub files to stop lint complaints

* Make all the pytest keymaps compile
2021-01-05 00:52:31 +00:00
Zach White 6daa204363 fix keyboards with apostrophes in their names 2021-01-03 17:55:54 -08:00
Zach White 11bd98f684
Fix broken keyboards (#11412)
* Fix a couple errors

* add a dependency for the generated headers
2021-01-03 13:08:17 +11:00
Zach White f27d8d9448
Fix compiling on develop (#11409) 2021-01-02 21:05:56 +01:00
QMK Bot f12000a1b6 Merge remote-tracking branch 'origin/master' into develop 2021-01-02 17:28:05 +00:00
Zach White c07543133a
Return the make exit code for qmk compile and flash (#11402) 2021-01-02 17:27:35 +00:00
Zach White 47b9b11009
Configure keyboard matrix from info.json (#10817)
* Make parameters from info.json available to the build system

* move all clueboard settings to info.json

* code formatting

* make flake8 happy

* make flake8 happy

* make qmk lint happy

* Add support for specifying led indicators in json

* move led indicators to the clueboard info.json

* Apply suggestions from code review

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

* add missing docstring

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-12-30 10:27:37 -08:00
LongerHV 221d8fd866
[CLI] Add stdin support for json2c command (#11289)
* Implement stdin for json2c command

* Refactor

* Handle json decode error

* Add stdin support for c2json cli command

* Refactor to prevent code duplication

* Change exit(1) to return False in c2json command

* Remove unused import
2020-12-29 11:34:48 -08:00
Ryan 6a292e11d3
qmk fileformat: only print complaints, and fix some of them (#11278) 2020-12-24 02:36:44 +00:00
Erovia a380a26ad2
Split of the doctor codebase (#11255)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-12-21 13:29:36 +01:00
Ryan 0239ce025a
Doctor: add check for .git folder (#11208)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-12-20 15:46:01 +01:00
Zach White 624cafbfd2
Change keyboard json format to bring it inline with the current api (#11231) 2020-12-19 19:46:30 +01:00
Zach White bded5f473c
simplify qmk doctor to make room for #11208 (#11242) 2020-12-18 16:42:30 -08:00
Ryan 37fb14f1b5
CLI-ify rgblight_breathing_table_calc.c (#11174)
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: Zach White <skullydazed@drpepper.org>
2020-12-16 14:24:42 +11:00
Joel Challis 1ebd243cdc
CI automated format fixes (#11179)
* Format all C files for now, till diff logic works within CI

* Fix recursion of dos2unix
2020-12-11 13:49:03 +00:00
Joel Challis 5b5d74a267
Fix warning logic when running 'qmk format -a' (#11177) 2020-12-10 19:02:41 +00:00
Joel Challis 6c4b6531fe
CI: Add workflow for codebase formatting (#7382)
* Add workflow for codebase formatting

* stash

* review comments

* Swap to a more complete push action
2020-12-10 17:01:51 +00:00
Zach White 8724a70c4c
Reduce travis load by replacing an exclusive grep with an inclusive grep (#10964)
* add -n to avoid compiling

* switch to an include rather than exclude strategy
2020-11-30 11:19:44 -08:00
James Young c66df16644
2020 November 28 Breaking Changes Update (#11053)
* Branch point for 2020 November 28 Breaking Change                                                

* Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183)                                           

* Add support for soft serial to ATmega32U2 (#10204)                                               

* Change MIDI velocity implementation to allow direct control of velocity value (#9940)            

* Add ability to build a subset of all keyboards based on platform.                                

* Actually use eeprom_driver_init().                                                               

* Make bootloader_jump weak for ChibiOS. (#10417)                                                  

* Joystick 16-bit support (#10439)                                                                 

* Per-encoder resolutions (#10259)                                                                 

* Share button state from mousekey to pointing_device (#10179)                                     

* Add hotfix for chibios keyboards not wake (#10088)                                               

* Add advanced/efficient RGB Matrix Indicators (#8564)                                             

* Naming change.                                                                                   

* Support for STM32 GPIOF,G,H,I,J,K (#10206)                                                       

* Add milc as a dependency and remove the installed milc (#10563)                                  

* ChibiOS upgrade: early init conversions (#10214)                                                 

* ChibiOS upgrade: configuration file migrator (#9952)                                             

* Haptic and solenoid cleanup (#9700)                                                              

* XD75 cleanup (#10524)                                                                            

* OLED display update interval support (#10388)                                                    

* Add definition based on currently-selected serial driver. (#10716)                               

* New feature: Retro Tapping per key (#10622)                                                      

* Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638)             

* Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530)

* Rescale both ChibiOS and AVR backlighting.                                                       

* Reduce Helix keyboard build variation (#8669)                                                    

* Minor change to behavior allowing display updates to continue between task ticks (#10750)        

* Some GPIO manipulations in matrix.c change to atomic. (#10491)                                   

* qmk cformat (#10767)                                                                             

* [Keyboard] Update the Speedo firmware for v3.0 (#10657)                                          

* Maartenwut/Maarten namechange to evyd13/Evy (#10274)                                             

* [quantum] combine repeated lines of code (#10837)                                                

* Add step sequencer feature (#9703)                                                               

* aeboards/ext65 refactor (#10820)                                                                 

* Refactor xelus/dawn60 for Rev2 later (#10584)                                                    

* add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824)                                 

* [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549)                                    

* update chibios os usb for the otg driver (#8893)                                                 

* Remove HD44780 References, Part 4 (#10735)                                                       

* [Keyboard] Add Valor FRL TKL (+refactor) (#10512)                                                

* Fix cursor position bug in oled_write_raw functions (#10800)                                     

* Fixup version.h writing when using SKIP_VERSION=yes (#10972)                                     

* Allow for certain code in the codebase assuming length of string. (#10974)                       

* Add AT90USB support for serial.c (#10706)                                                        

* Auto shift: support repeats and early registration (#9826)                                       

* Rename ledmatrix.h to match .c file (#7949)                                                      

* Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231)                                        

* Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840)                                        

* Merge point for 2020 Nov 28 Breaking Change
2020-11-28 12:02:18 -08:00
Erovia b337ba798e
CLI: Udev related fixes and improvements (#10736) 2020-11-16 21:09:32 +00:00
Joel Challis aae3b35c0f
CI: Add docs build and deploy workflow (#7448)
* Add docs build and deploy workflow

* Remove old travis docs workflow

* update to cli command

* Tidy up for review

* formatting

* Update to pass style checks

* Update lib/python/qmk/cli/docs.py

Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>

* Review comments - build->generate, use of verbose

* Add docs

* Update to match recent actions

* Run within base_container

* Convert cli to generate-docs

* Convert cli to generate-docs - restore old file

* Convert cli to generate-docs

* Update docs

Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
2020-11-10 07:00:40 -08:00
Zach White 4d33d72975
New command: qmk lint (#10761)
* Basic qmk lint command

* check for keymap readme

* change the workflow from qmk info to qmk lint

* add a strict mode

* parsing -> parse

* document qmk lint

* small info logging cleanup

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* honor --strict in more places

* change the job name to lint

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-07 09:56:08 -08:00
Ryan 7ef98e7f61
CLI: Add qmk clean (#10785) 2020-11-04 19:18:47 +00:00
Ryan e69da2db2c
qmk info: Add --ascii flag (#10793)
* `qmk info`: Add `--ascii` flag

* Fix typo

* Force ASCII for Windows/MSYS2

* Make it gooder

* Remove redundant windows check

* ...And this too

* Make pytest work on Windows
2020-11-02 00:41:01 -08:00
Zach White 0c42f91f4c
Generate api data on each push (#10609)
* add new qmk generate-api command, to generate a complete set of API data.

* Generate api data and push it to the keyboard repo

* fix typo

* Apply suggestions from code review

Co-authored-by: Joel Challis <git@zvecr.com>

* fixup api workflow

* remove file-changes-action

* use a more mainstream github action

* fix yaml error

* Apply suggestions from code review

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

* more uniform date handling

* make flake8 happy

* Update lib/python/qmk/decorators.py

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-10-25 14:48:44 -07:00
Ryan f9bd9d3b26
c2json: Fix TypeError on MSYS2 (#10709) 2020-10-23 12:21:32 +11:00
Ryan c3ce06c2e7
Fix CLI warning for Massdrop udev rule (#10691) 2020-10-20 04:36:18 +11:00
Zach White 445cd95d17
Improve ANSI support and --no-color (#10537)
* Improve ANSI support and --no-color

* tweak when levelname gets stripped of ansi

* sync with latest milc

* make questions work with both milc versions

* pyformat
2020-10-17 21:01:11 -07:00
Ryan 1a2a838bc2
[CLI] Remove check for Input Club boards (#10636) 2020-10-18 02:44:38 +11:00
Erovia 459f672879
CLI: Fix stripping of ANY from Configurator exports (#10585)
058737f broke it ¯\_(ツ)_/¯
2020-10-09 18:46:49 +01:00
Ryan 7229997e7d
CLI: Fix MCU lists for qmk info (#10574) 2020-10-09 11:43:07 +11:00
Erovia 058737f116
[CLI] Add c2json (#8817)
* Basic keymap parsing finally works

* Add 'keymap.json' creation to the qmk.keymap module

* Add tests and fix formatting

* Fix/exclude flake8 errors

* Convert keymap.c to valid keymap.json

* Fix some errors

* Add tests

* Finalize keymap.json creation, add json template

* Add docs

* Move pygments to the standard requirements

* Add support for nameless layers, fix tests

* Fix things after rebase

* Add missing 'keymap' value.

* Fix missing layer numbers from advanced keycodes

Buckwich noticed that if the advanced keycode / layer toggling key
contains a number, it goes missing.
Now we properly handle them.
Thx for noticing!

* Apply suggestions from code review

* fixup tests

Co-authored-by: Zach White <skullydazed@drpepper.org>
Co-authored-by: skullY <skullydazed@gmail.com>
2020-10-06 17:10:19 -07:00
Ryan c9a06965c9
Improve LAYOUT macro searching (#9530)
* Improve LAYOUT macro searching

* Apply suggestions from code review

Co-authored-by: Zach White <skullydazed@users.noreply.github.com>

* Adjust signature

* Try to copy the makefile's handling of DEFAULT_FOLDER

* Move it further up, into `info_json()`

* Move it even further up so that keyboard_folder is correct

* Update lib/python/qmk/info.py

Co-authored-by: Zach White <skullydazed@drpepper.org>

* Update lib/python/qmk/info.py

Co-authored-by: Zach White <skullydazed@drpepper.org>

Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
Co-authored-by: Zach White <skullydazed@drpepper.org>
2020-10-06 16:57:40 -07:00
Ryan 2c9ffd4739
CLI: update subcommands to use return instead of exit() (#10323) 2020-10-06 16:46:10 -07:00
Ryan e7acd39b78
Consolidate udev rules into a single file (#9693)
* Consolidate udev rules into a single file

* Update rules in doctor.py

* Simplify doctor rule checking

* Fix errors

* Add TMK "FEED" VID to list of deprecated udev rules

* A comma would be nice

* Split rules back up into bootloaders

* Link to docs page in "missing" case

* Add Pololu VID

* Be more specific about Caterina devices, and add LilyPad PID
2020-09-27 20:36:33 +10:00
Ryan 70fce6564f
Add logic for AT90USBxx7 where needed (#10203) 2020-09-27 20:33:03 +10:00
Ryan 5f23f21216
CLI/Doctor: Print QMK_HOME (#10398) 2020-09-24 15:16:00 +10:00
Ryan bbfb709a6a
Add STM32F401/F411 to ARM_PROCESSORS (#10362) 2020-09-18 20:48:02 -07:00
fauxpark a0305f5e7e Be more specific about Caterina devices, and add LilyPad PID 2020-09-19 05:40:25 +10:00
fauxpark c2a0cebf8b Add Pololu VID 2020-09-19 05:21:33 +10:00
fauxpark ef1b050b32 Link to docs page in "missing" case 2020-09-19 05:21:32 +10:00
fauxpark 4bee445c2f Split rules back up into bootloaders 2020-09-19 05:21:32 +10:00
fauxpark 7921c5d9b8 A comma would be nice 2020-09-19 05:21:31 +10:00
fauxpark 72b1ff5899 Add TMK "FEED" VID to list of deprecated udev rules 2020-09-19 05:21:31 +10:00
fauxpark eee6dd3544 Fix errors 2020-09-19 05:21:31 +10:00
fauxpark 510138f525 Simplify doctor rule checking 2020-09-19 05:21:30 +10:00
fauxpark 07e37c857c Update rules in doctor.py 2020-09-19 05:21:30 +10:00
yiancar 47f8947bf5 Update vusb to match 3rd endpoint. (#9020)
* Update vusb to match 3rd endpoint.

- With the addition of https://github.com/qmk/v-usb/pull/1 a 3rd endpoint (endpoint4) becomes available.
- We can assign mouse/extrakeys to that endpoint as its a desirable feature and leave rawhid and console to compete for the 2nd endpoint.

NOTE: The version of vusb.c in future branch is older than master. Just remember that it will need a #error if both raw_hid and console are enabled at the same time.

* Final Fixes

* Update tmk_core/protocol/vusb/vusb.c

* Update tmk_core/protocol/vusb/vusb.c

* Update tmk_core/protocol/vusb/usbconfig.h

* Update tmk_core/protocol/vusb/usbconfig.h

* Update tmk_core/protocol/vusb/usbconfig.h

* Update tmk_core/protocol/vusb/usbconfig.h

* Updated vusb submodule to latest commit
2020-08-29 14:30:02 -07:00
Sergey Vlasov d00ac5dfb6 Add st-flash flash target (#9964)
* Add `st-flash` flash target

Add support for flashing the firmware via the `st-flash` utility from
the STLink Tools package (https://github.com/stlink-org/stlink).

* Add `st-flash` to the `qmk flash -b` output
2020-08-29 14:30:02 -07:00
Nick Brassel 385d49cc39 Initial work for consolidation of ChibiOS platform files (#8327)
* Initial work for consolidation of board files and default ChibiOS configs.

* Migrate F401/F411 black pills for testing.

* Add early init bootloader jump flag.

* Add support for I2C in order to use i2c_scanner keymap.

* Add F401/F411 HSE bypass to get things booting.

* Exempt "hooked" ChibiOS conf files from updater script.

* Fix up ordering for bootloader_defs file check.

* Match previous $(KEYBOARD_PATHS) value for Proton-C, updated for all board configs.
2020-08-29 14:30:02 -07:00
Ryan 0f9b7b9768
Add debug logging to run() (#9986) 2020-08-28 08:03:42 -07:00
Ryan 72d3270547
Remove DESCRIPTION (#9732) 2020-07-16 15:49:18 +10:00
Ryan db80209e69
Parse version better in qmk doctor GCC version checks (#9324) 2020-06-18 19:37:47 +01:00
Erovia a0bf235644
CLI: Add ATmega328 and ATtiny85 to supported CPUs (#9371)
* CLI: Add ATmega328 to supported CPUs

Support for ATmega328 was added in #9043.

* Update lib/python/qmk/constants.py
2020-06-17 15:45:53 -07:00
James Young fced377ac0
2020 May 30 Breaking Changes Update (#9215)
* Branch point for 2020 May 30 Breaking Change

* Migrate `ACTION_LAYER_TOGGLE` to `TG()` (#8954)

* Migrate `ACTION_MODS_ONESHOT` to `OSM()` (#8957)

* Migrate `ACTION_DEFAULT_LAYER_SET` to `DF()` (#8958)

* Migrate `ACTION_LAYER_MODS` to `LM()` (#8959)

* Migrate `ACTION_MODS_TAP_KEY` to `MT()` (#8968)

* Convert V-USB usbdrv to a submodule (#8321)

* Unify Tap Hold functions and documentation (#8348)

* Changing board names to prevent confusion (#8412)

* Move the Keyboardio Model01 to a keyboardio/ subdir (#8499)

* Move spaceman keyboards (#8830)

* Migrate miscellaneous `fn_actions` entries (#8977)

* Migrate `ACTION_MODS_KEY` to chained mod keycodes (#8979)

* Organizing my keyboards (plaid, tartan, ergoinu) (#8537)

* Refactor Lily58 to use split_common (#6260)

* Refactor zinc to use split_common (#7114)

* Add a message if bin/qmk doesn't work (#9000)

* Fix conflicting types for 'tfp_printf' (#8269)

* Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based & small internals cleanup (#6480)

* Refactor and updates to TKC1800 code (#8472)

* Switch to qmk forks for everything (#9019)

* audio refactor: replace deprecated PLAY_NOTE_ARRAY (#8484)

* Audio enable corrections (2/3) (#8903)

* Split HHKB to ANSI and JP layouts and Add VIA support for each (#8582)

* Audio enable corrections (Part 4) (#8974)

* Fix typo from PR7114 (#9171)

* Augment future branch Changelogs (#8978)

* Revert "Branch point for 2020 May 30 Breaking Change"
2020-05-30 13:14:59 -07:00
Zach White 1a5dc278bc
Fix running qmk info without any arguments (#9218) 2020-05-27 09:43:22 +02:00
Zach White a5e749d8cd
Fix the path for generated keymaps (#9213) 2020-05-26 15:18:49 -07:00
Zach White 4ee623fdd5
Fix compiling json files (#9210) 2020-05-26 14:29:48 -07:00
Zach White 751316c344
[CLI] Add a subcommand for getting information about a keyboard (#8666)
You can now use `qmk info` to get information about keyboards and keymaps.

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-05-26 13:05:41 -07:00
Erovia 6501377070
CLI: fix json2c subcommand and add/fix tests (#9206)
Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
2020-05-26 17:43:33 +02:00
Erovia 179e5c018f
CLI: Rework submodule checking (#9162) 2020-05-21 21:56:43 +02:00
Erovia 83ebbf57b3
Fix submodule check (#9155) 2020-05-21 10:15:18 +02:00
codecoffeecode f125406700
Adding unit tests for list-keymaps command (#7711)
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-Authored-By: Erovia <Erovia@users.noreply.github.com>
2020-05-16 22:47:07 +02:00