depot/pkgs/development/tools/reno/default.nix
Luke Granger-Brown 57725ef3ec Squashed 'third_party/nixpkgs/' content from commit 76612b17c0ce
git-subtree-dir: third_party/nixpkgs
git-subtree-split: 76612b17c0ce71689921ca12d9ffdc9c23ce40b2
2024-11-10 23:59:47 +00:00

84 lines
2.2 KiB
Nix

{
lib,
fetchPypi,
git,
gnupg1,
python3Packages,
}:
python3Packages.buildPythonApplication rec {
pname = "reno";
version = "4.1.0";
pyproject = true;
# Must be built from python sdist because of versioning quirks
src = fetchPypi {
inherit pname version;
hash = "sha256-+ZLx/b0WIV7J3kevCBMdU6KDDJ54Q561Y86Nan9iU3A=";
};
# remove b/c doesn't list all dependencies, and requires a few packages not in nixpkgs
postPatch = ''
rm test-requirements.txt
'';
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
dulwich
pbr
pyyaml
setuptools # required for finding pkg_resources at runtime
];
nativeCheckInputs = with python3Packages; [
# Python packages
docutils
fixtures
sphinx
stestr
testtools
testscenarios
# Required programs to run all tests
git
gnupg1
];
checkPhase = ''
runHook preCheck
export HOME=$TMPDIR
stestr run -e <(echo "
# Expects to be run from a git repository
reno.tests.test_cache.TestCache.test_build_cache_db
reno.tests.test_semver.TestSemVer.test_major_post_release
reno.tests.test_semver.TestSemVer.test_major_working_and_post_release
reno.tests.test_semver.TestSemVer.test_major_working_copy
reno.tests.test_semver.TestSemVer.test_minor_post_release
reno.tests.test_semver.TestSemVer.test_minor_working_and_post_release
reno.tests.test_semver.TestSemVer.test_minor_working_copy
reno.tests.test_semver.TestSemVer.test_patch_post_release
reno.tests.test_semver.TestSemVer.test_patch_working_and_post_release
reno.tests.test_semver.TestSemVer.test_patch_working_copy
reno.tests.test_semver.TestSemVer.test_same
reno.tests.test_semver.TestSemVer.test_same_with_note
")
runHook postCheck
'';
pythonImportsCheck = [ "reno" ];
postInstallCheck = ''
$out/bin/reno -h
'';
meta = with lib; {
description = "Release Notes Manager";
mainProgram = "reno";
homepage = "https://docs.openstack.org/reno/latest";
license = licenses.asl20;
maintainers = teams.openstack.members ++ (with maintainers; [ drewrisinger guillaumekoenig ]);
};
}