[Python-modules-commits] [tox] 01/08: Import tox_2.4.1.orig.tar.gz

Barry Warsaw barry at moszumanska.debian.org
Mon Oct 17 22:53:54 UTC 2016


This is an automated email from the git hooks/post-receive script.

barry pushed a commit to branch master
in repository tox.

commit ee9ae00dd3c2cbb80bad33797477c3d92fdda459
Author: Barry Warsaw <barry at python.org>
Date:   Mon Oct 17 18:48:16 2016 -0400

    Import tox_2.4.1.orig.tar.gz
---
 CHANGELOG                                   | 159 ++++++++++++++++++++--------
 CONTRIBUTORS                                |   3 +-
 PKG-INFO                                    |  13 +--
 README.rst                                  |   9 +-
 doc/_getdoctarget.py                        |   2 +-
 doc/_templates/localtoc.html                |   2 +-
 doc/announce/release-2.4.0.txt              |  66 ++++++++++++
 doc/config-v2.txt                           |   6 +-
 doc/config.txt                              |  21 ++++
 doc/drafts/extend-envs-and-packagebuilds.md | 155 +++++++++++++++++++++++++++
 doc/drafts/tox_conda_notes_niccodemus.md    |  84 +++++++++++++++
 doc/example/basic.txt                       |  56 +++-------
 doc/example/jenkins.txt                     |  20 +++-
 doc/index.txt                               |   1 +
 doc/install.txt                             |   6 +-
 doc/support.txt                             |   4 +-
 setup.py                                    |   6 +-
 tests/test_config.py                        | 151 +++++++++++++++++++++++---
 tests/test_interpreters.py                  |   2 +-
 tests/test_venv.py                          |  64 ++++++++++-
 tests/test_z_cmdline.py                     |  15 +++
 tox.egg-info/PKG-INFO                       |  13 +--
 tox.egg-info/SOURCES.txt                    |   3 +
 tox.egg-info/requires.txt                   |   2 +-
 tox.ini                                     |  10 +-
 tox/__init__.py                             |   8 +-
 tox/_pytestplugin.py                        |   9 +-
 tox/_quickstart.py                          |   2 +-
 tox/config.py                               |  75 +++++++++----
 tox/hookspecs.py                            |  16 +++
 tox/interpreters.py                         |   6 +-
 tox/result.py                               |   6 +-
 tox/session.py                              |  48 ++++++---
 tox/venv.py                                 |  75 ++++++++-----
 34 files changed, 900 insertions(+), 218 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index b41666e..b15f81d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,70 @@
