Changelogs » Virtualenv

PyUp Safety actively tracks 382,903 Python packages for vulnerabilities and notifies you when to upgrade.

Virtualenv

20.13.0

~~~~~~~~~~~~~~~~~~
  - Fix ``AttributeError: 'bool' object has no attribute 'error'`` when creating a
  Python 2.x virtualenv on macOS - by ``moreati``. (`2269 <https://github.com/pypa/virtualenv/issues/2269>`_)
  - Fix ``PermissionError: [Errno 1] Operation not permitted`` when creating a
  Python 2.x virtualenv on macOS/arm64 - by ``moreati``. (`2271 <https://github.com/pypa/virtualenv/issues/2271>`_)

20.12.1

~~~~~~~~~~~~~~~~~~
  - Try using previous updates of ``pip``, ``setuptools`` & ``wheel``
  when inside an update grace period rather than always falling back
  to embedded wheels - by :user:`mayeut`. (`2265 <https://github.com/pypa/virtualenv/issues/2265>`_)
  - New patch versions of ``pip``, ``setuptools`` & ``wheel`` are now
  returned in the expected timeframe. - by :user:`mayeut`. (`2266 <https://github.com/pypa/virtualenv/issues/2266>`_)
  - Manual upgrades of ``pip``, ``setuptools`` & ``wheel`` are
  not discarded by a periodic update - by :user:`mayeut`. (`2267 <https://github.com/pypa/virtualenv/issues/2267>`_)

20.12.0

~~~~~~~~~~~~~~~~~~
  - Fix ``--download`` option - by :user:`mayeut`. (`2120 <https://github.com/pypa/virtualenv/issues/2120>`_)
  - Ugrade embedded setuptools to ``60.2.0`` from ``60.1.1`` - by :user:`gaborbernat`. (`2263 <https://github.com/pypa/virtualenv/issues/2263>`_)

20.11.2

~~~~~~~~~~~~~~~~~~
  - Fix installation of pinned versions of ``pip``, ``setuptools`` & ``wheel`` - by :user:`mayeut`. (`2203 <https://github.com/pypa/virtualenv/issues/2203>`_)

20.11.1

~~~~~~~~~~~~~~~~~~
  - Bump embed setuptools to ``60.1.1`` from ``60.1.0`` - by :user:`gaborbernat`. (`2258 <https://github.com/pypa/virtualenv/issues/2258>`_)

20.11.0

~~~~~~~~~~~~~~~~~~
  - Avoid deprecation warning from py-filelock argument - by :user:`ofek`. (`2237 <https://github.com/pypa/virtualenv/issues/2237>`_)
  - Upgrade embedded setuptools to ``61.1.0`` from ``58.3.0`` - by :user:`gaborbernat`. (`2240 <https://github.com/pypa/virtualenv/issues/2240>`_)
  - Drop the runtime dependency of ``backports.entry-points-selectable`` - by :user:`hroncok`. (`2246 <https://github.com/pypa/virtualenv/issues/2246>`_)
  - Fish: PATH variables should not be quoted when being set - by :user:`hroncok`. (`2248 <https://github.com/pypa/virtualenv/issues/2248>`_)

20.10.0

~~~~~~~~~~~~~~~~~~
  - Fix broken prompt set up by activate.bat - by :user:`SiggyBar`. (`2225 <https://github.com/pypa/virtualenv/issues/2225>`_)

20.9.0

~~~~~~~~~~~~~~~~~
  - Fixed path collision that could lead to a PermissionError or writing to system
  directories when using PyPy3.8 - by :user:`mgorny`. (`2182 <https://github.com/pypa/virtualenv/issues/2182>`_)
  - Upgrade embedded setuptools to ``58.3.0`` from ``58.1.0`` and pip to ``21.3.1`` from ``21.2.4`` - by
  :user:`gaborbernat`. (`2205 <https://github.com/pypa/virtualenv/issues/2205>`_)
  - Remove stray closing parenthesis in activate.bat - by :user:`SiggyBar`. (`2221 <https://github.com/pypa/virtualenv/issues/2221>`_)

20.8.1

