Commits

holger krekel committed 33e5e5d

refactor docs and changelog

  • Participants
  • Parent commits efe7d94
  • Tags 1.6.0

Comments (0)

Files changed (11)

-1.6.0.dev
+1.6.0
 -----------------
 
-- fix issue35: add new EXPERIMENTAL "install_command" testenv-option to configure the
-  installation command with options for dep/pkg install.  Thanks Carl Meyer
-  for the PR and docs.
+- fix issue35: add new EXPERIMENTAL "install_command" testenv-option to
+  configure the installation command with options for dep/pkg install.
+  Thanks Carl Meyer for the PR and docs.
 
-- address issueintroduce 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" 
-  which was introduced with pip-1.4 and is required if you want to install non-stable releases.
-  (tox defaults to install with "--pre" otherwise).
+- 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 
+  releases.  (tox defaults to install with "--pre" everywhere).
+
+- during installation of dependencies HOME is now set to a pseudo
+  location ({envtmpdir}/pseudo-home).  If an index url was specified
+  a .pydistutils.cfg file will be written with an index_url setting
+  so that packages defining ``setup_requires`` dependencies will not
+  silently use your HOME-directory settings or https://pypi.python.org.
 
 - fix issue1: empty setup files are properly detected, thanks Anthon van
   der Neuth
 
-- during installation of dependencies HOME is set to a pseudo
-  location (envtmpdir/pseudo-home).  If an index url was specified
-  a .pydistutils.cfg file will be written so that index_url
-  is set if a package contains a ``setup_requires``. 
-
 - remove toxbootstrap.py for now because it is broken.
 
 - fix issue109 and fix issue111: multiple "-e" options are now combined
 # built documents.
 #
 # The short X.Y version.
-release = version = "1.5.0"
+release = version = "1.6.0"
 # The full version, including alpha/beta/rc tags.
 
 # The language for content autogenerated by Sphinx. Refer to documentation

File doc/config.txt

     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. May also contain the substitution key ``{opts}``, which
-    will be replaced by the ``-i INDEXURL`` option if an index server
-    is active (see :confval:`indexserver` and the ``:indexserver:dep``
-    syntax of :confval:`deps`) and the ``--download-cache`` option (if
-    you've specified :confval:`downloadcache`). If your installer does
-    not support ``-i`` and ``--download-cache`` command-line options,
-    you should not use :confval:`indexserver` or
-    :confval:`downloadcache`, and/or your :confval:`install_command`
-    should not include the ``{opts}`` substitution key (in which case
-    those options will have no effect).
+    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 --pre {opts} {packages}
-
-    **default on environment names containing 'py25'**::
+         
+    **default on environments using python2.5**::
 
         pip install --insecure {opts} {packages}`` 
 
-    (this will use pip<1.4 (so no "--pre" option) and 
-    python2.5 typically has no SSL support).
+    (this will use pip<1.4 (so no ``--pre`` option) and python2.5 
+    typically has no SSL support, therefore ``--insecure``).
 
 .. confval:: whitelist_externals=MULTI-LINE-LIST
 

File doc/example/basic.txt

 
 .. versionadded:: 1.6
 
-By default tox uses `pip`_ to install packages (both the sdist of your
-package-under-test and any dependencies you specify in ``tox.ini``) into each
-test virtualenv, with a command-line like ``pip install --pre
-SomePackage==1.0``.
-
-You can fully customize tox's install-command in your ``tox.ini`` with the
-``install_command`` option. For instance, to use ``easy_install`` instead of
-`pip`_::
+By default tox uses `pip`_ to install packages, both the
+package-under-test and any dependencies you specify in ``tox.ini``.
+You can fully customize tox's install-command through the
+testenv-specific :confval:`install_command=ARGV` setting.
+For instance, to use ``easy_install`` instead of `pip`_::
 
     [testenv]
-    install_command = easy_install {packages}
+    install_command = easy_install {opts} {packages}
 
-Or to use pip's ``--find-links`` and ``--no-index`` options to specify an
-alternative source for your dependencies::
+Or to use pip's ``--find-links`` and ``--no-index`` options to specify
+an alternative source for your dependencies::
 
     [testenv]
     install_command = pip install --pre --find-links http://packages.example.com --no-index {opts} {packages}
 
-(Including ``{opts}`` is only necessary if you want your install command to
-also respect tox's options for setting the download cache and package index
-server).
-
 .. _pip: http://pip-installer.org
 
 forcing re-creation of virtual environments

File doc/index.txt

 
 * supports :ref:`using different / multiple PyPI index servers  <multiindex>`
 
-* uses pip_ and distribute_ by default.
+* uses pip_ and setuptools_ by default.  Experimental
+  support for configuring the installer command 
+  through :confval:`install_command=ARGV`.
 
-* **cross-Python compatible**: Python-2.5 up to Python-3.3, Jython and pypy_
-  support.
+* **cross-Python compatible**: Python-2.5 up to Python-3.3, 
+  Jython and pypy_ support.  Python-2.5 is supported through
+  a vendored ``virtualenv-1.9.1`` script.
 
 * **cross-platform**: Windows and Unix style environments
 
   (formerly known as Hudson) and helps you to avoid boilerplatish 
   and platform-specific build-step hacks.
 
-* **unified automatic artifact management** between ``tox`` runs both
-  in a local developer shell as well as in a CI/Jenkins context.
+* **full interoperability with devpi**: is integrated with and
+  is used for testing in the devpi_ system, a versatile pypi 
+  index server and release managing tool.
 
 * **driven by a simple ini-style config file**
 

File doc/links.txt

 
+.. _devpi: http://doc.devpi.net
 .. _Python: http://www.python.org
 .. _virtualenv: https://pypi.python.org/pypi/virtualenv
 .. _virtualenv3: https://pypi.python.org/pypi/virtualenv3
         description='virtualenv-based automation of test activities',
         long_description=open("README.rst").read(),
         url='http://tox.testrun.org/',
-        version='1.6rc2',
+        version='1.6.0',
         license='http://opensource.org/licenses/MIT',
         platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],
         author='holger krekel',

