diff --git a/pkgs/by-name/gi/git-pw/package.nix b/pkgs/by-name/gi/git-pw/package.nix new file mode 100644 index 000000000000..6dbcc369e370 --- /dev/null +++ b/pkgs/by-name/gi/git-pw/package.nix @@ -0,0 +1,59 @@ +{ lib +, git +, python3 +, fetchFromGitHub +, testers +, git-pw +}: + +python3.pkgs.buildPythonApplication rec { + pname = "git-pw"; + version = "2.6.0"; + format = "pyproject"; + + PBR_VERSION = version; + + src = fetchFromGitHub { + owner = "getpatchwork"; + repo = "git-pw"; + rev = version; + hash = "sha256-3IiFU6qGI2MDTBOLQ2qyT5keUMNTNG3sxhtGR3bkIBc="; + }; + + postPatch = '' + # We don't want to run the coverage. + substituteInPlace tox.ini --replace "--cov=git_pw --cov-report" "" + ''; + + nativeBuildInputs = with python3.pkgs; [ + pbr + setuptools + ]; + + propagatedBuildInputs = with python3.pkgs; [ + pyyaml + arrow + click + requests + tabulate + ]; + + nativeCheckInputs = with python3.pkgs; [ + pytest + git + ]; + + # This is needed because `git-pw` always rely on an ambiant git. + # Furthermore, this doesn't really make sense to resholve git inside this derivation. + # As `testVersion` does not offer the right knob, we can just `overrideAttrs`-it ourselves. + passthru.tests.version = (testers.testVersion { package = git-pw; }).overrideAttrs (old: { + buildInputs = (old.buildInputs or [ ]) ++ [ git ]; + }); + + meta = with lib; { + description = "A tool for integrating Git with Patchwork, the web-based patch tracking system"; + homepage = "https://github.com/getpatchwork/git-pw"; + license = licenses.mit; + maintainers = with maintainers; [ raitobezarius ]; + }; +}