- [save][] fully replaces [add][] (which is obsolete now, and will be removed
in a future release).
- A new Git-annex aware [status][] command enables detailed inspection of dataset
hierarchies. The previously available [diff][] command has been adjusted to
match [status][] in argument semantics and behavior.
- The ability to configure dataset procedures prior and after the execution of
particular commands has been replaced by a flexible "hook" mechanism that is able
to run arbitrary DataLad commands whenever command results are detected that match
a specification.
- Support of the Windows platform has been improved substantially. While performance
and feature coverage on Windows still falls behind Unix-like systems, typical data
consumer use cases, and standard dataset operations, such as [create][] and [save][],
are now working. Basic support for data provenance capture via [run][] is also
functional.
- Support for Git-annex direct mode repositories has been removed, following the
end of support in Git-annex itself.
- The semantics of relative paths in command line arguments have changed. Previously,
a call `datalad save --dataset /tmp/myds some/relpath` would have been interpreted
as saving a file at `/tmp/myds/some/relpath` into dataset `/tmp/myds`. This has
changed to saving `$PWD/some/relpath` into dataset `/tmp/myds`. More generally,
relative paths are now always treated as relative to the current working directory,
except for path arguments of [Dataset][] class instance methods of the Python API.
The resulting partial duplication of path specifications between path and dataset
arguments is mitigated by the introduction of two special symbols that can be given
as dataset argument: `^` and `^.`, which identify the topmost superdataset and the
closest dataset that contains the working directory, respectively.
- The concept of a "core API" has been introduced. Commands situated in the module
`datalad.core` (such as [create][], [save][], [run][], [status][], [diff][])
receive additional scrutiny regarding API and implementation, and are
meant to provide longer-term stability. Application developers are encouraged to
preferentially build on these commands.