1{
2 annexremote,
3 buildPythonPackage,
4 datalad,
5 datasalad,
6 fetchFromGitHub,
7 git-annex,
8 git,
9 humanize,
10 lib,
11 more-itertools,
12 openssh,
13 psutil,
14 pytestCheckHook,
15 pythonAtLeast,
16 setuptools,
17 unzip,
18 versioneer,
19 webdavclient3,
20}:
21
22buildPythonPackage rec {
23 pname = "datalad-next";
24 version = "1.5.0";
25 pyproject = true;
26
27 src = fetchFromGitHub {
28 owner = "datalad";
29 repo = "datalad-next";
30 tag = version;
31 hash = "sha256-fqP6nG2ncDRg48kvlsmPjNBOzfQp9+7wTcGvsYVrRzA=";
32 };
33
34 postPatch = ''
35 # Remove vendorized versioneer.py
36 rm versioneer.py
37 '';
38
39 nativeBuildInputs = [ git ];
40
41 build-system = [
42 setuptools
43 versioneer
44 ];
45
46 dependencies = [
47 annexremote
48 datasalad
49 datalad
50 humanize
51 more-itertools
52 ];
53
54 preCheck = ''
55 export HOME=$TMPDIR
56 '';
57
58 nativeCheckInputs = [
59 pytestCheckHook
60 webdavclient3
61 psutil
62 git-annex
63 datalad
64 openssh
65 unzip
66 ];
67
68 disabledTests =
69 [
70 # remotes available after datalad-next install (through `console_scripts`), but not yet in $PATH during test
71 "test_uncurl_addurl_unredirected"
72 "test_uncurl"
73 "test_uncurl_ria_access"
74 "test_uncurl_store"
75 "test_uncurl_remove"
76 "test_uncurl_testremote"
77 "test_replace_add_archive_content"
78 "test_annex_remote"
79 "test_export_remote"
80 "test_annex_remote_autorepush"
81 "test_export_remote_autorepush"
82 "test_typeweb_annex"
83 "test_typeweb_annex_uncompressed"
84 "test_typeweb_export"
85 "test_submodule_url"
86 "test_uncurl_progress_reporting_to_annex"
87 "test_archivist_retrieval"
88 "test_archivist_retrieval_legacy"
89
90 # hardcoded /bin path
91 "test_auto_if_wanted_data_transfer_path_restriction"
92
93 # requires internet access
94 "test_push_wanted"
95 "test_auto_data_transfer"
96 "test_http_url_operations"
97 "test_transparent_decompression"
98 "test_compressed_file_stay_compressed"
99 "test_ls_file_collection_tarfile"
100 "test_iter_tar"
101 ]
102 ++ lib.optionals (pythonAtLeast "3.13") [
103 # RuntimeError
104 "test_tree_with_broken_symlinks"
105 ];
106
107 disabledTestPaths = [
108 # requires internet access
109 "datalad_next/commands/tests/test_download.py"
110 "datalad_next/archive_operations/tests/test_tarfile.py"
111 ];
112
113 pythonImportsCheck = [ "datalad_next" ];
114
115 meta = {
116 description = "DataLad extension with a staging area for additional functionality, or for improved performance and user experience";
117 changelog = "https://github.com/datalad/datalad-next/blob/main/CHANGELOG.md";
118 homepage = "https://github.com/datalad/datalad-next";
119 license = lib.licenses.mit;
120 maintainers = with lib.maintainers; [ gador ];
121 };
122}