- Run isort across entire codebase to harmonize imports order/appearance. https://github.com/datalad/datalad-container/260 (by @yarikoptic)
- A new placeholder
{python}is supported by container execution. It resolves to the Python interpreter executable running DataLad on container execution. This solves portability issues with the previous approach of hard-coding a command name on container configuration. Fixes #226 via #227 (by @mih)
-
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 #198 via #200 (by @asmacdo ) -
Add
--extra-inputstocontainers-add. Fixes #189 via PR #190 (by @nobodyinperson)
- Make
datalad_container.adapters.docker saveassumelatestif 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
simplejsonwithjson#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
mockwithunittest.mockas 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-adddetects 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-runlearned to install necessary subdatasets when asked to execute a container from underneath an uninstalled subdataset.
- Prefer
datalad.core.local.runtodatalad.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 runwith--interactiveand--ttyeven 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_pathhelper 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-listis 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-runnow passes the container image torunvia itsextra_inputsargument so that a run command's "{inputs}" field is restricted to inputs that the caller explicitly specified. -
During execution,
containers-runnow sets the environment variableDATALAD_CONTAINER_NAMEto the name of the container.
-
containers-runmishandled paths when called from a subdirectory. -
containers-rundidn't provide an informative error message whencmdexeccontained an unknown placeholder. -
containers-addignores the--updateflag when the container doesn't yet exist, but it confusingly still used the word "update" in the commit message.
containers-listrecursion actually does recursion.
-
containers-listno longer lists containers from subdatasets by default. Specify--recursiveto do so. -
containers-runno 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-addlearned to update a previous container when passed--update. -
containers-addnow supports Singularity's "docker://" scheme in the URL. -
To avoid unnecessary recursion into subdatasets,
containers-runnow 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_fmtarguments in the Git config, by benefiting fromdatalad runbeing able to work with single-string compound commands.
- Basic beginner documentation
- Add container images straight from singularity-hub, no need to manually
specify
--call-fmtarguments.
- 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-runno longer hidesdatalad runfailures.
- Initial release with basic functionality to add, remove, and list
containers in a dataset, plus a
runcommand wrapper that injects the container image as an input dependency of a command call.