repo2docker/docs/source/specification.rst

33 wiersze
1.8 KiB
ReStructuredText

2019-05-02 22:58:58 +00:00
.. _specification:
====================================================
The Reproducible Execution Environment Specification
====================================================
2019-05-03 16:33:37 +00:00
repo2docker scans a repository for particular :ref:`config-files`, such
as ``requirements.txt`` or ``Project.toml``. The collection of files, their contents,
2019-05-03 16:33:37 +00:00
and the resulting actions that repo2docker takes is known
as the **Reproducible Execution Environment Specification** (or REES).
2019-05-02 22:58:58 +00:00
2019-05-03 16:33:37 +00:00
The goal of the REES is to automate and encourage existing community best practices
2019-05-03 22:08:48 +00:00
for reproducible computational environments. This includes installing pacakges using
community-standard specification files and their corresponding tools,
such as ``requirements.txt`` (with ``pip``), ``Project.toml`` (with Julia), or
2019-05-03 22:08:48 +00:00
``apt.txt`` (with ``apt``). While repo2docker automates the
2019-05-03 16:33:37 +00:00
creation of the environment, a human should be able to look at a REES-compliant
repository and reproduce the environment using common, clear steps without
repo2docker software.
2019-05-02 22:58:58 +00:00
Currently, the definition of the REE Specification is the following:
2019-05-03 22:08:48 +00:00
Any directory containing zero or more files from the :ref:`config-files` list is a
valid reproducible execution environment as defined by the REES. The
configuration files have to all be placed either in the root of the
directory, in a ``binder/`` sub-directory or a ``.binder/`` sub-directory.
2019-05-02 22:58:58 +00:00
2019-05-03 16:33:37 +00:00
For example, the REES recognises ``requirements.txt`` as a valid config file.
The file format is as defined by the ``requirements.txt`` standard of the Python
community. A REES-compliant tool will install a Python interpreter (of unspecified version)
and perform the equivalent action of ``pip install -r requirements.txt`` so that the
user can afterwards run python and use the packages installed.