-
-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: Add new build infrastructure #154
Conversation
9639b21
to
b2b38d1
Compare
Example usage: { pyproject-nix, pkgs }:
let
python = pkgs.python312;
# Inject your own packages on top with overrideScope
pythonSet = pkgs.callPackage pyproject-nix.build.packages {
inherit python;
};
in pythonSet.pythonPackagesHostHost.mkVirtualEnv "test-venv" {
build = [ ];
} |
f264e23
to
53c1e54
Compare
This is great work, and I especially like the recent symlinks fixes. One case where we still run into a collision in bin (=needs dependency ordering) is
|
Are you sure you're using the right builder? This error message looks to originate in |
My bad, that was the old builder. The current builder gives
|
2a67564
to
6ff6f59
Compare
This fixes many problems existing in the Nixpkgs Python infrastructure: - No dependency propagation No leaking of dependencies via PYTHONPATH - No runtime deps at build time This causes much less rebuilds - Support for circular dependencies - No wrapping of Python bin's No strange venv breaking shell wrapper - Proper virtualenvs only Meaning that applications that spawns children using sys.executable works fine. - Hermetic bootstrap Nixpkgs breaks if you override any bootstrap dependencies with wheels. - Manual cross splicing Meaning you can override build-time and runtime deps separately, and also IMHO just in general a much better cross interface.
It was removed from nixpkgs
This is shorter and less likely to be mixed up with python(2|3|)Packages from nixpkgs.
…ing pointing to a store path
6ff6f59
to
ecaac48
Compare
9fa419c
to
4dfd2a3
Compare
4dfd2a3
to
54300b9
Compare
Merging this now documented as an experimental feature. |
This fixes many problems existing in the Nixpkgs Python infrastructure:
No leaking of dependencies via PYTHONPATH
This causes much less rebuilds
Support for circular dependencies
No wrapping of Python bin's
No strange venv breaking shell wrapper
Meaning that applications that spawns children using sys.executable works fine.
Nixpkgs breaks if you override any bootstrap dependencies with wheels.
Meaning you can override build-time and runtime deps separately, and also IMHO just in general a much better cross interface.
I've previously tried to tackle this in NixOS/nixpkgs#272178.
This is not having the same backwards compat concerns.