rio: 0.0.36 -> 0.0.37
[NixPkgs.git] / pkgs / applications / misc / mozphab / default.nix
bloba19297acbc856ac04da1a1f1adf3aec6829ac0d2
1 { lib
2 , fetchFromGitHub
3 , python3
5 # tests
6 , git
7 , mercurial
8 , patch
9 }:
11 python3.pkgs.buildPythonApplication rec {
12   pname = "mozphab";
13   version = "1.5.1";
14   format = "pyproject";
16   src = fetchFromGitHub {
17     owner = "mozilla-conduit";
18     repo = "review";
19     rev = "refs/tags/${version}";
20     hash = "sha256-HxwQ+mGtjnruppPAD01QUg3aca+k5vpj814BWM+3VfQ=";
21   };
23   postPatch = ''
24     substituteInPlace pyproject.toml \
25       --replace "glean-sdk>=50.0.1,==50.*" "glean-sdk"
26   '';
28   nativeBuildInputs = with python3.pkgs; [
29     setuptools
30     setuptools-scm
31   ];
33   propagatedBuildInputs = with python3.pkgs; [
34     colorama
35     distro
36     glean-sdk
37     packaging
38     python-hglib
39     sentry-sdk
40     setuptools
41   ];
43   nativeCheckInputs = [
44     git
45     mercurial
46     patch
47   ]
48   ++ (with python3.pkgs; [
49     callee
50     immutabledict
51     hg-evolve
52     mock
53     pytestCheckHook
54   ]);
56   preCheck = ''
57     export HOME=$(mktemp -d)
58   '';
60   disabledTestPaths = [
61     # codestyle doesn't matter to us
62     "tests/test_style.py"
63     # integration tests try to submit changes, which requires network access
64     "tests/test_integration_git.py"
65     "tests/test_integration_hg.py"
66     "tests/test_integration_hg_dag.py"
67     "tests/test_integration_patch.py"
68     "tests/test_integration_reorganise.py"
69     "tests/test_sentry.py"
70   ];
72   meta = with lib; {
73     description = "Phabricator CLI from Mozilla to support submission of a series of commits";
74     mainProgram = "moz-phab";
75     longDescription = ''
76       moz-phab is a custom command-line tool, which communicates to
77       Phabricator’s API, providing several conveniences, including support for
78       submitting series of commits.
79     '';
80     homepage = "https://moz-conduit.readthedocs.io/en/latest/phabricator-user.html";
81     license = licenses.mpl20;
82     maintainers = with maintainers; [];
83     platforms = platforms.unix;
84   };