-
Add [extras] extras_require with datalad-metalad and add all those extras to [devel]. PR #215 (by @yarikoptic)
-
Robustify installation of singularity (install libfuse2). PR #221 (by @yarikoptic)
- BF: make it [] in case of None being returned. PR #217 (by @yarikoptic)
-
Capture stderr as well while trying for singularity or apptainer to avoid spurious stderr display. PR #208 (by @yarikoptic)
-
BF: by default stop containers-run on error, to not proceed to save. PR #209 (by @yarikoptic)
-
Add metalad extractor using
singularity inspect
. Fixes datalad#198 via datalad#200 (by @asmacdo ) -
Add
--extra-inputs
tocontainers-add
. Fixes #189 via PR #190 (by @nobodyinperson)
- Make
datalad_container.adapters.docker save
assumelatest
if no image version given. Fixes #105 via PR #206 (by @jwodder)
-
Add codespell action,config and fix 1 typo. PR #207 (by @yarikoptic)
-
Fix the "bump" level for breaking changes in .datalad-release-action.yaml. PR #186 (by @jwodder)
-
Account for move of @eval_results in datalad core. PR #192 (by @yarikoptic)
-
scriv.ini: Provide full relative path to the templates. PR #193 (by @yarikoptic)
- Install Singularity 3 from an official .deb, use newer ubuntu (jammy) on travis. PR #188 (by @bpoldrack)
- Replace
simplejson
withjson
#182 (@christian-monch)
- codespell fix some typos #184 (@yarikoptic)
- Reenabling tests using SingularityHub #180 (@yarikoptic)
- Christian MΓΆnch (@christian-monch)
- Yaroslav Halchenko (@yarikoptic)
- nose -> pytest, isort imports in tests, unify requirements-devel to correspond to the form as in core #179 (@yarikoptic)
- Adina Wagner (@adswa)
- Yaroslav Halchenko (@yarikoptic)
- BF: Disable subdataset result rendering #175 (@adswa)
- DOC: A few typos in comments/docstrings #173 (@yarikoptic)
- Update badges #172 (@mih)
- Build docs in standard workflow, not with travis #171 (@mih)
- Make six obsolete #170 (@mih)
- Adopt standard extension setup #169 (@mih @jwodder @yarikoptic)
- Adopt standard appveyor config #167 (@mih)
- Clarify documentation for docker usage #164 (@mih)
- Strip unsupported scenarios from travis #166 (@mih)
- WIP: Implement the actual command "containers" #2 (@mih @bpoldrack)
- Stop using deprecated Repo.add_submodule() #161 (@mih)
- BF:Docs: replace incorrect dashes with spaces in command names #154 (@loj)
- Adjust test to acknowledge reckless behavior (@mih)
- Slightly relax tests to account for upcoming remove() change (@mih)
- Mention that could be installed from conda-forge #177 (@yarikoptic)
- Adina Wagner (@adswa)
- Benjamin Poldrack (@bpoldrack)
- John T. Wodder II (@jwodder)
- Laura Waite (@loj)
- Michael Hanke (@mih)
- Yaroslav Halchenko (@yarikoptic)
- Laura Waite (@loj)
- BF+RF: no need to pandoc long description for pypi + correctly boost MODULE/version.py for the release #152 (@yarikoptic)
- Yaroslav Halchenko (@yarikoptic)
- Set up workflow with auto for releasing & PyPI uploads #151 (@yarikoptic)
- TST: docker_adapter: Skip tests if 'docker pull' in setup fails #148 (@kyleam)
- ENH: containers-add-dhub - add multiple images/tags/repositories from docker hub #135 (@kyleam @yarikoptic)
- Kyle Meyer (@kyleam)
- Yaroslav Halchenko (@yarikoptic)
- Replace use of
mock
withunittest.mock
as we do no longer support Python 2
- Drop use of
Runner
(to be removed in datalad 0.14.0) in favor ofWitlessRunner
-
Datalad version 0.13.0 or later is now required.
-
In the upcoming 0.14.0 release of DataLad, the datalad special remote will have built-in support for "shub://" URLs. If
containers-add
detects support for this feature, it will now add the "shub://" URL as is rather than resolving the URL itself. This avoids registering short-lived URLs, allowing the image to be retrieved later withdatalad get
. -
containers-run
learned to install necessary subdatasets when asked to execute a container from underneath an uninstalled subdataset.
- Prefer
datalad.core.local.run
todatalad.interface.run
. The latter has been marked as obsolete since DataLad v0.12 (our minimum requirement) and will be removed in DataLad's next feature release.
Extension is pretty stable so releasing as 1. MAJOR release, so we could start tracking API breakages and enhancements properly.
- Drops support for Python 2 and DataLad prior 0.12
- The Docker adapter unconditionally called
docker run
with--interactive
and--tty
even when stdin was not attached to a TTY, leading to an error.
-
The Docker adapter, which is used for the "dhub://" URL scheme, assumed the Python executable was spelled "python".
-
A call to DataLad's
resolve_path
helper assumed a string return value, which isn't true as of the latest DataLad release candidate, 0.12.0rc6.
- The default result renderer for
containers-list
is now a custom renderer that includes the container name in the output.
- Temporarily skip two tests relying on SingularityHub -- it is down.
The minimum required DataLad version is now 0.11.5.
-
The call format gained the "{img_dspath}" placeholder, which expands to the relative path of the dataset that contains the image. This is useful for pointing to a wrapper script that is bundled in the same subdataset as a container.
-
containers-run
now passes the container image torun
via itsextra_inputs
argument so that a run command's "{inputs}" field is restricted to inputs that the caller explicitly specified. -
During execution,
containers-run
now sets the environment variableDATALAD_CONTAINER_NAME
to the name of the container.
-
containers-run
mishandled paths when called from a subdirectory. -
containers-run
didn't provide an informative error message whencmdexec
contained an unknown placeholder. -
containers-add
ignores the--update
flag when the container doesn't yet exist, but it confusingly still used the word "update" in the commit message.
containers-list
recursion actually does recursion.
-
containers-list
no longer lists containers from subdatasets by default. Specify--recursive
to do so. -
containers-run
no longer considers subdataset containers in its automatic selection of a container name when no name is specified. If the current dataset has one container, that container is selected. Subdataset containers must always be explicitly specified.
-
containers-add
learned to update a previous container when passed--update
. -
containers-add
now supports Singularity's "docker://" scheme in the URL. -
To avoid unnecessary recursion into subdatasets,
containers-run
now decides to look for containers in subdatasets based on whether the name has a slash (which is true of all subdataset containers).
- list/use containers recursively from installed subdatasets
- Allow to specify container by path rather than just by name
- Adding a container from local filesystem will copy it now
- Add support
datalad run --explicit
.
- Initial support for adding and running Docker containers.
- Add support
datalad run --sidecar
. - Simplify storage of
call_fmt
arguments in the Git config, by benefiting fromdatalad run
being able to work with single-string compound commands.
- Basic beginner documentation
- Add container images straight from singularity-hub, no need to manually
specify
--call-fmt
arguments.
- Use "name" instead of "label" for referring to a container (e.g.
containers-run -n ...
instead ofcontainers-run -l
.
- Pass relative container path to
datalad run
. containers-run
no longer hidesdatalad run
failures.
- Initial release with basic functionality to add, remove, and list
containers in a dataset, plus a
run
command wrapper that injects the container image as an input dependency of a command call.