handheld-daemon-ui: 3.2.3 -> 3.3.0 (#361609)
[NixPkgs.git] / pkgs / development / tools / devpi-server / default.nix
blobe32f0702e2aaeb8068f7ffb2a23483133c48c1a6
1 { lib, fetchFromGitHub, buildPythonApplication
2 , gitUpdater
3 , pythonOlder
4 , aiohttp
5 , appdirs
6 , beautifulsoup4
7 , defusedxml
8 , devpi-common
9 , execnet
10 , itsdangerous
11 , nginx
12 , packaging
13 , passlib
14 , platformdirs
15 , pluggy
16 , py
17 , httpx
18 , pyramid
19 , pytestCheckHook
20 , repoze-lru
21 , setuptools
22 , strictyaml
23 , waitress
24 , webtest
25 , testers
26 , devpi-server
27 , nixosTests
31 buildPythonApplication rec {
32   pname = "devpi-server";
33   version = "6.14.0";
34   pyproject = true;
36   disabled = pythonOlder "3.7";
38   src = fetchFromGitHub {
39     owner = "devpi";
40     repo = "devpi";
41     rev = "server-${version}";
42     hash = "sha256-j8iILbptUw8DUE9lFpjDp/VYzdJzmOYqM/RCnkpWdcA=";
43   };
45   sourceRoot = "${src.name}/server";
47   postPatch = ''
48     substituteInPlace tox.ini \
49       --replace "--flake8" ""
50   '';
52   nativeBuildInputs = [
53     setuptools
54   ];
56   propagatedBuildInputs = [
57     aiohttp
58     appdirs
59     defusedxml
60     devpi-common
61     execnet
62     itsdangerous
63     packaging
64     passlib
65     platformdirs
66     pluggy
67     pyramid
68     repoze-lru
69     setuptools
70     strictyaml
71     waitress
72     py
73     httpx
74   ] ++ passlib.optional-dependencies.argon2;
76   nativeCheckInputs = [
77     beautifulsoup4
78     nginx
79     py
80     pytestCheckHook
81     webtest
82   ];
84   # root_passwd_hash tries to write to store
85   # TestMirrorIndexThings tries to write to /var through ngnix
86   # nginx tests try to write to /var
87   preCheck = ''
88     export PATH=$PATH:$out/bin
89     export HOME=$TMPDIR
90   '';
91   pytestFlagsArray = [
92     "./test_devpi_server"
93     "-rfsxX"
94     "--ignore=test_devpi_server/test_nginx_replica.py"
95     "--ignore=test_devpi_server/test_streaming_nginx.py"
96     "--ignore=test_devpi_server/test_streaming_replica_nginx.py"
97   ];
98   disabledTests = [
99     "root_passwd_hash_option"
100     "TestMirrorIndexThings"
101     "test_auth_mirror_url_no_hash"
102     "test_auth_mirror_url_with_hash"
103     "test_auth_mirror_url_hidden_in_logs"
104     "test_simplelinks_timeout"
105   ];
107   __darwinAllowLocalNetworking = true;
109   pythonImportsCheck = [
110     "devpi_server"
111   ];
113   passthru.tests = {
114     devpi-server = nixosTests.devpi-server;
115     version = testers.testVersion {
116       package = devpi-server;
117     };
118   };
120   # devpi uses a monorepo for server,common,client and web
121   passthru.updateScript = gitUpdater {
122     rev-prefix = "server-";
123   };
125   meta = with lib;{
126     homepage = "http://doc.devpi.net";
127     description = "Github-style pypi index server and packaging meta tool";
128     changelog = "https://github.com/devpi/devpi/blob/${src.rev}/server/CHANGELOG";
129     license = licenses.mit;
130     maintainers = with maintainers; [ makefu ];
131   };