Skip to content

Commit fe5255e

Browse files
committed
version 3.4.0
1 parent f0f48ef commit fe5255e

File tree

4 files changed

+94
-64
lines changed

4 files changed

+94
-64
lines changed

Changelog.md

+57-27
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
# 3.4.0 (29 Jan 2022)
2+
aarch64-darwin, nixpkgs provider improvements, bugfixes
3+
4+
### Features
5+
- support conda packages
6+
- support wheels for apple m1 (aarch64-darwin)
7+
8+
### Changes
9+
- remove support for installing mach-nix via pip
10+
- updated inputs nixpkgs, pypi-deps-db, conda-channels
11+
12+
### Improvements
13+
- 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+
131
# 3.3.0 (22 May 2021)
232
bugfixes, improvements
333

@@ -12,7 +42,7 @@ bugfixes, improvements
1242
- 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.
1343
- 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.
1444
- 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.
1646
- Now the `.add` directive automatically assumes an empty list/set/string when the attribute to be extended doesn't exist.
1747
- Now the `.mod` directive will pass `null` to the given function if the attribute to modify doesn't exist instead.
1848

@@ -72,7 +102,7 @@ flakes lib, cli improvements, bugfixes
72102
- mkDockerImage produced corrupt images.
73103
- non-python packages passed via `packagesExtra` were not available during runtime. Now they are added to the `PATH`.
74104
- remove `<nixpkgs>` impurity in the dependency extractor used in buildPythonPackage.
75-
105+
76106

77107

78108
# 3.0.2 (27 Oct 2020)
@@ -120,16 +150,16 @@ in
120150
```
121151

122152
### Features
123-
- Flakes gateway to pypi. Get a nix shell with arbitrary python packages. Example:
153+
- Flakes gateway to pypi. Get a nix shell with arbitrary python packages. Example:
124154
`nix develop github:davhau/mach-nix#shellWith.requests.tensorflow.aiohttp`
125-
- or a docker image
155+
- or a docker image
126156
`nix build github:davhau/mach-nix#dockerImageWith.package1.package2 ...`
127-
- or a python derivation
157+
- or a python derivation
128158
`nix build github:davhau/mach-nix#with.package1.package2 ...`
129-
- New output formats:
130-
* **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
133163
* **mkPythonOverrides** -> produces pythonOverrides to make python conform to the given requirements.
134164

