diff --git a/pkgs/development/python-modules/setuptools-git-versioning/default.nix b/pkgs/development/python-modules/setuptools-git-versioning/default.nix new file mode 100644 index 0000000000000..b280650436b4e --- /dev/null +++ b/pkgs/development/python-modules/setuptools-git-versioning/default.nix @@ -0,0 +1,73 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, build +, coverage +, git +, packaging +, pytestCheckHook +, pytest-rerunfailures +, pythonOlder +, setuptools +, toml +, wheel +}: + +buildPythonPackage rec { + pname = "setuptools-git-versioning"; + version = "1.13.5"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "dolfinus"; + repo = "setuptools-git-versioning"; + rev = "refs/tags/v${version}"; + hash = "sha256-MAHB6hMAcMo1+HCc6g7xQUD2sG+TLjM/6Oa/BKuXpRc="; + }; + + nativeBuildInputs = [ + setuptools + wheel + ]; + + propagatedBuildInputs = [ + packaging + setuptools + ] ++ lib.optionals (pythonOlder "3.11") [ + toml + ]; + + pythonImportsCheck = [ + "setuptools_git_versioning" + ]; + + nativeCheckInputs = [ + build + coverage + git + pytestCheckHook + pytest-rerunfailures + toml + ]; + + preCheck = '' + # so that its built binary is accessible by tests + export PATH="$out/bin:$PATH" + ''; + + # limit tests because the full suite takes several minutes to run + pytestFlagsArray = [ "-m" "important" ]; + + disabledTests = [ + # runs an isolated build that uses internet to download dependencies + "test_config_not_used" + ]; + + meta = with lib; { + description = "Use git repo data (latest tag, current commit hash, etc) for building a version number according PEP-440"; + homepage = "https://github.com/dolfinus/setuptools-git-versioning"; + changelog = "https://github.com/dolfinus/setuptools-git-versioning/blob/${src.rev}/CHANGELOG.rst"; + license = licenses.mit; + maintainers = with maintainers; [ tjni ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 6ed68c04b6928..8060fbf25fcef 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11490,6 +11490,8 @@ self: super: with self; { setuptools-git = callPackage ../development/python-modules/setuptools-git { }; + setuptools-git-versioning = callPackage ../development/python-modules/setuptools-git-versioning { }; + setuptools-lint = callPackage ../development/python-modules/setuptools-lint { }; setuptools-rust = callPackage ../development/python-modules/setuptools-rust { };