diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index e0a2bcb65..cacfe5517 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -36,6 +36,12 @@ repos:
additional_dependencies:
- prettier@3.3.3
- "@prettier/plugin-xml@3.4.1"
+ - repo: https://github.com/LilSpazJoekp/docstrfmt
+ rev: v2.0.2
+ hooks:
+ - id: docstrfmt
+ args: ["-l", "120"]
+ additional_dependencies: ["sphinx>=9.1"]
- repo: meta
hooks:
- id: check-hooks-apply
diff --git a/README.md b/README.md
index 87f45e077..680a08bc7 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# virtualenv
+virtualenv.config.cli.parser.VirtualEnvOptions# virtualenv
[](https://pypi.org/project/virtualenv)
[](https://pypi.org/project/virtualenv)
diff --git a/docs/_static/rtd-search.js b/docs/_static/rtd-search.js
new file mode 100644
index 000000000..133e1e31c
--- /dev/null
+++ b/docs/_static/rtd-search.js
@@ -0,0 +1,11 @@
+document.addEventListener("DOMContentLoaded", () => {
+ const searchInput = document.querySelector(
+ ".sidebar-search input[type='search']",
+ );
+ if (searchInput) {
+ searchInput.addEventListener("focus", () => {
+ document.dispatchEvent(new CustomEvent("readthedocs-search-show"));
+ searchInput.blur();
+ });
+ }
+});
diff --git a/docs/_static/virtualenv.png b/docs/_static/virtualenv.png
new file mode 100644
index 000000000..1f729837d
Binary files /dev/null and b/docs/_static/virtualenv.png differ
diff --git a/docs/_static/virtualenv.svg b/docs/_static/virtualenv.svg
new file mode 100644
index 000000000..090396002
--- /dev/null
+++ b/docs/_static/virtualenv.svg
@@ -0,0 +1,30 @@
+
diff --git a/docs/changelog.rst b/docs/changelog.rst
index d2d3f109b..36dd7081c 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -1,1077 +1,1314 @@
-Release History
-===============
+#################
+ Release History
+#################
-.. include:: _draft.rst
+.. towncrier-draft-entries:: [UNRELEASED DRAFT]
.. towncrier release notes start
-v20.36.1 (2026-01-09)
----------------------
+***********************
+ v20.36.1 (2026-01-09)
+***********************
Bugfixes - 20.36.1
-~~~~~~~~~~~~~~~~~~
-- Fix TOCTOU vulnerabilities in app_data and lock directory creation that could be exploited via symlink attacks - reported by :user:`tsigouris007`, fixed by :user:`gaborbernat`. (:issue:`3013`)
+==================
-v20.36.0 (2026-01-07)
----------------------
+- Fix TOCTOU vulnerabilities in app_data and lock directory creation that could be exploited via symlink attacks -
+ reported by :user:`tsigouris007`, fixed by :user:`gaborbernat`. (:issue:`3013`)
+
+***********************
+ v20.36.0 (2026-01-07)
+***********************
Features - 20.36.0
-~~~~~~~~~~~~~~~~~~
-- Add support for PEP 440 version specifiers in the ``--python`` flag. Users can now specify Python versions using operators like ``>=``, ``<=``, ``~=``, etc. For example: ``virtualenv --python=">=3.12" myenv`` `. (:issue:`2994`)
+==================
+
+- Add support for PEP 440 version specifiers in the ``--python`` flag. Users can now specify Python versions using
+ operators like ``>=``, ``<=``, ``~=``, etc. For example: ``virtualenv --python=">=3.12" myenv`` `. (:issue:`2994`)
-v20.35.4 (2025-10-28)
----------------------
+***********************
+ v20.35.4 (2025-10-28)
+***********************
Bugfixes - 20.35.4
-~~~~~~~~~~~~~~~~~~
-- Fix race condition in ``_virtualenv.py`` when file is overwritten during import, preventing ``NameError`` when ``_DISTUTILS_PATCH`` is accessed - by :user:`gracetyy`. (:issue:`2969`)
+==================
+
+- Fix race condition in ``_virtualenv.py`` when file is overwritten during import, preventing ``NameError`` when
+ ``_DISTUTILS_PATCH`` is accessed - by :user:`gracetyy`. (:issue:`2969`)
- Upgrade embedded wheels:
- * pip to ``25.3`` from ``25.2`` (:issue:`2989`)
+ - pip to ``25.3`` from ``25.2`` (:issue:`2989`)
-v20.35.3 (2025-10-10)
----------------------
+***********************
+ v20.35.3 (2025-10-10)
+***********************
Bugfixes - 20.35.3
-~~~~~~~~~~~~~~~~~~
+==================
+
- Accept RuntimeError in `test_too_many_open_files`, by :user:`esafak` (:issue:`2935`)
-v20.35.2 (2025-10-10)
----------------------
+***********************
+ v20.35.2 (2025-10-10)
+***********************
Bugfixes - 20.35.2
-~~~~~~~~~~~~~~~~~~
+==================
+
- Revert out changes related to the extraction of the discovery module - by :user:`gaborbernat`. (:issue:`2978`)
-v20.35.1 (2025-10-09)
----------------------
+***********************
+ v20.35.1 (2025-10-09)
+***********************
Bugfixes - 20.35.1
-~~~~~~~~~~~~~~~~~~
+==================
+
- Patch get_interpreter to handle missing cache and app_data - by :user:`esafak` (:issue:`2972`)
- Fix backwards incompatible changes to ``PythonInfo`` - by :user:`gaborbernat`. (:issue:`2975`)
-v20.35.0 (2025-10-08)
----------------------
+***********************
+ v20.35.0 (2025-10-08)
+***********************
Features - 20.35.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Add AppData and Cache protocols to discovery for decoupling - by :user:`esafak`. (:issue:`2074`)
- Ensure python3.exe and python3 on Windows for Python 3 - by :user:`esafak`. (:issue:`2774`)
Bugfixes - 20.35.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Replaced direct references to tcl/tk library paths with getattr - by :user:`esafak` (:issue:`2944`)
- Restore absolute import of fs_is_case_sensitive - by :user:`esafak`. (:issue:`2955`)
-v20.34.0 (2025-08-13)
----------------------
+***********************
+ v20.34.0 (2025-08-13)
+***********************
Features - 20.34.0
-~~~~~~~~~~~~~~~~~~
-- Abstract out caching in discovery - by :user:`esafak`.
- Decouple `FileCache` from `py_info` (discovery) - by :user:`esafak`.
- Remove references to py_info in FileCache - by :user:`esafak`.
- Decouple discovery from creator plugins - by :user:`esafak`.
- Decouple discovery by duplicating info utils - by :user:`esafak`. (:issue:`2074`)
+==================
+
+- Abstract out caching in discovery - by :user:`esafak`. Decouple `FileCache` from `py_info` (discovery) - by
+ :user:`esafak`. Remove references to py_info in FileCache - by :user:`esafak`. Decouple discovery from creator plugins
+ - by :user:`esafak`. Decouple discovery by duplicating info utils - by :user:`esafak`. (:issue:`2074`)
- Add PyPy 3.11 support. Contributed by :user:`esafak`. (:issue:`2932`)
Bugfixes - 20.34.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Upgrade embedded wheel pip to ``25.2`` from ``25.1.1`` - by :user:`gaborbernat`. (:issue:`2333`)
- Accept RuntimeError in `test_too_many_open_files`, by :user:`esafak` (:issue:`2935`)
- Python in PATH takes precedence over uv-managed python. Contributed by :user:`edgarrmondragon`. (:issue:`2952`)
-v20.33.1 (2025-08-05)
----------------------
+***********************
+ v20.33.1 (2025-08-05)
+***********************
Bugfixes - 20.33.1
-~~~~~~~~~~~~~~~~~~
-- Correctly unpack _get_tcl_tk_libs() response in PythonInfo.
- Contributed by :user:`esafak`. (:issue:`2930`)
-- Restore `py_info.py` timestamp in `test_py_info_cache_invalidation_on_py_info_change`
- Contributed by :user:`esafak`. (:issue:`2933`)
+==================
+
+- Correctly unpack _get_tcl_tk_libs() response in PythonInfo. Contributed by :user:`esafak`. (:issue:`2930`)
+- Restore `py_info.py` timestamp in `test_py_info_cache_invalidation_on_py_info_change` Contributed by :user:`esafak`.
+ (:issue:`2933`)
-v20.33.0 (2025-08-03)
----------------------
+***********************
+ v20.33.0 (2025-08-03)
+***********************
Features - 20.33.0
-~~~~~~~~~~~~~~~~~~
-- Added support for Tcl and Tkinter. You're welcome.
- Contributed by :user:`esafak`. (:issue:`425`)
+==================
+
+- Added support for Tcl and Tkinter. You're welcome. Contributed by :user:`esafak`. (:issue:`425`)
Bugfixes - 20.33.0
-~~~~~~~~~~~~~~~~~~
-- Prevent logging setup when --help is passed, fixing a flaky test.
- Contributed by :user:`esafak`. (:issue:`u`)
-- Fix cache invalidation for PythonInfo by hashing `py_info.py`.
- Contributed by :user:`esafak`. (:issue:`2467`)
-- When no discovery plugins are found, the application would crash with a StopIteration.
- This change catches the StopIteration and raises a RuntimeError with a more informative message.
- Contributed by :user:`esafak`. (:issue:`2493`)
-- Stop `--try-first-with` overriding absolute `--python` paths.
- Contributed by :user:`esafak`. (:issue:`2659`)
-- Force UTF-8 encoding for pip download
- Contributed by :user:`esafak`. (:issue:`2780`)
-- Creating a virtual environment on a filesystem without symlink-support would fail even with `--copies`
- Make `fs_supports_symlink` perform a real symlink creation check on all platforms.
- Contributed by :user:`esafak`. (:issue:`2786`)
+==================
+
+- Prevent logging setup when --help is passed, fixing a flaky test. Contributed by :user:`esafak`. (:issue:`u`)
+- Fix cache invalidation for PythonInfo by hashing `py_info.py`. Contributed by :user:`esafak`. (:issue:`2467`)
+- When no discovery plugins are found, the application would crash with a StopIteration. This change catches the
+ StopIteration and raises a RuntimeError with a more informative message. Contributed by :user:`esafak`.
+ (:issue:`2493`)
+- Stop `--try-first-with` overriding absolute `--python` paths. Contributed by :user:`esafak`. (:issue:`2659`)
+- Force UTF-8 encoding for pip download Contributed by :user:`esafak`. (:issue:`2780`)
+- Creating a virtual environment on a filesystem without symlink-support would fail even with `--copies` Make
+ `fs_supports_symlink` perform a real symlink creation check on all platforms. Contributed by :user:`esafak`.
+ (:issue:`2786`)
- Add a note to the user guide recommending the use of a specific Python version when creating virtual environments.
Contributed by :user:`esafak`. (:issue:`2808`)
-- Fix 'Too many open files' error due to a file descriptor leak in virtualenv's locking mechanism.
- Contributed by :user:`esafak`. (:issue:`2834`)
-- Support renamed Windows venv redirector (`venvlauncher.exe` and `venvwlauncher.exe`) on Python 3.13
- Contributed by :user:`esafak`. (:issue:`2851`)
+- Fix 'Too many open files' error due to a file descriptor leak in virtualenv's locking mechanism. Contributed by
+ :user:`esafak`. (:issue:`2834`)
+- Support renamed Windows venv redirector (`venvlauncher.exe` and `venvwlauncher.exe`) on Python 3.13 Contributed by
+ :user:`esafak`. (:issue:`2851`)
- Resolve Nushell activation script deprecation warnings by dynamically selecting the ``--optional`` flag for Nushell
- ``get`` command on version 0.106.0 and newer, while retaining the deprecated ``-i`` flag for older versions to maintain
- compatibility. Contributed by :user:`gaborbernat`. (:issue:`2910`)
+ ``get`` command on version 0.106.0 and newer, while retaining the deprecated ``-i`` flag for older versions to
+ maintain compatibility. Contributed by :user:`gaborbernat`. (:issue:`2910`)
-v20.32.0 (2025-07-20)
----------------------
+***********************
+ v20.32.0 (2025-07-20)
+***********************
Features - 20.32.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Warn on incorrect invocation of Nushell activation script - by :user:`esafak`. (:issue:`nushell_activation`)
- Discover uv-managed Python installations (:issue:`2901`)
Bugfixes - 20.32.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Ignore missing absolute paths for python discovery - by :user:`esafak` (:issue:`2870`)
- Upgrade embedded setuptools to ``80.9.0`` from ``80.3.1`` - by :user:`gaborbernat`. (:issue:`2900`)
-v20.31.2 (2025-05-08)
----------------------
+***********************
+ v20.31.2 (2025-05-08)
+***********************
No significant changes.
-
-v20.31.1 (2025-05-05)
----------------------
+***********************
+ v20.31.1 (2025-05-05)
+***********************
Bugfixes - 20.31.1
-~~~~~~~~~~~~~~~~~~
+==================
+
- Upgrade embedded wheels:
- * pip to ``25.1.1`` from ``25.1``
- * setuptools to ``80.3.1`` from ``78.1.0`` (:issue:`2880`)
+ - pip to ``25.1.1`` from ``25.1``
+ - setuptools to ``80.3.1`` from ``78.1.0`` (:issue:`2880`)
-v20.31.0 (2025-05-05)
----------------------
+***********************
+ v20.31.0 (2025-05-05)
+***********************
Features - 20.31.0
-~~~~~~~~~~~~~~~~~~
-- No longer bundle ``wheel`` wheels (except on Python 3.8), ``setuptools`` includes native ``bdist_wheel`` support. Update ``pip`` to ``25.1``. (:issue:`2868`)
+==================
+
+- No longer bundle ``wheel`` wheels (except on Python 3.8), ``setuptools`` includes native ``bdist_wheel`` support.
+ Update ``pip`` to ``25.1``. (:issue:`2868`)
Bugfixes - 20.31.0
-~~~~~~~~~~~~~~~~~~
-- ``get_embed_wheel()`` no longer fails with a :exc:`TypeError` when it is
- called with an unknown *distribution*. (:issue:`2877`)
+==================
+
+- ``get_embed_wheel()`` no longer fails with a :exc:`TypeError` when it is called with an unknown *distribution*.
+ (:issue:`2877`)
- Fix ``HelpFormatter`` error with Python 3.14.0b1. (:issue:`2878`)
-v20.30.0 (2025-03-31)
----------------------
+***********************
+ v20.30.0 (2025-03-31)
+***********************
Features - 20.30.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Add support for `GraalPy `_. (:issue:`2832`)
Bugfixes - 20.30.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Upgrade embedded wheels:
- * setuptools to ``78.1.0`` from ``75.3.2`` (:issue:`2863`)
+ - setuptools to ``78.1.0`` from ``75.3.2`` (:issue:`2863`)
-v20.29.3 (2025-03-06)
----------------------
+***********************
+ v20.29.3 (2025-03-06)
+***********************
Bugfixes - 20.29.3
-~~~~~~~~~~~~~~~~~~
+==================
+
- Ignore unreadable directories in ``PATH``. (:issue:`2794`)
-v20.29.2 (2025-02-10)
----------------------
+***********************
+ v20.29.2 (2025-02-10)
+***********************
Bugfixes - 20.29.2
-~~~~~~~~~~~~~~~~~~
+==================
+
- Remove old virtualenv wheel from the source distribution - by :user:`gaborbernat`. (:issue:`2841`)
- Upgrade embedded wheel pip to ``25.0.1`` from ``24.3.1`` - by :user:`gaborbernat`. (:issue:`2843`)
-v20.29.1 (2025-01-17)
----------------------
+***********************
+ v20.29.1 (2025-01-17)
+***********************
Bugfixes - 20.29.1
-~~~~~~~~~~~~~~~~~~
+==================
+
- Fix PyInfo cache incompatibility warnings - by :user:`robsdedude`. (:issue:`2827`)
-v20.29.0 (2025-01-15)
----------------------
+***********************
+ v20.29.0 (2025-01-15)
+***********************
Features - 20.29.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Add support for selecting free-threaded Python interpreters, e.g., `python3.13t`. (:issue:`2809`)
Bugfixes - 20.29.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Upgrade embedded wheels:
- * setuptools to ``75.8.0`` from ``75.6.0`` (:issue:`2823`)
+ - setuptools to ``75.8.0`` from ``75.6.0`` (:issue:`2823`)
-v20.28.1 (2025-01-02)
----------------------
+***********************
+ v20.28.1 (2025-01-02)
+***********************
Bugfixes - 20.28.1
-~~~~~~~~~~~~~~~~~~
+==================
+
- Skip tcsh tests on broken tcsh versions - by :user:`gaborbernat`. (:issue:`2814`)
-v20.28.0 (2024-11-25)
----------------------
+***********************
+ v20.28.0 (2024-11-25)
+***********************
Features - 20.28.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Write CACHEDIR.TAG file on creation - by "user:`neilramsay`. (:issue:`2803`)
-v20.27.2 (2024-11-25)
----------------------
+***********************
+ v20.27.2 (2024-11-25)
+***********************
Bugfixes - 20.27.2
-~~~~~~~~~~~~~~~~~~
+==================
+
- Upgrade embedded wheels:
- * setuptools to ``75.3.0`` from ``75.2.0`` (:issue:`2798`)
+ - setuptools to ``75.3.0`` from ``75.2.0`` (:issue:`2798`)
+
- Upgrade embedded wheels:
- * wheel to ``0.45.0`` from ``0.44.0``
- * setuptools to ``75.5.0`` (:issue:`2800`)
+ - wheel to ``0.45.0`` from ``0.44.0``
+ - setuptools to ``75.5.0`` (:issue:`2800`)
+
- no longer forcibly echo off during windows batch activation (:issue:`2801`)
- Upgrade embedded wheels:
- * setuptools to ``75.6.0`` from ``75.5.0``
- * wheel to ``0.45.1`` from ``0.45.0`` (:issue:`2804`)
+ - setuptools to ``75.6.0`` from ``75.5.0``
+ - wheel to ``0.45.1`` from ``0.45.0`` (:issue:`2804`)
-v20.27.1 (2024-10-28)
----------------------
+***********************
+ v20.27.1 (2024-10-28)
+***********************
Bugfixes - 20.27.1
-~~~~~~~~~~~~~~~~~~
+==================
+
- Upgrade embedded wheels:
- * pip to ``24.3.1`` from ``24.2`` (:issue:`2789`)
+ - pip to ``24.3.1`` from ``24.2`` (:issue:`2789`)
-v20.27.0 (2024-10-17)
----------------------
+***********************
+ v20.27.0 (2024-10-17)
+***********************
Features - 20.27.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Drop 3.7 support as the CI environments no longer allow it running - by :user:`gaborbernat`. (:issue:`2758`)
Bugfixes - 20.27.0
-~~~~~~~~~~~~~~~~~~
-- When a ``$PATH`` entry cannot be checked for existence, skip it instead of terminating - by :user:`hroncok`. (:issue:`2782`)
-- Upgrade embedded wheels:
+==================
- * setuptools to ``75.2.0`` from ``75.1.0``
- * Removed pip of ``24.0``
- * Removed setuptools of ``68.0.0``
- * Removed wheel of ``0.42.0``
+- When a ``$PATH`` entry cannot be checked for existence, skip it instead of terminating - by :user:`hroncok`.
+ (:issue:`2782`)
+- Upgrade embedded wheels:
+ - setuptools to ``75.2.0`` from ``75.1.0``
+ - Removed pip of ``24.0``
+ - Removed setuptools of ``68.0.0``
+ - Removed wheel of ``0.42.0``
- by :user:`gaborbernat`. (:issue:`2783`)
+
- Fix zipapp is broken on Windows post distlib ``0.3.9`` - by :user:`gaborbernat`. (:issue:`2784`)
-v20.26.6 (2024-09-27)
----------------------
+***********************
+ v20.26.6 (2024-09-27)
+***********************
Bugfixes - 20.26.6
-~~~~~~~~~~~~~~~~~~
-- Properly quote string placeholders in activation script templates to mitigate
- potential command injection - by :user:`y5c4l3`. (:issue:`2768`)
+==================
+
+- Properly quote string placeholders in activation script templates to mitigate potential command injection - by
+ :user:`y5c4l3`. (:issue:`2768`)
-v20.26.5 (2024-09-17)
----------------------
+***********************
+ v20.26.5 (2024-09-17)
+***********************
Bugfixes - 20.26.5
-~~~~~~~~~~~~~~~~~~
+==================
+
- Upgrade embedded wheels: setuptools to ``75.1.0`` from ``74.1.2`` - by :user:`gaborbernat`. (:issue:`2765`)
-v20.26.4 (2024-09-07)
----------------------
+***********************
+ v20.26.4 (2024-09-07)
+***********************
Bugfixes - 20.26.4
-~~~~~~~~~~~~~~~~~~
+==================
+
- no longer create `()` output in console during activation of a virtualenv by .bat file. (:issue:`2728`)
- Upgrade embedded wheels:
- * wheel to ``0.44.0`` from ``0.43.0``
- * pip to ``24.2`` from ``24.1``
- * setuptools to ``74.1.2`` from ``70.1.0`` (:issue:`2760`)
+ - wheel to ``0.44.0`` from ``0.43.0``
+ - pip to ``24.2`` from ``24.1``
+ - setuptools to ``74.1.2`` from ``70.1.0`` (:issue:`2760`)
-v20.26.3 (2024-06-21)
----------------------
+***********************
+ v20.26.3 (2024-06-21)
+***********************
Bugfixes - 20.26.3
-~~~~~~~~~~~~~~~~~~
+==================
+
- Upgrade embedded wheels:
- * setuptools to ``70.1.0`` from ``69.5.1``
- * pip to ``24.1`` from ``24.0`` (:issue:`2741`)
+ - setuptools to ``70.1.0`` from ``69.5.1``
+ - pip to ``24.1`` from ``24.0`` (:issue:`2741`)
-v20.26.2 (2024-05-13)
----------------------
+***********************
+ v20.26.2 (2024-05-13)
+***********************
Bugfixes - 20.26.2
-~~~~~~~~~~~~~~~~~~
-- ``virtualenv.pyz`` no longer fails when zipapp path contains a symlink - by :user:`HandSonic` and :user:`petamas`. (:issue:`1949`)
+==================
+
+- ``virtualenv.pyz`` no longer fails when zipapp path contains a symlink - by :user:`HandSonic` and :user:`petamas`.
+ (:issue:`1949`)
- Fix bad return code from activate.sh if hashing is disabled - by :user:'fenkes-ibm'. (:issue:`2717`)
-v20.26.1 (2024-04-29)
----------------------
+***********************
+ v20.26.1 (2024-04-29)
+***********************
Bugfixes - 20.26.1
-~~~~~~~~~~~~~~~~~~
+==================
+
- fix PATH-based Python discovery on Windows - by :user:`ofek`. (:issue:`2712`)
-v20.26.0 (2024-04-23)
----------------------
+***********************
+ v20.26.0 (2024-04-23)
+***********************
Bugfixes - 20.26.0
-~~~~~~~~~~~~~~~~~~
-- allow builtin discovery to discover specific interpreters (e.g. ``python3.12``) given an unspecific spec (e.g. ``python3``) - by :user:`flying-sheep`. (:issue:`2709`)
+==================
-v20.25.3 (2024-04-17)
----------------------
+- allow builtin discovery to discover specific interpreters (e.g. ``python3.12``) given an unspecific spec (e.g.
+ ``python3``) - by :user:`flying-sheep`. (:issue:`2709`)
+
+***********************
+ v20.25.3 (2024-04-17)
+***********************
Bugfixes - 20.25.3
-~~~~~~~~~~~~~~~~~~
+==================
+
- Python 3.13.0a6 renamed pathmod to parser. (:issue:`2702`)
-v20.25.2 (2024-04-16)
----------------------
+***********************
+ v20.25.2 (2024-04-16)
+***********************
Bugfixes - 20.25.2
-~~~~~~~~~~~~~~~~~~
+==================
+
- Upgrade embedded wheels:
- setuptools of ``69.1.0`` to ``69.5.1``
- wheel of ``0.42.0`` to ``0.43.0`` (:issue:`2699`)
-v20.25.1 (2024-02-21)
----------------------
+***********************
+ v20.25.1 (2024-02-21)
+***********************
Bugfixes - 20.25.1
-~~~~~~~~~~~~~~~~~~
+==================
+
- Upgrade embedded wheels:
- * setuptools to ``69.0.3`` from ``69.0.2``
- * pip to ``23.3.2`` from ``23.3.1`` (:issue:`2681`)
+ - setuptools to ``69.0.3`` from ``69.0.2``
+ - pip to ``23.3.2`` from ``23.3.1`` (:issue:`2681`)
+
- Upgrade embedded wheels:
- pip ``23.3.2`` to ``24.0``,
- setuptools ``69.0.3`` to ``69.1.0``. (:issue:`2691`)
Misc - 20.25.1
-~~~~~~~~~~~~~~
+==============
+
- :issue:`2688`
-v20.25.0 (2023-12-01)
----------------------
+***********************
+ v20.25.0 (2023-12-01)
+***********************
Features - 20.25.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- The tests now pass on the CI with Python 3.13.0a2 - by :user:`hroncok`. (:issue:`2673`)
Bugfixes - 20.25.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Upgrade embedded wheels:
- * wheel to ``0.41.3`` from ``0.41.2`` (:issue:`2665`)
+ - wheel to ``0.41.3`` from ``0.41.2`` (:issue:`2665`)
+
- Upgrade embedded wheels:
- * wheel to ``0.42.0`` from ``0.41.3``
- * setuptools to ``69.0.2`` from ``68.2.2`` (:issue:`2669`)
+ - wheel to ``0.42.0`` from ``0.41.3``
+ - setuptools to ``69.0.2`` from ``68.2.2`` (:issue:`2669`)
-v20.24.6 (2023-10-23)
----------------------
+***********************
+ v20.24.6 (2023-10-23)
+***********************
Bugfixes - 20.24.6
-~~~~~~~~~~~~~~~~~~
+==================
+
- Use get_hookimpls method instead of the private attribute in tests. (:issue:`2649`)
- Upgrade embedded wheels:
- * setuptools to ``68.2.2`` from ``68.2.0``
- * pip to ``23.3.1`` from ``23.2.1`` (:issue:`2656`)
-
+ - setuptools to ``68.2.2`` from ``68.2.0``
+ - pip to ``23.3.1`` from ``23.2.1`` (:issue:`2656`)
-v20.24.5 (2023-09-08)
----------------------
+***********************
+ v20.24.5 (2023-09-08)
+***********************
Bugfixes - 20.24.5
-~~~~~~~~~~~~~~~~~~
+==================
+
- Declare PyPy 3.10 support - by :user:`cclauss`. (:issue:`2638`)
- Brew on macOS no longer allows copy builds - disallow choosing this by :user:`gaborbernat`. (:issue:`2640`)
- Upgrade embedded wheels:
- * setuptools to ``68.2.0`` from ``68.1.2`` (:issue:`2642`)
-
+ - setuptools to ``68.2.0`` from ``68.1.2`` (:issue:`2642`)
-v20.24.4 (2023-08-30)
----------------------
+***********************
+ v20.24.4 (2023-08-30)
+***********************
Bugfixes - 20.24.4
-~~~~~~~~~~~~~~~~~~
-- Upgrade embedded wheels:
+==================
- * setuptools to ``68.1.2`` from ``68.1.0`` on ``3.8+``
- * wheel to ``0.41.2`` from ``0.41.1`` on ``3.7+`` (:issue:`2628`)
+- Upgrade embedded wheels:
+ - setuptools to ``68.1.2`` from ``68.1.0`` on ``3.8+``
+ - wheel to ``0.41.2`` from ``0.41.1`` on ``3.7+`` (:issue:`2628`)
-v20.24.3 (2023-08-11)
----------------------
+***********************
+ v20.24.3 (2023-08-11)
+***********************
Bugfixes - 20.24.3
-~~~~~~~~~~~~~~~~~~
+==================
+
- Fixed ResourceWarning on exit caused by periodic update subprocess (:issue:`2472`)
- Upgrade embedded wheels:
- * wheel to ``0.41.1`` from ``0.41.0`` (:issue:`2622`)
+ - wheel to ``0.41.1`` from ``0.41.0`` (:issue:`2622`)
Misc - 20.24.3
-~~~~~~~~~~~~~~
-- :issue:`2610`
+==============
+- :issue:`2610`
-v20.24.2 (2023-07-24)
----------------------
+***********************
+ v20.24.2 (2023-07-24)
+***********************
Bugfixes - 20.24.2
-~~~~~~~~~~~~~~~~~~
-- Upgrade embedded wheels:
+==================
- * pip to ``23.2.1`` from ``23.2``
- * wheel to ``0.41.0`` from ``0.40.0`` (:issue:`2614`)
+- Upgrade embedded wheels:
+ - pip to ``23.2.1`` from ``23.2``
+ - wheel to ``0.41.0`` from ``0.40.0`` (:issue:`2614`)
-v20.24.1 (2023-07-19)
----------------------
+***********************
+ v20.24.1 (2023-07-19)
+***********************
Bugfixes - 20.24.1
-~~~~~~~~~~~~~~~~~~
-- Upgrade embedded wheels:
+==================
- * pip to ``23.2`` from ``23.1.2`` - by :user:`arielkirkwood` (:issue:`2611`)
+- Upgrade embedded wheels:
+ - pip to ``23.2`` from ``23.1.2`` - by :user:`arielkirkwood` (:issue:`2611`)
-v20.24.0 (2023-07-14)
----------------------
+***********************
+ v20.24.0 (2023-07-14)
+***********************
Features - 20.24.0
-~~~~~~~~~~~~~~~~~~
-- Export the prompt prefix as ``VIRTUAL_ENV_PROMPT`` when activating a virtual
- environment - by :user:`jimporter`. (:issue:`2194`)
+==================
+
+- Export the prompt prefix as ``VIRTUAL_ENV_PROMPT`` when activating a virtual environment - by :user:`jimporter`.
+ (:issue:`2194`)
Bugfixes - 20.24.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Fix test suite - by :user:`gaborbernat`. (:issue:`2592`)
- Upgrade embedded wheels:
- * setuptools to ``68.0.0`` from ``67.8.0`` (:issue:`2607`)
-
+ - setuptools to ``68.0.0`` from ``67.8.0`` (:issue:`2607`)
-v20.23.1 (2023-06-16)
----------------------
+***********************
+ v20.23.1 (2023-06-16)
+***********************
Bugfixes - 20.23.1
-~~~~~~~~~~~~~~~~~~
-- update and simplify nushell activation script, fixes an issue on Windows resulting in consecutive command not found - by :user:`melMass`. (:issue:`2572`)
-- Upgrade embedded wheels:
+==================
- * setuptools to ``67.8.0`` from ``67.7.2`` (:issue:`2588`)
+- update and simplify nushell activation script, fixes an issue on Windows resulting in consecutive command not found -
+ by :user:`melMass`. (:issue:`2572`)
+- Upgrade embedded wheels:
+ - setuptools to ``67.8.0`` from ``67.7.2`` (:issue:`2588`)
-v20.23.0 (2023-04-27)
----------------------
+***********************
+ v20.23.0 (2023-04-27)
+***********************
Features - 20.23.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Do not install ``wheel`` and ``setuptools`` seed packages for Python 3.12+. To restore the old behavior use:
- for ``wheel`` use ``VIRTUALENV_WHEEL=bundle`` environment variable or ``--wheel=bundle`` CLI flag,
- for ``setuptools`` use ``VIRTUALENV_SETUPTOOLS=bundle`` environment variable or ``--setuptools=bundle`` CLI flag.
By :user:`chrysle`. (:issue:`2487`)
+
- 3.12 support - by :user:`gaborbernat`. (:issue:`2558`)
Bugfixes - 20.23.0
-~~~~~~~~~~~~~~~~~~
-- Prevent ``PermissionError`` when using venv creator on systems that deliver files without user write
- permission - by :user:`kulikjak`. (:issue:`2543`)
-- Upgrade setuptools to ``67.7.2`` from ``67.6.1`` and pip to ``23.1.2`` from ``23.1`` - by :user:`szleb`. (:issue:`2560`)
+==================
+- Prevent ``PermissionError`` when using venv creator on systems that deliver files without user write permission - by
+ :user:`kulikjak`. (:issue:`2543`)
+- Upgrade setuptools to ``67.7.2`` from ``67.6.1`` and pip to ``23.1.2`` from ``23.1`` - by :user:`szleb`.
+ (:issue:`2560`)
-v20.22.0 (2023-04-19)
----------------------
+***********************
+ v20.22.0 (2023-04-19)
+***********************
Features - 20.22.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Drop support for creating Python <=3.6 (including 2) interpreters. Removed pip of ``20.3.4``, ``21.3.1``; wheel of
``0.37.1``; setuptools of ``59.6.0``, ``44.1.1``, ``50.3.2``- by :user:`gaborbernat`. (:issue:`2548`)
-
-v20.21.1 (2023-04-19)
----------------------
+***********************
+ v20.21.1 (2023-04-19)
+***********************
Bugfixes - 20.21.1
-~~~~~~~~~~~~~~~~~~
+==================
+
- Add ``tox.ini`` to sdist - by :user:`mtelka`. (:issue:`2511`)
- Move the use of 'let' in nushell to ensure compatibility with future releases of nushell, where 'let' no longer
assumes that its initializer is a full expressions. (:issue:`2527`)
-- The nushell command 'str collect' has been superseded by the 'str join' command. The activate.nu script has
- been updated to reflect this change. (:issue:`2532`)
+- The nushell command 'str collect' has been superseded by the 'str join' command. The activate.nu script has been
+ updated to reflect this change. (:issue:`2532`)
- Upgrade embedded wheels:
- * wheel to ``0.40.0`` from ``0.38.4``
- * setuptools to ``67.6.1`` from ``67.4.0``
- * pip to ``23.1`` from ``23.0.1`` (:issue:`2546`)
+ - wheel to ``0.40.0`` from ``0.38.4``
+ - setuptools to ``67.6.1`` from ``67.4.0``
+ - pip to ``23.1`` from ``23.0.1`` (:issue:`2546`)
-
-v20.21.0 (2023-03-12)
----------------------
+***********************
+ v20.21.0 (2023-03-12)
+***********************
Features - 20.21.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Make closure syntax explicitly starts with {||. (:issue:`2512`)
Bugfixes - 20.21.0
-~~~~~~~~~~~~~~~~~~
-- Add ``print`` command to nushell print_prompt to ensure compatibility with future release of nushell,
- where intermediate commands no longer print their result to stdout. (:issue:`2514`)
-- Do not assume the default encoding. (:issue:`2515`)
-- Make ``ReentrantFileLock`` thread-safe and,
- thereby, fix race condition in ``virtualenv.cli_run`` - by :user:`radoering`. (:issue:`2516`)
+==================
+- Add ``print`` command to nushell print_prompt to ensure compatibility with future release of nushell, where
+ intermediate commands no longer print their result to stdout. (:issue:`2514`)
+- Do not assume the default encoding. (:issue:`2515`)
+- Make ``ReentrantFileLock`` thread-safe and, thereby, fix race condition in ``virtualenv.cli_run`` - by
+ :user:`radoering`. (:issue:`2516`)
-v20.20.0 (2023-02-28)
----------------------
+***********************
+ v20.20.0 (2023-02-28)
+***********************
Features - 20.20.0
-~~~~~~~~~~~~~~~~~~
-- Change environment variable existence check in Nushell activation script to not use deprecated command. (:issue:`2506`)
+==================
+
+- Change environment variable existence check in Nushell activation script to not use deprecated command.
+ (:issue:`2506`)
Bugfixes - 20.20.0
-~~~~~~~~~~~~~~~~~~
-- Discover CPython implementations distributed on Windows by any organization - by :user:`faph`. (:issue:`2504`)
-- Upgrade embedded setuptools to ``67.4.0`` from ``67.1.0`` and pip to ``23.0.1`` from ``23.0`` - by :user:`gaborbernat`. (:issue:`2510`)
+==================
+- Discover CPython implementations distributed on Windows by any organization - by :user:`faph`. (:issue:`2504`)
+- Upgrade embedded setuptools to ``67.4.0`` from ``67.1.0`` and pip to ``23.0.1`` from ``23.0`` - by
+ :user:`gaborbernat`. (:issue:`2510`)
-v20.19.0 (2023-02-07)
----------------------
+***********************
+ v20.19.0 (2023-02-07)
+***********************
Features - 20.19.0
-~~~~~~~~~~~~~~~~~~
-- Allow platformdirs version ``3`` - by :user:`cdce8p`. (:issue:`2499`)
+==================
+- Allow platformdirs version ``3`` - by :user:`cdce8p`. (:issue:`2499`)
-v20.18.0 (2023-02-06)
----------------------
+***********************
+ v20.18.0 (2023-02-06)
+***********************
Features - 20.18.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Drop ``3.6`` runtime support (can still create ``2.7+``) - by :user:`gaborbernat`. (:issue:`2489`)
Bugfixes - 20.18.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- Fix broken prompt in Nushell when activating virtual environment - by :user:`kubouc`. (:issue:`2481`)
- Bump embedded pip to ``23.0`` and setuptools to ``67.1`` - by :user:`gaborbernat`. (:issue:`2489`)
-
-v20.17.1 (2022-12-05)
----------------------
+***********************
+ v20.17.1 (2022-12-05)
+***********************
Bugfixes - 20.17.1
-~~~~~~~~~~~~~~~~~~
-- A ``py`` or ``python`` spec means any Python rather than ``CPython`` - by :user:`gaborbernat`. (`#2460 `_)
-- Make ``activate.nu`` respect ``VIRTUAL_ENV_DISABLE_PROMPT`` and not set the prompt if requested - by :user:`m-lima`. (`#2461 `_)
+==================
+- A ``py`` or ``python`` spec means any Python rather than ``CPython`` - by :user:`gaborbernat`. (`#2460
+ `_)
+- Make ``activate.nu`` respect ``VIRTUAL_ENV_DISABLE_PROMPT`` and not set the prompt if requested - by :user:`m-lima`.
+ (`#2461 `_)
-v20.17.0 (2022-11-27)
----------------------
+***********************
+ v20.17.0 (2022-11-27)
+***********************
Features - 20.17.0
-~~~~~~~~~~~~~~~~~~
-- Change Nushell activation script to be a module meant to be activated as an overlay. (`#2422 `_)
-- Update operator used in Nushell activation script to be compatible with future versions. (`#2450 `_)
+==================
+
+- Change Nushell activation script to be a module meant to be activated as an overlay. (`#2422
+ `_)
+- Update operator used in Nushell activation script to be compatible with future versions. (`#2450
+ `_)
Bugfixes - 20.17.0
-~~~~~~~~~~~~~~~~~~
-- Do not use deprecated API from ``importlib.resources`` on Python 3.10 or later - by :user:`gaborbernat`. (`#2448 `_)
-- Upgrade embedded setuptools to ``65.6.3`` from ``65.5.1`` - by :user:`gaborbernat`. (`#2451 `_)
+==================
+- Do not use deprecated API from ``importlib.resources`` on Python 3.10 or later - by :user:`gaborbernat`. (`#2448
+ `_)
+- Upgrade embedded setuptools to ``65.6.3`` from ``65.5.1`` - by :user:`gaborbernat`. (`#2451
+ `_)
-v20.16.7 (2022-11-12)
----------------------
+***********************
+ v20.16.7 (2022-11-12)
+***********************
Bugfixes - 20.16.7
-~~~~~~~~~~~~~~~~~~
-- Use parent directory of python executable for pyvenv.cfg "home" value per PEP 405 - by :user:`vfazio`. (`#2440 `_)
-- In POSIX virtual environments, try alternate binary names if ``sys._base_executable`` does not exist - by :user:`vfazio`. (`#2442 `_)
-- Upgrade embedded wheel to ``0.38.4`` and pip to ``22.3.1`` from ``22.3`` and setuptools to ``65.5.1`` from
- ``65.5.0`` - by :user:`gaborbernat`. (`#2443 `_)
+==================
+- Use parent directory of python executable for pyvenv.cfg "home" value per PEP 405 - by :user:`vfazio`. (`#2440
+ `_)
+- In POSIX virtual environments, try alternate binary names if ``sys._base_executable`` does not exist - by
+ :user:`vfazio`. (`#2442 `_)
+- Upgrade embedded wheel to ``0.38.4`` and pip to ``22.3.1`` from ``22.3`` and setuptools to ``65.5.1`` from ``65.5.0``
+ - by :user:`gaborbernat`. (`#2443 `_)
-v20.16.6 (2022-10-25)
----------------------
+***********************
+ v20.16.6 (2022-10-25)
+***********************
Features - 20.16.6
-~~~~~~~~~~~~~~~~~~
+==================
+
- Drop unneeded shims for PyPy3 directory structure (`#2426 `_)
Bugfixes - 20.16.6
-~~~~~~~~~~~~~~~~~~
-- Fix selected scheme on debian derivatives for python 3.10 when ``python3-distutils`` is not installed or the ``venv`` scheme is not available - by :user:`asottile`. (`#2350 `_)
-- Allow the test suite to pass even with the original C shell (rather than ``tcsh``) - by :user:`kulikjak`. (`#2418 `_)
-- Fix fallback handling of downloading wheels for bundled packages - by :user:`schaap`. (`#2429 `_)
-- Upgrade embedded setuptools to ``65.5.0`` from ``65.3.0`` and pip to ``22.3`` from ``22.2.2`` - by :user:`gaborbernat`. (`#2434 `_)
+==================
+- Fix selected scheme on debian derivatives for python 3.10 when ``python3-distutils`` is not installed or the ``venv``
+ scheme is not available - by :user:`asottile`. (`#2350 `_)
+- Allow the test suite to pass even with the original C shell (rather than ``tcsh``) - by :user:`kulikjak`. (`#2418
+ `_)
+- Fix fallback handling of downloading wheels for bundled packages - by :user:`schaap`. (`#2429
+ `_)
+- Upgrade embedded setuptools to ``65.5.0`` from ``65.3.0`` and pip to ``22.3`` from ``22.2.2`` - by
+ :user:`gaborbernat`. (`#2434 `_)
-v20.16.5 (2022-09-07)
----------------------
+***********************
+ v20.16.5 (2022-09-07)
+***********************
Bugfixes - 20.16.5
-~~~~~~~~~~~~~~~~~~
-- Do not turn echo off for subsequent commands in batch activators
- (``activate.bat`` and ``deactivate.bat``) - by :user:`pawelszramowski`. (`#2411 `_)
+==================
+- Do not turn echo off for subsequent commands in batch activators (``activate.bat`` and ``deactivate.bat``) - by
+ :user:`pawelszramowski`. (`#2411 `_)
-v20.16.4 (2022-08-29)
----------------------
+***********************
+ v20.16.4 (2022-08-29)
+***********************
Bugfixes - 20.16.4
-~~~~~~~~~~~~~~~~~~
-- Bump embed setuptools to ``65.3`` - by :user:`gaborbernat`. (`#2405 `_)
+==================
+- Bump embed setuptools to ``65.3`` - by :user:`gaborbernat`. (`#2405
+ `_)
-v20.16.3 (2022-08-04)
----------------------
+***********************
+ v20.16.3 (2022-08-04)
+***********************
Bugfixes - 20.16.3
-~~~~~~~~~~~~~~~~~~
-- Upgrade embedded pip to ``22.2.2`` from ``22.2.1`` and setuptools to ``63.4.1`` from ``63.2.0`` - by :user:`gaborbernat`. (`#2395 `_)
+==================
+- Upgrade embedded pip to ``22.2.2`` from ``22.2.1`` and setuptools to ``63.4.1`` from ``63.2.0`` - by
+ :user:`gaborbernat`. (`#2395 `_)
-v20.16.2 (2022-07-27)
----------------------
+***********************
+ v20.16.2 (2022-07-27)
+***********************
Bugfixes - 20.16.2
-~~~~~~~~~~~~~~~~~~
-- Bump embedded pip from ``22.2`` to ``22.2.1`` - by :user:`gaborbernat`. (`#2391 `_)
+==================
+- Bump embedded pip from ``22.2`` to ``22.2.1`` - by :user:`gaborbernat`. (`#2391
+ `_)
-v20.16.1 (2022-07-26)
----------------------
+***********************
+ v20.16.1 (2022-07-26)
+***********************
Features - 20.16.1
-~~~~~~~~~~~~~~~~~~
-- Update Nushell activation scripts to version 0.67 - by :user:`kubouch`. (`#2386 `_)
+==================
+- Update Nushell activation scripts to version 0.67 - by :user:`kubouch`. (`#2386
+ `_)
-v20.16.0 (2022-07-25)
----------------------
+***********************
+ v20.16.0 (2022-07-25)
+***********************
Features - 20.16.0
-~~~~~~~~~~~~~~~~~~
-- Drop support for running under Python 2 (still can generate Python 2 environments) - by :user:`gaborbernat`. (`#2382 `_)
-- Upgrade embedded pip to ``22.2`` from ``22.1.2`` and setuptools to ``63.2.0`` from ``62.6.0`` -
- by :user:`gaborbernat`. (`#2383 `_)
+==================
+- Drop support for running under Python 2 (still can generate Python 2 environments) - by :user:`gaborbernat`. (`#2382
+ `_)
+- Upgrade embedded pip to ``22.2`` from ``22.1.2`` and setuptools to ``63.2.0`` from ``62.6.0`` - by
+ :user:`gaborbernat`. (`#2383 `_)
-v20.15.1 (2022-06-28)
----------------------
+***********************
+ v20.15.1 (2022-06-28)
+***********************
Bugfixes - 20.15.1
-~~~~~~~~~~~~~~~~~~
-- Fix the incorrect operation when ``setuptools`` plugins output something into ``stdout``. (`#2335 `_)
-- CPython3Windows creator ignores missing ``DLLs`` dir. (`#2368 `_)
+==================
+- Fix the incorrect operation when ``setuptools`` plugins output something into ``stdout``. (`#2335
+ `_)
+- CPython3Windows creator ignores missing ``DLLs`` dir. (`#2368 `_)
-v20.15.0 (2022-06-25)
----------------------
+***********************
+ v20.15.0 (2022-06-25)
+***********************
Features - 20.15.0
-~~~~~~~~~~~~~~~~~~
-- Support for Windows embeddable Python package: includes ``python.zip`` in the creator sources
- - by :user:`reksarka`. (`#1774 `_)
+==================
+
+- Support for Windows embeddable Python package: includes ``python.zip`` in the creator sources - by
+ :user:`reksarka`. (`#1774 `_)
Bugfixes - 20.15.0
-~~~~~~~~~~~~~~~~~~
-- Upgrade embedded setuptools to ``62.3.3`` from ``62.6.0`` and pip to ``22.1.2`` from ``22.0.4``
- - by :user:`gaborbernat`. (`#2348 `_)
-- Use ``shlex.quote`` instead of deprecated ``pipes.quote`` in Python 3 - by :user:`frenzymadness`. (`#2351 `_)
-- Fix Windows PyPy 3.6 - by :user:`reksarka`. (`#2363 `_)
+==================
+- Upgrade embedded setuptools to ``62.3.3`` from ``62.6.0`` and pip to ``22.1.2`` from ``22.0.4`` - by
+ :user:`gaborbernat`. (`#2348 `_)
+- Use ``shlex.quote`` instead of deprecated ``pipes.quote`` in Python 3 - by :user:`frenzymadness`. (`#2351
+ `_)
+- Fix Windows PyPy 3.6 - by :user:`reksarka`. (`#2363 `_)
-v20.14.1 (2022-04-11)
----------------------
+***********************
+ v20.14.1 (2022-04-11)
+***********************
Features - 20.14.1
-~~~~~~~~~~~~~~~~~~
-- Support for creating a virtual environment from a Python 2.7 framework on macOS 12 - by :user:`nickhutchinson`. (`#2284 `_)
+==================
+
+- Support for creating a virtual environment from a Python 2.7 framework on macOS 12 - by :user:`nickhutchinson`.
+ (`#2284 `_)
Bugfixes - 20.14.1
-~~~~~~~~~~~~~~~~~~
-- Upgrade embedded setuptools to ``62.1.0`` from ``61.0.0`` - by :user:`gaborbernat`. (`#2327 `_)
+==================
+- Upgrade embedded setuptools to ``62.1.0`` from ``61.0.0`` - by :user:`gaborbernat`. (`#2327
+ `_)
-v20.14.0 (2022-03-25)
----------------------
+***********************
+ v20.14.0 (2022-03-25)
+***********************
Features - 20.14.0
-~~~~~~~~~~~~~~~~~~
-- Support Nushell activation scripts with nu version ``0.60`` - by :user:`kubouch`. (`#2321 `_)
+==================
+
+- Support Nushell activation scripts with nu version ``0.60`` - by :user:`kubouch`. (`#2321
+ `_)
Bugfixes - 20.14.0
-~~~~~~~~~~~~~~~~~~
-- Upgrade embedded setuptools to ``61.0.0`` from ``60.10.0`` - by :user:`gaborbernat`. (`#2322 `_)
+==================
-v20.13.4 (2022-03-18)
----------------------
+- Upgrade embedded setuptools to ``61.0.0`` from ``60.10.0`` - by :user:`gaborbernat`. (`#2322
+ `_)
+
+***********************
+ v20.13.4 (2022-03-18)
+***********************
Bugfixes - 20.13.4
-~~~~~~~~~~~~~~~~~~
-- Improve performance of python startup inside created virtualenvs - by :user:`asottile`. (`#2317 `_)
-- Upgrade embedded setuptools to ``60.10.0`` from ``60.9.3`` - by :user:`gaborbernat`. (`#2320 `_)
+==================
+
+- Improve performance of python startup inside created virtualenvs - by :user:`asottile`. (`#2317
+ `_)
+- Upgrade embedded setuptools to ``60.10.0`` from ``60.9.3`` - by :user:`gaborbernat`. (`#2320
+ `_)
-v20.13.3 (2022-03-07)
----------------------
+***********************
+ v20.13.3 (2022-03-07)
+***********************
Bugfixes - 20.13.3
-~~~~~~~~~~~~~~~~~~
-- Avoid symlinking the contents of ``/usr`` into PyPy3.8+ virtualenvs - by :user:`stefanor`. (`#2310 `_)
-- Bump embed pip from ``22.0.3`` to ``22.0.4`` - by :user:`gaborbernat`. (`#2311 `_)
+==================
+- Avoid symlinking the contents of ``/usr`` into PyPy3.8+ virtualenvs - by :user:`stefanor`. (`#2310
+ `_)
+- Bump embed pip from ``22.0.3`` to ``22.0.4`` - by :user:`gaborbernat`. (`#2311
+ `_)
-v20.13.2 (2022-02-24)
----------------------
+***********************
+ v20.13.2 (2022-02-24)
+***********************
Bugfixes - 20.13.2
-~~~~~~~~~~~~~~~~~~
-- Upgrade embedded setuptools to ``60.9.3`` from ``60.6.0`` - by :user:`gaborbernat`. (`#2306 `_)
+==================
+- Upgrade embedded setuptools to ``60.9.3`` from ``60.6.0`` - by :user:`gaborbernat`. (`#2306
+ `_)
-v20.13.1 (2022-02-05)
----------------------
+***********************
+ v20.13.1 (2022-02-05)
+***********************
Bugfixes - 20.13.1
-~~~~~~~~~~~~~~~~~~
-- fix "execv() arg 2 must contain only strings" error on M1 MacOS (`#2282 `_)
-- Upgrade embedded setuptools to ``60.5.0`` from ``60.2.0`` - by :user:`asottile`. (`#2289 `_)
-- Upgrade embedded pip to ``22.0.3`` and setuptools to ``60.6.0`` - by :user:`gaborbernat` and :user:`asottile`. (`#2294 `_)
+==================
+- fix "execv() arg 2 must contain only strings" error on M1 MacOS (`#2282
+ `_)
+- Upgrade embedded setuptools to ``60.5.0`` from ``60.2.0`` - by :user:`asottile`. (`#2289
+ `_)
+- Upgrade embedded pip to ``22.0.3`` and setuptools to ``60.6.0`` - by :user:`gaborbernat` and :user:`asottile`. (`#2294
+ `_)
-v20.13.0 (2022-01-02)
----------------------
+***********************
+ v20.13.0 (2022-01-02)
+***********************
Features - 20.13.0
-~~~~~~~~~~~~~~~~~~
-- Add downloaded wheel information in the relevant JSON embed file to
- prevent additional downloads of the same wheel. - by :user:`mayeut`. (`#2268 `_)
+==================
+
+- Add downloaded wheel information in the relevant JSON embed file to prevent additional downloads of the same wheel. -
+ by :user:`mayeut`. (`#2268 `_)
Bugfixes - 20.13.0
-~~~~~~~~~~~~~~~~~~
-- Fix ``AttributeError: 'bool' object has no attribute 'error'`` when creating a
- Python 2.x virtualenv on macOS - by ``moreati``. (`#2269 `_)
-- Fix ``PermissionError: [Errno 1] Operation not permitted`` when creating a
- Python 2.x virtualenv on macOS/arm64 - by ``moreati``. (`#2271 `_)
+==================
+- Fix ``AttributeError: 'bool' object has no attribute 'error'`` when creating a Python 2.x virtualenv on macOS - by
+ ``moreati``. (`#2269 `_)
+- Fix ``PermissionError: [Errno 1] Operation not permitted`` when creating a Python 2.x virtualenv on macOS/arm64 - by
+ ``moreati``. (`#2271 `_)
-v20.12.1 (2022-01-01)
----------------------
+***********************
+ v20.12.1 (2022-01-01)
+***********************
Bugfixes - 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 `_)
-- New patch versions of ``pip``, ``setuptools`` & ``wheel`` are now
- returned in the expected timeframe. - by :user:`mayeut`. (`#2266 `_)
-- Manual upgrades of ``pip``, ``setuptools`` & ``wheel`` are
- not discarded by a periodic update - by :user:`mayeut`. (`#2267 `_)
+==================
+- 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
+ `_)
+- New patch versions of ``pip``, ``setuptools`` & ``wheel`` are now returned in the expected timeframe. - by
+ :user:`mayeut`. (`#2266 `_)
+- Manual upgrades of ``pip``, ``setuptools`` & ``wheel`` are not discarded by a periodic update - by :user:`mayeut`.
+ (`#2267 `_)
-v20.12.0 (2021-12-31)
----------------------
+***********************
+ v20.12.0 (2021-12-31)
+***********************
Features - 20.12.0
-~~~~~~~~~~~~~~~~~~
-- Sign the python2 exe on Darwin arm64 - by :user:`tmspicer`. (`#2233 `_)
+==================
+
+- Sign the python2 exe on Darwin arm64 - by :user:`tmspicer`. (`#2233
+ `_)
Bugfixes - 20.12.0
-~~~~~~~~~~~~~~~~~~
-- Fix ``--download`` option - by :user:`mayeut`. (`#2120 `_)
-- Upgrade embedded setuptools to ``60.2.0`` from ``60.1.1`` - by :user:`gaborbernat`. (`#2263 `_)
+==================
+- Fix ``--download`` option - by :user:`mayeut`. (`#2120 `_)
+- Upgrade embedded setuptools to ``60.2.0`` from ``60.1.1`` - by :user:`gaborbernat`. (`#2263
+ `_)
-v20.11.2 (2021-12-29)
----------------------
+***********************
+ v20.11.2 (2021-12-29)
+***********************
Bugfixes - 20.11.2
-~~~~~~~~~~~~~~~~~~
-- Fix installation of pinned versions of ``pip``, ``setuptools`` & ``wheel`` - by :user:`mayeut`. (`#2203 `_)
+==================
+- Fix installation of pinned versions of ``pip``, ``setuptools`` & ``wheel`` - by :user:`mayeut`. (`#2203
+ `_)
-v20.11.1 (2021-12-29)
----------------------
+***********************
+ v20.11.1 (2021-12-29)
+***********************
Bugfixes - 20.11.1
-~~~~~~~~~~~~~~~~~~
-- Bump embed setuptools to ``60.1.1`` from ``60.1.0`` - by :user:`gaborbernat`. (`#2258 `_)
+==================
+- Bump embed setuptools to ``60.1.1`` from ``60.1.0`` - by :user:`gaborbernat`. (`#2258
+ `_)
-v20.11.0 (2021-12-28)
----------------------
+***********************
+ v20.11.0 (2021-12-28)
+***********************
Features - 20.11.0
-~~~~~~~~~~~~~~~~~~
-- Avoid deprecation warning from py-filelock argument - by :user:`ofek`. (`#2237 `_)
-- Upgrade embedded setuptools to ``61.1.0`` from ``58.3.0`` - by :user:`gaborbernat`. (`#2240 `_)
-- Drop the runtime dependency of ``backports.entry-points-selectable`` - by :user:`hroncok`. (`#2246 `_)
-- Fish: PATH variables should not be quoted when being set - by :user:`d3dave`. (`#2248 `_)
+==================
+- Avoid deprecation warning from py-filelock argument - by :user:`ofek`. (`#2237
+ `_)
+- Upgrade embedded setuptools to ``61.1.0`` from ``58.3.0`` - by :user:`gaborbernat`. (`#2240
+ `_)
+- Drop the runtime dependency of ``backports.entry-points-selectable`` - by :user:`hroncok`. (`#2246
+ `_)
+- Fish: PATH variables should not be quoted when being set - by :user:`d3dave`. (`#2248
+ `_)
-v20.10.0 (2021-11-01)
----------------------
+***********************
+ v20.10.0 (2021-11-01)
+***********************
Features - 20.10.0
-~~~~~~~~~~~~~~~~~~
+==================
+
- If a ``"venv"`` install scheme exists in ``sysconfig``, virtualenv now uses it to create new virtual environments.
- This allows Python distributors, such as Fedora, to patch/replace the default install scheme without affecting
- the paths in new virtual environments.
- A similar technique `was proposed to Python, for the venv module `_ - by ``hroncok`` (`#2208 `_)
-- The activated virtualenv prompt is now always wrapped in parentheses. This
- affects venvs created with the ``--prompt`` attribute, and matches virtualenv's
- behavior on par with venv. (`#2224 `_)
+ This allows Python distributors, such as Fedora, to patch/replace the default install scheme without affecting the
+ paths in new virtual environments. A similar technique `was proposed to Python, for the venv module
+ `_ - by ``hroncok`` (`#2208 `_)
+- The activated virtualenv prompt is now always wrapped in parentheses. This affects venvs created with the ``--prompt``
+ attribute, and matches virtualenv's behavior on par with venv. (`#2224
+ `_)
Bugfixes - 20.10.0
-~~~~~~~~~~~~~~~~~~
-- Fix broken prompt set up by activate.bat - by :user:`SiggyBar`. (`#2225 `_)
+==================
+- Fix broken prompt set up by activate.bat - by :user:`SiggyBar`. (`#2225
+ `_)
-v20.9.0 (2021-10-23)
---------------------
+**********************
+ v20.9.0 (2021-10-23)
+**********************
Features - 20.9.0
-~~~~~~~~~~~~~~~~~
-- Special-case ``--prompt .`` to the name of the current directory - by :user:`rkm`. (`#2220 `_)
+=================
+
+- Special-case ``--prompt .`` to the name of the current directory - by :user:`rkm`. (`#2220
+ `_)
- Add libffi-8.dll to pypy windows `#2218 `_ - by :user:`mattip`
Bugfixes - 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 `_)
+=================
+
+- Fixed path collision that could lead to a PermissionError or writing to system directories when using PyPy3.8 - by
+ :user:`mgorny`. (`#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 `_)
-- Remove stray closing parenthesis in activate.bat - by :user:`SiggyBar`. (`#2221 `_)
-
+- Remove stray closing parenthesis in activate.bat - by :user:`SiggyBar`. (`#2221
+ `_)
-v20.8.1 (2021-09-24)
---------------------
+**********************
+ v20.8.1 (2021-09-24)
+**********************
Bugfixes - 20.8.1
-~~~~~~~~~~~~~~~~~
-- Fixed a bug where while creating a venv on top of an existing one, without cleaning, when seeded
- wheel version mismatch occurred, multiple ``.dist-info`` directories may be present, confounding entrypoint
- discovery - by :user:`arcivanov` (`#2185 `_)
-- Bump embed setuptools from ``58.0.4`` to ``58.1.0`` - by :user:`gaborbernat`. (`#2195 `_)
+=================
+
+- Fixed a bug where while creating a venv on top of an existing one, without cleaning, when seeded wheel version
+ mismatch occurred, multiple ``.dist-info`` directories may be present, confounding entrypoint discovery - by
+ :user:`arcivanov` (`#2185 `_)
+- Bump embed setuptools from ``58.0.4`` to ``58.1.0`` - by :user:`gaborbernat`. (`#2195
+ `_)
Misc - 20.8.1
-~~~~~~~~~~~~~
-- `#2189 `_
+=============
+- `#2189 `_
-v20.8.0 (2021-09-16)
---------------------
+**********************
+ v20.8.0 (2021-09-16)
+**********************
-* 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
+- 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
-v20.7.2 (2021-08-10)
---------------------
+**********************
+ v20.7.2 (2021-08-10)
+**********************
Bugfixes - 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 `_)
+=================
+- 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 `_)
-v20.7.1 (2021-08-09)
---------------------
+**********************
+ v20.7.1 (2021-08-09)
+**********************
Bugfixes - 20.7.1
-~~~~~~~~~~~~~~~~~
-- Fix unpacking dictionary items in PythonInfo.install_path (`#2165 `_)
+=================
+- Fix unpacking dictionary items in PythonInfo.install_path (`#2165 `_)
-v20.7.0 (2021-07-31)
---------------------
+**********************
+ v20.7.0 (2021-07-31)
+**********************
Bugfixes - 20.7.0
-~~~~~~~~~~~~~~~~~
-- upgrade embedded pip to ``21.2.2`` from ``21.1.3`` and setuptools to ``57.4.0`` from ``57.1.0`` - by :user:`gaborbernat` (`#2159 `_)
+=================
+
+- upgrade embedded pip to ``21.2.2`` from ``21.1.3`` and setuptools to ``57.4.0`` from ``57.1.0`` - by
+ :user:`gaborbernat` (`#2159 `_)
Deprecations and Removals - 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 `_ - by :user:`gaborbernat`. (`#2160 `_)
+==================================
+- 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
+ `_ - by :user:`gaborbernat`. (`#2160
+ `_)
-v20.6.0 (2021-07-14)
---------------------
+**********************
+ v20.6.0 (2021-07-14)
+**********************
Features - 20.6.0
-~~~~~~~~~~~~~~~~~
-- Support Python interpreters without ``distutils`` (fallback to ``syconfig`` in these cases) - by :user:`gaborbernat`. (`#1910 `_)
+=================
+- Support Python interpreters without ``distutils`` (fallback to ``syconfig`` in these cases) - by :user:`gaborbernat`.
+ (`#1910 `_)
-v20.5.0 (2021-07-13)
---------------------
+**********************
+ v20.5.0 (2021-07-13)
+**********************
Features - 20.5.0
-~~~~~~~~~~~~~~~~~
-- Plugins now use 'selectable' entry points - by :user:`jaraco`. (`#2093 `_)
+=================
+
+- Plugins now use 'selectable' entry points - by :user:`jaraco`. (`#2093
+ `_)
- add libffi-7.dll to the hard-coded list of dlls for PyPy (`#2141 `_)
-- Use the better maintained ``platformdirs`` instead of ``appdirs`` - by :user:`gaborbernat`. (`#2142 `_)
+- Use the better maintained ``platformdirs`` instead of ``appdirs`` - by :user:`gaborbernat`. (`#2142
+ `_)
Bugfixes - 20.5.0
-~~~~~~~~~~~~~~~~~
-- Bump pip the embedded pip ``21.1.3`` and setuptools to ``57.1.0`` - by :user:`gaborbernat`. (`#2135 `_)
+=================
+
+- Bump pip the embedded pip ``21.1.3`` and setuptools to ``57.1.0`` - by :user:`gaborbernat`. (`#2135
+ `_)
Deprecations and Removals - 20.5.0
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Drop python ``3.4`` support as it has been over 2 years since EOL - by :user:`gaborbernat`. (`#2141 `_)
+==================================
+- Drop python ``3.4`` support as it has been over 2 years since EOL - by :user:`gaborbernat`. (`#2141
+ `_)
-v20.4.7 (2021-05-24)
---------------------
+**********************
+ v20.4.7 (2021-05-24)
+**********************
Bugfixes - 20.4.7
-~~~~~~~~~~~~~~~~~
-- Upgrade embedded pip to ``21.1.2`` and setuptools to ``57.0.0`` - by :user:`gaborbernat`. (`#2123 `_)
+=================
+- Upgrade embedded pip to ``21.1.2`` and setuptools to ``57.0.0`` - by :user:`gaborbernat`. (`#2123
+ `_)
-v20.4.6 (2021-05-05)
---------------------
+**********************
+ v20.4.6 (2021-05-05)
+**********************
Bugfixes - 20.4.6
-~~~~~~~~~~~~~~~~~
-- Fix ``site.getsitepackages()`` broken on python2 on debian - by :user:`freundTech`. (`#2105 `_)
+=================
+- Fix ``site.getsitepackages()`` broken on python2 on debian - by :user:`freundTech`. (`#2105
+ `_)
-v20.4.5 (2021-05-05)
---------------------
+**********************
+ v20.4.5 (2021-05-05)
+**********************
Bugfixes - 20.4.5
-~~~~~~~~~~~~~~~~~
-- Bump pip to ``21.1.1`` from ``21.0.1`` - by :user:`gaborbernat`. (`#2104 `_)
-- Fix ``site.getsitepackages()`` ignoring ``--system-site-packages`` on python2 - by :user:`freundTech`. (`#2106 `_)
+=================
+- Bump pip to ``21.1.1`` from ``21.0.1`` - by :user:`gaborbernat`. (`#2104
+ `_)
+- Fix ``site.getsitepackages()`` ignoring ``--system-site-packages`` on python2 - by :user:`freundTech`. (`#2106
+ `_)
-v20.4.4 (2021-04-20)
---------------------
+**********************
+ v20.4.4 (2021-04-20)
+**********************
Bugfixes - 20.4.4
-~~~~~~~~~~~~~~~~~
-- Built in discovery class is always preferred over plugin supplied classes. (`#2087 `_)
-- Upgrade embedded setuptools to ``56.0.0`` by :user:`gaborbernat`. (`#2094 `_)
+=================
+- Built in discovery class is always preferred over plugin supplied classes. (`#2087
+ `_)
+- Upgrade embedded setuptools to ``56.0.0`` by :user:`gaborbernat`. (`#2094
+ `_)
-v20.4.3 (2021-03-16)
---------------------
+**********************
+ v20.4.3 (2021-03-16)
+**********************
Bugfixes - 20.4.3
-~~~~~~~~~~~~~~~~~
-- Bump embedded setuptools from ``52.0.0`` to ``54.1.2`` - by :user:`gaborbernat` (`#2069 `_)
-- Fix PyPy3 stdlib on Windows is incorrect - by :user:`gaborbernat`. (`#2071 `_)
+=================
+- Bump embedded setuptools from ``52.0.0`` to ``54.1.2`` - by :user:`gaborbernat` (`#2069
+ `_)
+- Fix PyPy3 stdlib on Windows is incorrect - by :user:`gaborbernat`. (`#2071
+ `_)
-v20.4.2 (2021-02-01)
---------------------
+**********************
+ v20.4.2 (2021-02-01)
+**********************
Bugfixes - 20.4.2
-~~~~~~~~~~~~~~~~~
-- Running virtualenv ``--upgrade-embed-wheels`` crashes - by :user:`gaborbernat`. (`#2058 `_)
+=================
+- Running virtualenv ``--upgrade-embed-wheels`` crashes - by :user:`gaborbernat`. (`#2058
+ `_)
-v20.4.1 (2021-01-31)
---------------------
+**********************
+ v20.4.1 (2021-01-31)
+**********************
Bugfixes - 20.4.1
-~~~~~~~~~~~~~~~~~
-- Bump embedded pip and setuptools packages to latest upstream supported (``21.0.1`` and ``52.0.0``) - by :user:`gaborbernat`. (`#2060 `_)
+=================
+- Bump embedded pip and setuptools packages to latest upstream supported (``21.0.1`` and ``52.0.0``) - by
+ :user:`gaborbernat`. (`#2060 `_)
-v20.4.0 (2021-01-19)
---------------------
+**********************
+ v20.4.0 (2021-01-19)
+**********************
Features - 20.4.0
-~~~~~~~~~~~~~~~~~
+=================
+
- On the programmatic API allow passing in the environment variable dictionary to use, defaults to ``os.environ`` if not
specified - by :user:`gaborbernat`. (`#2054 `_)
Bugfixes - 20.4.0
-~~~~~~~~~~~~~~~~~
-- Upgrade embedded setuptools to ``51.3.3`` from ``51.1.2`` - by :user:`gaborbernat`. (`#2055 `_)
+=================
+- Upgrade embedded setuptools to ``51.3.3`` from ``51.1.2`` - by :user:`gaborbernat`. (`#2055
+ `_)
-v20.3.1 (2021-01-13)
---------------------
+**********************
+ v20.3.1 (2021-01-13)
+**********************
Bugfixes - 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 `_)
-- 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 `_)
-- 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 `_)
+=================
+- Bump embed pip to ``20.3.3``, setuptools to ``51.1.1`` and wheel to ``0.36.2`` - by :user:`gaborbernat`. (`#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 `_)
+- 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
+ `_)
-v20.3.0 (2021-01-10)
---------------------
+**********************
+ v20.3.0 (2021-01-10)
+**********************
Features - 20.3.0
-~~~~~~~~~~~~~~~~~
+=================
+
- The builtin discovery takes now a ``--try-first-with`` argument and is first attempted as valid interpreters. One can
- use this to force discovery of a given python executable when the discovery order/mechanism raises errors -
- by :user:`gaborbernat`. (`#2046 `_)
+ use this to force discovery of a given python executable when the discovery order/mechanism raises errors - by
+ :user:`gaborbernat`. (`#2046 `_)
Bugfixes - 20.3.0
-~~~~~~~~~~~~~~~~~
-- On Windows python ``3.7+`` distributions where the exe shim is missing fallback to the old ways - by :user:`gaborbernat`. (`#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 `_)
+=================
+- On Windows python ``3.7+`` distributions where the exe shim is missing fallback to the old ways - by
+ :user:`gaborbernat`. (`#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
+ `_)
-v20.2.2 (2020-12-07)
---------------------
+**********************
+ v20.2.2 (2020-12-07)
+**********************
Bugfixes - 20.2.2
-~~~~~~~~~~~~~~~~~
-- Bump pip to ``20.3.1``, setuptools to ``51.0.0`` and wheel to ``0.36.1`` - by :user:`gaborbernat`. (`#2029 `_)
+=================
+- Bump pip to ``20.3.1``, setuptools to ``51.0.0`` and wheel to ``0.36.1`` - by :user:`gaborbernat`. (`#2029
+ `_)
-v20.2.1 (2020-11-23)
---------------------
+**********************
+ v20.2.1 (2020-11-23)
+**********************
No significant changes.
-
-v20.2.0 (2020-11-21)
---------------------
+**********************
+ v20.2.0 (2020-11-21)
+**********************
Features - 20.2.0
-~~~~~~~~~~~~~~~~~
-- Optionally skip VCS ignore directive for entire virtualenv directory, using option :option:`no-vcs-ignore`, by default ``False``. (`#2003 `_)
-- Add ``--read-only-app-data`` option to allow for creation based on an existing
- app data cache which is non-writable. This may be useful (for example) to
- produce a docker image where the app-data is pre-populated.
+=================
+
+- Optionally skip VCS ignore directive for entire virtualenv directory, using option :option:`no-vcs-ignore`, by default
+ ``False``. (`#2003 `_)
+- Add ``--read-only-app-data`` option to allow for creation based on an existing app data cache which is non-writable.
+ This may be useful (for example) to produce a docker image where the app-data is pre-populated.
.. code-block:: dockerfile
@@ -1087,114 +1324,147 @@ Features - 20.2.0
Patch by :user:`asottile`. (`#2009 `_)
Bugfixes - 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 `_)
+=================
+- Fix processing of the ``VIRTUALENV_PYTHON`` environment variable and make it multi-value as well (separated by comma)
+ - by :user:`pneff`. (`#1998 `_)
-v20.1.0 (2020-10-25)
---------------------
+**********************
+ v20.1.0 (2020-10-25)
+**********************
Features - 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 `_)
-
-v20.0.35 (2020-10-15)
----------------------
+***********************
+ v20.0.35 (2020-10-15)
+***********************
Bugfixes - 20.0.35
-~~~~~~~~~~~~~~~~~~
-- Bump embedded setuptools from ``50.3.0`` to ``50.3.1`` - by :user:`gaborbernat`. (`#1982 `_)
-- After importing virtualenv passing cwd to a subprocess calls breaks with ``invalid directory`` - by :user:`gaborbernat`. (`#1983 `_)
+==================
+- Bump embedded setuptools from ``50.3.0`` to ``50.3.1`` - by :user:`gaborbernat`. (`#1982
+ `_)
+- After importing virtualenv passing cwd to a subprocess calls breaks with ``invalid directory`` - by
+ :user:`gaborbernat`. (`#1983 `_)
-v20.0.34 (2020-10-12)
----------------------
+***********************
+ v20.0.34 (2020-10-12)
+***********************
Bugfixes - 20.0.34
-~~~~~~~~~~~~~~~~~~
-- Align with venv module when creating virtual environments with builtin creator on Windows 3.7 and later
- - by :user:`gaborbernat`. (`#1782 `_)
-- Handle Cygwin path conversion in the activation script - by :user:`davidcoghlan`. (`#1969 `_)
+==================
+- Align with venv module when creating virtual environments with builtin creator on Windows 3.7 and later - by
+ :user:`gaborbernat`. (`#1782 `_)
+- Handle Cygwin path conversion in the activation script - by :user:`davidcoghlan`. (`#1969
+ `_)
-v20.0.33 (2020-10-04)
----------------------
+***********************
+ v20.0.33 (2020-10-04)
+***********************
Bugfixes - 20.0.33
-~~~~~~~~~~~~~~~~~~
-- Fix ``None`` type error in cygwin if POSIX path in dest - by :user:`danyeaw`. (`#1962 `_)
-- Fix Python 3.4 incompatibilities (added back to the CI) - by :user:`gaborbernat`. (`#1963 `_)
+==================
+- Fix ``None`` type error in cygwin if POSIX path in dest - by :user:`danyeaw`. (`#1962
+ `_)
+- Fix Python 3.4 incompatibilities (added back to the CI) - by :user:`gaborbernat`. (`#1963
+ `_)
-v20.0.32 (2020-10-01)
----------------------
+***********************
+ v20.0.32 (2020-10-01)
+***********************
Bugfixes - 20.0.32
-~~~~~~~~~~~~~~~~~~
-- For activation scripts always use UNIX line endings (unless it's BATCH shell related) - by :user:`saytosid`. (`#1818 `_)
-- Upgrade embedded pip to ``20.2.1`` and setuptools to ``49.4.0`` - by :user:`gaborbernat`. (`#1918 `_)
-- Avoid spawning new windows when doing seed package upgrades in the background on Windows - by :user:`gaborbernat`. (`#1928 `_)
-- Fix a bug that reading and writing on the same file may cause race on multiple processes. (`#1938 `_)
-- Upgrade embedded setuptools to ``50.2.0`` and pip to ``20.2.3`` - by :user:`gaborbernat`. (`#1939 `_)
-- Provide correct path for bash activator in cygwin or msys2 - by :user:`danyeaw`. (`#1940 `_)
-- Relax importlib requirement to allow version<3 - by :user:`usamasadiq` (`#1953 `_)
-- pth files were not processed on CPython2 if $PYTHONPATH was pointing to site-packages/ - by :user:`navytux`. (`#1959 `_) (`#1960 `_)
-
-
-v20.0.31 (2020-08-17)
----------------------
+==================
+
+- For activation scripts always use UNIX line endings (unless it's BATCH shell related) - by :user:`saytosid`. (`#1818
+ `_)
+- Upgrade embedded pip to ``20.2.1`` and setuptools to ``49.4.0`` - by :user:`gaborbernat`. (`#1918
+ `_)
+- Avoid spawning new windows when doing seed package upgrades in the background on Windows - by :user:`gaborbernat`.
+ (`#1928 `_)
+- Fix a bug that reading and writing on the same file may cause race on multiple processes. (`#1938
+ `_)
+- Upgrade embedded setuptools to ``50.2.0`` and pip to ``20.2.3`` - by :user:`gaborbernat`. (`#1939
+ `_)
+- Provide correct path for bash activator in cygwin or msys2 - by :user:`danyeaw`. (`#1940
+ `_)
+- Relax importlib requirement to allow version<3 - by :user:`usamasadiq` (`#1953
+ `_)
+- pth files were not processed on CPython2 if $PYTHONPATH was pointing to site-packages/ - by :user:`navytux`. (`#1959
+ `_) (`#1960 `_)
+
+***********************
+ v20.0.31 (2020-08-17)
+***********************
Bugfixes - 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 `_)
+==================
+- Upgrade embedded pip to ``20.2.1``, setuptools to ``49.6.0`` and wheel to ``0.35.1`` - by :user:`gaborbernat`. (`#1918
+ `_)
-v20.0.30 (2020-08-04)
----------------------
+***********************
+ v20.0.30 (2020-08-04)
+***********************
Bugfixes - 20.0.30
-~~~~~~~~~~~~~~~~~~
-- Upgrade pip to ``20.2.1`` and setuptools to ``49.2.1`` - by :user:`gaborbernat`. (`#1915 `_)
+==================
+- Upgrade pip to ``20.2.1`` and setuptools to ``49.2.1`` - by :user:`gaborbernat`. (`#1915
+ `_)
-v20.0.29 (2020-07-31)
----------------------
+***********************
+ v20.0.29 (2020-07-31)
+***********************
Bugfixes - 20.0.29
-~~~~~~~~~~~~~~~~~~
-- Upgrade embedded pip from version ``20.1.2`` to ``20.2`` - by :user:`gaborbernat`. (`#1909 `_)
+==================
+- Upgrade embedded pip from version ``20.1.2`` to ``20.2`` - by :user:`gaborbernat`. (`#1909
+ `_)
-v20.0.28 (2020-07-24)
----------------------
+***********************
+ v20.0.28 (2020-07-24)
+***********************
Bugfixes - 20.0.28
-~~~~~~~~~~~~~~~~~~
-- Fix test suite failing if run from system Python - by :user:`gaborbernat`. (`#1882 `_)
+==================
+
+- Fix test suite failing if run from system Python - by :user:`gaborbernat`. (`#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 `_)
- 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 `_)
+ automatically upon write to the logging pipe) - by :user:`gaborbernat`. (`#1905
+ `_)
-
-v20.0.27 (2020-07-15)
----------------------
+***********************
+ v20.0.27 (2020-07-15)
+***********************
Bugfixes - 20.0.27
-~~~~~~~~~~~~~~~~~~
-- No longer preimport threading to fix support for `gpython `_ and `gevent `_ - by :user:`navytux`. (`#1897 `_)
-- Upgrade setuptools from ``49.2.0`` on ``Python 3.5+`` - by :user:`gaborbernat`. (`#1898 `_)
+==================
+- No longer preimport threading to fix support for `gpython `_ and `gevent
+ `_ - by :user:`navytux`. (`#1897 `_)
+- Upgrade setuptools from ``49.2.0`` on ``Python 3.5+`` - by :user:`gaborbernat`. (`#1898
+ `_)
-v20.0.26 (2020-07-07)
----------------------
+***********************
+ v20.0.26 (2020-07-07)
+***********************
Bugfixes - 20.0.26
-~~~~~~~~~~~~~~~~~~
-- Bump dependency ``distutils >= 0.3.1`` - by :user:`gaborbernat`. (`#1880 `_)
+==================
+
+- Bump dependency ``distutils >= 0.3.1`` - by :user:`gaborbernat`. (`#1880
+ `_)
- Improve periodic update handling:
- better logging output while running and enable logging on background process call (
@@ -1203,36 +1473,45 @@ Bugfixes - 20.0.26
- stop downloading wheels once we reach the embedded version,
by :user:`gaborbernat`. (`#1883 `_)
-- Do not print error message if the application exists with ``SystemExit(0)`` - by :user:`gaborbernat`. (`#1885 `_)
-- Upgrade embedded setuptools from ``47.3.1`` to ``49.1.0`` for Python ``3.5+`` - by :user:`gaborbernat`. (`#1887 `_)
+- Do not print error message if the application exists with ``SystemExit(0)`` - by :user:`gaborbernat`. (`#1885
+ `_)
+- Upgrade embedded setuptools from ``47.3.1`` to ``49.1.0`` for Python ``3.5+`` - by :user:`gaborbernat`. (`#1887
+ `_)
-v20.0.25 (2020-06-23)
----------------------
+***********************
+ v20.0.25 (2020-06-23)
+***********************
Bugfixes - 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 `_)
+==================
+- 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 `_)
-v20.0.24 (2020-06-22)
----------------------
+***********************
+ v20.0.24 (2020-06-22)
+***********************
Features - 20.0.24
-~~~~~~~~~~~~~~~~~~
+==================
+
- Ensure that the seeded packages do not get too much out of date:
- add a CLI flag that triggers upgrade of embedded wheels under :option:`upgrade-embed-wheels`
- - periodically (once every 14 days) upgrade the embedded wheels in a background process, and use them if they have been
- released for more than 28 days (can be disabled via :option:`no-periodic-update`)
+ - periodically (once every 14 days) upgrade the embedded wheels in a background process, and use them if they have
+ been released for more than 28 days (can be disabled via :option:`no-periodic-update`)
More details under :ref:`wheels` - by :user:`gaborbernat`. (`#1821 `_)
+
- Upgrade embed wheel content:
- ship wheels for Python ``3.9`` and ``3.10``
- upgrade setuptools for Python ``3.5+`` from ``47.1.1`` to ``47.3.1``
by :user:`gaborbernat`. (`#1841 `_)
+
- Display the installed seed package versions in the final summary output, for example:
.. code-block:: console
@@ -1245,249 +1524,317 @@ Features - 20.0.24
by :user:`gaborbernat`. (`#1864