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