Commit Graph

78 Commits

Author SHA1 Message Date
Ryan
a0eb53cb16 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>
2021-01-12 22:46:08 -08:00
Joel Challis
63d0fe05bb Fix warning logic when running 'qmk format -a' (#11177) 2021-01-12 22:46:07 -08:00
James Young
4d8d69237d 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
2021-01-12 22:46:05 -08:00
Drashna Jael're
2dbe99b04f Brute force update CLI tools 2021-01-12 22:43:35 -08:00
Erovia
bad0b20fe5 CLI: Udev related fixes and improvements (#10736) 2021-01-12 22:43:34 -08:00
Zach White
781cc0ed51 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>
2021-01-12 22:43:34 -08:00
Ryan
4a2c2a8e8a CLI: Add qmk clean (#10785) 2021-01-12 22:43:33 -08:00
Ryan
d5a353b263 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
2021-01-12 22:43:33 -08:00
Ryan
6a285785f2 Fix CLI warning for Massdrop udev rule (#10691) 2021-01-12 22:43:32 -08:00
Erovia
5af121f815 [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>
2021-01-12 22:43:31 -08:00
Ryan
ae5ee61e7b CLI: update subcommands to use return instead of exit() (#10323) 2021-01-12 22:43:31 -08:00
Ryan
47559f7960 Consolidate udev wules into a single file 2021-01-12 22:43:28 -08:00
Drashna Jael're
12207daaff Update QMK CLI to be inline with upstream 2020-09-07 13:28:27 -07:00
Ryan
43dadc79ff Parse version better in qmk doctor GCC version checks (#9324) 2020-08-08 21:16:44 -07:00
Zach White
51912a8efc Fix running qmk info without any arguments (#9218) 2020-08-08 20:33:17 -07:00
Zach White
e85a5f04f8 Fix the path for generated keymaps (#9213) 2020-08-08 20:32:02 -07:00
Zach White
ec8c10ac1b [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-08-08 20:31:13 -07:00
Erovia
5ea1cd3526 CLI: fix json2c subcommand and add/fix tests (#9206)
Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
2020-08-08 20:29:03 -07:00
Erovia
e73966e6c2 CLI: Rework submodule checking (#9162) 2020-06-12 17:00:27 +09:00
Erovia
7a685cf795 Fix submodule check (#9155) 2020-06-12 17:00:27 +09:00
Erovia
dc99dab283 CLI: Tune doctor's udev rule checking to match #8750 2020-06-12 17:00:27 +09:00
Keenan Brock
df51ac1db1 kle2json: fix invocation error
resolves an issue while finding the file path

TypeError: unsupported operand type(s) for +: 'PosixPath' and 'str'
2020-06-12 17:00:27 +09:00
skullydazed
1dfe06affc Move everything to Python 3.6 (#8835) 2020-06-12 17:00:27 +09:00
Pete Johanson
470be280d4 CLI: Fix doctor error when can't run bin/qmk --version. (#8796) 2020-06-12 17:00:27 +09:00
Erovia
dcad318105 Don't hide for devs... 2020-06-12 17:00:27 +09:00
Erovia
874a6c9076 Rebase on master, hide some other subcommands
The list of hidden subcommands were approved by @skullydazed ;)
Currently hidden if 'user.developer' is not True:

  - cformat
  - docs
  - kle2json
  - pyformat
  - pytest
2020-06-12 17:00:27 +09:00
Erovia
2137d51432 CLI: Add development mode support
Hide development specific options and don't require dev modules unless
`user.developer` is set to `True`.
2020-06-12 17:00:27 +09:00
Ryan
50b109c133 Doctor: Add avrdude/dfu-util/dfu-programmer version printing (#8678)
* Doctor: Add avrdude/dfu-util/dfu-programmer version printing

* Extra newline

* Iterate through version checking functions
2020-06-12 17:00:27 +09:00
skullY
b1f674ca8c minor tweaks 2020-06-12 17:00:27 +09:00
Ross Baquir
e5af14f7cc Fix saving output from avrdude and dfu-programmer 2020-06-12 17:00:27 +09:00
Ross Baquir
3b2ecdedde Use version_arg in ESSENTIAL_BINARIES dict 2020-06-12 17:00:27 +09:00
Ross Baquir
0a76aa88b9 Fixes #8541 by getting version from -dumpversion then --version as fallback 2020-06-12 17:00:27 +09:00
Erovia
b656b61e58 CLI: More MSYS2 fixes (#8577)
* CLI: More MSYS2 fixes

Now I can fully setup and work with qmk_firmware on an MSYS2
installation without any errors or exceptions.

* Apply suggestions from code review

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

* Some improvements

* Remove unnecessary import

* Remove slow, unused code

Getting the version from GIT was slow on both Windows and Docker.
Until we find a better, faster way, this is removed.

* remove unused imports

* Implement @vomindoraan's suggestions

* refine how we pick the shell to use

* Apply @fauxpark's suggestions

fauxpark investigated the topic of shells in MSYS2 a bit and we come to the conclusion that the safest bet was to just use the user's shell.
Anything more just opens up more edge-cases than it solves.

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Use `platform_id` in doctor

This will bring it in line with the new code.

Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
Co-authored-by: skullY <skullydazed@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-12 17:00:27 +09:00
Erovia
0fcb6ef6d5 CLI: Hide json-keymap subcommand, as it's been deprecated. 2020-06-12 17:00:27 +09:00
skullydazed
6eb6e4669a Add decorators for determining keyboard and keymap based on current directory (#8191)
* Use pathlib everywhere we can

* Improvements based on @erovia's feedback

* rework qmk compile and qmk flash to use pathlib

* style

* Remove the subcommand_name argument from find_keyboard_keymap()

* add experimental decorators

* Create decorators for finding keyboard and keymap based on current directory.

Decorators were inspired by @Erovia's brilliant work on the proof of concept.
2020-06-12 17:00:27 +09:00
skullY
248655eedc use qmk.path.normpath to locate the output file. 2020-06-12 17:00:27 +09:00
skullydazed
ae57cdc97a Rename qmk json-keymap to qmk json2c (#8372) 2020-06-12 17:00:27 +09:00
skullydazed
928cb8ef92 Add gcc version detection to qmk doctor (#8338) 2020-06-12 17:00:27 +09:00
Mikkel Jeppesen
e28b21794f Fix os detection in OSX python 3.8 (#8187)
* Fix os detection in osx python 3.8

* oops
2020-06-12 17:00:27 +09:00
Mikkel Jeppesen
f713abefb9 Fixed OS detection such that OSX doesn't take over the world (#8248) 2020-03-26 00:42:13 -07:00
Akaash Suresh
f4b460c200 New functionality for cformat (#7893)
Fixing complexity

remove lambda

PR review fixes #1

Removing unneccesary string substitution

Handle -a and specified files

Complexity rewrite, use pathlib
2020-03-26 00:42:13 -07:00
skullydazed
72b85f52e7 Use pathlib everywhere we can (#7872)
* Use pathlib everywhere we can

* Update lib/python/qmk/path.py

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

* Update lib/python/qmk/path.py

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

* Improvements based on @erovia's feedback

* rework qmk compile and qmk flash to use pathlib

* style

* Remove the subcommand_name argument from find_keyboard_keymap()

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-03-26 00:42:12 -07:00
Mikkel Jeppesen
91d34ed5b7 Fix os detection in OSX python 3.8 (#8187)
* Fix os detection in osx python 3.8

* oops
2020-03-26 00:42:11 -07:00
Erovia
4c3335b00b CLI: add support for list_keymaps
List all the available keymaps for a given keyboard

Add bs4 to requirements.txt

UnicodeDammit is needed from bs4 for reading files.

Major update to work better with revisions

Find the community keymaps supported by each revision.

Get all buildable keymaps for each revision

The command now return all keymaps that's buildable for a
keyboard/revision. If the base directory of a keyboard does not contain
a 'rules.mk' file, nothing is returned. If the base directory contains a
'keymaps' directory, those keycaps will be returned for every revision.

Fix help message.

Try to figure out revision, drop -rv/--revision argument

Fix output format

Another major refactoring, add documentation

Move all useful functions to the qmk module and use the cli subcommand
as a wrapper around it.
Add both inline comments and documentation.

Add test for list_keymaps

Fix regex for parsing rules.mk files

I don't know why it couldn't put it together before... ¯\_(ツ)_/¯

Drop bs4 dependency, update docs, minor improvements

Return only the unique keymaps

Fix merging community and base keymaps

Major rework, no regex/globbing, more walking

Instead of using regexes and globbing to find the rules.mk and keymap.c
files, walk the directory tree to find them.
Also, do away with the concept of revision.

Fix commandline parsing and flake8 findings, rebase

Fixed commandline and config parsing. Thx @xplusplus.
Rebased on master and fixed merge conflicts.

Code cleanup, use pathlib, use pytest keyboard

Clean up checks and logics that are unnecessary due to MILC updates.
Use pathlib instead of os.path for readability.
Use the 'pytest' keyboard for the tests.
Add community layout for 'handwired/onekey/pytest' so we can test
community layouts.

Pathlib-ify qmk.keymap.list_keymaps()

fix list_keymaps for python 3.5
2020-03-26 00:42:11 -07:00
Cody Bender
ce9397836b Add QMK Compile Context Sensitivity (#6884)
* Add context sensitive compile, without config check

* Initial full working state. Plan to refactor

* Refactor loop for simplicity, add comments

* Update docs/cli.md with qmk compile examples

* Simplify path for keyboard derivation

* Update path to use path.join instead of concat

* Refactor keyboard path, the skully way

* Add in keymap folder support

* Add /layouts compile support

* Update docs/cli.md with empty compile in layouts

* Add comments to compile.py

* Update docs for clarity, and fix compile error typo

* Fix config option compile

* Fix layout compile and failure mode

* Add rules.mk check

* Fix variable names for global config

* Add in_layout priority

* Remove default fallback in favor of throw, update docs

* Add keymap folder context

* Fix formatting

* Add os import

* Convert to create_make_command

* Fix Travis lint errors

* Remove blank line with whitespace

* Add blank lines for readability

* Remove unnecessary config logic

* Update Docs to add flash

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

* Shift config precedence to MILC

Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
2020-02-26 10:15:12 +09:00
Joel Challis
0ca620a7f6 Fix cformat processing files within ignore folders (#8063) 2020-02-26 10:15:12 +09:00
Mikkel Jeppesen
b1f101030b Qmk doctor os check to support newer msys2/w10 installations (#8031)
* Fixed OS detection on newer MSYS installations

* made OS sting lower case
2020-02-26 10:15:12 +09:00
skullydazed
41b518c55f Beef up how qmk doctor works. (#7375)
* Beef up how `qmk doctor` works.

* improve the `git submodule status` parsing. h/t @erovia

* Fix whitespace and imports

* yapf

* Add documentation for the new doctor functionality

* Replace type_unchanged() with str()

* remove unused modules

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

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

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-02-26 10:15:12 +09:00
Joel Challis
72c5e4958c Align cformat rules with current CI implementation (#7936)
* Align cformat rules with current CI implementation

* Optimise file walking
2020-02-26 10:15:12 +09:00
skullY
06e5032ad3 yapf and style 2020-02-26 10:15:12 +09:00