~~~~~~~~~~~~~
  - `2189 <https://github.com/pypa/virtualenv/issues/2189>`_

20.8.0

--------------------
  
  * upgrade embedded setuptools to ``58.0.4`` from ``57.4.0`` and pip to ``21.2.4`` from ``21.2.3``
  * Add nushell activation script

20.7.2

~~~~~~~~~~~~~~~~~
  - Upgrade embedded pip to ``21.2.3`` from ``21.2.2`` and wheel to ``0.37.0`` from ``0.36.2`` - by :user:`gaborbernat`. (`2168 <https://github.com/pypa/virtualenv/issues/2168>`_)

20.7.1

~~~~~~~~~~~~~~~~~
  - Fix unpacking dictionary items in PythonInfo.install_path (`2165 <https://github.com/pypa/virtualenv/issues/2165>`_)

20.7.0

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  - Removed ``xonsh`` activator due to this breaking fairly often the CI and lack of support from those packages
  maintainers, upstream is encouraged to continue supporting the project as a
  `plugin <https://github.com/xonsh/xonsh/issues/3689>`_  - by :user:`gaborbernat`. (`#2160 <https://github.com/pypa/virtualenv/issues/2160>`_)

20.6.0

~~~~~~~~~~~~~~~~~
  - Support Python interpreters without ``distutils`` (fallback to ``syconfig`` in these cases) - by :user:`gaborbernat`. (`1910 <https://github.com/pypa/virtualenv/issues/1910>`_)

20.5.0

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  - Drop python ``3.4`` support as it has been over 2 years since EOL - by :user:`gaborbernat`. (`2141 <https://github.com/pypa/virtualenv/issues/2141>`_)

20.4.7

~~~~~~~~~~~~~~~~~
  - Upgrade embedded pip to ``21.1.2`` and setuptools to ``57.0.0`` - by :user:`gaborbernat`. (`2123 <https://github.com/pypa/virtualenv/issues/2123>`_)

20.4.6

~~~~~~~~~~~~~~~~~
  - Fix ``site.getsitepackages()`` broken on python2 on debian - by :user:`freundTech`. (`2105 <https://github.com/pypa/virtualenv/issues/2105>`_)

20.4.5

~~~~~~~~~~~~~~~~~
  - Bump pip to ``21.1.1`` from ``21.0.1`` - by :user:`gaborbernat`. (`2104 <https://github.com/pypa/virtualenv/issues/2104>`_)
  - Fix ``site.getsitepackages()`` ignoring ``--system-site-packages`` on python2 - by :user:`freundTech`. (`2106 <https://github.com/pypa/virtualenv/issues/2106>`_)

20.4.4

~~~~~~~~~~~~~~~~~
  - Built in discovery class is always preferred over plugin supplied classes. (`2087 <https://github.com/pypa/virtualenv/issues/2087>`_)
  - Upgrade embeded setuptools to ``56.0.0`` by :user:`gaborbernat`. (`2094 <https://github.com/pypa/virtualenv/issues/2094>`_)

20.4.3

~~~~~~~~~~~~~~~~~
  - Bump embeded setuptools from ``52.0.0`` to ``54.1.2`` - by :user:`gaborbernat` (`2069 <https://github.com/pypa/virtualenv/issues/2069>`_)
  - Fix PyPy3 stdlib on Windows is incorrect - by :user:`gaborbernat`. (`2071 <https://github.com/pypa/virtualenv/issues/2071>`_)

20.4.2

~~~~~~~~~~~~~~~~~
  - Running virtualenv ``--upgrade-embed-wheels`` crashes - by :user:`gaborbernat`. (`2058 <https://github.com/pypa/virtualenv/issues/2058>`_)

20.4.1

~~~~~~~~~~~~~~~~~
  - Bump embedded pip and setuptools packages to latest upstream supported (``21.0.1`` and ``52.0.0``) - by :user:`gaborbernat`. (`2060 <https://github.com/pypa/virtualenv/issues/2060>`_)

20.4.0

~~~~~~~~~~~~~~~~~
  - Upgrade embedded setuptools to ``51.3.3`` from ``51.1.2`` - by :user:`gaborbernat`. (`2055 <https://github.com/pypa/virtualenv/issues/2055>`_)

