87f9c27ba9
GitOrigin-RevId: fe2ecaf706a5907b5e54d979fbde4924d84b65fc
86 lines
1.9 KiB
Nix
86 lines
1.9 KiB
Nix
{ lib
|
||
, fetchFromGitHub
|
||
, python3
|
||
|
||
# tests
|
||
, git
|
||
, mercurial
|
||
, patch
|
||
}:
|
||
|
||
python3.pkgs.buildPythonApplication rec {
|
||
pname = "mozphab";
|
||
version = "1.4.3";
|
||
format = "pyproject";
|
||
|
||
src = fetchFromGitHub {
|
||
owner = "mozilla-conduit";
|
||
repo = "review";
|
||
rev = "refs/tags/${version}";
|
||
hash = "sha256-FUHT4MPzSxO3MCNYWodNxvFR2kL0P4eGmSHPtCt0Cug=";
|
||
};
|
||
|
||
postPatch = ''
|
||
substituteInPlace pyproject.toml \
|
||
--replace "glean-sdk>=50.0.1,==50.*" "glean-sdk"
|
||
'';
|
||
|
||
nativeBuildInputs = with python3.pkgs; [
|
||
setuptools
|
||
setuptools-scm
|
||
];
|
||
|
||
env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||
|
||
propagatedBuildInputs = with python3.pkgs; [
|
||
colorama
|
||
distro
|
||
glean-sdk
|
||
packaging
|
||
python-hglib
|
||
sentry-sdk
|
||
setuptools
|
||
];
|
||
|
||
nativeCheckInputs = [
|
||
git
|
||
mercurial
|
||
patch
|
||
]
|
||
++ (with python3.pkgs; [
|
||
callee
|
||
immutabledict
|
||
hg-evolve
|
||
mock
|
||
pytestCheckHook
|
||
]);
|
||
|
||
preCheck = ''
|
||
export HOME=$(mktemp -d)
|
||
'';
|
||
|
||
disabledTestPaths = [
|
||
# codestyle doesn't matter to us
|
||
"tests/test_style.py"
|
||
# integration tests try to submit changes, which requires network access
|
||
"tests/test_integration_git.py"
|
||
"tests/test_integration_hg.py"
|
||
"tests/test_integration_hg_dag.py"
|
||
"tests/test_integration_patch.py"
|
||
"tests/test_integration_reorganise.py"
|
||
"tests/test_sentry.py"
|
||
];
|
||
|
||
meta = with lib; {
|
||
description = "Phabricator CLI from Mozilla to support submission of a series of commits";
|
||
longDescription = ''
|
||
moz-phab is a custom command-line tool, which communicates to
|
||
Phabricator’s API, providing several conveniences, including support for
|
||
submitting series of commits.
|
||
'';
|
||
homepage = "https://moz-conduit.readthedocs.io/en/latest/phabricator-user.html";
|
||
license = licenses.mpl20;
|
||
maintainers = with maintainers; [];
|
||
platforms = platforms.unix;
|
||
};
|
||
}
|