{ lib , fetchFromGitHub , python3 # tests , git , mercurial , patch }: python3.pkgs.buildPythonApplication rec { pname = "mozphab"; version = "1.5.1"; format = "pyproject"; src = fetchFromGitHub { owner = "mozilla-conduit"; repo = "review"; rev = "refs/tags/${version}"; hash = "sha256-HxwQ+mGtjnruppPAD01QUg3aca+k5vpj814BWM+3VfQ="; }; postPatch = '' substituteInPlace pyproject.toml \ --replace "glean-sdk>=50.0.1,==50.*" "glean-sdk" ''; nativeBuildInputs = with python3.pkgs; [ setuptools setuptools-scm ]; 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) ''; disabledTests = [ # AttributeError: 'called_once' is not a valid assertion. "test_commit" # AttributeError: 'not_called' is not a valid assertion. "test_finalize_no_evolve" "test_patch" ]; 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"; mainProgram = "moz-phab"; 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 = [ ]; platforms = platforms.unix; }; }