1{
2 buildPythonApplication,
3 dulwich,
4 docutils,
5 lib,
6 fetchFromGitHub,
7 git,
8 gnupg,
9 pbr,
10 pyyaml,
11 setuptools,
12 sphinx,
13 stestr,
14 testtools,
15 testscenarios,
16}:
17
18buildPythonApplication rec {
19 pname = "reno";
20 version = "4.1.0";
21 pyproject = true;
22
23 src = fetchFromGitHub {
24 owner = "openstack";
25 repo = "reno";
26 tag = version;
27 hash = "sha256-le9JtE0XODlYhTFsrjxFXG/Weshr+FyN4M4S3BMBLUE=";
28 };
29
30 env.PBR_VERSION = version;
31
32 build-system = [
33 setuptools
34 ];
35
36 dependencies = [
37 dulwich
38 pbr
39 pyyaml
40 setuptools
41 ];
42
43 nativeCheckInputs = [
44 # Python packages
45 docutils
46 sphinx
47 stestr
48 testtools
49 testscenarios
50
51 # Required programs to run all tests
52 git
53 gnupg
54 ];
55
56 checkPhase = ''
57 runHook preCheck
58 export HOME=$(mktemp -d)
59 stestr run -e <(echo "
60 # Expects to be run from a git repository
61 reno.tests.test_cache.TestCache.test_build_cache_db
62 reno.tests.test_semver.TestSemVer.test_major_post_release
63 reno.tests.test_semver.TestSemVer.test_major_working_and_post_release
64 reno.tests.test_semver.TestSemVer.test_major_working_copy
65 reno.tests.test_semver.TestSemVer.test_minor_post_release
66 reno.tests.test_semver.TestSemVer.test_minor_working_and_post_release
67 reno.tests.test_semver.TestSemVer.test_minor_working_copy
68 reno.tests.test_semver.TestSemVer.test_patch_post_release
69 reno.tests.test_semver.TestSemVer.test_patch_working_and_post_release
70 reno.tests.test_semver.TestSemVer.test_patch_working_copy
71 reno.tests.test_semver.TestSemVer.test_same
72 reno.tests.test_semver.TestSemVer.test_same_with_note
73 ")
74 runHook postCheck
75 '';
76
77 pythonImportsCheck = [ "reno" ];
78
79 postInstallCheck = ''
80 $out/bin/reno -h
81 '';
82
83 meta = with lib; {
84 description = "Release Notes Manager";
85 mainProgram = "reno";
86 homepage = "https://docs.openstack.org/reno/latest";
87 license = licenses.asl20;
88 teams = [ teams.openstack ];
89 };
90}