Datalad

Latest version: v1.1.5

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 11 of 16

0.12.0rc2

Not secure
Fixes

- `GitRepo.dirty` does not report on nested empty directories ([3196][]).

- `GitRepo.save()` reports results on deleted files.

Enhancements and new features

- Absorb a new set of core commands from the datalad-revolution extension:
- `rev-status`: like `git status`, but simpler and working with dataset
hierarchies
- `rev-save`: a 2-in-1 replacement for save and add
- `rev-create`: a ~30% faster create

- JSON support tools can now read and write compressed files.


0.12.0rc1 (Mar 03, 2019) -- to boldly go ...

Major refactoring and deprecations

- Discontinued support for git-annex direct-mode (also no longer
supported upstream).

Enhancements and new features

- Dataset and Repo object instances are now hashable, and can be
created based on pathlib Path object instances

- Imported various additional methods for the Repo classes to query
information and save changes.

0.11.8

Not secure
Fixes

- Our internal command runner failed to capture output in some cases.
([3656][])
- Workaround in the tests around python in cPython >= 3.7.5 ';' in
the filename confusing mimetypes ([3769][]) ([3770][])

Enhancements and new features

- Prepared for upstream changes in git-annex, including support for
the latest git-annex
- 7.20190912 auto-upgrades v5 repositories to v7. ([3648][]) ([3682][])
- 7.20191009 fixed treatment of (larger/smaller)than in .gitattributes ([3765][])

- The `cfg_text2git` procedure, as well the `--text-no-annex` option
of [create][], now configure .gitattributes so that empty files are
stored in git rather than annex. ([3667][])


0.11.7 (Sep 06, 2019) -- python2-we-still-love-you-but-...

Primarily bugfixes with some optimizations and refactorings.

Fixes

- [addurls][]
- now provides better handling when the URL file isn't in the
expected format. ([3579][])
- always considered a relative file for the URL file argument as
relative to the current working directory, which goes against the
convention used by other commands of taking relative paths as
relative to the dataset argument. ([3582][])

- [run-procedure][]
- hard coded "python" when formatting the command for non-executable
procedures ending with ".py". `sys.executable` is now used.
([3624][])
- failed if arguments needed more complicated quoting than simply
surrounding the value with double quotes. This has been resolved
for systems that support `shlex.quote`, but note that on Windows
values are left unquoted. ([3626][])

- [siblings][] now displays an informative error message if a local
path is given to `--url` but `--name` isn't specified. ([3555][])

- [sshrun][], the command DataLad uses for `GIT_SSH_COMMAND`, didn't
support all the parameters that Git expects it to. ([3616][])

- Fixed a number of Unicode py2-compatibility issues. ([3597][])

- [download-url][] now will create leading directories of the output path
if they do not exist ([3646][])

Enhancements and new features

- The [annotate-paths][] helper now caches subdatasets it has seen to
avoid unnecessary calls. ([3570][])

- A repeated configuration query has been dropped from the handling of
`--proc-pre` and `--proc-post`. ([3576][])

- Calls to `git annex find` now use `--in=.` instead of the alias
`--in=here` to take advantage of an optimization that git-annex (as
of the current release, 7.20190730) applies only to the
former. ([3574][])

- [addurls][] now suggests close matches when the URL or file format
contains an unknown field. ([3594][])

- Shared logic used in the setup.py files of DataLad and its
extensions has been moved to modules in the _datalad_build_support/
directory. ([3600][])

- Get ready for upcoming git-annex dropping support for direct mode
([3631][])

0.11.6

Not secure
Primarily bug fixes to achieve more robust performance

Fixes

- Our tests needed various adjustments to keep up with upstream
changes in Travis and Git. ([3479][]) ([3492][]) ([3493][])

- `AnnexRepo.is_special_annex_remote` was too selective in what it
considered to be a special remote. ([3499][])

- We now provide information about unexpected output when git-annex is
called with `--json`. ([3516][])

- Exception logging in the `__del__` method of `GitRepo` and
`AnnexRepo` no longer fails if the names it needs are no longer
bound. ([3527][])

- [addurls][] botched the construction of subdataset paths that were
more than two levels deep and failed to create datasets in a
reliable, breadth-first order. ([3561][])

- Cloning a `type=git` special remote showed a spurious warning about
the remote not being enabled. ([3547][])

Enhancements and new features

- For calls to git and git-annex, we disable automatic garbage
collection due to past issues with GitPython's state becoming stale,
but doing so results in a larger .git/objects/ directory that isn't
cleaned up until garbage collection is triggered outside of DataLad.
Tests with the latest GitPython didn't reveal any state issues, so
we've re-enabled automatic garbage collection. ([3458][])

- [rerun][] learned an `--explicit` flag, which it relays to its calls
to [run][[]]. This makes it possible to call `rerun` in a dirty
working tree ([3498][]).

- The [metadata][] command aborts earlier if a metadata extractor is
unavailable. ([3525][])

0.11.5

Not secure
Should be faster and less buggy, with a few enhancements.

Fixes

