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