datalad-handbook/docs/beyond_basics/101-180-next.rst

67 lines
3.6 KiB
ReStructuredText

.. _datalad-next:
What's next in DataLad?
-----------------------
The `datalad-next extension <https://docs.datalad.org/projects/next>`_ is a noteworthy extension not only because of the additional functionality it provides, but also because of its role in the development process of the datalad core package.
It can be thought of as a staging area for additional functionality, or for improved performance and user experience.
New features are introduced into ``datalad-next`` first, and, once tested for a sufficient amount of time and deemed useful, adopted in the core datalad package.
As such, ``datalad-next`` isn't confined to a topical set of features, but provides functionality with broad applicability.
Some of this functionality takes the form of new stand-alone commands, while other functionality concerns improvements of existing commands under the hood via a special patch mechanism or modern re-implementations of established concepts.
As development in this extension is dynamic, the best place to find and up-to-date overview of functionality is in its `source repository <https://github.com/datalad/datalad-next>`_.
.. figure:: ../artwork/src/future_view.svg
Selected features
^^^^^^^^^^^^^^^^^
The ideal way to stay up-to-date on gooey developments is its documentation at `docs.datalad.org/projects/next <https://docs.datalad.org/projects/next>`_.
A few selected commands are featured here, nevertheless.
datalad tree
""""""""""""
The :dlcmd:`tree` command visualizes directory and dataset hierarchies.
It mimics the UNIX/MS-DOS 'tree' utility to generate and display a directory tree, with DataLad-specific enhancements.
With those, it can be used as an improved `tree`-style visualization, as a dataset discovery tool (when used with its ``--recursive`` option), or for programmatic directory traversal.
.. code-block:: bash
/tmp/mydir
├── [DS~0] ds_A/
│ └── [DS~1] subds_A/
└── [DS~0] ds_B/
├── dir_B/
│ ├── file.txt
│ ├── subdir_B/
│ └── [DS~1] subds_B0/
└── [DS~1] (not installed) subds_B1/
5 datasets, 2 directories, 1 file
datalad download
""""""""""""""""
The :dlcmd:`download` command is similar to :dlcmd:`download-url`, but more powerful and meant as a backend rather than a front-end.
Unlike most DataLad commands, it can be used outside of the context of a dataset, has more options for input and output specifications (such as streaming), and provides support for additional URL schemes (such as :term:`SSH` URLs).
datalad create-sibling-webdav
"""""""""""""""""""""""""""""
The :dlcmd:`create-sibling-webdav` extends DataLad's ``create-sibling-*`` family with support for `WebDAV <https://en.wikipedia.org/wiki/WebDAV>`_ services such as `Nextcloud <https://en.wikipedia.org/wiki/Nextcloud>`_, `owncloud <https://en.wikipedia.org/wiki/OwnCloud>`_ `Sciebo <https://www.hochschulcloud.nrw>`_.
Notably, it provides new, powerful dataset deposition methods that include human-readable worktree-like representations of datasets that are nevertheless clone-able.
.. index::
single: configuration item; datalad.extensions.load
Patches to exiting functionality
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
``datalad-next`` differs from other extensions also in that it has a mechanism that hooks into existing DataLad commands and improves them under the hood.
If the DataLad configuration ``extensions.load=next`` is set and ``datalad-next`` is installed, patches can be applied to select commands of the core package.
.. code-block:: bash
datalad configuration --scope global set datalad.extensions.load=next