3.1 KiB
3.1 KiB
2.0.1 (29 Jun 2020)
Improves build-time closure, build success rate and fixes disable_checks option.
Fixes:
- fix:
disable_checks
did not work for packages built via thesdist
provider if the required version matches exactly the version used in nixpkgs. - fix: some dependencies with markers were ignored completely
- fix: providers
nixpkgs
andsdist
inherited many unneeded build inputs from nixpkgs leading to bloated build-time closures, increased failure rate and uneffectivedisable_checks
option. After this fix, only non-python build-inputs are inherited from nixpkgs. - mach-nix now sets
pname
+version
for python packages instead ofname
2.0.0
Features:
- Python Wheels: Wheels are supported for linux including manylinux1, manylinux2010, manylinux2014
- Nixpkgs python packages: Nixpkgs is now treated as a separate provider. That means packages can be taken directly from there, independent on their availability from pypi.
- Configurable Providers: The user can now freely decide where packages should be taken from either via a default or on a per package basis. Currently available provider are
nixpkgs
,sdist
,wheel
. - Core architecture - Python Overrides: The core of mach nix now produces python overrides instead of nixpkgs overlays which makes it much more composible and allows for a less strange API.
- Overlay support:
mkPython
and lower level interfaces now accept new parameterpkgs
andpython
which indirectly enables you to use any nixpkgs overlays (But don't use this for modifying python packages. Better do this with Python Overrides) - Python Overrides support:
mkPython
now accepts new parameteroverrides_pre
andoverrides_post
each allowing to inject a list of python overrides to apply before and after the mach-nix internal overrides. This allows you to fixup packages or add your own modifications to them. - Extras support: All providers now fully support python extras. That means requirements like for example '
requests[security]
' will be correctly resolved.
Nix Interface changes:
- Removed:
- mkPythonExpr: removed in favor of
machNixFile
andmachNix
- mkPythonExpr: removed in favor of
- Added:
- machNixFile which generates a nex expresison
- machNix which evaluates the generated nix expression to get
overrides
andselect_pkgs
- Changed:
- mkPython:
- Removed arguments:
python_attr
in favor ifpython
prefer_nixpkgs
in favor ofproviders
nixpkgs_commit
in favor ofpkgs
nixpkgs_tarball_sha256
in favor ofpkgs
- Added arguments:
overrides_pre
: list of python overrides to apply before the machnix overridesoverrides_post
: list of python overrides to apply after the machnix overridespkgs
: pass custom nixpkgs. Only used for manylinux wheel dependencies.providers
: define provider preferences_provider_defaults
: builtin provider defaults. Disable them by passing {}
- Removed arguments:
- mkPython:
1.0.0
Initial Release