Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 buildPythonPackage,
3 fetchFromGitHub,
4 hatchling,
5 lib,
6 packaging,
7 pythonOlder,
8 tomli,
9 twisted,
10}:
11
12let
13 incremental = buildPythonPackage rec {
14 pname = "incremental";
15 version = "24.11.0";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "twisted";
20 repo = "incremental";
21 tag = "incremental-${version}";
22 hash = "sha256-GkTCQYGrgCUzizSgKhWeqJ25pfaYA7eUJIHt0q/iO0E=";
23 };
24
25 build-system = [ hatchling ];
26
27 dependencies = [ packaging ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
28
29 # escape infinite recursion with twisted
30 doCheck = false;
31
32 nativeCheckInputs = [ twisted ];
33
34 checkPhase = ''
35 trial incremental
36 '';
37
38 passthru.tests = {
39 check = incremental.overridePythonAttrs (_: {
40 doCheck = true;
41 });
42 };
43
44 pythonImportsCheck = [ "incremental" ];
45
46 meta = {
47 changelog = "https://github.com/twisted/incremental/blob/${src.tag}/NEWS.rst";
48 homepage = "https://github.com/twisted/incremental";
49 description = "Small library that versions your Python projects";
50 license = lib.licenses.mit;
51 mainProgram = "incremental";
52 maintainers = with lib.maintainers; [ dotlambda ];
53 };
54 };
55in
56incremental