summaryrefslogtreecommitdiff
path: root/doc/config.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/config.txt')
-rw-r--r--doc/config.txt633
1 files changed, 0 insertions, 633 deletions
diff --git a/doc/config.txt b/doc/config.txt
deleted file mode 100644
index d99e91c..0000000
--- a/doc/config.txt
+++ /dev/null
@@ -1,633 +0,0 @@
-.. be in -*- rst -*- mode!
-
-tox configuration specification
-===============================
-
-.. _ConfigParser: http://docs.python.org/library/configparser.html
-
-``tox.ini`` files uses the standard ConfigParser_ "ini-style" format.
-Below you find the specification, but you might want to skim some
-:doc:`examples` first and use this page as a reference.
-
-Tox global settings
--------------------
-
-List of optional global options::
-
- [tox]
- minversion=ver # minimally required tox version
- toxworkdir=path # tox working directory, defaults to {toxinidir}/.tox
- setupdir=path # defaults to {toxinidir}
- distdir=path # defaults to {toxworkdir}/dist
- distshare=path # (DEPRECATED) defaults to {homedir}/.tox/distshare
- envlist=ENVLIST # defaults to the list of all environments
- skipsdist=BOOL # defaults to false
-
-
-``tox`` autodetects if it is running in a Jenkins_ context
-(by checking for existence of the ``JENKINS_URL`` environment variable)
-and will first lookup global tox settings in this section::
-
- [tox:jenkins]
- ... # override [tox] settings for the jenkins context
- # note: for jenkins distshare defaults to ``{toxworkdir}/distshare`` (DEPRECATED)
-
-.. confval:: skip_missing_interpreters=BOOL
-
- .. versionadded:: 1.7.2
-
- Setting this to ``True`` is equivalent of passing the
- ``--skip-missing-interpreters`` command line option, and will force ``tox`` to
- return success even if some of the specified environments were missing. This is
- useful for some CI systems or running on a developer box, where you might only
- have a subset of all your supported interpreters installed but don't want to
- mark the build as failed because of it. As expected, the command line switch
- always overrides this setting if passed on the invokation.
- **Default:** ``False``
-
-.. confval:: envlist=CSV
-
- Determining the environment list that ``tox`` is to operate on
- happens in this order (if any is found, no further lookups are made):
-
- * command line option ``-eENVLIST``
- * environment variable ``TOXENV``
- * ``tox.ini`` file's ``envlist``
-
-
-Virtualenv test environment settings
-------------------------------------
-
-Test environments are defined by a::
-
- [testenv:NAME]
- ...
-
-section. The ``NAME`` will be the name of the virtual environment.
-Defaults for each setting in this section are looked up in the::
-
- [testenv]
- ...
-
-testenvironment default section.
-
-Complete list of settings that you can put into ``testenv*`` sections:
-
-.. confval:: basepython=NAME-OR-PATH
-
- name or path to a Python interpreter which will be used for creating
- the virtual environment. **default**: interpreter used for tox invocation.
-
-.. confval:: commands=ARGVLIST
-
- the commands to be called for testing. Each command is defined
- by one or more lines; a command can have multiple lines if a line
- ends with the ``\`` character in which case the subsequent line
- will be appended (and may contain another ``\`` character ...).
- For eventually performing a call to ``subprocess.Popen(args, ...)``
- ``args`` are determined by splitting the whole command by whitespace.
- Similar to ``make`` recipe lines, any command with a leading ``-``
- will ignore the exit code.
-
-.. confval:: install_command=ARGV
-
- .. versionadded:: 1.6
-
- the ``install_command`` setting is used for installing packages into
- the virtual environment; both the package under test
- and any defined dependencies. Must contain the substitution key
- ``{packages}`` which will be replaced by the packages to
- install. You should also accept ``{opts}`` if you are using
- pip or easy_install -- it will contain index server options
- if you have configured them via :confval:`indexserver`
- and the deprecated :confval:`downloadcache` option
- if you have configured it.
-
- **default**::
-
- pip install {opts} {packages}
-
-
-.. confval:: list_dependencies_command
-
- .. versionadded:: 2.4
-
- the ``list_dependencies_command`` setting is used for listing
- the packages installed into the virtual environment.
-
- **default**::
-
- pip freeze
-
-
-.. confval:: ignore_errors=True|False(default)
-
- .. versionadded:: 2.0
-
- If ``True``, a non-zero exit code from one command will be ignored and
- further commands will be executed (which was the default behavior in tox <
- 2.0). If ``False`` (the default), then a non-zero exit code from one command
- will abort execution of commands for that environment.
-
- It may be helpful to note that this setting is analogous to the ``-i`` or
- ``ignore-errors`` option of GNU Make. A similar name was chosen to reflect the
- similarity in function.
-
- Note that in tox 2.0, the default behavior of tox with respect to
- treating errors from commands changed. Tox < 2.0 would ignore errors by
- default. Tox >= 2.0 will abort on an error by default, which is safer and more
- typical of CI and command execution tools, as it doesn't make sense to
- run tests if installing some prerequisite failed and it doesn't make sense to
- try to deploy if tests failed.
-
-.. confval:: pip_pre=True|False(default)
-
- .. versionadded:: 1.9
-
- If ``True``, adds ``--pre`` to the ``opts`` passed to
- :confval:`install_command`. If :confval:`install_command` uses pip, this
- will cause it to install the latest available pre-release of any
- dependencies without a specified version. If ``False`` (the default), pip
- will only install final releases of unpinned dependencies.
-
- Passing the ``--pre`` command-line option to tox will force this to
- ``True`` for all testenvs.
-
- Don't set this option if your :confval:`install_command` does not use pip.
-
-.. confval:: whitelist_externals=MULTI-LINE-LIST
-
- each line specifies a command name (in glob-style pattern format)
- which can be used in the ``commands`` section without triggering
- a "not installed in virtualenv" warning. Example: if you use the
- unix ``make`` for running tests you can list ``whitelist_externals=make``
- or ``whitelist_externals=/usr/bin/make`` if you want more precision.
- If you don't want tox to issue a warning in any case, just use
- ``whitelist_externals=*`` which will match all commands (not recommended).
-
-.. confval:: changedir=path
-
- change to this working directory when executing the test command.
- **default**: ``{toxinidir}``
-
-.. confval:: deps=MULTI-LINE-LIST
-
- test-specific dependencies - to be installed into the environment prior to project
- package installation. Each line defines a dependency, which will be
- passed to the installer command for processing. Each line specifies a file,
- a URL or a package name. You can additionally specify
- an :confval:`indexserver` to use for installing this dependency
- but this functionality is deprecated since tox-2.3.
- All derived dependencies (deps required by the dep) will then be
- retrieved from the specified indexserver::
-
- deps = :myindexserver:pkg
-
- (Experimentally introduced in 1.6.1) all installer commands are executed
- using the ``{toxinidir}`` as the current working directory.
-
-.. confval:: platform=REGEX
-
- A testenv can define a new ``platform`` setting as a regular expression.
- If a non-empty expression is defined and does not match against the
- ``sys.platform`` string the test environment will be skipped.
-
-.. confval:: setenv=MULTI-LINE-LIST
-
- .. versionadded:: 0.9
-
- each line contains a NAME=VALUE environment variable setting which
- will be used for all test command invocations as well as for installing
- the sdist package into a virtual environment.
-
-.. confval:: passenv=SPACE-SEPARATED-GLOBNAMES
-
- .. versionadded:: 2.0
-
- A list of wildcard environment variable names which
- shall be copied from the tox invocation environment to the test
- environment when executing test commands. If a specified environment
- variable doesn't exist in the tox invocation environment it is ignored.
- You can use ``*`` and ``?`` to match multiple environment variables with
- one name.
-
- Note that the ``PATH``, ``LANG`` and ``PIP_INDEX_URL`` variables are
- unconditionally passed down and on Windows ``SYSTEMROOT``, ``PATHEXT``,
- ``TEMP`` and ``TMP`` will be passed down as well whereas on unix
- ``TMPDIR`` will be passed down. You can override these variables
- with the ``setenv`` option.
-
- If defined the ``TOX_TESTENV_PASSENV`` environment variable (in the tox
- invocation environment) can define additional space-separated variable
- names that are to be passed down to the test command environment.
-
-.. confval:: recreate=True|False(default)
-
- Always recreate virtual environment if this option is True.
-
-.. confval:: downloadcache=path
-
- **DEPRECATED** -- as of August 2013 this option is not very
- useful because of pypi's CDN and because of caching pypi
- server solutions like `devpi <http://doc.devpi.net>`_.
-
- use this directory for caching downloads. This value is overriden
- by the environment variable ``PIP_DOWNLOAD_CACHE`` if it exists. If
- you specify a custom :confval:`install_command` that uses an
- installer other than pip, your installer must support the
- `--download-cache` command-line option.
- **default**: no download cache will be used.
-
-.. confval:: sitepackages=True|False
-
- Set to ``True`` if you want to create virtual environments that also
- have access to globally installed packages.
-
- **default:** False, meaning that virtualenvs will be
- created without inheriting the global site packages.
-
-.. confval:: args_are_paths=BOOL
-
- treat positional arguments passed to ``tox`` as file system paths
- and - if they exist on the filesystem - rewrite them according
- to the ``changedir``.
- **default**: True (due to the exists-on-filesystem check it's
- usually safe to try rewriting).
-
-.. confval:: envtmpdir=path
-
- defines a temporary directory for the virtualenv which will be cleared
- each time before the group of test commands is invoked.
- **default**: ``{envdir}/tmp``
-
-.. confval:: envlogdir=path
-
- defines a directory for logging where tox will put logs of tool
- invocation.
- **default**: ``{envdir}/log``
-
-.. confval:: indexserver
-
- .. versionadded:: 0.9
-
- (DEPRECATED, will be removed in a future version) Multi-line ``name =
- URL`` definitions of python package servers. Dependencies can
- specify using a specified index server through the
- ``:indexservername:depname`` pattern. The ``default`` indexserver
- definition determines where unscoped dependencies and the sdist install
- installs from. Example::
-
- [tox]
- indexserver =
- default = http://mypypi.org
-
- will make tox install all dependencies from this PYPI index server
- (including when installing the project sdist package).
-
-
-.. confval:: envdir
-
- .. versionadded:: 1.5
-
- User can set specific path for environment. If path would not be absolute it
- would be treated as relative to ``{toxinidir}``. **default**:
- ``{toxworkdir}/{envname}``
-
-.. confval:: usedevelop=BOOL
-
- .. versionadded:: 1.6
-
- Install the current package in development mode with "setup.py
- develop" instead of installing from the ``sdist`` package. (This
- uses pip's `-e` option, so should be avoided if you've specified a
- custom :confval:`install_command` that does not support ``-e``).
-
- **default**: ``False``
-
-.. confval:: skip_install=BOOL
-
- .. versionadded:: 1.9
-
- Do not install the current package. This can be used when you need the
- virtualenv management but do not want to install the current package
- into that environment.
-
- **default**: ``False``
-
-.. confval:: ignore_outcome=BOOL
-
- .. versionadded:: 2.2
-
- If set to True a failing result of this testenv will not make tox fail,
- only a warning will be produced.
-
- **default**: ``False``
-
-
-Substitutions
--------------
-
-Any ``key=value`` setting in an ini-file can make use
-of value substitution through the ``{...}`` string-substitution pattern.
-
-You can escape curly braces with the ``\`` character if you need them, for example::
-
- commands = echo "\{posargs\}" = {posargs}
-
-Globally available substitutions
-++++++++++++++++++++++++++++++++
-
-``{toxinidir}``
- the directory where tox.ini is located
-
-``{toxworkdir}``
- the directory where virtual environments are created and sub directories
- for packaging reside.
-
-``{homedir}``
- the user-home directory path.
-
-``{distdir}``
- the directory where sdist-packages will be created in
-
-``{distshare}``
- (DEPRECATED) the directory where sdist-packages will be copied to so that
- they may be accessed by other processes or tox runs.
-
-substitutions for virtualenv-related sections
-+++++++++++++++++++++++++++++++++++++++++++++
-
-``{envname}``
- the name of the virtual environment
-``{envpython}``
- path to the virtual Python interpreter
-``{envdir}``
- directory of the virtualenv hierarchy
-``{envbindir}``
- directory where executables are located
-``{envsitepackagesdir}``
- directory where packages are installed.
- Note that architecture-specific files may appear in a different directory.
-``{envtmpdir}``
- the environment temporary directory
-``{envlogdir}``
- the environment log directory
-
-
-environment variable substitutions
-++++++++++++++++++++++++++++++++++
-
-If you specify a substitution string like this::
-
- {env:KEY}
-
-then the value will be retrieved as ``os.environ['KEY']``
-and raise an Error if the environment variable
-does not exist.
-
-
-environment variable substitutions with default values
-++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-If you specify a substitution string like this::
-
- {env:KEY:DEFAULTVALUE}
-
-then the value will be retrieved as ``os.environ['KEY']``
-and replace with DEFAULTVALUE if the environment variable does not
-exist.
-
-If you specify a substitution string like this::
-
- {env:KEY:}
-
-then the value will be retrieved as ``os.environ['KEY']``
-and replace with and empty string if the environment variable does not
-exist.
-
-.. _`command positional substitution`:
-.. _`positional substitution`:
-
-substitutions for positional arguments in commands
-++++++++++++++++++++++++++++++++++++++++++++++++++
-
-.. versionadded:: 1.0
-
-If you specify a substitution string like this::
-
- {posargs:DEFAULTS}
-
-then the value will be replaced with positional arguments as provided
-to the tox command::
-
- tox arg1 arg2
-
-In this instance, the positional argument portion will be replaced with
-``arg1 arg2``. If no positional arguments were specified, the value of
-DEFAULTS will be used instead. If DEFAULTS contains other substitution
-strings, such as ``{env:*}``, they will be interpreted.,
-
-Use a double ``--`` if you also want to pass options to an underlying
-test command, for example::
-
- tox -- --opt1 ARG1
-
-will make the ``--opt1 ARG1`` appear in all test commands where ``[]`` or
-``{posargs}`` was specified. By default (see ``args_are_paths``
-setting), ``tox`` rewrites each positional argument if it is a relative
-path and exists on the filesystem to become a path relative to the
-``changedir`` setting.
-
-Previous versions of tox supported the ``[.*]`` pattern to denote
-positional arguments with defaults. This format has been deprecated.
-Use ``{posargs:DEFAULTS}`` to specify those.
-
-
-Substitution for values from other sections
-+++++++++++++++++++++++++++++++++++++++++++
-
-.. versionadded:: 1.4
-
-Values from other sections can be refered to via::
-
- {[sectionname]valuename}
-
-which you can use to avoid repetition of config values.
-You can put default values in one section and reference them in others to avoid repeating the same values::
-
- [base]
- deps =
- pytest
- mock
- pytest-xdist
-
- [testenv:dulwich]
- deps =
- dulwich
- {[base]deps}
-
- [testenv:mercurial]
- deps =
- mercurial
- {[base]deps}
-
-
-Generating environments, conditional settings
----------------------------------------------
-
-.. versionadded:: 1.8
-
-Suppose you want to test your package against python2.6, python2.7 and against
-several versions of a dependency, say Django 1.5 and Django 1.6. You can
-accomplish that by writing down 2*2 = 4 ``[testenv:*]`` sections and then
-listing all of them in ``envlist``.
-
-However, a better approach looks like this::
-
- [tox]
- envlist = {py26,py27}-django{15,16}
-
- [testenv]
- basepython =
- py26: python2.6
- py27: python2.7
- deps =
- pytest
- django15: Django>=1.5,<1.6
- django16: Django>=1.6,<1.7
- py26: unittest2
- commands = py.test
-
-This uses two new facilities of tox-1.8:
-
-- generative envlist declarations where each envname
- consists of environment parts or "factors"
-
-- "factor" specific settings
-
-Let's go through this step by step.
-
-
-.. _generative-envlist:
-
-Generative envlist
-+++++++++++++++++++++++
-
-::
-
- envlist = {py26,py27}-django{15,16}
-
-This is bash-style syntax and will create ``2*2=4`` environment names
-like this::
-
- py26-django15
- py26-django16
- py27-django15
- py27-django16
-
-You can still list environments explicitly along with generated ones::
-
- envlist = {py26,py27}-django{15,16}, docs, flake
-
-.. note::
-
- To help with understanding how the variants will produce section values,
- you can ask tox to show their expansion with a new option::
-
- $ tox -l
- py26-django15
- py26-django16
- py27-django15
- py27-django16
- docs
- flake
-
-
-.. _factors:
-
-Factors and factor-conditional settings
-++++++++++++++++++++++++++++++++++++++++
-
-Parts of an environment name delimited by hyphens are called factors and can
-be used to set values conditionally::
-
- basepython =
- py26: python2.6
- py27: python2.7
-
-This conditional setting will lead to either ``python2.6`` or
-``python2.7`` used as base python, e.g. ``python2.6`` is selected if current
-environment contains ``py26`` factor.
-
-In list settings such as ``deps`` or ``commands`` you can freely intermix
-optional lines with unconditional ones::
-
- deps =
- pytest
- django15: Django>=1.5,<1.6
- django16: Django>=1.6,<1.7
- py26: unittest2
-
-Reading it line by line:
-
-- ``pytest`` will be included unconditionally,
-- ``Django>=1.5,<1.6`` will be included for environments containing ``django15`` factor,
-- ``Django>=1.6,<1.7`` similarly depends on ``django16`` factor,
-- ``unittest`` will be loaded for Python 2.6 environments.
-
-.. note::
-
- Tox provides good defaults for basepython setting, so the above
- ini-file can be further reduced by omitting the ``basepython``
- setting.
-
-
-Complex factor conditions
-+++++++++++++++++++++++++
-
-Sometimes you need to specify the same line for several factors or create a
-special case for a combination of factors. Here is how you do it::
-
- [tox]
- envlist = py{26,27,33}-django{15,16}-{sqlite,mysql}
-
- [testenv]
- deps =
- py33-mysql: PyMySQL ; use if both py33 and mysql are in an env name
- py26,py27: urllib3 ; use if any of py26 or py27 are in an env name
- py{26,27}-sqlite: mock ; mocking sqlite in python 2.x
-
-Take a look at first ``deps`` line. It shows how you can special case something
-for a combination of factors, you just join combining factors with a hyphen.
-This particular line states that ``PyMySQL`` will be loaded for python 3.3,
-mysql environments, e.g. ``py33-django15-mysql`` and ``py33-django16-mysql``.
-
-The second line shows how you use same line for several factors - by listing
-them delimited by commas. It's possible to list not only simple factors, but
-also their combinations like ``py26-sqlite,py27-sqlite``.
-
-Finally, factor expressions are expanded the same way as envlist, so last
-example could be rewritten as ``py{26,27}-sqlite``.
-
-.. note::
-
- Factors don't do substring matching against env name, instead every
- hyphenated expression is split by ``-`` and if ALL the factors in an
- expression are also factors of an env then that condition is considered
- hold.
-
- For example, environment ``py26-mysql``:
-
- - could be matched with expressions ``py26``, ``py26-mysql``,
- ``mysql-py26``,
- - but not with ``py2`` or ``py26-sql``.
-
-
-Other Rules and notes
-=====================
-
-* ``path`` specifications: if a specified ``path`` is a relative path
- it will be considered as relative to the ``toxinidir``, the directory
- where the configuration file resides.
-
-.. include:: links.txt