`Install Python <python:using-on-windows>`_, either from Windows Store or using the full installer. If using the full installer, make sure to install a 64-bit version of Python.
The latest release of nMigen should work well for most applications. A development snapshot---any commit from the ``master`` branch of nMigen---should be similarly reliable, but is likely to include experimental API changes that will be in flux until the next release. With that in mind, development snapshots can be used to try out new functionality or to avoid bugs fixed since the last release.
..|snapshot:first-time|replace:: To install a development snapshot of nMigen for the first time, run:
..|snapshot:update|replace:: Any changes made to the ``nmigen`` directory will immediately affect any code that uses nMigen. To update the snapshot, run:
..|snapshot:reinstall|replace:: It is important to run the ``pip3 install --editable .[builtin-yosys]`` each time the development snapshot is updated in case package dependencies have been added or changed. Otherwise, code using nMigen may misbehave or crash with an ``ImportError``.
..content-tabs::
..tab-container:: windows
:title:Windows
|snapshot:first-time|
..code-block:: doscon
> git clone https://github.com/nmigen/nmigen
> cd nmigen
> pip install --editable .[builtin-yosys]
|snapshot:update|
..code-block:: doscon
> cd nmigen
> git pull --ff-only origin master
> pip install --editable .[builtin-yosys]
|snapshot:reinstall|
..tab-container:: macos
:title:macOS
|snapshot:first-time|
..code-block:: console
$ git clone https://github.com/nmigen/nmigen
$ cd nmigen
$ pip install --editable .[builtin-yosys]
|snapshot:update|
..code-block:: console
$ cd nmigen
$ git pull --ff-only origin master
$ pip install --editable .[builtin-yosys]
|snapshot:reinstall|
..tab-container:: linux
:title:Linux
If you have :ref:`previously <install-deps>` installed Yosys manually, omit ``[builtin-yosys]`` from the following commands.