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
nix-env -if https://github.com/DavHau/mach-nix/tarball/2.2.0 -A mach-nix
62
+
nix-env -if https://github.com/DavHau/mach-nix/tarball/2.2.1 -A mach-nix
63
63
```
64
64
65
65
---
@@ -91,7 +91,7 @@ You can call mach-nix directly from a nix expression
91
91
let
92
92
mach-nix = import (builtins.fetchGit {
93
93
url = "https://github.com/DavHau/mach-nix/";
94
-
ref = "2.2.0";
94
+
ref = "2.2.1";
95
95
});
96
96
in
97
97
mach-nix.mkPython {
@@ -158,7 +158,7 @@ Providers can be disabled/enabled/preferred like in the following examples:
158
158
159
159
Mach-nix will always satisfy your **requirements.txt** fully with the configured providers or fail with a **ResolutionImpossible** error.
160
160
161
-
If a mach-nix build fails, Most of the times it can be resolved by just switching the provider of a package, which is simple and doesn't require writing a lot of nix code. For some more complex scenarios, checkout the following examples.
161
+
If a mach-nix build fails, Most of the times it can be resolved by just switching the provider of a package, which is simple and doesn't require writing a lot of nix code. For some more complex scenarios, checkout the [./examples.md](/examples.md).
162
162
163
163
## Why nix?
164
164
Usually people rely on multiple layers of different package management tools for building their software environments. These tools are often not well integrated with each other and don't offer strong reproducibility. Example: You are on debian/ubuntu and use APT (layer 1) to install python. Then you use venv (layer 2) to overcome some of your layer 1 limitations (not being able to have multiple versions of the same package installed) and afterwards you are using pip (layer 3) to install python packages. You notice that even after pinning all your requirements, your environment behaves differently on your server or your colleagues machine because their underlying system differs from yours. You start using docker (layer 4) to overcome this problem which adds extra complexity to the whole process and gives you some nasty limitations during development. You need to configure your IDE's docker integration and so on. Despite all the effort you put in, still the problem is not fully solved and from time to time your build pipeline just breaks and you need to fix it manually.
0 commit comments