<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qmk_sweep_skeletyl/lib/python/qmk/build_targets.py, branch master</title>
<subtitle>my qmk configs</subtitle>
<id>http://archive.git.mgrote.net/qmk_sweep_skeletyl/atom?h=master</id>
<link rel='self' href='http://archive.git.mgrote.net/qmk_sweep_skeletyl/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://archive.git.mgrote.net/qmk_sweep_skeletyl/'/>
<updated>2025-05-05T23:52:41+00:00</updated>
<entry>
<title>Deprecate `qmk generate-compilation-database`. (#25237)</title>
<updated>2025-05-05T23:52:41+00:00</updated>
<author>
<name>Nick Brassel</name>
</author>
<published>2025-05-05T23:52:41+00:00</published>
<link rel='alternate' type='text/html' href='http://archive.git.mgrote.net/qmk_sweep_skeletyl/commit/?id=ac991405d0c9f47e815786f4732edd00d0f4f571'/>
<id>urn:sha1:ac991405d0c9f47e815786f4732edd00d0f4f571</id>
<content type='text'>
</content>
</entry>
<entry>
<title>More Windows-&gt;Unix style path fixes. (#25119)</title>
<updated>2025-04-09T00:15:14+00:00</updated>
<author>
<name>Nick Brassel</name>
</author>
<published>2025-04-09T00:15:14+00:00</published>
<link rel='alternate' type='text/html' href='http://archive.git.mgrote.net/qmk_sweep_skeletyl/commit/?id=575abc48a3064a464caaa6febf0c65215c3eb1d0'/>
<id>urn:sha1:575abc48a3064a464caaa6febf0c65215c3eb1d0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Userspace: add support for adding environment variables during build (#22887)</title>
<updated>2024-08-12T12:34:22+00:00</updated>
<author>
<name>Nick Brassel</name>
</author>
<published>2024-08-12T12:34:22+00:00</published>
<link rel='alternate' type='text/html' href='http://archive.git.mgrote.net/qmk_sweep_skeletyl/commit/?id=380e0c9cad72ac29f858bef85c8b8eb35b6931f0'/>
<id>urn:sha1:380e0c9cad72ac29f858bef85c8b8eb35b6931f0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Ensure `qmk generate-compilation-database` copies to userspace as well. (#23129)</title>
<updated>2024-02-22T12:47:42+00:00</updated>
<author>
<name>Nick Brassel</name>
</author>
<published>2024-02-22T12:47:42+00:00</published>
<link rel='alternate' type='text/html' href='http://archive.git.mgrote.net/qmk_sweep_skeletyl/commit/?id=56802f506cee22730e004b0695d87e9e9c5983af'/>
<id>urn:sha1:56802f506cee22730e004b0695d87e9e9c5983af</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Copy `compile_commands.json` to userspace, if in use. (#22925)</title>
<updated>2024-01-19T21:11:17+00:00</updated>
<author>
<name>Nick Brassel</name>
</author>
<published>2024-01-19T21:11:17+00:00</published>
<link rel='alternate' type='text/html' href='http://archive.git.mgrote.net/qmk_sweep_skeletyl/commit/?id=62d19fc2ac42b39a4f32683c7e8c5ad95b566b24'/>
<id>urn:sha1:62d19fc2ac42b39a4f32683c7e8c5ad95b566b24</id>
<content type='text'>
</content>
</entry>
<entry>
<title>QMK Userspace (#22222)</title>
<updated>2023-11-27T20:53:43+00:00</updated>
<author>
<name>Nick Brassel</name>
</author>
<published>2023-11-27T20:53:43+00:00</published>
<link rel='alternate' type='text/html' href='http://archive.git.mgrote.net/qmk_sweep_skeletyl/commit/?id=5501e804ff8d41ce656061b91896c4ac8c681d78'/>
<id>urn:sha1:5501e804ff8d41ce656061b91896c4ac8c681d78</id>
<content type='text'>
Co-authored-by: Duncan Sutherland &lt;dunk2k_2000@hotmail.com&gt;
</content>
</entry>
<entry>
<title>[CLI] Remove duplicates from search results (#22528)</title>
<updated>2023-11-22T01:08:26+00:00</updated>
<author>
<name>Nick Brassel</name>
</author>
<published>2023-11-22T01:08:26+00:00</published>
<link rel='alternate' type='text/html' href='http://archive.git.mgrote.net/qmk_sweep_skeletyl/commit/?id=0fcd13f55225c4545d828e1898c219ef3cae578f'/>
<id>urn:sha1:0fcd13f55225c4545d828e1898c219ef3cae578f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix `qmk find` failure due to circular imports (#22523)</title>
<updated>2023-11-21T15:05:29+00:00</updated>
<author>
<name>Sergey Vlasov</name>
</author>
<published>2023-11-21T15:05:29+00:00</published>
<link rel='alternate' type='text/html' href='http://archive.git.mgrote.net/qmk_sweep_skeletyl/commit/?id=7e27d72cbc9af11b5de3f0c30810a0b95267acee'/>
<id>urn:sha1:7e27d72cbc9af11b5de3f0c30810a0b95267acee</id>
<content type='text'>
There was an import cycle in the Python modules:

  - `qmk.build_targets` imported `qmk.cli.generate.compilation_database`;
  - importing `qmk.cli.generate.compilation_database` requires
    initializing `qmk.cli` first;
  - the initialization of `qmk.cli` imported the modules for all CLI
    commands;
  - `qmk.cli.compile` imported `qmk.build_targets`.

This cycle did not matter in most cases, because `qmk.cli` was imported
first, and in that case importing `qmk.cli.generate.compilation_database`
did not trigger the initialization of `qmk.cli` again.  However, there was
one corner case when `qmk.bulld_targets` was getting imported first:

  - The `qmk find` command uses the `multiprocessing` module.
  - The `multiprocessing` module uses the `spawn` start method on macOS
    and Windows.
  - When the `spawn` method is used, the child processes initialize
    without any Python modules loaded, and the required modules are loaded
    on demand by the `pickle` module when receiving the serialized objects
    from the main process.

The result was that the `qmk find` command did not work properly on macOS
(and probably Windows too); it reported exceptions like this:

    ImportError: cannot import name 'KeyboardKeymapBuildTarget' from partially initialized module 'qmk.build_targets' (most likely due to a circular import)

Moving the offending `qmk.cli.generate.compilation_database` import into
the method which actually uses it fixes the problem.</content>
</entry>
<entry>
<title>CLI refactoring for common build target APIs (#22221)</title>
<updated>2023-11-15T05:24:54+00:00</updated>
<author>
<name>Nick Brassel</name>
</author>
<published>2023-11-15T05:24:54+00:00</published>
<link rel='alternate' type='text/html' href='http://archive.git.mgrote.net/qmk_sweep_skeletyl/commit/?id=49382107115f611a61f1f5e20a3b2a92000a35da'/>
<id>urn:sha1:49382107115f611a61f1f5e20a3b2a92000a35da</id>
<content type='text'>
</content>
</entry>
</feed>