+2.4.1
+-----
+
+- fix issue380: properly perform substitution again. Thanks Ian
+  Cordasco.
+
+2.4.0
+-----
+
+- remove PYTHONPATH from environment during the install phase because a
+  tox-run should not have hidden dependencies and the test commands will also
+  not see a PYTHONPATH.  If this causes unforeseen problems it may be 
+  reverted in a bugfix release.  Thanks Jason R. Coombs.
+
+- fix issue352: prevent a configuration where envdir==toxinidir and
+  refine docs to warn people about changing "envdir". Thanks Oliver Bestwalter and holger krekel.
+
+- fix issue375, fix issue330: warn against tox-setup.py integration as
+  "setup.py test" should really just test with the current interpreter. Thanks Ronny Pfannschmidt.
+
+- fix issue302: allow cross-testenv substitution where we substitute
+  with ``{x,y}`` generative syntax.  Thanks Andrew Pashkin.
+
+- fix issue212: allow escaping curly brace chars "\{" and "\}" if you need the
+  chars "{" and "}" to appear in your commands or other ini values.
+  Thanks John Vandenberg.
+
+- addresses issue66: add --workdir option to override where tox stores its ".tox" directory
+  and all of the virtualenv environment.  Thanks Danring.
+
+- introduce per-venv list_dependencies_command which defaults
+  to "pip freeze" to obtain the list of installed packages.
+  Thanks Ted Shaw, Holger Krekel.
+
+- close issue66: add documentation to jenkins page on how to avoid 
+  "too long shebang" lines when calling pip from tox.  Note that we 
+  can not use "python -m pip install X" by default because the latter 
+  adds the CWD and pip will think X is installed if it is there.  
+  "pip install X" does not do that.
+
+- new list_dependencies_command to influence how tox determines
+  which dependencies are installed in a testenv.
+
+- (experimental) New feature: When a search for a config file fails, tox tries loading
+  setup.cfg with a section prefix of "tox".
+
+- fix issue275: Introduce hooks ``tox_runtest_pre``` and
+  ``tox_runtest_post`` which run before and after the tests of a venv,
+  respectively. Thanks to Matthew Schinckel and itxaka serrano.
+
+- fix issue317: evaluate minversion before tox config is parsed completely.
+  Thanks Sachi King for the PR.
+
+- added the "extras" environment option to specify the extras to use when doing the
+  sdist or develop install. Contributed by Alex Grönholm.
+
+- use pytest-catchlog instead of pytest-capturelog (latter is not
+  maintained, uses deprecated pytest API)
+
+2.3.2
+-----
+
+- fix issue314: fix command invocation with .py scripts on windows.
+
+- fix issue279: allow cross-section substitution when the value contains
+  posargs. Thanks Sachi King for the PR.
+
 2.3.1
 -----
 
@@ -11,8 +78,8 @@
   devpi system for managing indexes for pip.
 
 - fix issue285: make setenv processing fully lazy to fix regressions
-  of tox-2.2.X and so that we can now have testenv attributes like 
-  "basepython" depend on environment variables that are set in 
+  of tox-2.2.X and so that we can now have testenv attributes like
+  "basepython" depend on environment variables that are set in
   a setenv section. Thanks Nelfin for some tests and initial
   work on a PR.
 
@@ -25,11 +92,11 @@
 - fix issue252: allow environment names with special characters.
   Thanks Julien Castets for initial PR and patience.
 
-- introduce experimental tox_testenv_create(venv, action) and 
+- introduce experimental tox_testenv_create(venv, action) and
   tox_testenv_install_deps(venv, action) hooks to allow
   plugins to do additional work on creation or installing
   deps.  These hooks are experimental mainly because of
-  the involved "venv" and session objects whose current public 
+  the involved "venv" and session objects whose current public
   API is not fully guranteed.
 
 - internal: push some optional object creation into tests because
@@ -48,18 +115,18 @@
   because otherwise the python interpreter might not start up in
   certain configurations (redhat software collections).  Thanks David Riddle.
 
-- fix issue246: fix regression in config parsing by reordering 
+- fix issue246: fix regression in config parsing by reordering
   such that {envbindir} can be used again in tox.ini. Thanks Olli Walsh.
 
 - fix issue99: the {env:...} substitution now properly uses environment
   settings from the ``setenv`` section. Thanks Itxaka Serrano.
 
-- fix issue281: make --force-deps work when urls are present in
+- fix issue281: make --force-dep work when urls are present in
   dependency configs.  Thanks Glyph Lefkowitz for reporting.
 
 - fix issue174: add new ``ignore_outcome`` testenv attribute which
   can be set to True in which case it will produce a warning instead
-  of an error on a failed testenv command outcome.  
+  of an error on a failed testenv command outcome.
   Thanks Rebecka Gulliksson for the PR.
 
 - fix issue280: properly skip missing interpreter if
@@ -76,7 +143,7 @@
 2.1.0
 ----------
 
-- fix issue258, fix issue248, fix issue253: for non-test commands 
+- fix issue258, fix issue248, fix issue253: for non-test commands
   (installation, venv creation) we pass in the full invocation environment.
 
 - remove experimental --set-home option which was hardly used and
@@ -97,7 +164,7 @@
 2.0.2
 ----------
 
-- fix issue247: tox now passes the LANG variable from the tox invocation 
+- fix issue247: tox now passes the LANG variable from the tox invocation
   environment to the test environment by default.
 
 - add SYSTEMDRIVE into default passenv on windows to allow pip6 to work.
@@ -114,9 +181,9 @@
 
 - (new) introduce environment variable isolation:
   tox now only passes the PATH and PIP_INDEX_URL variable from the tox
-  invocation environment to the test environment and on Windows 
+  invocation environment to the test environment and on Windows
   also ``SYSTEMROOT``, ``PATHEXT``, ``TEMP`` and ``TMP`` whereas
-  on unix additionally ``TMPDIR`` is passed.  If you need to pass 
+  on unix additionally ``TMPDIR`` is passed.  If you need to pass
   through further environment variables you can use the new ``passenv`` setting,
   a space-separated list of environment variable names.  Each name
   can make use of fnmatch-style glob patterns.  All environment
@@ -127,9 +194,9 @@
   their defaults.
 
 - (new) introduce a way to specify on which platform a testenvironment is to
-  execute: the new per-venv "platform" setting allows to specify 
+  execute: the new per-venv "platform" setting allows to specify
   a regular expression which is matched against sys.platform.
-  If platform is set and doesn't match the platform spec in the test 
+  If platform is set and doesn't match the platform spec in the test
   environment the test environment is ignored, no setup or tests are attempted.
 
 - (new) add per-venv "ignore_errors" setting, which defaults to False.
@@ -160,7 +227,7 @@
   See tox/hookspecs.py for the current hooks.
 
 - introduce parser.add_testenv_attribute() to register an ini-variable
-  for testenv sections.  Can be used from plugins through the 
+  for testenv sections.  Can be used from plugins through the
   tox_add_option hook.
 
 - rename internal files -- tox offers no external API except for the
@@ -173,7 +240,7 @@
 1.9.2
 -----------
 
-- backout ability that --force-deps substitutes name/versions in
+- backout ability that --force-dep substitutes name/versions in
   requirement files due to various issues.
   This fixes issue228, fixes issue230, fixes issue231
   which popped up with 1.9.1.
@@ -184,7 +251,7 @@
 - use a file instead of a pipe for command output in "--result-json".
   Fixes some termination issues with python2.6.
 
-- allow --force-deps to override dependencies in "-r" requirements
+- allow --force-dep to override dependencies in "-r" requirements
   files.  Thanks Sontek for the PR.
 
 - fix issue227: use "-m virtualenv" instead of "-mvirtualenv" to make
@@ -199,7 +266,7 @@
   dependencies. Use ``pip_pre = true`` in a testenv or the ``--pre``
   command-line option to restore the previous behavior.
 
-- fix issue199: fill resultlog structure ahead of virtualenv creation 
+- fix issue199: fill resultlog structure ahead of virtualenv creation
 
 - refine determination if we run from Jenkins, thanks Borge Lanes.
 
@@ -257,7 +324,7 @@
 
 - fix issue59: add a config variable ``skip-missing-interpreters`` as well as
   command line option ``--skip-missing-interpreters`` which won't fail the
-  build if Python interpreters listed in tox.ini are missing.  Thanks 
+  build if Python interpreters listed in tox.ini are missing.  Thanks
   Alexandre Conrad for PR104.
 
 - fix issue164: better traceback info in case of failing test commands.
@@ -275,29 +342,29 @@
 - fix issue162: don't list python 2.5 as compatibiliy/supported
 
 - fix issue158 and fix issue155: windows/virtualenv properly works now:
-  call virtualenv through "python -m virtualenv" with the same 
+  call virtualenv through "python -m virtualenv" with the same
   interpreter which invoked tox.  Thanks Chris Withers, Ionel Maries Cristian.
 
 1.7.0
 ---------
 
-- don't lookup "pip-script" anymore but rather just "pip" on windows 
-  as this is a pip implementation detail and changed with pip-1.5.  
-  It might mean that tox-1.7 is not able to install a different pip 
+- don't lookup "pip-script" anymore but rather just "pip" on windows
+  as this is a pip implementation detail and changed with pip-1.5.
+  It might mean that tox-1.7 is not able to install a different pip
   version into a virtualenv anymore.
 
 - drop Python2.5 compatibility because it became too hard due
-  to the setuptools-2.0 dropping support.  tox now has no 
+  to the setuptools-2.0 dropping support.  tox now has no
   support for creating python2.5 based environments anymore
   and all internal special-handling has been removed.
 
-- merged PR81: new option --force-dep which allows to 
+- merged PR81: new option --force-dep which allows to
   override tox.ini specified dependencies in setuptools-style.
   For example "--force-dep 'django<1.6'" will make sure
-  that any environment using "django" as a dependency will 
-  get the latest 1.5 release.  Thanks Bruno Oliveria for 
+  that any environment using "django" as a dependency will
+  get the latest 1.5 release.  Thanks Bruno Oliveria for
   the complete PR.
-  
+
 - merged PR125: tox now sets "PYTHONHASHSEED" to a random value
   and offers a "--hashseed" option to repeat a test run with a specific seed.
   You can also use --hashsheed=noset to instruct tox to leave the value
@@ -315,9 +382,9 @@
 
 - fix issue130: you can now set install_command=easy_install {opts} {packages}
   and expect it to work for repeated tox runs (previously it only worked
-  when always recreating).  Thanks jenisys for precise reporting. 
+  when always recreating).  Thanks jenisys for precise reporting.
 
-- fix issue129: tox now uses Popen(..., universal_newlines=True) to force 
+- fix issue129: tox now uses Popen(..., universal_newlines=True) to force
   creation of unicode stdout/stderr streams.  fixes a problem on specific
   platform configs when creating virtualenvs with Python3.3. Thanks
   Jorgen Schäfer or investigation and solution sketch.
@@ -335,7 +402,7 @@
   requiring networks
 
 - introduce --sitepackages to force sitepackages=True in all
-  environments.   
+  environments.
 
 - fix issue105 -- don't depend on an existing HOME directory from tox tests.
 
@@ -345,8 +412,8 @@
 - fix issue119: {envsitepackagesdir} is now correctly computed and has
   a better test to prevent regression.
 
-- fix issue116: make 1.6 introduced behaviour of changing to a 
-  per-env HOME directory during install activities dependent 
+- fix issue116: make 1.6 introduced behaviour of changing to a
+  per-env HOME directory during install activities dependent
   on "--set-home" for now.  Should re-establish the old behaviour
   when no option is given.
 
@@ -356,9 +423,9 @@
 - fix test runs on environments without a home directory
   (in this case we use toxinidir as the homedir)
 
-- fix issue117: python2.5 fix: don't use ``--insecure`` option because 
+- fix issue117: python2.5 fix: don't use ``--insecure`` option because
   its very existence depends on presence of "ssl".  If you
-  want to support python2.5/pip1.3.1 based test environments you need 
+  want to support python2.5/pip1.3.1 based test environments you need
   to install ssl and/or use PIP_INSECURE=1 through ``setenv``. section.
 
 - fix issue102: change to {toxinidir} when installing dependencies.
@@ -371,11 +438,11 @@
   configure the installation command with options for dep/pkg install.
   Thanks Carl Meyer for the PR and docs.
 
-- fix issue91: python2.5 support by vendoring the virtualenv-1.9.1 
-  script and forcing pip<1.4. Also the default [py25] environment 
+- fix issue91: python2.5 support by vendoring the virtualenv-1.9.1
+  script and forcing pip<1.4. Also the default [py25] environment
   modifies the default installer_command (new config option)
-  to use pip without the "--pre" option which was introduced 
-  with pip-1.4 and is now required if you want to install non-stable 
+  to use pip without the "--pre" option which was introduced
+  with pip-1.4 and is now required if you want to install non-stable
   releases.  (tox defaults to install with "--pre" everywhere).
 
 - during installation of dependencies HOME is now set to a pseudo
@@ -412,7 +479,7 @@
 - fix issue104: use setuptools by default, instead of distribute,
   now that setuptools has distribute merged.
 
-- make sure test commands are searched first in the virtualenv 
+- make sure test commands are searched first in the virtualenv
 
 - re-fix issue2 - add whitelist_externals to be used in ``[testenv*]``
   sections, allowing to avoid warnings for commands such as ``make``,
@@ -423,12 +490,12 @@
 
 - fix issue92 - fix {envsitepackagesdir} to actually work again
 
-- show (test) command that is being executed, thanks 
+- show (test) command that is being executed, thanks
   Lukasz Balcerzak
 
 - re-license tox to MIT license
 
-- depend on virtualenv-1.9.1 
+- depend on virtualenv-1.9.1
 
 - rename README.txt to README.rst to make bitbucket happier
 
@@ -443,7 +510,7 @@
   (thanks  Lukasz Balcerzak)
 
 - fix downloadcache determination to work according to docs: Only
-  make pip use a download cache if PIP_DOWNLOAD_CACHE or a 
+  make pip use a download cache if PIP_DOWNLOAD_CACHE or a
   downloadcache=PATH testenv setting is present. (The ENV setting
   takes precedence)
 
@@ -467,7 +534,7 @@
 - fix #48 - win32 detection of pypy and other interpreters that are on PATH
   (thanks Gustavo Picon)
 
-- fix grouping of index servers, it is now done by name instead of 
+- fix grouping of index servers, it is now done by name instead of
   indexserver url, allowing to use it to separate dependencies
   into groups even if using the same default indexserver.
 
@@ -503,7 +570,7 @@
   which would formerly raise irritating errors because the ";"
   was considered a comment
 - tweak and improve reporting
-- refactor reporting and virtualenv manipulation 
+- refactor reporting and virtualenv manipulation
   to be more accessible from 3rd party tools
 - support value substitution from other sections
   with the {[section]key} syntax
@@ -518,8 +585,8 @@
 1.3
 -----------------
 
-- fix: allow to specify wildcard filesystem paths when 
-  specifying dependencies such that tox searches for 
+- fix: allow to specify wildcard filesystem paths when
+  specifying dependencies such that tox searches for
   the highest version
 
 - fix issue issue21: clear PIP_REQUIRES_VIRTUALENV which avoids
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 75a2dd8..a4c13e3 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -7,7 +7,7 @@ Aleaxner Schepanovski
 Sridhar Ratnakumar
 Barry Warsaw
 Chris Rose
-Jannis Leidl
+Jannis Leidel
 Ronny Pfannschmidt
 Lukasz Balcerzak 
 Philip Thiem
@@ -32,3 +32,4 @@ Clark Boylan
 Eugene Yunak
 Mark Hirota
 Itxaka Serrano
+Alex Grönholm
diff --git a/PKG-INFO b/PKG-INFO
index c639d33..29ed099 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,8 +1,8 @@
 Metadata-Version: 1.1
 Name: tox
-Version: 2.3.1
+Version: 2.4.1
 Summary: virtualenv-based automation of test activities
-Home-page: http://tox.testrun.org/
+Home-page: https://tox.readthedocs.org/
 Author: holger krekel
 Author-email: holger at merlinux.eu
 License: http://opensource.org/licenses/MIT
@@ -22,14 +22,9 @@ Description:
         
         For more information and the repository please checkout:
         
-        - homepage: http://tox.testrun.org
+        - home and docs: https://tox.readthedocs.org
         
-        - repository: https://bitbucket.org/hpk42/tox
-        
-        
-        have fun,
-        
-        holger krekel, 2015
+        - repository: https://github.com/tox-dev/tox
         
         
 Platform: unix
diff --git a/README.rst b/README.rst
index 1435598..7d8f6d9 100644
--- a/README.rst
+++ b/README.rst
@@ -14,12 +14,7 @@ Tox is a generic virtualenv management and test command line tool you can use fo
 
 For more information and the repository please checkout:
 
-- homepage: http://tox.testrun.org
+- home and docs: https://tox.readthedocs.org
 
-- repository: https://bitbucket.org/hpk42/tox
-
-
-have fun,
-
-holger krekel, 2015
+- repository: https://github.com/tox-dev/tox
 
diff --git a/doc/_getdoctarget.py b/doc/_getdoctarget.py
old mode 100644
new mode 100755
index 1199221..f92e87b
--- a/doc/_getdoctarget.py
+++ b/doc/_getdoctarget.py
@@ -13,4 +13,4 @@ def get_minor_version_string():
     return ".".join(get_version_string().split(".")[:2])
 
 if __name__ == "__main__":
-    print (get_minor_version_string())
+    print(get_minor_version_string())
diff --git a/doc/_templates/localtoc.html b/doc/_templates/localtoc.html
index 5976c4b..c48ed71 100644
--- a/doc/_templates/localtoc.html
+++ b/doc/_templates/localtoc.html
@@ -26,7 +26,7 @@
 </td></tr><tr><td>
         <a href="{{ pathto('config') }}">config</a>
 </td><td>
-        <a href="https://bitbucket.org/hpk42/tox/issues?status=new&status=open">issues[bb]</a>
+        <a href="https://github.com/tox-dev/tox/issues">issues[gh]</a>
 </td></tr><tr><td>
         <a href="{{ pathto('support') }}">support</a>
 </td><td>
diff --git a/doc/announce/release-2.4.0.txt b/doc/announce/release-2.4.0.txt
new file mode 100644
index 0000000..0f2027d
--- /dev/null
+++ b/doc/announce/release-2.4.0.txt
@@ -0,0 +1,66 @@
+tox-2.4.0 brings some fixes and new features, see the changelog below.  Docs are now at:
+
+    https://tox.readthedocs.org
+
+And thanks to Ronny Pfannschmidt the tox repository is now on github:
+
+    https://github.com/tox-dev/tox
+
+Also many thanks to Oliver Bestwalter, Alex Grönholm, Stefan Obermann, Danielle Jenkins, Ted Shaw, Andrzej Ostrowski and Florian Bruhin who helped with the release particularly during the testing sprint we had in June 2016.
+
+have testing fun,
+holger krekel
+
+
+2.4.0
+-----
+
+- remove PYTHONPATH from environment during the install phase because a
+  tox-run should not have hidden dependencies and the test commands will also
+  not see a PYTHONPATH.  If this causes unforeseen problems it may be
+  reverted in a bugfix release.  Thanks Jason R. Coombs.
+
+- fix issue352: prevent a configuration where envdir==toxinidir and
+  refine docs to warn people about changing "envdir". Thanks Oliver Bestwalter and holger krekel.
+
+- fix issue375, fix issue330: warn against tox-setup.py integration as
+  "setup.py test" should really just test with the current interpreter. Thanks Ronny Pfannschmidt.
+
+- fix issue302: allow cross-testenv substitution where we substitute
+  with ``{x,y}`` generative syntax.  Thanks Andrew Pashkin.
+
+- fix issue212: allow escaping curly brace chars "\{" and "\}" if you need the
+  chars "{" and "}" to appear in your commands or other ini values.
+  Thanks John Vandenberg.
+
+- addresses issue66: add --workdir option to override where tox stores its ".tox" directory
+  and all of the virtualenv environment.  Thanks Danring.
+
+- introduce per-venv list_dependencies_command which defaults
+  to "pip freeze" to obtain the list of installed packages.
+  Thanks Ted Shaw, Holger Krekel.
+
+- close issue66: add documentation to jenkins page on how to avoid
+  "too long shebang" lines when calling pip from tox.  Note that we
+  can not use "python -m pip install X" by default because the latter
+  adds the CWD and pip will think X is installed if it is there.
+  "pip install X" does not do that.
+
+- new list_dependencies_command to influence how tox determines
+  which dependencies are installed in a testenv.
+
+- (experimental) New feature: When a search for a config file fails, tox tries loading
+  setup.cfg with a section prefix of "tox".
+
+- fix issue275: Introduce hooks ``tox_runtest_pre``` and
+  ``tox_runtest_post`` which run before and after the tests of a venv,
+  respectively. Thanks to Matthew Schinckel and itxaka serrano.
+
+- fix issue317: evaluate minversion before tox config is parsed completely.
+  Thanks Sachi King for the PR.
+
+- added the "extras" environment option to specify the extras to use when doing the
+  sdist or develop install. Contributed by Alex Grönholm.
+
+- use pytest-catchlog instead of pytest-capturelog (latter is not
+  maintained, uses deprecated pytest API)
diff --git a/doc/config-v2.txt b/doc/config-v2.txt
index c639652..daa19e1 100644
--- a/doc/config-v2.txt
+++ b/doc/config-v2.txt
@@ -6,9 +6,9 @@ V2: new tox multi-dimensional, platform-specific configuration
    This is a draft document sketching a to-be-done implementation.
    It does not fully specify each change yet but should give a good
    idea of where things are heading.  For feedback, mail the 
