mach-nix/Changelog.md

40 lines
3.1 KiB
Markdown
Raw Normal View History

2020-06-29 15:01:35 +00:00
# 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 the `sdist` provider if the required version matches exactly the version used in nixpkgs.
- fix: some dependencies with markers were ignored completely
- fix: providers `nixpkgs` and `sdist` inherited many unneeded build inputs from nixpkgs leading to bloated build-time closures, increased failure rate and uneffective `disable_checks` option. After this fix, only non-python build-inputs are inherited from nixpkgs.
- mach-nix now sets `pname` + `version` for python packages instead of `name`
# 2.0.0
2020-06-29 15:01:35 +00:00
### 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 parameter `pkgs` and `python` 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 parameter `overrides_pre` and `overrides_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](https://www.python.org/dev/peps/pep-0508/#extras). That means requirements like for example '`requests[security]`' will be correctly resolved.
2020-06-29 15:01:35 +00:00
### Nix Interface changes:
- Removed:
- **mkPythonExpr**: removed in favor of `machNixFile` and `machNix`
- Added:
- **machNixFile** which generates a nex expresison
- **machNix** which evaluates the generated nix expression to get `overrides` and `select_pkgs`
- Changed:
- **mkPython**:
- Removed arguments:
- `python_attr` in favor if `python`
- `prefer_nixpkgs` in favor of `providers`
- `nixpkgs_commit` in favor of `pkgs`
- `nixpkgs_tarball_sha256` in favor of `pkgs`
- Added arguments:
- `overrides_pre`: list of python overrides to apply before the machnix overrides
- `overrides_post`: list of python overrides to apply after the machnix overrides
- `pkgs`: pass custom nixpkgs. Only used for manylinux wheel dependencies.
- `providers`: define provider preferences
- `_provider_defaults`: builtin provider defaults. Disable them by passing {}
# 1.0.0
Initial Release