Datalad

Latest version: v1.0.2

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

Scan your dependencies

Page 9 of 15

0.12.1

Not secure
Fix some fallout after major release.

Fixes

- Revert incorrect relative path adjustment to URLs in [clone][]. ([3538][])

- Various small fixes to internal helpers and test to run on Windows
([2566][]) ([2534][])

0.12.0

Not secure
This release is the result of more than a year of development that includes
fixes for a large number of issues, yielding more robust behavior across a
wider range of use cases, and introduces major changes in API and behavior. It
is the first release for which extensive user documentation is available in a
dedicated [DataLad Handbook][handbook]. Python 3 (3.5 and later) is now the
only supported Python flavor.

0.12.0rc6

Not secure
bet we will fix some bugs and make a world even a better place.

Major refactoring and deprecations

- DataLad no longer supports Python 2. The minimum supported version
of Python is now 3.5. ([3629][])

- Much of the user-focused content at http://docs.datalad.org has been
removed in favor of more up to date and complete material available
in the [DataLad Handbook][handbook]. Going forward, the plan is to
restrict http://docs.datalad.org to technical documentation geared
at developers. ([3678][])

- [update][] used to allow the caller to specify which dataset(s) to
update as a `PATH` argument or via the the `--dataset` option; now
only the latter is supported. Path arguments only serve to restrict
which subdataset are updated when operating recursively.
([3700][])

- Result records from a [get][] call no longer have a "state" key.
([3746][])

- [update][] and [get][] no longer support operating on independent
hierarchies of datasets. ([3700][]) ([3746][])

- The [run][] update in 0.12.0rc4 for the new path resolution logic
broke the handling of inputs and outputs for calls from a
subdirectory. ([3747][])

- The `is_submodule_modified` method of `GitRepo` as well as two
helper functions in gitrepo.py, `kwargs_to_options` and
`split_remote_branch`, were no longer used internally or in any
known DataLad extensions and have been removed. ([3702][])
([3704][])

- The `only_remote` option of `GitRepo.is_with_annex` was not used
internally or in any known extensions and has been dropped.
([3768][])

- The `get_tags` method of `GitRepo` used to sort tags by committer
date. It now sorts them by the tagger date for annotated tags and
the committer date for lightweight tags. ([3715][])

- The `rev_resolve_path` substituted `resolve_path` helper. ([3797][])


Fixes

- Correctly handle relative paths in [publish][]. ([3799][]) ([3102][])

- Do not erroneously discover directory as a procedure. ([3793][])

- Correctly extract version from manpage to trigger use of manpages for
`--help`. ([3798][])

- The `cfg_yoda` procedure saved all modifications in the repository
rather than saving only the files it modified. ([3680][])

- Some spots in the documentation that were supposed appear as two
hyphens were incorrectly rendered in the HTML output en-dashs.
([3692][])

- [create][], [install][], and [clone][] treated paths as relative to
the dataset even when the string form was given, violating the new
path handling rules. ([3749][]) ([3777][]) ([3780][])

- Providing the "^" shortcut to `--dataset` didn't work properly when
called from a subdirectory of a subdataset. ([3772][])

- We failed to propagate some errors from git-annex when working with
its JSON output. ([3751][])

- With the Python API, callers are allowed to pass a string or list of
strings as the `cfg_proc` argument to [create][], but the string
form was mishandled. ([3761][])

- Incorrect command quoting for SSH calls on Windows that rendered
basic SSH-related functionality (e.g., [sshrun][]) on Windows
unusable. ([3688][])

- Annex JSON result handling assumed platform-specific paths on Windows
instead of the POSIX-style that is happening across all platforms.
([3719][])

- `path_is_under()` was incapable of comparing Windows paths with different
drive letters. ([3728][])

Enhancements and new features

- Provide a collection of "public" `call_git*` helpers within GitRepo
and replace use of "private" and less specific `_git_custom_command`
calls. ([3791][])

- [status][] gained a `--report-filetype`. Setting it to "raw" can
give a performance boost for the price of no longer distinguishing
symlinks that point to annexed content from other symlinks.
([3701][])

- [save][] disables file type reporting by [status][] to improve
performance. ([3712][])

- [subdatasets][] ([3743][])
- now extends its result records with a `contains` field that lists
which `contains` arguments matched a given subdataset.
- yields an 'impossible' result record when a `contains` argument
wasn't matched to any of the reported subdatasets.

- [install][] now shows more readable output when cloning fails.
([3775][])

- `SSHConnection` now displays a more informative error message when
it cannot start the `ControlMaster` process. ([3776][])