135165
- New functions **fetchPypiSdist** and **fetchPypiWheel**. Example:
@@ -145,13 +175,13 @@ in
145175
```
146176
147177
- 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+
149179
- Non-python packages can be passed via `packagesExtra` to include them into the environment.
150-
180+
151181
the target platform's python interpreter was used to generate the nix expression, resulting in a failing build
152182
### Improvements
153183
- 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:
155185
`key-to-override.mod = pySelf: oldAttrs: oldVal: ...;`
156186
- allow derivations passed as `src` argument to buildPythonPackage
157187
- stop inheriting attribute names from nixpkgs, instead use normalized package names
@@ -168,7 +198,7 @@ in
168198
- wheel provider picked wheels incompatible to python version
169199
- unwanted python buildInput inheritance when overriding nixpkgs
170200
- properly parse setup/install_requires if they are strings instead of lists
171-
201+
172202
### Package Fixes
173203
- rpy2: sdist: remove conflicting patch for versions newer than 3.2.6
174204
- pytorch from nixpkgs was not detected as `torch`
@@ -184,7 +214,7 @@ bugfixes
184214
- null value error when inheriting passthru for disabled packages
185215
- Wrong provider detected for `sdist` packages in fixes.nix
186216
- overrides from fixes.nix didn't apply for `buildPythonPackage`
187-
217+
188218
### Package Fixes
189219
- pip: allow from `sdist` provider
190220
- pip: remove `reproducible.patch` for versions < 20.0
@@ -199,13 +229,13 @@ Global conditional overrides, simple overrides for buildPythonPackage, improved
199229
- Inherit passthru from nixpkgs: Reduces risk of missing attributes like `numpy.blas`.
200230
- 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.
201231
- Improved error handling while extracting metadata from python sources in buildPythonPackage.
202-
232+
203233
### Fixes
204234
- Selecting `extras` when using `buildPythonPackage` didn't have any effect
205235
- The `passthru` argument for `buildPythonPackage` was ignored
206236
- The `propagatedBuildInputs` argument for `buildPythonPackage` was ignored
207237
- Wheels with multiple python versions in their filename like `PyQt5-...-cp35.cp36.cp37.cp38-...whl` were not selected correctly.
208-
238+
209239
### Package Fixes:
210240
- tensorflow: collision related to tensorboard
211241
- orange3: broken .so file caused by fixupPhase (probably due to shrinking)
@@ -215,7 +245,7 @@ Global conditional overrides, simple overrides for buildPythonPackage, improved
215245
simplified override system, autodetect requirements, improved success rate
216246
217247
### Features
218-
- Simplified generic override system via `_` (underscore) argument for `mkPython`.
248+
- Simplified generic override system via `_` (underscore) argument for `mkPython`.
219249
Example: `_.{package}.buildInputs.add = [...]`
220250
- `buildPythonPackage` now automatically detects requirements. Therefore the `requrements` argument becomes optional.
221251
- `buildPythonPackage` now automatically detects package `name` and `version`. Therefore those attributes become optional.
@@ -229,7 +259,7 @@ simplified override system, autodetect requirements, improved success rate
229259
- Fix installation of the mach-nix tool via pip. (requirements were missing)
230260
- packages which use a non-normalized version triggered an evaluation error since mach-nix tried to reference their source via normalized version.
231261
- wheels removed from pypi were not removed from the dependency graph which could result in environments failing to build
232-
262+
233263
234264
# 2.2.2 (17 Aug 2020)
235265
@@ -238,7 +268,7 @@ simplified override system, autodetect requirements, improved success rate
238268
- Problem generating error message for resolution impossible errors
239269
- `buildPythonPackage` of mach-nix failed if arguments like `pkgs` were passed.
240270
- When overriding packages, mach-nix now falls back to using `overrideAttrs` if `overridePythonAttrs` is not available.
241-
271+
242272
### Package Fixes:
243273
- pip: installation failed. Fixed by forcing `nixpkgs` provider
244274
- gdal: building from sdist doesn't work. Fixed by forcing `nixpkgs` provider
@@ -257,7 +287,7 @@ Handle circular dependencies, fix python 3.8 wheels, improve error message
257287
### Fixes
258288
- Fix crash on circular dependencies.
259289
- Python 3.8 wheels have abi tag cp38, not cp38m. This was not considered before which prevented finding suitable manylinux wheels for python 3.8
260-
290+
261291
### Development
262292
- Added integration tests under [./tests/](/tests/)
263293
@@ -267,15 +297,15 @@ Improved success rate, MacOS support, bugfixes, optimizations
267297
268298
### Features
269299
- 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.
271301
- The dependency DB is now accessed through a caching layer which reduces the resolver's CPU time significantly for larger environments.
272302
- 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+
274304
### Fixes
275305
- 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.
276306
- 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.
277307
- 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+
279309
### Other Changes
280310
- 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.
281311
- Updated revision of the dependency DB
@@ -316,12 +346,12 @@ Improves build-time closure, build success rate and fixes disable_checks option.
316346
- **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.
317347
318348
### Nix Interface changes:
319-
- Removed:
349+
- Removed:
320350
- **mkPythonExpr**: removed in favor of `machNixFile` and `machNix`
321-
- Added:
351+
- Added:
322352
- **machNixFile** which generates a nex expresison
323353
- **machNix** which evaluates the generated nix expression to get `overrides` and `select_pkgs`
324-
- Changed:
354+
- Changed:
325355
- **mkPython**:
326356
- Removed arguments:
327357
- `python_attr` in favor if `python`
@@ -337,4 +367,4 @@ Improves build-time closure, build success rate and fixes disable_checks option.
337367
338368
339369
# 1.0.0
340-
Initial Release
370+
Initial Release

0 commit comments

Comments
 (0)