20.3.1

~~~~~~~~~~~~~~~~~
  - Bump embed pip to ``20.3.3``, setuptools to ``51.1.1`` and wheel to ``0.36.2`` - by :user:`gaborbernat`. (`2036 <https://github.com/pypa/virtualenv/issues/2036>`_)
  - Allow unfunctioning of pydoc to fail freely so that virtualenvs can be
  activated under Zsh with set -e (since otherwise ``unset -f`` and
  ``unfunction`` exit with 1 if the function does not exist in Zsh) - by
  :user:`d125q`. (`2049 <https://github.com/pypa/virtualenv/issues/2049>`_)
  - Drop cached python information if the system executable is no longer present (for example when the executable is a
  shim and the mapped executable is replaced - such is the case with pyenv) - by :user:`gaborbernat`. (`2050 <https://github.com/pypa/virtualenv/issues/2050>`_)

20.3.0

~~~~~~~~~~~~~~~~~
  - On Windows python ``3.7+`` distributions where the exe shim is missing fallback to the old ways - by :user:`gaborbernat`. (`1986 <https://github.com/pypa/virtualenv/issues/1986>`_)
  - When discovering interpreters on Windows, via the PEP-514, prefer ``PythonCore`` releases over other ones. virtualenv
  is used via pip mostly by this distribution, so prefer it over other such as conda - by :user:`gaborbernat`. (`2046 <https://github.com/pypa/virtualenv/issues/2046>`_)

20.2.2

~~~~~~~~~~~~~~~~~
  - Bump pip to ``20.3.1``, setuptools to ``51.0.0`` and wheel to ``0.36.1`` - by :user:`gaborbernat`. (`2029 <https://github.com/pypa/virtualenv/issues/2029>`_)

20.2.1

--------------------
  
  No significant changes.

20.2.0

~~~~~~~~~~~~~~~~~
  - Fix processing of the ``VIRTUALENV_PYTHON`` environment variable and make it
  multi-value as well (separated by comma) - by :user:`pneff`. (`1998 <https://github.com/pypa/virtualenv/issues/1998>`_)

20.1.0

~~~~~~~~~~~~~~~~~
  - The python specification can now take one or more values, first found is used to create the virtual environment - by
  :user:`gaborbernat`. (`1995 <https://github.com/pypa/virtualenv/issues/1995>`_)

20.0.35

~~~~~~~~~~~~~~~~~~
  - Bump embedded setuptools from ``50.3.0`` to ``50.3.1`` - by :user:`gaborbernat`. (`1982 <https://github.com/pypa/virtualenv/issues/1982>`_)
  - After importing virtualenv passing cwd to a subprocess calls breaks with ``invalid directory`` - by :user:`gaborbernat`. (`1983 <https://github.com/pypa/virtualenv/issues/1983>`_)

20.0.34

~~~~~~~~~~~~~~~~~~
  - Align with venv module when creating virtual environments with builtin creator on Windows 3.7 and later
  - by :user:`gaborbernat`. (`1782 <https://github.com/pypa/virtualenv/issues/1782>`_)
  - Handle Cygwin path conversion in the activation script - by :user:`davidcoghlan`. (`1969 <https://github.com/pypa/virtualenv/issues/1969>`_)

20.0.33

~~~~~~~~~~~~~~~~~~
  - Fix ``None`` type error in cygwin if POSIX path in dest - by :user:`danyeaw`. (`1962 <https://github.com/pypa/virtualenv/issues/1962>`_)
  - Fix Python 3.4 incompatibilities (added back to the CI) - by :user:`gaborbernat`. (`1963 <https://github.com/pypa/virtualenv/issues/1963>`_)

20.0.32

