You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Readme.md
+55
Original file line number
Diff line number
Diff line change
@@ -44,6 +44,7 @@ Table of Contents
44
44
*[Why nix?](#why-nix)
45
45
*[How does mach-nix work?](#how-does-mach-nix-work)
46
46
*[Dependency resolution](#dependency-resolution)
47
+
*[File resolution](#file-resolution)
47
48
*[Generating a nix expression](#generating-a-nix-expression)
48
49
*[Contributing](#contributing)
49
50
*[Limitations](#limitations)
@@ -203,6 +204,60 @@ As core for the resolving resolvelib is used: https://github.com/sarugaku/resolv
203
204
204
205
Mach-nix supports multiple providers to retrieve python packages from. The user can specify which providers should be preferred. Packages from different providers can be mixed.
205
206
207
+
### File resolution
208
+
With `pypi-deps-db`, we have built a dependency graph, where each package is defined by name and version, for example `pillow-9.1.0`.
209
+
210
+
To download a package, we need it's URL and hash. This is where [nix-pypi-fetcher](https://github.com/DavHau/nix-pypi-fetcher) comes in.
211
+
`nix-pypi-fetcher` is another database, which allows us to resolve packages to their URL and hash.
212
+
213
+
For example, the declaration "package pillow + version 9.1.0 + python 3.9 + linux" resolves to
After all python dependencies and their providers have been determined by the dependency resolver, mach-nix will generate a nix expression defining your python environment.
0 commit comments