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
- support for PEP600 wheels of format: 'manylinux_${GLIBCMAJOR}_${GLIBCMINOR}'
14
+
- respect 'python_requires' for sdist packages
15
+
- PEP440 compatible pre-release version handling
16
+
- improve handling of python packages from nixpkgs
17
+
18
+
### Fixes
19
+
- fix problem where required dependencies were removed from nixpkgs python modules.
20
+
- prevent package collisions with dependencies from `packagesExtra`
21
+
- fix version comparison of versions with arbitrary length
22
+
- various fixes for MacOS
23
+
- various fixes for requirements parsing
24
+
- various other fixes
25
+
26
+
### Package Fixes
27
+
- libwebp-base: remove colliding binaries in conda package
28
+
- pyqt5: fix missing wrapQtAppsHook
29
+
30
+
1
31
# 3.3.0 (22 May 2021)
2
32
bugfixes, improvements
3
33
@@ -12,7 +42,7 @@ bugfixes, improvements
12
42
- Mach-nix (used via flakes) will now throw an error if the selected nixpkgs version is newer than the dependency DB since this can cause conflicts in the resulting environment.
13
43
- When used via flakes, it was impossible to select the python version because the import function is not used anymore. Now `python` can be passed to `mkPython` alternatively.
14
44
- For the flakes cmdline api, collisions are now ignored by default
15
-
- The simplified override interface did not deal well with non-existent values.
45
+
- The simplified override interface did not deal well with non-existent values.
16
46
- Now the `.add` directive automatically assumes an empty list/set/string when the attribute to be extended doesn't exist.
17
47
- Now the `.mod` directive will pass `null` to the given function if the attribute to modify doesn't exist instead.
***mkDockerImage** -> produces layered docker image containing a python environment
131
-
***mkNixpkgs** -> returns nixpkgs which is conform to the given requirements
132
-
***mkOverlay** -> returns an overlay function to make nixpkgs conform to the given requirements
159
+
- New output formats:
160
+
***mkDockerImage** -> produces layered docker image containing a python environment
161
+
***mkNixpkgs** -> returns nixpkgs which is conform to the given requirements
162
+
***mkOverlay** -> returns an overlay function to make nixpkgs conform to the given requirements
133
163
***mkPythonOverrides** -> produces pythonOverrides to make python conform to the given requirements.
134
164
135
165
- New functions **fetchPypiSdist** and **fetchPypiWheel**. Example:
@@ -145,13 +175,13 @@ in
145
175
```
146
176
147
177
- R support (experimental): R packages can be passed via `packagesExtra`. Mach-nix will setup rpy2 accordingly. See [usage example](https://github.com/DavHau/mach-nix/blob/master/examples.md#r-and-python).
148
-
178
+
149
179
- Non-python packages can be passed via `packagesExtra` to include them into the environment.
150
-
180
+
151
181
the target platform's python interpreter was used to generate the nix expression, resulting in a failing build
152
182
### Improvements
153
183
- rework the logic for inheriting dependencies from nixpkgs
154
-
- fixes.nix: allow alternative mod function signature with more arguments:
184
+
- fixes.nix: allow alternative mod function signature with more arguments:
- allow derivations passed as `src` argument to buildPythonPackage
157
187
- stop inheriting attribute names from nixpkgs, instead use normalized package names
@@ -168,7 +198,7 @@ in
168
198
- wheel provider picked wheels incompatible to python version
169
199
- unwanted python buildInput inheritance when overriding nixpkgs
170
200
- properly parse setup/install_requires if they are strings instead of lists
171
-
201
+
172
202
### Package Fixes
173
203
- rpy2: sdist: remove conflicting patch for versions newer than 3.2.6
174
204
- pytorch from nixpkgs was not detected as `torch`
@@ -184,7 +214,7 @@ bugfixes
184
214
- null value error when inheriting passthru for disabled packages
185
215
- Wrong provider detected for `sdist` packages in fixes.nix
186
216
- overrides from fixes.nix didn't apply for `buildPythonPackage`
187
-
217
+
188
218
### Package Fixes
189
219
- pip: allow from `sdist` provider
190
220
- pip: remove `reproducible.patch` for versions < 20.0
@@ -199,13 +229,13 @@ Global conditional overrides, simple overrides for buildPythonPackage, improved
199
229
- Inherit passthru from nixpkgs: Reduces risk of missing attributes like `numpy.blas`.
200
230
- Allow passing a string to the `python` argument of mkPython: Values like, for example, `"python38"` are now accepted in which case `pkgs.python38` will be used. The intention is to reduce the risk of accidentally mixing multiple nixpkgs versions.
201
231
- Improved error handling while extracting metadata from python sources in buildPythonPackage.
202
-
232
+
203
233
### Fixes
204
234
- Selecting `extras` when using `buildPythonPackage` didn't have any effect
205
235
- The `passthru` argument for `buildPythonPackage` was ignored
206
236
- The `propagatedBuildInputs` argument for `buildPythonPackage` was ignored
207
237
- Wheels with multiple python versions in their filename like `PyQt5-...-cp35.cp36.cp37.cp38-...whl` were not selected correctly.
208
-
238
+
209
239
### Package Fixes:
210
240
- tensorflow: collision related to tensorboard
211
241
- orange3: broken .so file caused by fixupPhase (probably due to shrinking)
@@ -215,7 +245,7 @@ Global conditional overrides, simple overrides for buildPythonPackage, improved
- Improved selection of wheel releases. MacOS is now supported and architectures besides x86_64 should be handled correctly.
270
-
- Whenever mach-nix resolves dependencies, a visualization of the resulting dependency tree is printed on the terminal.
300
+
- Whenever mach-nix resolves dependencies, a visualization of the resulting dependency tree is printed on the terminal.
271
301
- The dependency DB is now accessed through a caching layer which reduces the resolver's CPU time significantly for larger environments.
272
302
- The python platform context is now generated from the nix build environment variable `system`. This should decrease the chance of impurities during dependency resolution.
273
-
303
+
274
304
### Fixes
275
305
- The requires_python attribute of wheels was not respected. This lead to failing builds especially for older python versions. Now `requires_python` is part of the dependency graph and affects resolution.
276
306
- Detecting the correct package name for python packages in nixpkgs often failed since the attribute names don't follow a fixed schema. This lead to a handful of different errors in different situations. Now the package names are extracted from the pypi `url` inside the `src` attribute which is much more reliable. For packages which are not fetched from pypi, the `pname` attribute is used as fallback.
277
307
- Fixed bug which lead to the error `attribute 'sdist' missing` if a package from the nixpkgs provider was used which doesn't publish it's source on pypi. (For example `tensorflow`)
278
-
308
+
279
309
### Other Changes
280
310
- Mach-nix now uses a revision of the nixpkgs-unstable branch instead of nixos-20.03 as base fo the tool and the nixpkgs provider.
- **Extras support**: All providers now fully support python [extras](https://www.python.org/dev/peps/pep-0508/#extras). That means requirements like for example '`requests[security]`' will be correctly resolved.
317
347
318
348
### Nix Interface changes:
319
-
- Removed:
349
+
- Removed:
320
350
- **mkPythonExpr**: removed in favor of `machNixFile` and `machNix`
321
-
- Added:
351
+
- Added:
322
352
- **machNixFile** which generates a nex expresison
323
353
- **machNix** which evaluates the generated nix expression to get `overrides` and `select_pkgs`
0 commit comments