Metadata-Version: 2.1
Name: tox-venv
Version: 0.4.0
Summary: Use Python 3 venvs for Python 3 tox testenvs
Home-page: https://github.com/tox-dev/tox-venv
Author: Ryan P Kilby
Author-email: kilbyr@gmail.com
License: BSD
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: tox
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Testing
License-File: LICENSE
Requires-Dist: tox (>=3.8.1)

tox-venv
========

.. image:: https://travis-ci.org/tox-dev/tox-venv.svg?branch=master
  :target: https://travis-ci.org/tox-dev/tox-venv
.. image:: https://ci.appveyor.com/api/projects/status/fak35ur9yibmn0ly?svg=true
  :target: https://ci.appveyor.com/project/rpkilby/tox-venv
.. image:: https://codecov.io/gh/tox-dev/tox-venv/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/tox-dev/tox-venv
.. image:: https://img.shields.io/pypi/v/tox-venv.svg
  :target: https://pypi.python.org/pypi/tox-venv
.. image:: https://img.shields.io/pypi/pyversions/tox-venv.svg
  :target: https://pypi.org/project/tox-venv/
.. image:: https://img.shields.io/pypi/l/tox-venv.svg
  :target: https://pypi.python.org/pypi/tox-venv


What is tox-venv?
-----------------

tox-venv is a plugin that uses Python 3's builtin ``venv`` module for creating test environments, instead of creating
them with the ``virtualenv`` package. For Python versions that do not include ``venv`` (namely 3.2 and earlier), this
package does nothing and reverts to tox's default implementation.


Why use tox-venv?
-----------------

``virtualenv`` is historically Python 2/3 compatible, however to achieve this, it ships some files that are pinned at
their Python 2.6 version, such as the ``site`` module (see: `pypa/virtualenv#355`__). This has a few effects:

__ https://github.com/pypa/virtualenv/issues/355

- Builds using the ``-Werror`` option fail, as the deprecations are raised before the test suite can run.
- Users cannot take advantage of newer features of the ``site`` module in their test environments.
- Eventually, these deprecations will become exceptions in future versions of Python.

By using the builtin ``venv`` module, these issues can be avoided.


Installation & Usage
--------------------

To use tox-venv, install it alongside tox in your environment. Then, run ``tox`` as normal - no configuration necessary.

.. code-block::

    $ pip install tox tox-venv
    $ tox

If you have already ran tox, it's necessary to recreate the test envs. Either run ``tox --recreate``, or delete the
``.tox`` directory.


Compatibility
-------------

tox-venv is compatible with both Python 2 and 3, however it only creates test environments in Python 3.3 and later.
Python 3.3 environments are only partially compatible, as not all options (such as ``--copies``/``--symlinks``) were
supported. Environments for Python 3.4 and later are fully compatible.


Release process
---------------

* Update changelog
* Update package version in setup.py
* Create git tag for version
* Upload release to PyPI

.. code-block::

    $ pip install -U twine setuptools wheel
    $ rm -rf dist/ build/
    # python setup.py sdist bdist_wheel
    $ twine upload dist/*


