fluffychat: 1.22.1 -> 1.23.0 (#364091)
[NixPkgs.git] / pkgs / by-name / ap / apkg / package.nix
blobbe42b1ac9d1dede0d044ee97829fd402ba360204
2   lib,
3   fetchFromGitLab,
4   python3Packages,
5   gitMinimal,
6   rpm,
7   dpkg,
8   fakeroot,
9 }:
11 python3Packages.buildPythonApplication rec {
12   pname = "apkg";
13   version = "0.5.0";
14   format = "pyproject";
16   src = fetchFromGitLab {
17     domain = "gitlab.nic.cz";
18     owner = "packaging";
19     repo = pname;
20     rev = "v${version}";
21     hash = "sha256-VQNUzbWIDo/cbCdtx8JxN5UUMBW3mQ2B42In4b3AA+A=";
22   };
24   propagatedBuildInputs = with python3Packages; [
25     # copy&pasted requirements.txt (almost exactly)
26     beautifulsoup4 # upstream version detection
27     blessed # terminal colors
28     build # apkg distribution
29     cached-property # for python <= 3.7; but pip complains even with 3.8
30     click # nice CLI framework
31     distro # current distro detection
32     jinja2 # templating
33     packaging # version parsing
34     requests # HTTP for humans™
35     toml # config files
36   ];
38   nativeBuildInputs = with python3Packages; [ hatchling ];
40   makeWrapperArgs = [
41     # deps for `srcpkg` operation for other distros; could be optional
42     "--prefix"
43     "PATH"
44     ":"
45     (lib.makeBinPath [
46       gitMinimal
47       rpm
48       dpkg
49       fakeroot
50     ])
51   ];
53   nativeCheckInputs = with python3Packages; [
54     pytest
55     dunamai
56   ];
57   checkPhase = ''
58     runHook preCheck
59     py.test # inspiration: .gitlab-ci.yml
60     runHook postCheck
61   '';
63   meta = with lib; {
64     description = "Upstream packaging automation tool";
65     homepage = "https://pkg.labs.nic.cz/pages/apkg";
66     license = licenses.gpl3Plus;
67     maintainers = [
68       maintainers.vcunat # close to upstream
69     ];
70     mainProgram = "apkg";
71   };