File tests/test_config.py

         monkeypatch.delenv("PIP_DOWNLOAD_CACHE", raising=False)
         config = newconfig("""
             [testenv]
-            downloadcache=/the/cache
+            downloadcache=thecache
         """)
         envconfig = config.envconfigs['python']
-        assert envconfig.downloadcache == '/the/cache'
+        assert envconfig.downloadcache.basename == 'thecache'
 
     def test_downloadcache_env_override(self, newconfig, monkeypatch):
-        monkeypatch.setenv("PIP_DOWNLOAD_CACHE", '/from/env')
+        monkeypatch.setenv("PIP_DOWNLOAD_CACHE", 'fromenv')
         config = newconfig("""
             [testenv]
-            downloadcache=/from/config
+            downloadcache=somepath
         """)
         envconfig = config.envconfigs['python']
-        assert envconfig.downloadcache == '/from/env'
+        assert envconfig.downloadcache.basename == "fromenv"
 
     def test_downloadcache_only_if_in_config(self, newconfig, tmpdir,
                                              monkeypatch):

File tests/test_interpreters.py

 
 @pytest.mark.skipif("sys.platform != 'win32'")
 def test_locate_via_py(monkeypatch):
-    from tox._venv import locate_via_py
     class PseudoPy:
         def sysexec(self, *args):
             assert args[0] == '-3.2'
         assert not interpreters.get_executable("12l3k1j23")
 
     def test_get_info__name(self, interpreters):
-        basename = os.path.basename(sys.executable)
-        info = interpreters.get_info(basename)
+        info = interpreters.get_info(executable=sys.executable)
         assert info.version_info == tuple(sys.version_info)
-        assert info.name == basename
         assert info.executable == sys.executable
         assert info.runnable
 

File tox/__init__.py

 #
-__version__ = '1.6rc2'
+__version__ = '1.6.0'
 
 class exception:
     class Error(Exception):

File tox/interpreters.py

 import sys
 import os
 import py
+import re
 import subprocess
 import inspect
 
             [inspect.getsource(pyinfo), "print (pyinfo())"])
     except ExecFailed:
         val = sys.exc_info()[1]
-        return NoInterpreterInfo(name, **val.__dict__)
+        return NoInterpreterInfo(name, executable=val.executable,
+                                 out=val.out, err=val.err)
     else:
         return InterpreterInfo(name, executable, **result)
 
     if popen.returncode:
         raise ExecFailed(executable, source, out, err)
     try:
-        result = eval(out)
+        result = eval(out.strip())
     except Exception:
         raise ExecFailed(executable, source, out,
                          "could not decode %r" % out)
     runnable = True
 
     def __init__(self, name, executable, version_info):
-        assert name and executable and version_info
+        assert executable and version_info
         self.name = name
         self.executable = executable
         self.version_info = version_info