-   testing-in-python mailing list or open a pull request on 
-   https://bitbucket.org/hpk42/tox/src/84d8cf3c2a95fefd874f22c8b2d257e94365472f/doc/config-v2.txt?at=default
- 
+   testing-in-python mailing list or open a pull request on
+   https://github.com/tox-dev/tox/blob/master/doc/config-v2.txt
+
 **Abstract**: Adding multi-dimensional configuration, platform-specification
 and multiple installers to tox.ini.
  
diff --git a/doc/config.txt b/doc/config.txt
index 205b22a..dab7777 100644
--- a/doc/config.txt
+++ b/doc/config.txt
@@ -107,6 +107,19 @@ Complete list of settings that you can put into ``testenv*`` sections:
 
         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
@@ -310,6 +323,14 @@ Complete list of settings that you can put into ``testenv*`` sections:
 
     **default**: ``False``
 
+.. confval:: extras=MULTI-LINE-LIST
+
+    .. versionadded:: 2.4
+
+    A list of "extras" to be installed with the sdist or develop install.
+    For example, ``extras = testing`` is equivalent to ``[testing]`` in a
+    ``pip install`` command.
+
 
 Substitutions
 -------------
diff --git a/doc/drafts/extend-envs-and-packagebuilds.md b/doc/drafts/extend-envs-and-packagebuilds.md
new file mode 100644
index 0000000..b2cdc0e
--- /dev/null
+++ b/doc/drafts/extend-envs-and-packagebuilds.md
@@ -0,0 +1,155 @@
+# Extension of environment handling and building packages
+
+Issue reference: #338
+
+*Notes from a discussion at the pytest sprint 2016*
+
+Goal: drive building of packages and the environments needed to test them, exercising the tests and report the results for more than just virtualenvs and python virtualenvs
+
+### Problems
+
+* No concept of mapping environments to specific packages (versioned packages)
+* no control over when it happens for specific environment
+* no control over how it happens (e.g. which python interpreter is used to create the package)
+* No way of triggering build only if there is an environment that needs a specific build trigger it only if an environment actually needs it
+* package definition that might match on everything might be a problem for which environments test? Not clear?
+
+### Solution
+
+It should be possible to build other kinds of packages than just the standard sdist and it should also be possible to create different kinds of builds that can be used from different environments. To make this possible there has to be some concept of factorized package definitions and a way to match these factorized builds to environments with a similar way of matching like what is in place already to generate environments. sdist would for example would match to a "sdist" factor to only  [...]
+
+This could then be used to hae virtualenv, conda, nixos, docker, pyenv, rpm, deb, etc. builds and tie them to concrete test environments.
+
+To summarize - we would need a:
+
+    * packagedef (how to build a package)
+    * envdef (how to build an environment)
+    * way of matching envs to concrete packages (at package definition level) (e.g `{py27,py34}-{win32,linux}-{venv,conda,pyenv}-[...]`)
+
+## Beginnings of configuration examples (not thought out yet)
+
+    [tox]
+    envlist={py,27,py34}-{win32, linux}-{conda,virtualenv}
+    
+    [packagedef:sdist]
+    # how to build (e.g. {py27,py34}-{sdist})
+    # how to match (e.g. {py27,py34}-{sdist})
+    
+    [packagedef:conda]
+    # how to build (e.g. {py27,py34}-{conda})
+    # how to match (e.g. {py27,py34}-{conda})
+    
+    [packagedef:wheel]
+    # how to build
+    # how to match
+
+#### integrate detox
+
+* reporting in detox is minimal (would need to improve)
+* restricting processes would be necessary depending on power of the machine
+  (creating 16 processe on a dual core machine might be overkill)
+* port it from eventlets to threads?
+
+### Concrete use case conda integration (started by Bruno)
+
+* Asynchronicity / detox not taken into account yet
+* Conda activation might do anything (change filesys, start DBs)
+* Can I activate environments in parallel
+* Packages would need to be created (from conda.yml)
+* Activation is a problem
+
+
+### Unsorted discussion notes
+
+* Simplify for the common case: most packages are universal, so it should be simple
+one to one relationship from environment to directory
+* Floris: metadata driven. Package has metadata to the env with what env it is compatible
+* Holger: configuration driven. explicitly configuring which packages should be used (default sdist to be used, overridable by concrete env)
+* Ronny: "package definitions" (this package, this setup command) + matching definitions (matching packages (with wildcards) for environments)
+
+
+## Proposal
+
+This feature shall allow to specify how plugins can specify new types of package formats and environments to run test
+commands in. 
+
+Such plugins would take care of setting up the environment, create packages and run test commands using hooks provided
+by tox. The actual knowledge how to create a certain package format is implement in the plugin.
+
+Plugin decides which is the required python interpreter to use in order to create the relevant package format.
+
+
+```ini
+[tox]
+plugins=conda # virtualenv plugin is builtin; intention here is to bail out early in case the specified plugins
+              # are not installed 
+envlist=py27,py35
+
+[testenv]
+package_formats=            # new option to specify wanted package formats for test environment using tox factors feature
+                            # defaults to "sdist" if not set
+    py35: sdist wheel conda # names here are provided by plugins (reserved keywords)
+    py27: sdist conda
+commands = py.test
+```
+
+Lising tox environments (`tox --list`) would display the following output:
+
+```
+(sdist) py27
+(conda) py27
+(sdist) py35
+(wheel) py35
+(conda) py35
+```
+
+To remain backward-compatible, the package format will not be displayed if only a single package format is specified.
+ 
+
+
+How to skip building a package for a specific factor?
+
+Illustrate how to exclude a certain package format for a factor:
+
+```ini
+[tox]
+plugins=conda
+envlist={py27,py35}, py27-xdist
+
+[testenv]
+package_formats=sdist wheel conda
+commands = py.test
+exclude_package_formats=        # new option which filters out packages
+    py27-xdist: wheel
+```
+
+Output of `tox --list`:
+
+```
+(sdist) py27
+(conda) py27
+(sdist) py35
+(wheel) py35
+(conda) py35
+(sdist) py27-xdist
+(conda) py27-xdist
+```
+
+
+### Implemenation Details
+
+```
+tox_package_formats() -> ['conda']   # ['sdist', 'wheel']
+tox_testenv_create(env_meta, package_type) -> # creates an environment for given package, using
+                                                  # information from env_meta (like .envdir)
+                                                  # returns: an "env" object which is forwaded to the next hooks
+tox_testenv_install(env_meta, package_type, env) -> # installs deps and package into environment
+tox_testenv_runtest(env_meta, package_type, env) -> # activates enviroment and runs test commands
+
+tox_testenv_updated(env_meta, package_type) ->  # returns True if hte environment is already up to date
+                                                # otherwise, tox will remove the environment completely and
+                                                # create a new one
+```
+                                            
+                                                  
+
diff --git a/doc/drafts/tox_conda_notes_niccodemus.md b/doc/drafts/tox_conda_notes_niccodemus.md
new file mode 100644
index 0000000..a54189a
--- /dev/null
+++ b/doc/drafts/tox_conda_notes_niccodemus.md
@@ -0,0 +1,84 @@
+[tox]
+envlist=py27,py35
+
+[testenv]
+commands= py.test --timeout=180 {posargs:tests}
+deps=pytest>=2.3.5
+    pytest-timeout
+
+# USE CASE 1: plain conda, with deps on tox.ini
+create_env_command = conda create --prefix {envdir} python={python_version}
+install_command = conda install --prefix {envdir} {opts} {packages}
+list_dependencies_command = conda list --prefix {envdir}
+
+# deprecated: see tox_create_popen hook
+linux:env_activate_command=source activate {envdir}
+win:env_activate_command=activate.bat {envdir}
+
+# USE CASE 2: plain conda, using requirements.txt
+install_command = conda install --prefix {envdir} {opts} --file requirements.txt
+
+# USE CASE 3: conda env
+create_env_command = conda env create --prefix {envdir} python={python_version} --file environment.yml
+install_command =
+
+[testenv]
+type=virtualenv
+type=venv
+type=conda
+type=conda-reqs
+type=conda-env
+
+1. Create a new ``create_env_command`` option.
+;2. Create a new ``env_activate_command`` option (also consider how to make that platform dependent).
+2. New substitution variable: {python_version} ('3.4', '2.7', etc')
+3. env type concept: different types change the default options.
+
+1. tox_addoption can now add new "testenv" sections to tox.ini:
+
+[virtualenv]
+[conda]
+[venv]
+
+2. extend hooks:
+
+    * tox_addoption
+    * tox_configure
+    for each requested env in config:
+      tox_testenv_up_to_date(envmeta)
+      tox_testenv_create(envmeta)
+      tox_testenv_install_deps(envmeta, env)
+      tox_runtest_pre(envmeta, env)
+      tox_runtest(envmeta, env, popen)
+      tox_runtest_post(envmeta, env)
+
+3. separate virtualenv details from "VirtualEnv" class into a plugin.
+
+[tox]
+envlist={py27,py35}-{sdist,wheel,conda}
+
+[package-sdist]
+command = python setup.py sdist
+
+[package-wheel]
+command = python setup.py bdist_wheel
+
+[package-conda]
+command = conda build ./conda-recipe
+
+[testenv:{sdist,wheel}]
+commands = py.test
+
+[testenv:conda]
+packages = sdist,wheel
+commands = py.test --conda-only
+
+* tox_addoption
+* tox_get_python_executable
+* tox_configure
+for each requested env in config:
+  tox_testenv_create(envmeta)
+  tox_testenv_install_deps(envmeta, env)
+  tox_runtest_pre(envmeta, env)
+  tox_runtest(envmeta, env, popen)
+  tox_runtest_post(envmeta, env)
diff --git a/doc/example/basic.txt b/doc/example/basic.txt
index 64150f3..a8d074d 100644
--- a/doc/example/basic.txt
+++ b/doc/example/basic.txt
@@ -234,51 +234,21 @@ If you wish to disable this feature, you can pass the command line option
 .. _`in Python 3.3`: http://docs.python.org/3/whatsnew/3.3.html#builtin-functions-and-types
 .. _PYTHONHASHSEED: http://docs.python.org/using/cmdline.html#envvar-PYTHONHASHSEED
 
-Integration with setuptools/distribute test commands
+Integration with "setup.py test" command
 ----------------------------------------------------
 
-Distribute/Setuptools support test requirements
-and you can extend its test command to trigger
-a test run when ``python setup.py test`` is issued::
-
-    from setuptools.command.test import test as TestCommand
-    import sys
-
-    class Tox(TestCommand):
-        user_options = [('tox-args=', 'a', "Arguments to pass to tox")]
-        def initialize_options(self):
-            TestCommand.initialize_options(self)
-            self.tox_args = None
-        def finalize_options(self):
-            TestCommand.finalize_options(self)
-            self.test_args = []
-            self.test_suite = True
-        def run_tests(self):
-            #import here, cause outside the eggs aren't loaded
-            import tox
-            import shlex
-            args = self.tox_args
-            if args:
-                args = shlex.split(self.tox_args)
-            errno = tox.cmdline(args=args)
-            sys.exit(errno)
-
-    setup(
-        #...,
-        tests_require=['tox'],
-        cmdclass = {'test': Tox},
-        )
-
-Now if you run::
-
-    python setup.py test
-
-this will install tox and then run tox. You can pass arguments to ``tox``
-using the ``--tox-args`` or ``-a`` command-line options. For example::
-
-    python setup.py test -a "-epy27"
-
-is equivalent to running ``tox -epy27``.
+.. warning::
+
+  Integrating tox with ``setup.py test`` is as of October 2016 discouraged as
+  it breaks packaging/testing approaches as used by downstream distributions
+  which expect ``setup.py test`` to run tests with the invocation interpreter
+  rather than setting up many virtualenvs and installing packages.  If you need to
+  define ``setup.py test`` you can can better see about integrating your eventual
+  test runner with it, here is an `example of setup.py test integration with pytest <http://docs.pytest.org/en/latest/goodpractices.html#integrating-with-setuptools-python-setup-py-test-pytest-runner>`_.
+  As the python eco-system rather moves away from using ``setup.py`` as a tool entry
+  point it's maybe best to not go for any ``setup.py test`` integration.
+
+
 
 Ignoring a command exit code
 ----------------------------
diff --git a/doc/example/jenkins.txt b/doc/example/jenkins.txt
index b93bec4..94cb22d 100644
--- a/doc/example/jenkins.txt
+++ b/doc/example/jenkins.txt
@@ -44,7 +44,7 @@ for example with ``py.test`` it is done like this:
 .. note::
 
     This feature is broken currently because "toxbootstrap.py"
-    has been removed.  Please file an issue if you'd like to 
+    has been removed.  Please file an issue if you'd like to
     see it back.
 
 If you manage many Jenkins slaves and want to use the latest officially
@@ -151,6 +151,24 @@ So if you are using defaults you can re-use and debug exactly the
 same ``tox.ini`` file and make use of automatic sharing of
 your artifacts between runs or Jenkins jobs.
 
+
+Avoiding the "path too long" error with long shebang lines
+---------------------------------------------------------------
+
+If you are using Jenkins builds you might run into the issue
+that tox can not call ``pip`` because the so called "shebang"
+line is too long.  There is a limit of 127 chars on some systems.
+Probably the best way to fix the problem is to use the
+new ``--workdir`` option which tells tox to use a specific
+directory for its virtualenvironments.  Set it to some unique
+enough short path.  If somebody is interested to do a PR
+you could add a new option to tox which uses a random
+directory for storing its workdir results and removes
+it after the tox run finishes.  This could be used
+from CI environments where you probably anyway want
+to recreate everything on new runs.
+
+
 .. include:: ../links.txt
 
 
diff --git a/doc/index.txt b/doc/index.txt
index e1bc20e..ddd2b35 100644
--- a/doc/index.txt
+++ b/doc/index.txt
@@ -118,6 +118,7 @@ Current features
    announce/release-1.8
    announce/release-1.9
    announce/release-2.0
... 1107 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/tox.git



More information about the Python-modules-commits mailing list