nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 python3,
5 fetchFromGitHub,
6 writableTmpDirAsHomeHook,
7}:
8
9python3.pkgs.buildPythonApplication rec {
10 pname = "fromager";
11 version = "0.71.0";
12 pyproject = true;
13
14 src = fetchFromGitHub {
15 owner = "python-wheel-build";
16 repo = "fromager";
17 tag = version;
18 hash = "sha256-3zz37BZx8FcKNl8mSmClIrZxvL+2AS0hJDct6K7BhBE=";
19 };
20
21 build-system = with python3.pkgs; [
22 hatchling
23 hatch-vcs
24 ];
25
26 dependencies = with python3.pkgs; [
27 click
28 elfdeps
29 html5lib
30 packaging
31 pkginfo
32 psutil
33 pydantic
34 pyproject-hooks
35 pyyaml
36 requests
37 requests-mock
38 resolvelib
39 rich
40 setuptools
41 stevedore
42 tomlkit
43 tqdm
44 uv
45 wheel
46 ];
47
48 nativeCheckInputs = with python3.pkgs; [
49 pytestCheckHook
50 requests-mock
51 twine
52 uv
53 writableTmpDirAsHomeHook
54 ];
55
56 pythonImportsCheck = [
57 "fromager"
58 ];
59
60 disabledTestPaths = [
61 # Depends on wheel.cli module that is private since wheel 0.46.0
62 "tests/test_wheels.py"
63 ];
64
65 disabledTests = [
66 # Accessing pypi.org (not allowed in sandbox)
67 "test_get_build_backend_dependencies"
68 "test_get_build_sdist_dependencies"
69 ]
70 ++ lib.optionals (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) [
71 # Assumes platform.machine() returns 'arm64' on ARM64, which is not true for Linux.
72 # Re-enable once https://github.com/python-wheel-build/fromager/pull/849 is merged.
73 "test_add_constraint_conflict"
74 ];
75
76 meta = {
77 description = "Wheel maker";
78 homepage = "https://pypi.org/project/fromager/";
79 license = lib.licenses.asl20;
80 maintainers = with lib.maintainers; [ booxter ];
81 mainProgram = "fromager";
82 };
83}