- [create-sibling][] ([3318][])
- Siblings are no longer configured with a post-update hook unless a
web interface is requested with `--ui`.
- `git submodule update --init` is no longer called from the
post-update hook.
- If `--inherit` is given for a dataset without a superdataset, a
warning is now given instead of raising an error.
- The internal command runner failed on Python 2 when its `env`
argument had unicode values. ([3332][])
- The safeguard that prevents creating a dataset in a subdirectory
that already contains tracked files for another repository failed on
Git versions before 2.14. For older Git versions, we now warn the
caller that the safeguard is not active. ([3347][])
- A regression introduced in v0.11.1 prevented [save][] from committing
changes under a subdirectory when the subdirectory was specified as
a path argument. ([3106][])
- A workaround introduced in v0.11.1 made it possible for [save][] to
do a partial commit with an annex file that has gone below the
`annex.largefiles` threshold. The logic of this workaround was
faulty, leading to files being displayed as typechanged in the index
following the commit. ([3365][])
- The resolve_path() helper confused paths that had a semicolon for
SSH RIs. ([3425][])
- The detection of SSH RIs has been improved. ([3425][])

Enhancements and new features

- The internal command runner was too aggressive in its decision to
sleep. ([3322][])
- The "INFO" label in log messages now retains the default text color
for the terminal rather than using white, which only worked well for
terminals with dark backgrounds. ([3334][])
- A short flag `-R` is now available for the `--recursion-limit` flag,
a flag shared by several subcommands. ([3340][])
- The authentication logic for [create-sibling-github][] has been
revamped and now supports 2FA. ([3180][])
- New configuration option `datalad.ui.progressbar` can be used to
configure the default backend for progress reporting ("none", for
example, results in no progress bars being shown). ([3396][])
- A new progress backend, available by setting datalad.ui.progressbar
to "log", replaces progress bars with a log message upon completion
of an action. ([3396][])
- DataLad learned to consult the [NO_COLOR][] environment variable and
the new `datalad.ui.color` configuration option when deciding to
color output. The default value, "auto", retains the current
behavior of coloring output if attached to a TTY ([3407][]).
- [clean][] now removes annex transfer directories, which is useful
for cleaning up failed downloads. ([3374][])
- [clone][] no longer refuses to clone into a local path that looks
like a URL, making its behavior consistent with `git clone`.
([3425][])
- [wtf][]
- Learned to fall back to the `dist` package if `platform.dist`,
which has been removed in the yet-to-be-release Python 3.8, does
not exist. ([3439][])
- Gained a `--section` option for limiting the output to specific
sections and a `--decor` option, which currently knows how to
format the output as GitHub's `<details>` section. ([3440][])

0.11.4

Not secure
Largely a bug fix release with a few enhancements

Important

- 0.11.x series will be the last one with support for direct mode of [git-annex][]
which is used on crippled (no symlinks and no locking) filesystems.
v7 repositories should be used instead.

Fixes

- Extraction of .gz files is broken without p7zip installed. We now
abort with an informative error in this situation. ([3176][])

- Committing failed in some cases because we didn't ensure that the
path passed to `git read-tree --index-output=...` resided on the
same filesystem as the repository. ([3181][])

- Some pointless warnings during metadata aggregation have been
eliminated. ([3186][])

- With Python 3 the LORIS token authenticator did not properly decode
a response ([3205][]).

- With Python 3 downloaders unnecessarily decoded the response when
getting the status, leading to an encoding error. ([3210][])

- In some cases, our internal command Runner did not adjust the
environment's `PWD` to match the current working directory specified
with the `cwd` parameter. ([3215][])

- The specification of the pyliblzma dependency was broken. ([3220][])

- [search] displayed an uninformative blank log message in some
cases. ([3222][])

- The logic for finding the location of the aggregate metadata DB
anchored the search path incorrectly, leading to a spurious warning.
([3241][])

- Some progress bars were still displayed when stdout and stderr were
not attached to a tty. ([3281][])

- Check for stdin/out/err to not be closed before checking for `.isatty`.
([3268][])

Enhancements and new features

- Creating a new repository now aborts if any of the files in the
directory are tracked by a repository in a parent directory.
([3211][])

- [run] learned to replace the `{tmpdir}` placeholder in commands with
a temporary directory. ([3223][])

- [duecredit][] support has been added for citing DataLad itself as
well as datasets that an analysis uses. ([3184][])

- The `eval_results` interface helper unintentionally modified one of
its arguments. ([3249][])

- A few DataLad constants have been added, changed, or renamed ([3250][]):
- `HANDLE_META_DIR` is now `DATALAD_DOTDIR`. The old name should be
considered deprecated.
- `METADATA_DIR` now refers to `DATALAD_DOTDIR/metadata` rather than
`DATALAD_DOTDIR/meta` (which is still available as
`OLDMETADATA_DIR`).
- The new `DATASET_METADATA_FILE` refers to `METADATA_DIR/dataset.json`.
- The new `DATASET_CONFIG_FILE` refers to `DATALAD_DOTDIR/config`.
- `METADATA_FILENAME` has been renamed to `OLDMETADATA_FILENAME`.

0.11.3

Not secure
Just a few of important fixes and minor enhancements.

Fixes

- The logic for setting the maximum command line length now works
around Python 3.4 returning an unreasonably high value for
`SC_ARG_MAX` on Debian systems. ([3165][])

- DataLad commands that are conceptually "read-only", such as
`datalad ls -L`, can fail when the caller lacks write permissions
because git-annex tries merging remote git-annex branches to update
information about availability. DataLad now disables
`annex.merge-annex-branches` in some common "read-only" scenarios to
avoid these failures. ([3164][])

Enhancements and new features

- Accessing an "unbound" dataset method now automatically imports the
necessary module rather than requiring an explicit import from the
Python caller. For example, calling `Dataset.add` no longer needs to
be preceded by `from datalad.distribution.add import Add` or an
import of `datalad.api`. ([3156][])

- Configuring the new variable `datalad.ssh.identityfile` instructs
DataLad to pass a value to the `-i` option of `ssh`. ([3149][])
([3168][])

Page 11 of 16

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.