There is a newer version of the record available.

Published June 4, 2026 | Version 1.5.0

datalad/datalad: 1.5.0

  • 1. Institute of Neuroscience and Medicine, Brain & Behaviour (INM-7), Research Centre Jülich, Jülich, Germany and Institute of Systems Neuroscience, Medical Faculty, Heinrich Heine University Düsseldorf, Düsseldorf, Germany
  • 2. Dartmouth College, Hanover, NH, United States
  • 3. Institute of Neuroscience and Medicine, Brain & Behaviour (INM-7), Research Centre Jülich, Jülich, Germany
  • 4. University of Texas at Austin
  • 5. UC Berkeley - UCSF Graduate Program in Bioengineering
  • 6. UC Berkeley
  • 7. Stanford University, Stanford, CA, United States
  • 8. Psychoinformatics Lab, INM-7, Research Centre Juelich
  • 9. Maze Therapeutics, South San Francisco, CA, United States
  • 10. Potsdam Institute for Climate Impact Research (PIK) e. V.
  • 11. Université catholique de Louvain, Louvain la neuve, Belgium
  • 12. Institute of Climate and Energy Systems - Stratosphere (ICE-4), Research Centre Jülich, Jülich, Germany
  • 13. Eberhard Karls Universität Tübingen
  • 14. Institute of Neuroscience and Medicine, Brain & Behavior (INM-7), Research Center Juelich, Germany
  • 15. Institute of Biophysics, University of Natural Resources and Life Sciences, Vienna, Austria

Description

🚀 Enhancements and New Features

  • Add --cfg-proc option to install, clone, and get to run configuration procedures on datasets post-installation. Fixes #7468 via PR #7477 (by @bpinsard)

  • NF+BM: extend create_test_dataset spec, add save/run benchmarks on heavy hierarchies. PR #7839 (by @yarikoptic)

🐛 Bug Fixes

  • Fix AltConstraints.__or__() and Constraints.__and__() mutating their left-hand operand in place and returning self. This caused silent side effects when constraint objects defined at module level (e.g. reckless_opt) were reused across multiple | or & chains. Both operators now return a new instance, preserving the original. Identified via the constraint system overhaul in datalad-next. Fixes #7164 (by @yarikoptic)

  • Propagate datalad -c key=value CLI config overrides and DATALAD_* environment variables to subprocesses via Git's native environment-based configuration mechanism (GIT_CONFIG_COUNT / GIT_CONFIG_KEY_N / GIT_CONFIG_VALUE_N). Previously the overrides were only stored in datalad.cfg.overrides and were invisible to subprocesses spawned by commands like datalad run, so e.g. datalad -c user.name=Test run git config user.name did not return the override. Adapted near-verbatim from the cli_configoverrides patch in datalad-next, with its get_gitconfig_items_from_env / set_gitconfig_items_in_env helpers also added under datalad.config. Fixes #4119 (by @yarikoptic)

  • ENH add --data option to get command, matching push one. PR #7476 (by @bpinsard)

  • chore: deduplicate code across interface docs, create-sibling, s3, and benchmarks. PR #7841 (by @yarikoptic)

  • Do not fail add-archive-content when adding files ignored due to .gitignore rules. PR #7844 (by @asmacdo)

  • Fix the dataset-level "Total" progress bar of datalad get (and other JSON-progress annex commands): advance it on per-file byte-progress deltas (throttled to 0.5s) instead of only on completion, surface errored files in the bar label ([errored: N / <human-size>]) and remove their key-sizes from the effective total, and roll back any provisional credit when a partially-streamed file errors. The bar now tracks cumulative on-disk bytes for non-errored files; resumed-from-disk bytes are tracked as a separate anchor pushed to tqdm via initial= so the rate / ETA display reflects session work only. PR #7865 (by @yarikoptic)

  • Fix tqdmProgressBar.update so a changed total= is applied directly rather than via tqdm.reset(), which used to zero the elapsed-time and EMA state and produce momentary nonsense rates (e.g. [00:00<00:00, 16.0T Bytes/s]). PR #7865 (by @yarikoptic)

  • Resolve --jobs auto for push, drop, and remove so the literal string auto is no longer passed through to git annex. Previously push --jobs=auto crashed with option --jobs: cannot parse value 'auto', while drop --jobs=auto (and remove --jobs=auto, which delegates to drop) swallowed the same CommandError and silently left content in place. Fixes #7867. PR #7868 (by @yarikoptic)

🏎 Performance

  • datalad push no longer runs a pointless git push --dry-run and refspec computation when the target is a git-annex special remote (e.g. WebDAV, S3, directory) that has no git URL. This was wasteful at best and could cause errors or significant slowdowns for remotes like WebDAV. The target_is_git_remote check is now performed before the dry-run block and guards the entire dry-run + refspec computation. Ported from the push_optimize patch in datalad-next. Fixes #6657 (by @yarikoptic)

🧪 Tests

  • Resolve @use_cassette('name') against <test_module_dir>/vcr_cassettes/<name>.yaml so cassettes can ship next to their tests. PR #7852 (by @yarikoptic)

  • Ship VCR cassette for test_anonymous_s3 so it stops hitting live S3. PR #7852 (by @yarikoptic)

  • Drop the annex.pidlock=true NFS workaround. Its v7-era polling-based locking became the dominant cost on NFS after the v8→v10 git-annex bump and was the root cause of the cron NFS-job 6h timeouts; v10 + NFSv4.2 handles fcntl natively. PR #7852 (by @yarikoptic)

  • Retry SSH-target docker setup on host port collisions in tools/ci/prep-travis-forssh.sh. PR #7852 (by @yarikoptic)

  • Export the cron NFS test mount with async for more-realistic-than-default test conditions and a small per-write speedup. PR #7852 (by @yarikoptic)

  • Capture per-test timings as a pytest-report.jsonl artifact via pytest-reportlog, preserving timing data even when a job is cancelled. PR #7852 (by @yarikoptic)

  • BF(TST): add signal_timeout helper and bound test_gin_cloning. PR #7859 (by @yarikoptic)

Files

datalad/datalad-1.5.0.zip

Files (1.8 MB)

Name Size Download all
md5:8fbd1322ee3c27e229d114813470e2c5
1.8 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/datalad/datalad/tree/1.5.0 (URL)

Funding

U.S. National Science Foundation
CRCNS US-German Data Sharing: DataGit - converging catalogues, warehouses, and deployment logistics into a federated 'data distribution' 1429999

Software