- If the new configuration option `datalad.log.result-level` is set to
a single level, all result records will be logged at that level. If
you've been bothered by DataLad's double reporting of failures,
consider setting this to "debug". ([3754][])

- Configuration values from `datalad -c OPTION=VALUE ...` are now
validated to provide better errors. ([3695][])

- [rerun][] learned how to handle history with merges. As was already
the case when cherry picking non-run commits, re-creating merges may
results in conflicts, and `rerun` does not yet provide an interface
to let the user handle these. ([2754][])

- The `fsck` method of `AnnexRepo` has been enhanced to expose more
features of the underlying `git fsck` command. ([3693][])

- `GitRepo` now has a `for_each_ref_` method that wraps `git
for-each-ref`, which is used in various spots that used to rely on
GitPython functionality. ([3705][])

- Do not pretend to be able to work in optimized (`python -O`) mode,
crash early with an informative message. ([3803][])

0.12.0rc5 (September 04, 2019) -- .

Various fixes and enhancements that bring the 0.12.0 release closer.

Major refactoring and deprecations

- The two modules below have a new home. The old locations still
exist as compatibility shims and will be removed in a future
release.
- `datalad.distribution.subdatasets` has been moved to
`datalad.local.subdatasets` ([3429][])
- `datalad.interface.run` has been moved to `datalad.core.local.run`
([3444][])

- The `lock` method of `AnnexRepo` and the `options` parameter of
`AnnexRepo.unlock` were unused internally and have been removed.
([3459][])

- The `get_submodules` method of `GitRepo` has been rewritten without
GitPython. When the new `compat` flag is true (the current
default), the method returns a value that is compatible with the old
return value. This backwards-compatible return value and the
`compat` flag will be removed in a future release. ([3508][])

- The logic for resolving relative paths given to a command has
changed ([3435][]). The new rule is that relative paths are taken
as relative to the dataset only if a dataset _instance_ is passed by
the caller. In all other scenarios they're considered relative to
the current directory.

The main user-visible difference from the command line is that using
the `--dataset` argument does _not_ result in relative paths being
taken as relative to the specified dataset. (The undocumented
distinction between "rel/path" and "./rel/path" no longer exists.)

All commands under `datalad.core` and `datalad.local`, as well as
`unlock` and `addurls`, follow the new logic. The goal is for all
commands to eventually do so.

Fixes

- The function for loading JSON streams wasn't clever enough to handle
content that included a Unicode line separator like
U2028. ([3524][])

- When [unlock][] was called without an explicit target (i.e., a
directory or no paths at all), the call failed if any of the files
did not have content present. ([3459][])

- `AnnexRepo.get_content_info` failed in the rare case of a key
without size information. ([3534][])

- [save][] ignored `--on-failure` in its underlying call to
[status][]. ([3470][])

- Calling [remove][] with a subdirectory displayed spurious warnings
about the subdirectory files not existing. ([3586][])

- Our processing of `git-annex --json` output mishandled info messages
from special remotes. ([3546][])

- [create][]
- didn't bypass the "existing subdataset" check when called with
`--force` as of 0.12.0rc3 ([3552][])
- failed to register the up-to-date revision of a subdataset when
`--cfg-proc` was used with `--dataset` ([3591][])

- The base downloader had some error handling that wasn't compatible
with Python 3. ([3622][])

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

- `AnnexRepo.get_content_annexinfo` did not properly chunk file
arguments to avoid exceeding the command-line character limit.
([3587][])

Enhancements and new features

- New command `create-sibling-gitlab` provides an interface for
creating a publication target on a GitLab instance. ([3447][])

- [subdatasets][] ([3429][])
- now supports path-constrained queries in the same manner as
commands like `save` and `status`
- gained a `--contains=PATH` option that can be used to restrict the
output to datasets that include a specific path.
- now narrows the listed subdatasets to those underneath the current
directory when called with no arguments

- [status][] learned to accept a plain `--annex` (no value) as
shorthand for `--annex basic`. ([3534][])

- The `.dirty` property of `GitRepo` and `AnnexRepo` has been sped up.
([3460][])

- The `get_content_info` method of `GitRepo`, used by `status` and
commands that depend on `status`, now restricts its git calls to a
subset of files, if possible, for a performance gain in repositories
with many files. ([3508][])

- Extensions that do not provide a command, such as those that provide
only metadata extractors, are now supported. ([3531][])

- When calling git-annex with `--json`, we log standard error at the
debug level rather than the warning level if a non-zero exit is
expected behavior. ([3518][])

- [create][] no longer refuses to create a new dataset in the odd
scenario of an empty .git/ directory upstairs. ([3475][])

