1.0.0 -- semantic versioning from here
This release represents a milestone in the development of the extension.
The package is reorganized to be a collection of more self-contained
mini-packages, each with its own set of tests.
Developer documentation and guidelines have been added to aid further
development. One particular goal is to establish datalad-next as a proxy
for importing datalad-core functionality for other extensions. Direct imports
from datalad-core can be minimized in favor of imports from datalad-next.
This helps identifying functionality needed outside the core package,
and guides efforts for future improvements.
The 1.0 release marks the switch to a more standard approach to semantic
versioning. However, although a substantial improvements have been made,
the 1.0 version nohow indicates a slowdown of development or a change in the
likelihood of (breaking) changes. They will merely become more easily
discoverable from the version label alone.
Notable high-level features introduced by this major release are:
-
The new
UrlOperations
framework to provide a set of basic operations like
download
,upload
,stat
for different protocols. This framework can be
thought of as a replacement for the "downloaders" functionality in
datalad-core -- although the feature list is not 100% overlapping. This new
framework is more easily extensible by 3rd-party code. -
The
Constraints
framework elevates parameter/input validation to the next
level. In contrast to datalad-core, declarative input validation is no longer
limited to the CLI. Instead, command parameters can now be validated regardless
of the entrypoint through which a command is used. They can be validated
individually, but also sets of parameters can be validated jointly to implement
particular interaction checks. All parameter validations can now be performed
exhaustive, to present a user with a complete list of validation errors, rather
then the fail-on-first-error method implemented exclusively in datalad-core.
Validation errors are now reported using dedicated structured data type to aid
their communication via non-console interfaces. -
The
Credentials
system has been further refined with more homogenized
workflows and deeper integration into other subsystems. This release merely
represents a snapshot of continued development towards a standardization of
credential handling workflows. -
The annex remotes
uncurl
andarchivist
are replacements for the
datalad-core implementationsdatalad
anddatalad-archive
. The offer
substantially improved configurability and leaner operation -- built on the
UrlOperations
framework. -
A growing collection of iterator (see
iter_collections
) aims to provide
fast (and more Pythonic) operations on common data structures (Git worktrees,
directories, archives). The can be used as an alternative to the traditional
Repo
classes (GitRepo
,AnnexRepo
) from datalad-core. -
Analog to
UrlOperations
theArchiveOperations
framework aims to provide
an abstraction for operations on different archive types (e.g., TAR). The
represent an alternative to the traditional implementations of
ExtractedArchive
andArchivesCache
from datalad-core, and aim at leaner
resource footprints. -
The collection of runtime patches for datalad-core has been further expanded.
All patches are now individually documented, and applied using a set of standard
helpers (see http://docs.datalad.org/projects/next/en/latest/patches.html).
For details, please see the changelogs of the 1.0.0 beta releases below.
💫 Enhancements and new features
TarArchiveOperations
is the first implementation of theArchiveOperations
abstraction, providing archive handlers with a set of standard operations:
🐛 Bug Fixes
-
Make
TarfileItem.name
be of typePurePosixPath
to reflect the fact
that a TAR archive can contain members with names that cannot be represent
unmodified on a non-POSIX file system.
#422 (by @mih)
An analog change is done forZipfileItem.name
.
#409 (by @christian-monch) -
Fix
git ls-file
parsing initer_gitworktree()
to be compatible with
file names that start with atab
character.
#421 (by @christian-monch)
📝 Documentation
-
Expanded guidelines on test implementations.
-
Add missing and fix wrong docstrings for HTTP/WebDAV server related fixtures.
#445 (by @adswa)