1{
2 lib,
3 buildPythonPackage,
4 callPackage,
5 fetchFromGitHub,
6 pytestCheckHook,
7 pythonOlder,
8
9 setuptools,
10 build,
11 coloredlogs,
12 importlib-metadata,
13 packaging,
14 pip,
15 toml,
16 urllib3,
17}:
18
19buildPythonPackage rec {
20 pname = "bork";
21 version = "9.0.0";
22 pyproject = true;
23 disabled = pythonOlder "3.8";
24
25 src = fetchFromGitHub {
26 owner = "duckinator";
27 repo = "bork";
28 tag = "v${version}";
29 hash = "sha256-YqvtOwd00TXD4I3fIQolvjHnjREvQgbdrEO9Z96v1Kk=";
30 };
31
32 build-system = [
33 setuptools
34 ];
35
36 pythonRelaxDeps = [
37 "build"
38 "packaging"
39 "urllib3"
40 ];
41
42 dependencies = [
43 build
44 coloredlogs
45 packaging
46 pip
47 urllib3
48 ]
49 ++ lib.optionals (pythonOlder "3.11") [ toml ]
50 ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
51
52 pythonImportsCheck = [
53 "bork"
54 "bork.api"
55 "bork.cli"
56 ];
57
58 nativeCheckInputs = [ pytestCheckHook ];
59
60 disabledTestMarks = [ "network" ];
61
62 disabledTests = [
63 # tries to call python -m bork
64 "test_repo"
65 ];
66
67 passthru.tests = callPackage ./tests.nix { };
68
69 meta = with lib; {
70 description = "Python build and release management tool";
71 mainProgram = "bork";
72 homepage = "https://github.com/duckinator/bork";
73 license = licenses.mit;
74 maintainers = with maintainers; [ nicoo ];
75 };
76}