- As of v2.22.0 Git treats a sub-repository on an unborn branch as a
repository rather than as a directory. Our documentation and tests
have been updated appropriately. ([3476][])

- [addurls][] learned to accept a `--cfg-proc` value and pass it to
its `create` calls. ([3562][])

0.12.0rc4

Not secure
With the replacement of the `save` command implementation with `rev-save`
the revolution effort is now over, and the set of key commands for
local dataset operations (`create`, `run`, `save`, `status`, `diff`) is
now complete. This new core API is available from `datalad.core.local`
(and also via `datalad.api`, as any other command).

Major refactoring and deprecations

- The `add` command is now deprecated. It will be removed in a future
release.

Fixes

- Remove hard-coded dependencies on POSIX path conventions in SSH support
code ([3400][])

- Emit an `add` result when adding a new subdataset during [save][] ([3398][])

- SSH file transfer now actually opens a shared connection, if none exists
yet ([3403][])

Enhancements and new features

- `SSHConnection` now offers methods for file upload and download (`get()`,
`put()`. The previous `copy()` method only supported upload and was
discontinued ([3401][])

0.12.0rc3

Not secure

Continues API consolidation and replaces the `create` and `diff` command
with more performant implementations.

Major refactoring and deprecations

- The previous `diff` command has been replaced by the diff variant
from the [datalad-revolution][] extension. ([3366][])

- `rev-create` has been renamed to `create`, and the previous `create`
has been removed. ([3383][])

- The procedure `setup_yoda_dataset` has been renamed to `cfg_yoda`
([3353][]).

- The `--nosave` of `addurls` now affects only added content, not
newly created subdatasets ([3259][]).

- `Dataset.get_subdatasets` (deprecated since v0.9.0) has been
removed. ([3336][])

- The `.is_dirty` method of `GitRepo` and `AnnexRepo` has been
replaced by `.status` or, for a subset of cases, the `.dirty`
property. ([3330][])

- `AnnexRepo.get_status` has been replaced by `AnnexRepo.status`.
([3330][])

Fixes

- [status][]
- reported on directories that contained only ignored files ([3238][])
- gave a confusing failure when called from a subdataset with an
explicitly specified dataset argument and "." as a path ([3325][])
- misleadingly claimed that the locally present content size was
zero when `--annex basic` was specified ([3378][])

- An informative error wasn't given when a download provider was
invalid. ([3258][])

- Calling `rev-save PATH` saved unspecified untracked subdatasets.
([3288][])

- The available choices for command-line options that take values are
now displayed more consistently in the help output. ([3326][])

- The new pathlib-based code had various encoding issues on Python 2.
([3332][])

Enhancements and new features

- [wtf][] now includes information about the Python version. ([3255][])

- When operating in an annex repository, checking whether git-annex is
available is now delayed until a call to git-annex is actually
needed, allowing systems without git-annex to operate on annex
repositories in a restricted fashion. ([3274][])

- The `load_stream` on helper now supports auto-detection of
compressed files. ([3289][])

- `create` (formerly `rev-create`)
- learned to be speedier by passing a path to `status` ([3294][])
- gained a `--cfg-proc` (or `-c`) convenience option for running
configuration procedures (or more accurately any procedure that
begins with "cfg_") in the newly created dataset ([3353][])

- `AnnexRepo.set_metadata` now returns a list while
`AnnexRepo.set_metadata_` returns a generator, a behavior which is
consistent with the `add` and `add_` method pair. ([3298][])

- `AnnexRepo.get_metadata` now supports batch querying of known annex
files. Note, however, that callers should carefully validate the
input paths because the batch call will silently hang if given
non-annex files. ([3364][])

- [status][]
- now reports a "bytesize" field for files tracked by Git ([3299][])
- gained a new option `eval_subdataset_state` that controls how the
subdataset state is evaluated. Depending on the information you
need, you can select a less expensive mode to make `status`
faster. ([3324][])
- colors deleted files "red" ([3334][])

- Querying repository content is faster due to batching of `git
cat-file` calls. ([3301][])

- The dataset ID of a subdataset is now recorded in the superdataset.
([3304][])

- `GitRepo.diffstatus`
- now avoids subdataset recursion when the comparison is not with
the working tree, which substantially improves performance when
diffing large dataset hierarchies ([3314][])
- got smarter and faster about labeling a subdataset as "modified"
([3343][])

- `GitRepo.get_content_info` now supports disabling the file type
evaluation, which gives a performance boost in cases where this
information isn't needed. ([3362][])

- The XMP metadata extractor now filters based on file name to improve
its performance. ([3329][])

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.

Page 9 of 15

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.