<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qmk/shell.nix, branch master</title>
<subtitle>Custom split ortholinear mechanical keyboard with rollerball mouse. Firmware. https://blog.node5.net/custom-keyboard
</subtitle>
<id>http://git.node5.net/firmware/qmk/atom?h=master</id>
<link rel='self' href='http://git.node5.net/firmware/qmk/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.node5.net/firmware/qmk/'/>
<updated>2022-08-23T01:59:33+00:00</updated>
<entry>
<title>Nix shell updates for `develop` (#18131)</title>
<updated>2022-08-23T01:59:33+00:00</updated>
<author>
<name>Sergey Vlasov</name>
<email>sigprof@gmail.com</email>
</author>
<published>2022-08-23T01:59:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.node5.net/firmware/qmk/commit/?id=7c0e5ce91790e2639ae0868c5cd1185cdc580acd'/>
<id>urn:sha1:7c0e5ce91790e2639ae0868c5cd1185cdc580acd</id>
<content type='text'>
* 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` &gt;= 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` &gt;= 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` &gt;= 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 -&gt; 1.4.1 (but this module is not actually used,
  because the corresponding dependency of `pytest` is win32-only)
- `attrs`: 21.4.0 -&gt; 22.1.0
- `colorama`: 0.4.4 -&gt; 0.4.5
- `coverage`: 6.4 -&gt; none
- `dotty-dict`: none -&gt; 1.3.1 (used instead of `qmk-dotty-dict`)
- `editables`: none -&gt; 0.3
- `flake8`: 4.0.1 -&gt; 5.0.4
- `flake8-polyfill`: 1.0.2 -&gt; none
- `flit-core`: none -&gt; 3.7.1
- `hatch-fancy-pypi-readme`: none -&gt; 22.3.0
- `hatch-vcs`: none -&gt; 0.2.0
- `hatchling`: none -&gt; 1.8.0
- `hjson`: 3.0.2 -&gt; 3.1.0
- `importlib-resources`: 5.7.1 -&gt; 5.9.0
- `iniconfig`: none -&gt; 1.1.1
- `jsonschema`: 4.5.1 -&gt; 4.14.0
- `mccabe`: 0.6.1 -&gt; 0.7.0
- `nose2`: 0.11.0 -&gt; 0.12.0
- `packaging`: none -&gt; 21.3
- `pathspec`: none -&gt; 0.9.0
- `pep8-naming`: 0.12.1 -&gt; 0.13.2
- `pillow`: 9.1.1 -&gt; 9.2.0
- `pkgutil-resolve-name`: none -&gt; 1.3.10
- `pluggy`: none -&gt; 1.0.0
- `poetry-core`: none -&gt; 1.0.8
- `py`: none -&gt; 1.11.0
- `pycodestyle`: 2.8.0 -&gt; 2.9.1
- `pyflakes`: 2.4.0 -&gt; 2.5.0
- `pygments`: 2.12.0 -&gt; 2.13.0
- `pyparsing`: none -&gt; 3.0.9
- `pyserial`: none -&gt; 3.5
- `pytest`: none -&gt; 7.1.2
- `qmk`: 1.1.0 -&gt; 1.1.1
- `qmk-dotty-dict`: 1.3.0.post1 -&gt; none (replaced by `dotty-dict`)
- `setuptools-scm`: none -&gt; 7.0.5
- `tomli`: none -&gt; 2.0.1
- `typing-extensions`: none -&gt; 4.3.0
- `zipp`: 3.8.0 -&gt; 3.8.1</content>
</entry>
<entry>
<title>Remove Nixpkgs-provided `poetry` from the environment (#17673)</title>
<updated>2022-07-18T19:52:55+00:00</updated>
<author>
<name>Sergey Vlasov</name>
<email>sigprof@gmail.com</email>
</author>
<published>2022-07-18T19:52:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.node5.net/firmware/qmk/commit/?id=627e35b7ac61e294c7c34a693d8191cded68136e'/>
<id>urn:sha1:627e35b7ac61e294c7c34a693d8191cded68136e</id>
<content type='text'>
The `poetry` package from the used Nixpkgs snapshot triggers the regex
compatibility issue in Nix &gt;= 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.</content>
</entry>
<entry>
<title>Nix shell updates (#17243)</title>
<updated>2022-05-31T04:08:23+00:00</updated>
<author>
<name>Sergey Vlasov</name>
<email>sigprof@gmail.com</email>
</author>
<published>2022-05-31T04:08:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.node5.net/firmware/qmk/commit/?id=650be92cf96440920ebf1079c11f2f36c4a9edc1'/>
<id>urn:sha1:650be92cf96440920ebf1079c11f2f36c4a9edc1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow overriding Niv inputs in shell.nix (#16602)</title>
<updated>2022-05-12T06:49:15+00:00</updated>
<author>
<name>Astrid Yu</name>
<email>astrid@astrid.tech</email>
</author>
<published>2022-05-12T06:49:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.node5.net/firmware/qmk/commit/?id=c0ab4ed539bad0a490e19ee86c093d3c3f5e02c2'/>
<id>urn:sha1:c0ab4ed539bad0a490e19ee86c093d3c3f5e02c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove bin/qmk (#14231)</title>
<updated>2021-08-29T23:50:22+00:00</updated>
<author>
<name>Zach White</name>
<email>skullydazed@gmail.com</email>
</author>
<published>2021-08-29T23:50:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.node5.net/firmware/qmk/commit/?id=596c4a1f87b46e1858c7d3630802eec741d1cc28'/>
<id>urn:sha1:596c4a1f87b46e1858c7d3630802eec741d1cc28</id>
<content type='text'>
* Remove the bin/qmk script

* remove bin/qmk from workflows</content>
</entry>
<entry>
<title>Update the nix-shell environment (#13316)</title>
<updated>2021-08-29T21:24:43+00:00</updated>
<author>
<name>Sergey Vlasov</name>
<email>sigprof@gmail.com</email>
</author>
<published>2021-08-29T21:24:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.node5.net/firmware/qmk/commit/?id=a1866a962c21a6e15f40cbde2bd09c0ff42f1454'/>
<id>urn:sha1:a1866a962c21a6e15f40cbde2bd09c0ff42f1454</id>
<content type='text'>
* 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 -&gt; no longer used
 - milc: 1.4.2 -&gt; 1.6.2
 - pep8-naming: 0.11.1 -&gt; 0.12.1
 - pygments: 2.9.0 -&gt; 2.10.0
 - pyrsistent: 0.17.3 -&gt; 0.18.0
 - pyusb: 1.1.1 -&gt; 1.2.1
 - setuptools-scm: 6.0.1 -&gt; no longer used
 - qmk: 0.1.0 -&gt; 1.0.0
 - qmk-dotty-dict: not used -&gt; 1.3.0.post1
 - yapf: 0.30.0 -&gt; 0.31.0

Note to self: The command to update Python dependencies changed to:

    ( cd util/nix &amp;&amp; nix run 'nixpkgs#poetry' -- update --lock )</content>
</entry>
<entry>
<title>Move nix folder alongside vagrant (#14132)</title>
<updated>2021-08-25T14:27:48+00:00</updated>
<author>
<name>Joel Challis</name>
<email>git@zvecr.com</email>
</author>
<published>2021-08-25T14:27:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.node5.net/firmware/qmk/commit/?id=527b1e52aa0c87d49b90ea18d7d3ca9728aaa9c2'/>
<id>urn:sha1:527b1e52aa0c87d49b90ea18d7d3ca9728aaa9c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update Python dependencies for Nix (#12855)</title>
<updated>2021-06-20T13:30:16+00:00</updated>
<author>
<name>Sergey Vlasov</name>
<email>sigprof@gmail.com</email>
</author>
<published>2021-06-20T13:30:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.node5.net/firmware/qmk/commit/?id=7ab490254364e3c4d91748bbd17e8475ad090979'/>
<id>urn:sha1:7ab490254364e3c4d91748bbd17e8475ad090979</id>
<content type='text'>
Co-authored-by: Steve Purcell &lt;steve@sanityinc.com&gt;</content>
</entry>
<entry>
<title>[nix] Use niv and poetry2nix to more easily manage dependencies (#11181)</title>
<updated>2021-04-03T15:05:46+00:00</updated>
<author>
<name>Steve Purcell</name>
<email>steve@sanityinc.com</email>
</author>
<published>2021-04-03T15:05:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.node5.net/firmware/qmk/commit/?id=d91938c19dd65af88713b9deffe95794ed78e889'/>
<id>urn:sha1:d91938c19dd65af88713b9deffe95794ed78e889</id>
<content type='text'>
* [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</content>
</entry>
<entry>
<title>update shell.nix (#12295)</title>
<updated>2021-03-25T11:45:55+00:00</updated>
<author>
<name>André Silva</name>
<email>123550+andresilva@users.noreply.github.com</email>
</author>
<published>2021-03-25T11:45:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.node5.net/firmware/qmk/commit/?id=ef872595ae3c89bd2f59f18a9053af3536240bac'/>
<id>urn:sha1:ef872595ae3c89bd2f59f18a9053af3536240bac</id>
<content type='text'>
</content>
</entry>
</feed>
