nixpkgs/pkgs/by-name/to/todoman/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

99 lines
2.3 KiB
Nix

{
fetchFromGitHub,
installShellFiles,
jq,
lib,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "todoman";
version = "4.4.0";
pyproject = true;
src = fetchFromGitHub {
owner = "pimutils";
repo = "todoman";
rev = "refs/tags/v${version}";
hash = "sha256-5tQaNT6QVN9mxa9t6OvMux4ZGy4flUqszTAwet2QL0w=";
};
nativeBuildInputs = [
installShellFiles
];
build-system = with python3.pkgs; [
setuptools-scm
];
dependencies = with python3.pkgs; [
atomicwrites
click
click-log
click-repl
humanize
icalendar
parsedatetime
python-dateutil
pyxdg
pytz
tabulate
urwid
];
nativeCheckInputs = with python3.pkgs; [
freezegun
hypothesis
pytestCheckHook
pytest-cov-stub
];
postInstall = ''
installShellCompletion --bash contrib/completion/bash/_todo
substituteInPlace contrib/completion/zsh/_todo --replace "jq " "${lib.getExe jq} "
installShellCompletion --zsh contrib/completion/zsh/_todo
'';
disabledTests = [
# Testing of the CLI part and output
"test_color_due_dates"
"test_color_flag"
"test_default_command"
"test_main"
"test_missing_cache_dir"
"test_sorting_null_values"
"test_xdg_existant"
# Tests are sensitive to performance
"test_sorting_fields"
];
pythonImportsCheck = [
"todoman"
];
meta = {
homepage = "https://github.com/pimutils/todoman";
description = "Standards-based task manager based on iCalendar";
longDescription = ''
Todoman is a simple, standards-based, cli todo (aka task) manager. Todos
are stored into iCalendar files, which means you can sync them via CalDAV
using, for example, vdirsyncer.
Todos are read from individual ics files from the configured directory.
This matches the vdir specification. There is support for the most common TODO
features for now (summary, description, location, due date and priority) for
now.
Unsupported fields may not be shown but are never deleted or altered.
'';
changelog = "https://todoman.readthedocs.io/en/stable/changelog.html#v${
builtins.replaceStrings [ "." ] [ "-" ] version
}";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [
leenaars
antonmosich
];
mainProgram = "todo";
};
}