Commit Graph

309 Commits (550c9a315f146bc30fc828726d977f3f41477d52)

Author SHA1 Message Date
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
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
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
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
Erovia 6b54f3ce1c CLI: Tune doctor's udev rule checking to match #8750 2020-05-15 12:59:46 -07:00
Keenan Brock a47915d2d2 kle2json: fix invocation error
resolves an issue while finding the file path

TypeError: unsupported operand type(s) for +: 'PosixPath' and 'str'
2020-04-26 12:19:37 -04:00
skullydazed 66d94dc22a
Move everything to Python 3.6 (#8835) 2020-04-18 22:00:56 +02:00
Pete Johanson f9bb9ef0b8
CLI: Fix doctor error when can't run `bin/qmk --version`. (#8796) 2020-04-14 16:58:00 +02:00
Pete Johanson 6fb048fdaf CLI: Use `shutil.which` to detect gmake, instead of OS check. 2020-04-13 10:48:27 -07:00
Pete Johanson 06b571aa53 CLI: Invoke gmake on FreeBSD when using `qmk compile`.
* Current makefiles aren't portable, so invoke gmake on FreeBSD.
2020-04-13 10:48:27 -07:00
Erovia 38f14c4174 Don't hide for devs... 2020-04-08 09:31:14 -07:00
Erovia 5cfc3ce02e 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-04-08 09:31:14 -07:00
Erovia c61f016fa4 CLI: Add development mode support
Hide development specific options and don't require dev modules unless
`user.developer` is set to `True`.
2020-04-08 09:31:14 -07:00
skullY b4ef72423e Correctly handle json keymaps with ANY() 2020-04-07 01:34:21 -07:00
Ryan 6de77141a4
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-04-05 18:11:55 +02:00
skullY 2f15cb2126 minor tweaks 2020-04-04 12:43:13 -07:00
Ross Baquir 8af156d976 Fix saving output from avrdude and dfu-programmer 2020-04-04 12:43:13 -07:00
Ross Baquir 70b5015162 Use version_arg in ESSENTIAL_BINARIES dict 2020-04-04 12:43:13 -07:00
Ross Baquir 3fad3854d6 Fixes #8541 by getting version from -dumpversion then --version as fallback 2020-04-04 12:43:13 -07:00
Erovia c89c084146
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-03-29 14:29:44 +02:00
Erovia 8123dd2649 CLI: Hide json-keymap subcommand, as it's been deprecated. 2020-03-18 10:17:23 -07:00
skullydazed f81b0e35a6
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-03-13 15:47:04 -07:00
skullY 799acb2802 use qmk.path.normpath to locate the output file. 2020-03-12 13:48:17 -07:00
skullydazed 2a05d433c9
Rename qmk json-keymap to qmk json2c (#8372) 2020-03-10 13:51:19 -07:00
skullydazed cf40c33c90
Add gcc version detection to qmk doctor (#8338) 2020-03-08 09:21:45 -07:00
Mikkel Jeppesen 4667bc554e
Fixed OS detection such that OSX doesn't take over the world (#8248) 2020-02-26 10:12:13 +01:00
Akaash Suresh b353028ea5
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-02-22 20:57:19 -08:00
skullydazed c66930445f
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-02-17 11:42:11 -08:00
Mikkel Jeppesen 0d3f0889c5
Fix os detection in OSX python 3.8 (#8187)
* Fix os detection in osx python 3.8

* oops
2020-02-17 12:18:49 +01:00
skullY 58101cbb73 fix list_keymaps for python 3.5 2020-02-15 15:19:03 -08:00
Erovia 512261b343 Pathlib-ify qmk.keymap.list_keymaps() 2020-02-15 15:19:03 -08:00
Erovia 3db41817e0 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.
2020-02-15 15:19:03 -08:00