silx: 2.1.1 -> 2.1.2 (#361612)
[NixPkgs.git] / pkgs / by-name / to / todoman / package.nix
blob8faf54d4222d80f351196ba818c7ec234ff0f7f2
2   fetchFromGitHub,
3   installShellFiles,
4   jq,
5   lib,
6   python3,
7   sphinxHook,
8 }:
10 python3.pkgs.buildPythonApplication rec {
11   pname = "todoman";
12   version = "4.5.0";
13   pyproject = true;
15   src = fetchFromGitHub {
16     owner = "pimutils";
17     repo = "todoman";
18     rev = "refs/tags/v${version}";
19     hash = "sha256-sk5LgFNo5Dc+oHCLu464Q1g0bk1QGsA7xMtMiits/8c=";
20   };
22   nativeBuildInputs = [
23     installShellFiles
24     sphinxHook
25     python3.pkgs.sphinx-click
26     python3.pkgs.sphinx-rtd-theme
27   ];
29   build-system = with python3.pkgs; [
30     setuptools-scm
31   ];
33   dependencies = with python3.pkgs; [
34     atomicwrites
35     click
36     click-log
37     click-repl
38     humanize
39     icalendar
40     parsedatetime
41     pyxdg
42     tabulate
43     urwid
44   ];
46   nativeCheckInputs = with python3.pkgs; [
47     freezegun
48     hypothesis
49     pytest-cov-stub
50     pytestCheckHook
51     pytz
52   ];
54   postInstall = ''
55     installShellCompletion --bash contrib/completion/bash/_todo
56     substituteInPlace contrib/completion/zsh/_todo --replace "jq " "${lib.getExe jq} "
57     installShellCompletion --zsh contrib/completion/zsh/_todo
58   '';
60   disabledTests = [
61     # Testing of the CLI part and output
62     "test_color_due_dates"
63     "test_color_flag"
64     "test_default_command"
65     "test_main"
66     "test_missing_cache_dir"
67     "test_sorting_null_values"
68     "test_xdg_existant"
69     # Tests are sensitive to performance
70     "test_sorting_fields"
71   ];
73   pythonImportsCheck = [
74     "todoman"
75   ];
77   meta = {
78     homepage = "https://github.com/pimutils/todoman";
79     description = "Standards-based task manager based on iCalendar";
80     longDescription = ''
81       Todoman is a simple, standards-based, cli todo (aka task) manager. Todos
82       are stored into iCalendar files, which means you can sync them via CalDAV
83       using, for example, vdirsyncer.
85       Todos are read from individual ics files from the configured directory.
86       This matches the vdir specification. There is support for the most common TODO
87       features for now (summary, description, location, due date and priority) for
88       now.
89       Unsupported fields may not be shown but are never deleted or altered.
90     '';
91     changelog = "https://todoman.readthedocs.io/en/stable/changelog.html#v${
92       builtins.replaceStrings [ "." ] [ "-" ] version
93     }";
94     license = lib.licenses.isc;
95     maintainers = with lib.maintainers; [
96       leenaars
97       antonmosich
98     ];
99     mainProgram = "todo";
100   };