25 Commits

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
Sergey Vlasov
627e35b7ac
Remove Nixpkgs-provided poetry from the environment (#17673)
The `poetry` package from the used Nixpkgs snapshot triggers the regex
compatibility issue in Nix >= 2.10.0 binaries for `x86_64-darwin`:

    https://www.github.com/NixOS/nix/issues/4758

Remove the `poetry` package from the Nix shell environment for now
(it is not really required to compile QMK, only to develop the Nix shell
environment itself).

In addition, all `poetry` version earlier than 1.1.14 became effectively
non-functional after a breaking change of the PyPI JSON API:

    https://www.github.com/python-poetry/poetry/pull/5973

Updating the `poetry` package is not trivial (just adding it it to
`pyproject.toml` does not work due to dependency version conflicts with
other modules), therefore removing it seems to be the easiest solution
to restore compatibility with new Nix versions while not creating any
major inconvenience for QMK users.
2022-07-18 22:52:55 +03:00
Sergey Vlasov
650be92cf9
Nix shell updates (#17243) 2022-05-31 14:08:23 +10:00
Astrid Yu
c0ab4ed539
Allow overriding Niv inputs in shell.nix (#16602) 2022-05-12 09:49:15 +03: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
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
Joel Challis
527b1e52aa
Move nix folder alongside vagrant (#14132) 2021-08-25 15:27:48 +01:00
Sergey Vlasov
7ab4902543
Update Python dependencies for Nix (#12855)
Co-authored-by: Steve Purcell <steve@sanityinc.com>
2021-06-20 14:30:16 +01:00
Steve Purcell
d91938c19d
[nix] Use niv and poetry2nix to more easily manage dependencies (#11181)
* [nix] Update nixpkgs to avoid issues with Big Sur

The older nixpkgs snapshot did not contain nix changes to the
compiler/linker hooks that are necessary for compatibility with MacOS
Big Sur. The fix is simply to update to a newer snapshot.

* [nix] Add a poetry manifest and use poetry to build the Python env

* [nix] Use niv to manage upstream sources like nixpkgs

* [nix] Update to newer nixpkgs snapshot

* [nix] Bump python package versions
2021-04-03 08:05:46 -07:00
André Silva
ef872595ae
update shell.nix (#12295) 2021-03-25 22:45:55 +11:00
André Silva
345a041cf5
allow customizing decrease delay of rgb heatmap (#11322)
* allow customizing decrease delay of rgb heatmap

* rename rgb typing heatmap decrease delay variable

* address review comments

* nix-shell: add clang-tools required for formatting the C code

* heatmap: use real timer to track decrement rate

* heatmap: fix ifndef var name typo

* heatmap: add docs

* Update docs/feature_rgb_matrix.md

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-01-14 11:29:00 -08:00
Sergey Shulepov
e941f04891 Fix macOS build 2021-01-11 08:05:28 -08:00
André Silva
cc08e3082e
nix-shell: add milc dependency (#11086) 2020-11-30 21:03:03 +00:00
André Silva
fe50bee988
Update shell.nix (#10712)
* nix-shell: update nixpkgs reference

* nix-shell: add missing python dependency
2020-10-23 17:50:05 +11:00
Steve Purcell
2b55c419ea
shell.nix improvements, and fix problems on Darwin (#9551) 2020-07-08 21:50:01 +01:00
Thorsten
e58ab6d326
update shell.nix (#8910)
* now uses gcc 8.4
* fixes building boards with adafruit feather (in my case pancake)
2020-06-20 22:03:06 +01:00
Nick Brassel
b438c6f8ea
Fix up Arm builds with nix-shell. (#8312) 2020-03-07 03:05:51 +11:00
Jake Waksbaum
8dc9764f31 Fix shell.nix by pinning nixpkgs (#6213) 2019-11-14 12:00:36 -08:00
Francis St-Amour
e05b32d894 add python3 to shell.nix (#6774) 2019-09-21 11:59:18 -07:00
Roman Volosatovs
72df7b4c19 shell.nix: Downgrade gcc-arm-embedded (#5913)
Temporary fix for https://github.com/qmk/qmk_firmware/issues/5868
2019-07-16 00:35:15 -07:00
Michishige Kaito
5e52eda0ca shell.nix: Packages relocated in upstream cleanup 2018-12-22 15:09:58 -08:00
Jack Henahan
2b23072c34 Pin avr-gcc in shell.nix pending release of 8.3.0 (#3922)
* Pin avr-gcc in shell.nix pending release of 8.3.0

There's apparently a critical bug in 8.2.0, which is now the nixpkgs default. This change overrides that default in favor of the known good version. Once 8.3.0 is the default, the override can be dropped.

* Arch/Manjaro fix
2018-09-25 15:16:35 -07:00
Jon Allen
1f5d5e5314 allow building with nix on darwin
add avrdude do dependency list
2018-07-15 13:58:50 -04:00
Roman Volosatovs
833ec84921 shell.nix: add teensy loader 2017-11-26 17:55:24 -05:00
Lukas Werling
1ad941e984 Add shell.nix for NixOS users 2017-09-25 13:14:20 -04:00