Commit Graph

345 Commits (196b71ad531c24c7c9e7bcdb8e59f38ea1c60afe)

Author SHA1 Message Date
Sergey Vlasov 7c0e5ce917
Nix shell updates for `develop` (#18131)
* shell.nix: Update `tomlkit` to 0.11.4 using a Nixpkgs overlay

The used Nixpkgs snapshot contains `tomlkit` version 0.7.0, which is
affected by https://www.github.com/sdispater/tomlkit/issues/148; that
bug is triggered by `pyproject.toml` from `jsonschema` >= 4.11.0,
preventing the build of that module.

Just adding `tomlkit = "*"` to the `[tool.poetry.dev-dependencies]`
section of `nix/pyproject.toml` does not fix the `jsonschema` build,
because `makeRemoveSpecialDependenciesHook` inside `poetry2nix` is not
affected by `nix/pyproject.toml`.  Add a Nixpkgs overlay which updates
the `tomlkit` Python module globally, so that `poetry2nix` would also
use the updated version internally.

* shell.nix: Bump `poetry2nix` to the most recent version

The new `poetry2nix` version includes overrides which are required for
recent versions of some Python packages (in particular, `jsonschema` and
`dotty-dict`).

* shell.nix: Bump QMK CLI to 1.1.1; update other Python deps

Update `pyproject.toml` to match `requirements*.txt`:

- add `pyserial = "*"`
- replace `qmk-dotty-dict = "*"` with `dotty-dict = "*"` (#18117, also
  required for compatibility with `qmk` 1.1.1, where this replacement
  had already been performed)

Add build dependencies of various Python modules to `pyproject.toml`:

- `hatchling`, `hatch-vcs`, `hatch-fancy-pypi-readme` (required by
  `jsonschema` >= 4.11.0)
- `pytest` (a newer version is required to solve the dependency conflict
  with the `hatchling` module due to the upper bound on `pluggy`)
- `flit-core` (a more recent version is required to build `tomli`)
- `poetry-core` (required for `dotty-dict` >= 1.3.1, and the version
  from Nixpkgs does not build on Darwin due to NixOS/nix#4758)

Update `poetry.lock` to use the most recent versions of Python modules.

The complete list of Python module updates as listed in `poetry.lock`
(note that other modules might be present in the Python environment,
e.g., if they come from Nixpkgs):

- `atomicwrites`: none -> 1.4.1 (but this module is not actually used,
  because the corresponding dependency of `pytest` is win32-only)
- `attrs`: 21.4.0 -> 22.1.0
- `colorama`: 0.4.4 -> 0.4.5
- `coverage`: 6.4 -> none
- `dotty-dict`: none -> 1.3.1 (used instead of `qmk-dotty-dict`)
- `editables`: none -> 0.3
- `flake8`: 4.0.1 -> 5.0.4
- `flake8-polyfill`: 1.0.2 -> none
- `flit-core`: none -> 3.7.1
- `hatch-fancy-pypi-readme`: none -> 22.3.0
- `hatch-vcs`: none -> 0.2.0
- `hatchling`: none -> 1.8.0
- `hjson`: 3.0.2 -> 3.1.0
- `importlib-resources`: 5.7.1 -> 5.9.0
- `iniconfig`: none -> 1.1.1
- `jsonschema`: 4.5.1 -> 4.14.0
- `mccabe`: 0.6.1 -> 0.7.0
- `nose2`: 0.11.0 -> 0.12.0
- `packaging`: none -> 21.3
- `pathspec`: none -> 0.9.0
- `pep8-naming`: 0.12.1 -> 0.13.2
- `pillow`: 9.1.1 -> 9.2.0
- `pkgutil-resolve-name`: none -> 1.3.10
- `pluggy`: none -> 1.0.0
- `poetry-core`: none -> 1.0.8
- `py`: none -> 1.11.0
- `pycodestyle`: 2.8.0 -> 2.9.1
- `pyflakes`: 2.4.0 -> 2.5.0
- `pygments`: 2.12.0 -> 2.13.0
- `pyparsing`: none -> 3.0.9
- `pyserial`: none -> 3.5
- `pytest`: none -> 7.1.2
- `qmk`: 1.1.0 -> 1.1.1
- `qmk-dotty-dict`: 1.3.0.post1 -> none (replaced by `dotty-dict`)
- `setuptools-scm`: none -> 7.0.5
- `tomli`: none -> 2.0.1
- `typing-extensions`: none -> 4.3.0
- `zipp`: 3.8.0 -> 3.8.1
2022-08-23 02:59:33 +01:00
Erovia 5e2ffe7d8f
CLI: Teaching the CLI to flash binaries (#16584)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-08-20 15:39:19 +10:00
QMK Bot ee664e0960 Merge remote-tracking branch 'origin/master' into develop 2022-08-13 13:24:07 +00:00
Nick Brassel dccb8ff7d6
Remove old submodules if present (#17930) 2022-08-13 23:23:32 +10:00
QMK Bot 11299b337b Merge remote-tracking branch 'origin/master' into develop 2022-07-02 14:10:26 +00:00
Ryan 25033d5d9e
MSYS2 install: use MinGW python-qmk package (#17302)
* MSYS2 install: use MinGW python-qmk package

* Add missing flashers

* Note VC Redist for manual install

* VC Redist no longer needed
2022-07-02 15:08:05 +01:00
Joel Challis a98f69850f
Also check /run/media/ for uf2 drives (#17517) 2022-06-30 23:29:56 +01:00
QMK Bot 25b5c2c538 Merge remote-tracking branch 'origin/master' into develop 2022-06-23 01:23:52 +00:00
Dasky aaaf3ff66a
Fix 0 delta results in size_regression.sh (#17457) 2022-06-23 11:23:13 +10:00
Nick Brassel 999b91fbd9
SPI Bugfix for ChibiOS 21.11.1 -- also rollback AW20216 mode change issue. (#17371) 2022-06-17 08:03:38 +10:00
Sergey Vlasov 650be92cf9
Nix shell updates (#17243) 2022-05-31 14:08:23 +10:00
zvecr 6342354cf6 Disable python formatting for some files 2022-05-24 02:35:59 +01:00
Ryan 7177434a02
MSYS2 install: add some Python dependencies through Pacman (#17025) 2022-05-07 13:01:46 +01:00
QMK Bot 5a6c2711fa Merge remote-tracking branch 'origin/master' into develop 2022-05-05 02:56:19 +00:00
Mateusz Mojsiejuk 11e20fa0c9
Add missing dependency for qmk setup on Fedora (#17003) 2022-05-04 19:55:47 -07:00
Stefan Kerkmann 2bface8f89
Add flash target for UF2 bootloaders (#16525) 2022-03-07 08:59:06 -08: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
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 a239051c4a
Misc size regression script improvements. (#16268)
* Misc size regression script improvements.

- Sets environment variable SIZE_REGRESSION_EXECUTING during execution
  so hook scripts like `post-checkout` may skip processing.
- Forces checkout of the target branch, including removal of all
  temporary object files in the process.
- Prints out a warning on exit stating that the git repository is in an
  indeterminate state, and the user needs to swap back to whatever
  intended branch they were working with originally.

* Remove `git clean`
2022-02-08 16:25:55 +00:00
Nick Brassel 5f23345886
Add a script that simplifies running commands under docker. (#16028) 2022-01-24 23:58:53 +00:00
QMK Bot cfc136f198 Merge remote-tracking branch 'origin/master' into develop 2022-01-14 14:47:32 +00:00
Ryan 61f0292f11
Remove network drive mapping comment for WSL (#15871) 2022-01-14 14:46:47 +00:00
Nick Brassel 30f0bbe079
Add support for 21.11.x, remove 21.6.x as ChibiOS "canceled" it. (#15435) 2021-12-09 07:42:21 +11:00
Nick Brassel b04f66f245
Add script for performing compilation size regression investigations. (#15303)
* Add script for performing compilation size regression investigations.

* Print deltas

* Correct scoping.

* Concurrency control

* Job count control, skip zeros (unless no build output), fix usage.

* Add usage under -h arg.

* Updated usage output.

* Copyright header.
2021-11-27 09:11:03 +11:00
QMK Bot b47bdee93c Merge remote-tracking branch 'origin/master' into develop 2021-11-20 22:01:53 +00:00
Sergey Vlasov 2d71ac7541
Add Keyboardio Atreus 2 Bootloader to udev rules (#15241)
The Keyboardio Atreus 2 Bootloader is a clone of the Caterina bootloader
with different USB VID:PID values (1209:2302):

  https://github.com/keyboardio/Atreus2-Bootloader
2021-11-20 22:01:22 +00:00
Stefan Kerkmann 5c2052fd47
[Core] RISC-V toolchain and picolibc fixes (#15109)
* [Core] Fix RISC-V toolchain installation

The risc-v toolchain is only available on distributions based on Debian 11+
so we check for their availability before installing them.

* [Core] Fix heap symbols and syscalls for picolibc

picolibc internally uses __heap_start and __heap_end instead of the
defacto chibios linker script standard __heap_base__ and __heap_end__
therefore we introduce these symbols as an alias. Usually all memory
used within QMK is statically allocated, but some algorithms make usage
of malloc and friends.

Also the timeval struct is not defined by picolibc for syscalls, therefore it
is declared as stub.
2021-11-20 20:04:16 +00: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
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
Nick Brassel b2a186cf92
Purge uGFX. (#14720)
* Purge uGFX.

* Remove remnants of visualizer.

* Remove remnants of uGFX.
2021-10-07 10:57:48 +11: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
Zach White b705020daf
move everything from qmkfm/base_container to qmkfm/qmk_cli (#14230) 2021-08-29 16:41:56 -07:00
Sergey Vlasov a1866a962c
Update the nix-shell environment (#13316)
* Nix: Allow calls to `bin/qmk` even when the build was started by `qmk`

The `$PATH` modifications performed by the Nix wrapper for the `qmk`
executable prevent `bin/qmk` from working properly (the changed `$PATH`
contains a wrong `python3` executable which does not have the needed
Python modules in its module path).  As a workaround, disable the
generation of that wrapper for the `qmk` Python package (there is yet
another wrapper generated while building the Python environment, which
would still set the Python module path properly when running `qmk`).

Although `bin/qmk` is officially deprecated, QMK CLI still invokes it in
some cases (at least `qmk doctor` and `qmk pytest`), therefore keeping
these invocations working is useful.

* Nix: Update `util/nix/pyproject.toml` to match `requirements*.txt`

Update the Python dependency information used by Poetry to match the
current state of the qmk_firmware code.

* Nix: Bump QMK CLI dependency to 1.0.0; bump other Python deps

Update Python dependencies for nix-shell to the most recent releases:

 - dotty-dict: 1.3.0 -> no longer used
 - milc: 1.4.2 -> 1.6.2
 - pep8-naming: 0.11.1 -> 0.12.1
 - pygments: 2.9.0 -> 2.10.0
 - pyrsistent: 0.17.3 -> 0.18.0
 - pyusb: 1.1.1 -> 1.2.1
 - setuptools-scm: 6.0.1 -> no longer used
 - qmk: 0.1.0 -> 1.0.0
 - qmk-dotty-dict: not used -> 1.3.0.post1
 - yapf: 0.30.0 -> 0.31.0

Note to self: The command to update Python dependencies changed to:

    ( cd util/nix && nix run 'nixpkgs#poetry' -- update --lock )
2021-08-29 22:24:43 +01:00
Nick Brassel dd8922d482
Fixup upstream paths for submodules. (#14205) 2021-08-29 10:51:53 +10:00
Joel Challis 527b1e52aa
Move nix folder alongside vagrant (#14132) 2021-08-25 15:27:48 +01: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
Donald Kjer e756a21636
eeprom_stm32: implement high density wear leveling (#12567)
* eeprom_stm32: implement wear leveling
Update EECONFIG_MAGIC_NUMBER
eeprom_stm32: check emulated eeprom size is large enough
* eeprom_stm32: Increasing simulated EEPROM density on stm32
* Adding utility script to decode emulated eeprom
* Adding unit tests
* Applying qmk cformat changes
* cleaned up flash mocking
* Fix for stm32eeprom_parser.py checking via signature with wrong base
* Fix for nk65 keyboard

Co-authored-by: Ilya Zhuravlev <whatever@xyz.is>
Co-authored-by: zvecr <git@zvecr.com>
2021-08-23 23:15:34 +01:00
QMK Bot f043b8be38 Merge remote-tracking branch 'origin/master' into develop 2021-08-22 21:43:07 +00:00
Bror Winther aa28335651
Add fix for brew upgrade (#12921)
Add a fix for `brew upgrade` so only formulae is upgraded and not casks
2021-08-22 14:42:34 -07:00
QMK Bot ce379ef458 Merge remote-tracking branch 'origin/master' into develop 2021-08-20 22:32:01 +00:00
Spaceman c71d67ba3f
[Core] [Docs] Remove travis-ci references (#13916) 2021-08-20 23:31:26 +01:00
QMK Bot db316716c1 Merge remote-tracking branch 'origin/master' into develop 2021-08-19 16:12:04 +00:00
Ryan 972f8ba69a
Fix AT90USB64/128 bootloaders (#14064) 2021-08-19 17:11:20 +01: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
QMK Bot 80cb96bb15 Merge remote-tracking branch 'origin/master' into develop 2021-08-10 23:56:43 +00:00
Eric S. Raymond 817fcfdc9a
Fix shell port bug in computation of QMK_FIRMWARE_DIR (#13950)
Previous code would fail if cd echoes the tathet directory to stdout,
which is pretty common.  Redirecting its output to /dev/null
solves the problem.
2021-08-11 00:56:08 +01:00
Nick Brassel f24bca5bb3
Update ChibiOS-Contrib, mirroring script. (#13896) 2021-08-06 16:40:12 +10: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 150f4ef5dc Merge remote-tracking branch 'origin/master' into develop 2021-07-06 14:56:47 +00:00