~~~~~~~~~~~~~~~~~~
  - For activation scripts always use UNIX line endings (unless it's BATCH shell related) - by :user:`saytosid`. (`1818 <https://github.com/pypa/virtualenv/issues/1818>`_)
  - Upgrade embedded pip to ``20.2.1`` and setuptools to ``49.4.0`` - by :user:`gaborbernat`. (`1918 <https://github.com/pypa/virtualenv/issues/1918>`_)
  - Avoid spawning new windows when doing seed package upgrades in the background on Windows - by :user:`gaborbernat`. (`1928 <https://github.com/pypa/virtualenv/issues/1928>`_)
  - Fix a bug that reading and writing on the same file may cause race on multiple processes. (`1938 <https://github.com/pypa/virtualenv/issues/1938>`_)
  - Upgrade embedded setuptools to ``50.2.0`` and pip to ``20.2.3`` - by :user:`gaborbernat`. (`1939 <https://github.com/pypa/virtualenv/issues/1939>`_)
  - Provide correct path for bash activator in cygwin or msys2 - by :user:`danyeaw`. (`1940 <https://github.com/pypa/virtualenv/issues/1940>`_)
  - Relax importlib requirement to allow version<3 - by :user:`usamasadiq` (`1953 <https://github.com/pypa/virtualenv/issues/1953>`_)
  - pth files were not processed on CPython2 if $PYTHONPATH was pointing to site-packages/ - by :user:`navytux`. (`1959 <https://github.com/pypa/virtualenv/issues/1959>`_) (`#1960 <https://github.com/pypa/virtualenv/issues/1960>`_)

20.0.31

~~~~~~~~~~~~~~~~~~
  - Upgrade embedded pip to ``20.2.1``, setuptools to ``49.6.0`` and wheel to ``0.35.1``  - by :user:`gaborbernat`. (`1918 <https://github.com/pypa/virtualenv/issues/1918>`_)

20.0.30

~~~~~~~~~~~~~~~~~~
  - Upgrade pip to ``20.2.1`` and setuptools to ``49.2.1`` - by :user:`gaborbernat`. (`1915 <https://github.com/pypa/virtualenv/issues/1915>`_)

20.0.29

~~~~~~~~~~~~~~~~~~
  - Upgrade embedded pip from version ``20.1.2`` to ``20.2`` - by :user:`gaborbernat`. (`1909 <https://github.com/pypa/virtualenv/issues/1909>`_)

20.0.28

~~~~~~~~~~~~~~~~~~
  - Fix test suite failing if run from system Python - by :user:`gaborbernat`. (`1882 <https://github.com/pypa/virtualenv/issues/1882>`_)
  - Provide ``setup_logging`` flag to python API so that users can bypass logging handling if their application already
  performs this - by :user:`gaborbernat`. (`1896 <https://github.com/pypa/virtualenv/issues/1896>`_)
  - Use ``\n`` instead if ``\r\n`` as line separator for report (because Python already performs this transformation
  automatically upon write to the logging pipe) - by :user:`gaborbernat`. (`1905 <https://github.com/pypa/virtualenv/issues/1905>`_)

20.0.27

~~~~~~~~~~~~~~~~~~
  - No longer preimport threading to fix support for `gpython <https://pypi.org/project/pygolang/#gpython>`_ and `gevent <https://www.gevent.org/>`_ - by :user:`navytux`. (`#1897 <https://github.com/pypa/virtualenv/issues/1897>`_)
  - Upgrade setuptools from ``49.2.0`` on ``Python 3.5+`` - by :user:`gaborbernat`. (`1898 <https://github.com/pypa/virtualenv/issues/1898>`_)

20.0.26

~~~~~~~~~~~~~~~~~~
  - Bump dependency ``distutils >= 0.3.1`` - by :user:`gaborbernat`. (`1880 <https://github.com/pypa/virtualenv/issues/1880>`_)
  - Improve periodic update handling:
  
  - better logging output while running and enable logging on background process call (
  ``_VIRTUALENV_PERIODIC_UPDATE_INLINE`` may be used to debug behaviour inline)
  - fallback to unverified context when querying the PyPi for release date,
  - stop downloading wheels once we reach the embedded version,
  
  by :user:`gaborbernat`. (`1883 <https://github.com/pypa/virtualenv/issues/1883>`_)
  - Do not print error message if the application exists with ``SystemExit(0)`` - by :user:`gaborbernat`. (`1885 <https://github.com/pypa/virtualenv/issues/1885>`_)
  - Upgrade embedded setuptools from ``47.3.1`` to ``49.1.0`` for Python ``3.5+`` - by :user:`gaborbernat`. (`1887 <https://github.com/pypa/virtualenv/issues/1887>`_)

20.0.25

~~~~~~~~~~~~~~~~~~
  - Fix that when the ``app-data`` seeders image creation fails the exception is silently ignored. Avoid two virtual environment creations to step on each others toes by using a lock while creating the base images. By :user:`gaborbernat`. (`1869 <https://github.com/pypa/virtualenv/issues/1869>`_)

20.0.24

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  - How seeding mechanisms discover (and automatically keep it up to date) wheels at :ref:`wheels` - by :user:`gaborbernat`. (`1821 <https://github.com/pypa/virtualenv/issues/1821>`_)
  - How distributions should handle shipping their own embedded wheels at  :ref:`distribution_wheels` - by :user:`gaborbernat`. (`1840 <https://github.com/pypa/virtualenv/issues/1840>`_)

20.0.23

~~~~~~~~~~~~~~~~~~
  - Fix typo in ``setup.cfg`` - by :user:`RowdyHowell`. (`1857 <https://github.com/pypa/virtualenv/issues/1857>`_)

20.0.22

~~~~~~~~~~~~~~~~~~
  - Relax ``importlib.resources`` requirement to also allow version 2 - by :user:`asottile`. (`1846 <https://github.com/pypa/virtualenv/issues/1846>`_)
  - Upgrade embedded setuptools to ``44.1.1`` for python 2 and ``47.1.1`` for python3.5+ - by :user:`gaborbernat`. (`1855 <https://github.com/pypa/virtualenv/issues/1855>`_)

20.0.21

~~~~~~~~~~~~~~~~~~
  - Fix virtualenv fails sometimes when run concurrently, ``--clear-app-data`` conflicts with :option:`clear` flag when
  abbreviation is turned on. To bypass this while allowing abbreviated flags on the command line we had to move it to
  :option:`reset-app-data` - by :user:`gaborbernat`. (`1824 <https://github.com/pypa/virtualenv/issues/1824>`_)
  - Upgrade embedded ``setuptools`` to ``46.4.0`` from ``46.1.3`` on Python ``3.5+``, and ``pip`` from ``20.1`` to ``20.1.1`` - by :user:`gaborbernat`. (`1827 <https://github.com/pypa/virtualenv/issues/1827>`_)
  - Seeder pip now correctly handles ``--extra-search-dir`` - by :user:`frenzymadness`. (`1834 <https://github.com/pypa/virtualenv/issues/1834>`_)

20.0.20

~~~~~~~~~~~~~~~~~~
  - Fix download fails with python 3.4 - by :user:`gaborbernat`. (`1809 <https://github.com/pypa/virtualenv/issues/1809>`_)
  - Fixes older CPython2 versions use ``_get_makefile_filename`` instead of ``get_makefile_filename`` on ``sysconfig`` - by :user:`ianw`. (`1810 <https://github.com/pypa/virtualenv/issues/1810>`_)
  - Fix download is ``True`` by default - by :user:`gaborbernat`. (`1813 <https://github.com/pypa/virtualenv/issues/1813>`_)
  - Fail ``app-data`` seed operation when wheel download fails and better error message - by :user:`gaborbernat`. (`1814 <https://github.com/pypa/virtualenv/issues/1814>`_)

20.0.19

~~~~~~~~~~~~~~~~~~
  - Fix generating a Python 2 environment from Python 3 creates invalid python activator - by :user:`gaborbernat`. (`1776 <https://github.com/pypa/virtualenv/issues/1776>`_)
  - Fix pinning seed packages via ``app-data`` seeder raised ``Invalid Requirement`` - by :user:`gaborbernat`. (`1779 <https://github.com/pypa/virtualenv/issues/1779>`_)
  - Do not stop interpreter discovery if we fail to find the system interpreter for a executable during discovery
  - by :user:`gaborbernat`. (`1781 <https://github.com/pypa/virtualenv/issues/1781>`_)
  - On CPython2 POSIX platforms ensure ``syconfig.get_makefile_filename`` exists within the virtual environment (this is used by some c-extension based libraries - e.g. numpy - for building) - by :user:`gaborbernat`. (`1783 <https://github.com/pypa/virtualenv/issues/1783>`_)
  - Better handling of options :option:`copies` and :option:`symlinks`. Introduce priority of where the option is set
  to follow the order: CLI, env var, file, hardcoded. If both set at same level prefers copy over symlink. - by
  :user:`gaborbernat`. (`1784 <https://github.com/pypa/virtualenv/issues/1784>`_)
  - Upgrade pip for Python ``2.7`` and ``3.5+`` from ``20.0.2`` to ``20.1`` - by :user:`gaborbernat`. (`1793 <https://github.com/pypa/virtualenv/issues/1793>`_)
  - Fix CPython is not discovered from Windows registry, and discover pythons from Windows registry in decreasing order
  by version - by :user:`gaborbernat`. (`1796 <https://github.com/pypa/virtualenv/issues/1796>`_)
  - Fix symlink detection for creators - by :user:`asottile` (`1803 <https://github.com/pypa/virtualenv/issues/1803>`_)

20.0.18

~~~~~~~~~~~~~~~~~~
  - Importing setuptools before cli_run could cause our python information query to fail due to setuptools patching
  ``distutils.dist.Distribution`` - by :user:`gaborbernat`. (`1771 <https://github.com/pypa/virtualenv/issues/1771>`_)

20.0.17

~~~~~~~~~~~~~~~~~~
  - Extend environment variables checked for configuration to also check aliases (e.g. setting either
  ``VIRTUALENV_COPIES`` or ``VIRTUALENV_ALWAYS_COPY`` will work) - by :user:`gaborbernat`. (`1763 <https://github.com/pypa/virtualenv/issues/1763>`_)

20.0.16

~~~~~~~~~~~~~~~~~~
  - Allow seed wheel files inside the :option:`extra-search-dir` folders that do not have ``Requires-Python``
  metadata specified, these are considered compatible with all python versions - by :user:`gaborbernat`. (`1757 <https://github.com/pypa/virtualenv/issues/1757>`_)

20.0.15

~~~~~~~~~~~~~~~~~~
  - Upgrade embedded setuptools to ``46.1.3`` from ``46.1.1`` - by :user:`gaborbernat`. (`1752 <https://github.com/pypa/virtualenv/issues/1752>`_)

20.0.14

~~~~~~~~~~~~~~~~~~
  - Fix discovery of interpreter by name from ``PATH`` that does not match a spec format - by :user:`gaborbernat`. (`1746 <https://github.com/pypa/virtualenv/issues/1746>`_)

20.0.13

~~~~~~~~~~~~~~~~~~
  - Do not fail when the pyc files is missing for the host Python 2 - by :user:`gaborbernat`. (`1738 <https://github.com/pypa/virtualenv/issues/1738>`_)
  - Support broken Packaging pythons that put the include headers under distutils pattern rather than sysconfig one
  - by :user:`gaborbernat`. (`1739 <https://github.com/pypa/virtualenv/issues/1739>`_)

20.0.12

~~~~~~~~~~~~~~~~~~
  - Fix relative path discovery of interpreters - by :user:`gaborbernat`. (`1734 <https://github.com/pypa/virtualenv/issues/1734>`_)

20.0.11

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  - :ref:`supports <compatibility-requirements>` details now explicitly what Python installations we support
  - by :user:`gaborbernat`. (`1714 <https://github.com/pypa/virtualenv/issues/1714>`_)

20.0.10

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  - Document requirements (pip + index server) when installing via pip under the installation section - by
  :user:`gaborbernat`. (`1618 <https://github.com/pypa/virtualenv/issues/1618>`_)
  - Document installing from non PEP-518 systems - :user:`gaborbernat`. (`1619 <https://github.com/pypa/virtualenv/issues/1619>`_)
  - Document installing latest unreleased version from Github - :user:`gaborbernat`. (`1620 <https://github.com/pypa/virtualenv/issues/1620>`_)

20.0.9

~~~~~~~~~~~~~~~~~
  - ``pythonw.exe`` works as ``python.exe`` on Windows - by :user:`gaborbernat`. (`1686 <https://github.com/pypa/virtualenv/issues/1686>`_)
  - Handle legacy loaders for virtualenv import hooks used to patch distutils configuration load - by :user:`gaborbernat`. (`1690 <https://github.com/pypa/virtualenv/issues/1690>`_)
  - Support for python 2 platforms that store landmark files in ``platstdlib`` over ``stdlib`` (e.g. RHEL) - by
  :user:`gaborbernat`. (`1694 <https://github.com/pypa/virtualenv/issues/1694>`_)
  - Upgrade embedded setuptools to ``45.3.0`` from ``45.2.0`` for Python ``3.5+``  - by :user:`gaborbernat`. (`1699 <https://github.com/pypa/virtualenv/issues/1699>`_)

20.0.8

~~~~~~~~~~~~~~~~~
  - Having `distutils configuration <https://docs.python.org/3/install/index.html#distutils-configuration-files>`_
  files that set ``prefix`` and ``install_scripts`` cause installation of packages in the wrong location -
  by :user:`gaborbernat`. (`1663 <https://github.com/pypa/virtualenv/issues/1663>`_)
  - Fix ``PYTHONPATH`` being overridden on Python 2 — by :user:`jd`. (`1673 <https://github.com/pypa/virtualenv/issues/1673>`_)
  - Fix list configuration value parsing from config file or environment variable - by :user:`gaborbernat`. (`1674 <https://github.com/pypa/virtualenv/issues/1674>`_)
  - Fix Batch activation script shell prompt to display environment name by default - by :user:`spetafree`. (`1679 <https://github.com/pypa/virtualenv/issues/1679>`_)
  - Fix startup on Python 2 is slower for virtualenv - this was due to setuptools calculating it's working set distribution
  - by :user:`gaborbernat`. (`1682 <https://github.com/pypa/virtualenv/issues/1682>`_)
  - Fix entry points are not populated for editable installs on Python 2 due to setuptools working set being calculated
  before ``easy_install.pth`` runs - by :user:`gaborbernat`. (`1684 <https://github.com/pypa/virtualenv/issues/1684>`_)
  - Fix ``attr:`` import fails for setuptools - by :user:`gaborbernat`. (`1685 <https://github.com/pypa/virtualenv/issues/1685>`_)

20.0.7

~~~~~~~~~~~~~~~~~
  - Disable distutils fixup for python 3 until `pypa/pip 7778 <https://github.com/pypa/pip/issues/7778>`_ is fixed and
  released - by :user:`gaborbernat`. (`1669 <https://github.com/pypa/virtualenv/issues/1669>`_)

20.0.6

~~~~~~~~~~~~~~~~~
  - Fix global site package always being added with bundled macOs python framework builds - by :user:`gaborbernat`. (`1561 <https://github.com/pypa/virtualenv/issues/1561>`_)
  - Fix generated scripts use host version info rather than target - by :user:`gaborbernat`. (`1600 <https://github.com/pypa/virtualenv/issues/1600>`_)
  - Fix circular prefix reference with single elements (accept these as if they were system executables, print a info about
  them referencing themselves) - by :user:`gaborbernat`. (`1632 <https://github.com/pypa/virtualenv/issues/1632>`_)
  - Handle the case when the application data folder is read-only:
  
  - the application data folder is now controllable via :option:`app-data`,
  - ``clear-app-data`` now cleans the entire application data folder, not just the ``app-data`` seeder path,
  - check if the application data path passed in does not exist or is read-only, and fallback to a temporary directory,
  - temporary directory application data is automatically cleaned up at the end of execution,
  - :option:`symlink-app-data` is always ``False`` when the application data is temporary
  
  by :user:`gaborbernat`. (`1640 <https://github.com/pypa/virtualenv/issues/1640>`_)
  - Fix PyPy 2 builtin modules are imported from standard library, rather than from builtin  - by :user:`gaborbernat`. (`1652 <https://github.com/pypa/virtualenv/issues/1652>`_)
  - Fix creation of entry points when path contains spaces - by :user:`nsoranzo`. (`1660 <https://github.com/pypa/virtualenv/issues/1660>`_)
  - Fix relative paths for the zipapp (for python ``3.7+``) - by :user:`gaborbernat`. (`1666 <https://github.com/pypa/virtualenv/issues/1666>`_)

20.0.5

~~~~~~~~~~~~~~~~~
  - Add macOs Python 2 Framework support (now we test it with the CI via brew) - by :user:`gaborbernat` (`1561 <https://github.com/pypa/virtualenv/issues/1561>`_)
  - Fix losing of libpypy-c.so when the pypy executable is a symlink - by :user:`asottile` (`1614 <https://github.com/pypa/virtualenv/issues/1614>`_)
  - Discover python interpreter in a case insensitive manner - by :user:`PrajwalM2212` (`1624 <https://github.com/pypa/virtualenv/issues/1624>`_)
  - Fix cross interpreter support when the host python sets ``sys.base_executable`` based on ``__PYVENV_LAUNCHER__`` -
  by :user:`cjolowicz` (`1643 <https://github.com/pypa/virtualenv/issues/1643>`_)

20.0.4

~~~~~~~~~~~~~~~~~
  - Allow the use of ``/`` as pathname component separator on Windows - by ``vphilippon`` (`1582 <https://github.com/pypa/virtualenv/issues/1582>`_)
  - Lower minimal version of six required to 1.9 - by ``ssbarnea`` (`1606 <https://github.com/pypa/virtualenv/issues/1606>`_)

20.0.3

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  - Document a programmatic API as ``from virtualenv import cli_run`` under :ref:`programmatic_api` -
  by :user:`gaborbernat`. (`1585 <https://github.com/pypa/virtualenv/issues/1585>`_)

20.0.2

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  - Add link to the `legacy documentation <https://virtualenv.pypa.io/en/legacy>`_ for the changelog by :user:`jezdez`. (`#1547 <https://github.com/pypa/virtualenv/issues/1547>`_)
  - Fine tune the documentation layout: default width of theme, allow tables to wrap around, soft corners for code snippets
  - by :user:`pradyunsg`. (`1548 <https://github.com/pypa/virtualenv/issues/1548>`_)

20.0.1

~~~~~~~~~~~~~~~~~
  - Virtual environments created via relative path on Windows creates bad console executables - by :user:`gaborbernat`. (`1552 <https://github.com/pypa/virtualenv/issues/1552>`_)
  - Seems sometimes venvs created set their base executable to themselves; we accept these without question, so we handle
  virtual environments as system pythons causing issues - by :user:`gaborbernat`. (`1553 <https://github.com/pypa/virtualenv/issues/1553>`_)
  
  
  v20.0.0. (2020-02-10)
  ---------------------
  
  Improved Documentation - 20.0.0.
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  - Fixes typos, repeated words and inconsistent heading spacing. Rephrase parts of the development documentation and CLI
  documentation. Expands shorthands like ``env var`` and ``config`` to their full forms. Uses descriptions from respective
  documentation, for projects listed in ``related links`` - by :user:`pradyunsg`. (`1540 <https://github.com/pypa/virtualenv/issues/1540>`_)

20.0.0b2

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  - Create the first iteration of the new documentation - by :user:`gaborbernat`. (`1465 <https://github.com/pypa/virtualenv/issues/1465>`_)
  - Project readme is now of type MarkDown instead of reStructuredText - by :user:`gaborbernat`. (`1531 <https://github.com/pypa/virtualenv/issues/1531>`_)

20.0.0b1

----------------------
  
  * First public release of the rewrite. Everything is brand new and just added.
  * ``--download`` defaults to ``False``
  
  .. warning::
  
  The current virtualenv is the second iteration of implementation. From version ``0.8`` all the way to ``16.7.9``
  we numbered the first iteration. Version ``20.0.0b1`` is a complete rewrite of the package, and as such this release
  history starts from there. The old changelog is still available in the
  `legacy branch documentation <https://virtualenv.pypa.io/en/legacy/changes.html>`_.