Changes since 4.13.13
---------------------
o Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
* CVE-2020-25722
o Andrew Bartlett <abartlet@samba.org>
* CVE-2020-25718
* CVE-2020-25719
* CVE-2020-25721
* CVE-2020-25722
o Ralph Boehme <slow@samba.org>
* CVE-2020-25717
o Alexander Bokovoy <ab@samba.org>
* CVE-2020-25717
o Samuel Cabrero <scabrero@samba.org>
* CVE-2020-25717
o Nadezhda Ivanova <nivanova@symas.com>
* CVE-2020-25722
o Stefan Metzmacher <metze@samba.org>
* CVE-2016-2124
* CVE-2020-25717
* CVE-2020-25719
* CVE-2020-25722
* CVE-2021-23192
* CVE-2021-3738
* ldb: version 2.2.3
o Andreas Schneider <asn@samba.org>
* CVE-2020-25719
o Joseph Sutton <josephsutton@catalyst.net.nz>
* CVE-2020-17049
* CVE-2020-25718
* CVE-2020-25719
* CVE-2020-25721
* CVE-2020-25722
* MS CVE-2020-17049
Changes since 4.13.12
---------------------
o Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
* BUG 14868: rodc_rwdc test flaps.
* BUG 14881: Backport bronze bit fixes, tests, and selftest improvements.
o Andrew Bartlett <abartlet@samba.org>
* BUG 14642: Provide a fix for MS CVE-2020-17049 in Samba [SECURITY] 'Bronze
bit' S4U2Proxy Constrained Delegation bypass in Samba with
embedded Heimdal.
* BUG 14836: Python ldb.msg_diff() memory handling failure.
* BUG 14845: "in" operator on ldb.Message is case sensitive.
* BUG 14848: Release LDB 2.3.1 for Samba 4.14.9.
* BUG 14871: Fix Samba support for UF_NO_AUTH_DATA_REQUIRED.
* BUG 14874: Allow special chars like "@" in samAccountName when generating
the salt.
* BUG 14881: Backport bronze bit fixes, tests, and selftest improvements.
o Isaac Boukris <iboukris@gmail.com>
* BUG 14642: Provide a fix for MS CVE-2020-17049 in Samba [SECURITY] 'Bronze
bit' S4U2Proxy Constrained Delegation bypass in Samba with
embedded Heimdal.
* BUG 14881: Backport bronze bit fixes, tests, and selftest improvements.
o Viktor Dukhovni <viktor@twosigma.com>
* BUG 12998: Fix transit path validation.
* BUG 14881: Backport bronze bit fixes, tests, and selftest improvements.
o Luke Howard <lukeh@padl.com>
* BUG 14642: Provide a fix for MS CVE-2020-17049 in Samba [SECURITY] 'Bronze
bit' S4U2Proxy Constrained Delegation bypass in Samba with
embedded Heimdal.
* BUG 14881: Backport bronze bit fixes, tests, and selftest improvements.
o Stefan Metzmacher <metze@samba.org>
* BUG 14881: Backport bronze bit fixes, tests, and selftest improvements.
o David Mulder <dmulder@suse.com>
* BUG 14881: Backport bronze bit fixes, tests, and selftest improvements.
o Andreas Schneider <asn@samba.org>
* BUG 14870: Prepare to operate with MIT krb5 >= 1.20.
* BUG 14881: Backport bronze bit fixes, tests, and selftest improvements.
o Joseph Sutton <josephsutton@catalyst.net.nz>
* BUG 14642: Provide a fix for MS CVE-2020-17049 in Samba [SECURITY] 'Bronze
bit' S4U2Proxy Constrained Delegation bypass in Samba with
embedded Heimdal.
* BUG 14645: rpcclient NetFileEnum and net rpc file both cause lock order
violation: brlock.tdb, share_entries.tdb.
* BUG 14836: Python ldb.msg_diff() memory handling failure.
* BUG 14845: "in" operator on ldb.Message is case sensitive.
* BUG 14848: Release LDB 2.3.1 for Samba 4.14.9.
* BUG 14868: rodc_rwdc test flaps.
* BUG 14871: Fix Samba support for UF_NO_AUTH_DATA_REQUIRED.
* BUG 14874: Allow special chars like "@" in samAccountName when generating
the salt.
* BUG 14881: Backport bronze bit fixes, tests, and selftest improvements.
o Nicolas Williams <nico@twosigma.com>
* BUG 14642: Provide a fix for MS CVE-2020-17049 in Samba [SECURITY] 'Bronze
bit' S4U2Proxy Constrained Delegation bypass in Samba with
embedded Heimdal.
* BUG 14881: Backport bronze bit fixes, tests, and selftest improvements.
This is it! Starship v1.0.0!
Truth be told, there's no real cause for celebration. After 100 releases of
Starship, we felt it was about time we begin sticking to proper SemVer.
No breaking changes to worry about in this one – we just wanted to let you rest
easy knowing that future releases won't have breaking changes without a major
version bump.
This font was originally released during the 1930s as part of the
Deutschmeister font family at the type foundry Ludwig Wagner. FDI
Neumeister is a carefully crafted revival released for free under
the Open Font License. This was made possible by the generous
support of people around the world, who pledged for this project
on Kickstarter.
FDI Neumeister has around 400 glyphs covering Western, Eastern and
Central European Latin. Many characters have alternative glyphs,
so both traditional German blackletter typesetting and international
use with improved legibility are possible.
This font was originally released as Deutschmeister in 1927 at the
type foundry Ludwig Wagner. FDI Altmeister is a carefully crafted
revival released for free under the Open Font License. This was
made possible by the generous support of people around the world,
who pledged for this project on Kickstarter.
FDI Altmeister has around 400 glyphs covering Western, Eastern and
Central European Latin. Many characters have alternative glyphs,
so both traditional German blackletter typesetting and international
use with improved legibility are possible.
Impacket v0.9.24 (October 2021):
1. Library improvements
* Fixed WMI objects parsing
* Added the RpcAddPrinterDriverEx method and related structures to [MS-RPRN]: Print System Remote Protocol
* Initial implementation of [MS-PAR]: Print System Asynchronous Remote Protocol
* Complying MS-RPCH with HTTP/1.1
* Added return of server time in case of Kerberos error
2. Examples improvements
* [getST.py](examples/getST.py):
* Added support for a custom additional ticket for S4U2Proxy
* [ntlmrelayx.py](examples/ntlmrelayx.py):
* Added Negotiate authentication support to the HTTP server
* Added anonymous session handling in the HTTP server
* Fixed error in ldapattack.py when trying to escalate with machine account
* Added the implementation of AD CS attack
* Disabled the anonymous logon in the SMB server
* [psexec.py](examples/psexec.py):
* Fixed decoding problems on multi bytes characters
* [reg.py](examples/reg.py):
* Implemented ADD and DELETE functionalities
* [secretsdump.py](examples/secretsdump.py):
* Speeding up NTDS parsing
* [smbclient.py](examples/smbclient.py):
* Added 'mget' command which allows the download of multiple files
* Handling empty search count in FindFileBothDirectoryInfo
* [smbpasswd.py](examples/smbpasswd.py):
* Added the ability to change a user's password providing NTLM hashes
* [smbserver.py](examples/smbserver.py):
* Added NULL SMBv2 client connection handling
* Hardened path checks and Added TID checks
* Added SMB2 support to QUERY_INFO Request and Enabled SMB_COM_FLUSH method
* Added missing constant and structure for the QUERY_FS Information Level SMB_QUERY_FS_DEVICE_INFO
* [wmipersist.py](examples/wmipersist.py):
* Fixed VBA script execution and improved error checking
3. New examples
* [rbcd.py](examples/rbcd.py): Example script for handling the msDS-AllowedToActOnBehalfOfOtherIdentity property of a target computer
Fixed in 7.80.0
Changes:
CURLOPT_MAXLIFETIME_CONN: maximum allowed lifetime for conn reuse
CURLOPT_PREREQFUNCTION: add new callback
libssh2: add SHA256 fingerprint support
urlapi: add curl_url_strerror()
urlapi: support UNC paths in file: URLs on Windows
wolfssl: allow setting of groups/curves
Bugfixes:
.github: retry macos "brew install" command on failure
aws-sigv4: make signature work when post data is binary
BINDINGS: URL updates
build: remove checks for WinSock 1
c-hyper: don't abort CONNECT responses early when auth-in-progress
c-hyper: make Curl_http propagate errors better
c-hyper: make CURLOPT_SUPPRESS_CONNECT_HEADERS work
c-hyper: make test 217 run
c-hyper: use hyper_request_set_uri_parts to make h2 better
checksrc: ignore preprocessor lines
CI/makefiles: introduce dedicated test target
ci: update Lift config to match requirements of curl build
cirrus: remove FreeBSD 11.4 from the matrix
cirrus: switch to openldap24-client
cleanup: constify unmodified static structs
cmake: add CURL_ENABLE_SSL option
cmake: fix error getting LOCATION property on non-imported target
CMake: restore support for SecureTransport on iOS
cmake: with OpenSSL, define OPENSSL_SUPPRESS_DEPRECATED
cmdline-opts: made the 'Added:' field mandatory
configure.ac: replace krb5-config with pkg-config
configure: when hyper is selected, deselect nghttp2
connect: use sysaddr_un from sys/un.h or custom-defined for windows
curl-confopts.m4: remove --enable/disable-hidden-symbols
curl-openssl.m4: modify library order for openssl linking
curl-openssl: pass argument to sed single-quoted
curl.1: remove mentions of really old version changes
curl: actually append "-" to --range without number only
curl: correct grammar in generated libcurl code
curl: print help descriptions in an aligned right column
curl_gssapi: fix link error on macOS Monterey
curl_multi_socket_action.3: add a "RETURN VALUE" section
curl_ntlm_core: use OpenSSL only if DES is available
Curl_updateconninfo: store addresses for QUIC connections too
CURLOPT_ALTSVC_CTRL.3: mention conn reuse is preferred
CURLOPT_HSTSWRITEFUNCTION.3: using CURLOPT_HSTS_CTRL is required
CURLOPT_HTTPHEADER.3: add descripion for specific headers
docs/HTTP3: improve build instructions
docs/Makefile.am: repair 'make html'
docs: fix typo in CURLOPT_TRAILERFUNCTION example
docs: provide "RETURN VALUE" section for more func manpages
docs: reduce use of "very"
doh: remove experimental code for DoH with GET
examples/htmltidy: correct wrong printf() use
examples/imap-append: fix end-of-data check
ftp: make the MKD retry to retry once per directory
gen.pl: insert the current date and version in generated man page
gen.pl: replace leading single quotes with \(aq
http2: make getsock not wait for write if there's no remote window
HTTP3: fix the HTTP/3 Explained book link
http: fix Basic auth with empty name field in URL
http: reject HTTP response codes < 100
http: remove assert that breaks hyper
http: set content length earlier
http_proxy: make hyper CONNECT() return the correct error code
http_proxy: multiple CONNECT with hyper done better
hyper: disable test 1294 since hyper doesn't allow such crazy headers
hyper: does not support disabling CURLOPT_HTTP_TRANSFER_DECODING
hyper: pass the CONNECT line to the debug callback
imap: display quota information
INSTALL: update symbol hiding option
lib/mk-ca-bundle.pl: skip certs passed Not Valid After date
lib: avoid fallthrough cases in switch statements
libcurl.rc: switch out the copyright symbol for plain ASCII
libssh2: Get the version at runtime if possible
limit-rate.d: this is average over several seconds
llist: remove redundant code, branch will not be executed
Makefile.m32: fix to not require OpenSSL with -libssh2 or -rtmp options
maketgz: redirect updatemanpages.pl output to /dev/null
man pages: require all to use the same section header order
manpage: adjust the asterisk in some SYNOPSIS sections
md5: fix compilation with OpenSSL 3.0 API
misc: fix a few issues on MidnightBSD
misc: fix typos in docs and comments
ngtcp2: advertise h3 as well as h3-29
ngtcp2: compile with the latest nghttp3
ngtcp2: specify the missing required callback functions
ngtcp2: use latest QUIC TLS RFC9001
NTLM: use DES_set_key_unchecked with OpenSSL
openssl: if verifypeer is not requested, skip the CA loading
openssl: with OpenSSL 1.1.0+ a failed RAND_status means goaway
Revert "src/tool_filetime: disable -Wformat on mingw for this file"
sasl: binary messages
schannel: fix memory leak due to failed SSL connection
scripts/delta: count command line options in the new file
sendf: accept zero-length data in Curl_client_write()
sha256: use high-level EVP interface for OpenSSL
smooth-gtk-thread.c: enhance the mutex lock use
sws: fix memory leak on exit
test1160: edited to work with hyper
test1173: make manpage-syntax.pl spot \n errors in examples
test1185: verify checksrc
test1266/1267: disabled on hyper: no HTTP/0.9 support
test1287: make work on hyper
test207: accept a different error code for hyper
test262: don't attempt with hyper
test552: updated to work with hyper
test559: add 'HTTP' in keywords
tests/smbserver.py: fix compatibility with impacket 0.9.23+
tests: add Schannel-specific tests and disable unsupported ones
tests: disable test 2043
tests: kill some test servers afterwards to avoid locked logfiles
tests: use python3 in test 1451
tls: remove newline from three infof() calls
tool_cb_prg: make resumed upload progress bar show better
tool_listhelp: easier generated with gen.pl
tool_main: fix typo in comment
tool_operate: a failed etag save now only fails that transfer
URL-SYNTAX: add IMAP UID SEARCH example
url: check the return value of curl_url()
url: set "k->size" -1 at start of request
urlapi: skip a strlen(), pass in zero
urlapi: URL decode percent-encoded host names
version_win32: use actual version instead of manifested version
vtls: Fix a memory leak if an SSL session cannot be added to the cache
wolfssl: use for SHA256, MD4, MD5, and setting DES odd parity
zuul: pin the quiche build to use an older cmake-rs
v0.16.3
-Deprecated config.general.cursor. The default terminal cursor will be used
for the time being.
-The input buffer now supports cursor movement and other readline-like editing
features.
-You can now replace most boilerplate configuration handling keys to send
BufferInputFromKey, RemoveInputBufferLastCharacter,
RemoveInputBufferLastWord, SetInputBuffer = "" etc. messages with a
single UpdateInputBufferFromKey message.
-Pass multiple paths as command-line arguments or via stdin to select paths,
e.g. xplr -- $PWD /path/to/select/1 /path/to/select/2.
-Pass --force-focus to focus on the first path even if it's a directory,
e.g. xplr . --force-focus.
-Order of logs has been reversed in the UI. Now the most recent log will be
displayed at the top.
-Added new messages LuaEval and LuaEvalSilently to run Lua code without
needing to define a function. However, the app context won't be available.
-Added new key handlers:
-on_alphanumeric
-on_character
-on_navigation
-on_function
-Fixed a bug where opening xplr inside a symlink opened xplr in the physical
path.
-Fixed a bug where passing invalid CLI arguments didn't cause any error.
v0.16.2
-Fix linux gnu bin release
v0.16.1
-Fix CD for musl
v0.16.0
-Upgrade to 0.16.0
-backslashes within arguments now require escaping
-editmode=keep to preserve the file permission bits from an existing file
-exact_{rule,target,name,hostname,dir} which are literal
-nix bump to 0.23.0
-deprecating regex term in favour of rule
20.3.4 (2021-01-23)
===================
Features
--------
- ``pip wheel`` now verifies the built wheel contains valid metadata, and can be
installed by a subsequent ``pip install``. This can be disabled with
``--no-verify``. (`#9206 <https://github.com/pypa/pip/issues/9206>`_)
- Improve presentation of XMLRPC errors in pip search. (`#9315 <https://github.com/pypa/pip/issues/9315>`_)
Bug Fixes
---------
- Fixed hanging VCS subprocess calls when the VCS outputs a large amount of data
on stderr. Restored logging of VCS errors that was inadvertently removed in pip
20.2. (`#8876 <https://github.com/pypa/pip/issues/8876>`_)
- Fix error when an existing incompatibility is unable to be applied to a backtracked state. (`#9180 <https://github.com/pypa/pip/issues/9180>`_)
- New resolver: Discard a faulty distribution, instead of quitting outright.
This implementation is taken from 20.2.2, with a fix that always makes the
resolver iterate through candidates from indexes lazily, to avoid downloading
candidates we do not need. (`#9203 <https://github.com/pypa/pip/issues/9203>`_)
- New resolver: Discard a source distribution if it fails to generate metadata,
instead of quitting outright. This implementation is taken from 20.2.2, with a
fix that always makes the resolver iterate through candidates from indexes
lazily, to avoid downloading candidates we do not need. (`#9246 <https://github.com/pypa/pip/issues/9246>`_)
Vendored Libraries
------------------
- Upgrade resolvelib to 0.5.4.
pip is a replacement for easy_install. It uses mostly the same
techniques for finding packages, so packages that were made
easy_installable should be pip-installable as well.
pip is meant to improve on easy_install. Some of the improvements:
* All packages are downloaded before installation.
Partially-completed installation doesn't occur as a result.
* Care is taken to present useful output on the console.
* The reasons for actions are kept track of. For instance, if
a package is being installed, pip keeps track of why that package
was required.
* Error messages should be useful.
* The code is relatively concise and cohesive, making it easier
to use programmatically.
* Packages don't have to be installed as egg archives, they can
be installed flat (while keeping the egg metadata).
* Native support for other version control systems (Git, Mercurial
and Bazaar)
* Uninstallation of packages.
* Simple to define fixed sets of requirements and reliably
reproduce a set of packages.
This is the last version that supports Python 2.x.
21.3.1 (2021-10-22)
===================
Bug Fixes
---------
- Always refuse installing or building projects that have no ``pyproject.toml`` nor
``setup.py``.
- Tweak running-as-root detection, to check ``os.getuid`` if it exists, on Unix-y and non-Linux/non-MacOS machines.
- When installing projects with a ``pyproject.toml`` in editable mode, and the build
backend does not support :pep:`660`, prepare metadata using
``prepare_metadata_for_build_wheel`` instead of ``setup.py egg_info``. Also, refuse
installing projects that only have a ``setup.cfg`` and no ``setup.py`` nor
``pyproject.toml``. These restore the pre-21.3 behaviour.
- Restore compatibility of where configuration files are loaded from on MacOS (back to ``Library/Application Support/pip``, instead of ``Preferences/pip``).
Vendored Libraries
------------------
- Upgrade pep517 to 0.12.0
21.3 (2021-10-11)
=================
Deprecations and Removals
-------------------------
- Improve deprecation warning regarding the copying of source trees when installing from a local directory.
- Suppress location mismatch warnings when pip is invoked from a Python source
tree, so ``ensurepip`` does not emit warnings on CPython ``make install``.
- On Python 3.10 or later, the installation scheme backend has been changed to use
``sysconfig``. This is to anticipate the deprecation of ``distutils`` in Python
3.10, and its scheduled removal in 3.12. For compatibility considerations, pip
installations running on Python 3.9 or lower will continue to use ``distutils``.
- Remove the ``--build-dir`` option and aliases, one last time.
- In-tree builds are now the default. ``--use-feature=in-tree-build`` is now
ignored. ``--use-deprecated=out-of-tree-build`` may be used temporarily to ease
the transition.
- Un-deprecate source distribution re-installation behaviour.
Features
--------
- Replace vendored appdirs with platformdirs.
- Support `PEP 610 <https://www.python.org/dev/peps/pep-0610/>`_ to detect
editable installs in ``pip freeze`` and ``pip list``. The ``pip list`` column output
has a new ``Editable project location`` column, and the JSON output has a new
``editable_project_location`` field.
- ``pip freeze`` will now always fallback to reporting the editable project
location when it encounters a VCS error while analyzing an editable
requirement. Before, it sometimes reported the requirement as non-editable.
- ``pip show`` now sorts ``Requires`` and ``Required-By`` alphabetically.
- Do not raise error when there are no files to remove with ``pip cache purge/remove``.
Instead log a warning and continue (to log that we removed 0 files).
- When backtracking during dependency resolution, prefer the dependencies which are involved in the most recent conflict. This can significantly reduce the amount of backtracking required.
- Cache requirement objects, to improve performance reducing reparses of requirement strings.
- Support editable installs for projects that have a ``pyproject.toml`` and use a
build backend that supports :pep:`660`.
- When a revision is specified in a Git URL, use git's partial clone feature to speed up source retrieval.
- Add a ``--debug`` flag, to enable a mode that doesn't log errors and propagates them to the top level instead. This is primarily to aid with debugging pip's crashes.
- If a host is explicitly specified as trusted by the user (via the --trusted-host option), cache HTTP responses from it in addition to HTTPS ones.
Bug Fixes
---------
- Present a better error message, when a ``file:`` URL is not found.
- Fix the auth credential cache to allow for the case in which
the index url contains the username, but the password comes
from an external source, such as keyring.
- Fix double unescape of HTML ``data-requires-python`` and ``data-yanked`` attributes.
- New resolver: Fixes depth ordering of packages during resolution, e.g. a dependency 2 levels deep will be ordered before a dependecy 3 levels deep.
- Correctly indent metadata preparation messages in pip output.
Vendored Libraries
------------------
- Remove appdirs as a vendored dependency.
- Upgrade distlib to 0.3.3
- Upgrade distro to 1.6.0
- Patch pkg_resources to use platformdirs rather than appdirs.
- Add platformdirs as a vendored dependency.
- Upgrade progress to 1.6
- Upgrade resolvelib to 0.8.0
- Upgrade urllib3 to 1.26.7
Improved Documentation
----------------------
- Update links of setuptools as setuptools moved these documents. The Simple Repository link now points to PyPUG as that is the canonical place of packaging specification, and setuptools's ``easy_install`` is deprecated.
- Create a "Build System Interface" reference section, for documenting how pip interacts with build systems.
21.2.4 (2021-08-12)
===================
Bug Fixes
---------
- Fix 3.6.0 compatibility in link comparison logic.
21.2.3 (2021-08-06)
===================
Bug Fixes
---------
- Modify the ``sysconfig.get_preferred_scheme`` function check to be
compatible with CPython 3.10’s alphareleases.
21.2.2 (2021-07-31)
===================
Bug Fixes
---------
- New resolver: When a package is specified with extras in constraints, and with
extras in non-constraint requirements, the resolver now correctly identifies the
constraint's existence and avoids backtracking.
21.2.1 (2021-07-25)
===================
Process
-------
- The source distribution re-installation feature removal has been delayed to 21.3.
21.2 (2021-07-24)
=================
Process
-------
- ``pip freeze``, ``pip list``, and ``pip show`` no longer normalize underscore
(``_``) in distribution names to dash (``-``). This is a side effect of the
migration to ``importlib.metadata``, since the underscore-dash normalization
behavior is non-standard and specific to setuptools. This should not affect
other parts of pip (for example, when feeding the ``pip freeze`` result back
into ``pip install``) since pip internally performs standard PEP 503
normalization independently to setuptools.
Deprecations and Removals
-------------------------
- Git version parsing is now done with regular expression to prepare for the
pending upstream removal of non-PEP-440 version parsing logic.
- Re-enable the "Value for ... does not match" location warnings to field a new
round of feedback for the ``distutils``-``sysconfig`` transition.
- Remove deprecated ``--find-links`` option in ``pip freeze``
Features
--------
- New resolver: Loosen URL comparison logic when checking for direct URL reference
equivalency. The logic includes the following notable characteristics:
* The authentication part of the URL is explicitly ignored.
* Most of the fragment part, including ``egg=``, is explicitly ignored. Only
``subdirectory=`` and hash values (e.g. ``sha256=``) are kept.
* The query part of the URL is parsed to allow ordering differences.
- Support TOML v1.0.0 syntax in ``pyproject.toml``.
- Added a warning message for errors caused due to Long Paths being disabled on Windows.
- Change the encoding of log file from default text encoding to UTF-8.
- Log the resolved commit SHA when installing a package from a Git repository.
- Add a warning when passing an invalid requirement to ``pip uninstall``.
- Add new subcommand ``pip index`` used to interact with indexes, and implement
``pip index version`` to list available versions of a package.
- When pip is asked to uninstall a project without the dist-info/RECORD file
it will no longer traceback with FileNotFoundError,
but it will provide a better error message instead, such as::
ERROR: Cannot uninstall foobar 0.1, RECORD file not found. You might be able to recover from this via: 'pip install --force-reinstall --no-deps foobar==0.1'.
When dist-info/INSTALLER is present and contains some useful information, the info is included in the error message instead::
ERROR: Cannot uninstall foobar 0.1, RECORD file not found. Hint: The package was installed by rpm.
- Add an additional level of verbosity. ``--verbose`` (and the shorthand ``-v``) now
contains significantly less output, and users that need complete full debug-level output
should pass it twice (``--verbose --verbose`` or ``-vv``).
- New resolver: The order of dependencies resolution has been tweaked to traverse
the dependency graph in a more breadth-first approach.
- Make "yes" the default choice in ``pip uninstall``'s prompt.
- Add a special error message when users forget the ``-r`` flag when installing.
- New resolver: A distribution's ``Requires-Python`` metadata is now checked
before its Python dependencies. This makes the resolver fail quicker when
there's an interpreter version conflict.
- Suppress "not on PATH" warning when ``--prefix`` is given.
- Include ``rustc`` version in pip's ``User-Agent``, when the system has ``rustc``.
Bug Fixes
---------
- Update vendored six to 1.16.0 and urllib3 to 1.26.5
- Correctly allow PEP 517 projects to be detected without warnings in ``pip freeze``.
- Strip leading slash from a ``file://`` URL built from an path with the Windows
drive notation. This fixes bugs where the ``file://`` URL cannot be correctly
used as requirement, constraint, or index URLs on Windows.
- New resolver: URL comparison logic now treats ``file://localhost/`` and
``file:///`` as equivalent to conform to RFC 8089.
- Prefer credentials from the URL over the previously-obtained credentials from URLs of the same domain, so it is possible to use different credentials on the same index server for different ``--extra-index-url`` options.
- Fix extraction of files with utf-8 encoded paths from tars.
- Skip distutils configuration parsing on encoding errors.
- New resolver: Detect an unnamed requirement is user-specified (by building its
metadata for the project name) so it can be correctly ordered in the resolver.
- Fix :ref:`pip freeze` to output packages :ref:`installed from git <vcs support>`
in the correct ``git+protocol://git.example.com/MyProject#egg=MyProject`` format
rather than the old and no longer supported ``git+git@`` format.
- Fix warnings about install scheme selection for Python framework builds
distributed by Apple's Command Line Tools.
- Relax interpreter detection to quelch a location mismatch warning where PyPy
is deliberately breaking backwards compatibility.
Vendored Libraries
------------------
- Upgrade certifi to 2021.05.30.
- Upgrade idna to 3.2.
- Upgrade packaging to 21.0
- Upgrade requests to 2.26.0.
- Upgrade resolvelib to 0.7.1.
- Upgrade urllib3 to 1.26.6.
21.1.3 (2021-06-26)
===================
Bug Fixes
---------
- Remove unused optional ``tornado`` import in vendored ``tenacity`` to prevent old versions of Tornado from breaking pip.
- Require ``setup.cfg``-only projects to be built via PEP 517, by requiring an explicit dependency on setuptools declared in pyproject.toml.
21.1.2 (2021-05-23)
===================
Bug Fixes
---------
- New resolver: Correctly exclude an already installed package if its version is
known to be incompatible to stop the dependency resolution process with a clear
error message.
- Allow ZIP to archive files with timestamps earlier than 1980.
- Emit clearer error message when a project root does not contain either
``pyproject.toml``, ``setup.py`` or ``setup.cfg``.
- Fix detection of existing standalone pip instance for PEP 517 builds.
21.1.1 (2021-04-30)
===================
Deprecations and Removals
-------------------------
- Temporarily set the new "Value for ... does not match" location warnings level
to *DEBUG*, to hide them from casual users. This prepares pip 21.1 for CPython
inclusion, while pip maintainers digest the first intake of location mismatch
issues for the ``distutils``-``sysconfig`` transition.
Bug Fixes
---------
- This change fixes a bug on Python <=3.6.1 with a Typing feature added in 3.6.2
- Fix compatibility between distutils and sysconfig when the project name is unknown outside of a virtual environment.
- Fix Python 3.6 compatibility when a PEP 517 build requirement itself needs to be
built in an isolated environment.
21.1 (2021-04-24)
=================
Process
-------
- Start installation scheme migration from ``distutils`` to ``sysconfig``. A
warning is implemented to detect differences between the two implementations to
encourage user reports, so we can avoid breakages before they happen.
Features
--------
- Add the ability for the new resolver to process URL constraints.
- Add a feature ``--use-feature=in-tree-build`` to build local projects in-place
when installing. This is expected to become the default behavior in pip 21.3;
see `Installing from local packages <https://pip.pypa.io/en/stable/user_guide/#installing-from-local-packages>`_
for more information.
- Bring back the "(from versions: ...)" message, that was shown on resolution failures.
- Add support for editable installs for project with only setup.cfg files.
- Improve performance when picking the best file from indexes during ``pip install``.
- Warn instead of erroring out when doing a PEP 517 build in presence of
``--build-option``. Warn when doing a PEP 517 build in presence of
``--global-option``.
Bug Fixes
---------
- Fixed ``--target`` to work with ``--editable`` installs.
- Add a warning, discouraging the usage of pip as root, outside a virtual environment.
- Ignore ``.dist-info`` directories if the stem is not a valid Python distribution
name, so they don't show up in e.g. ``pip freeze``.
- Only query the keyring for URLs that actually trigger error 401.
This prevents an unnecessary keyring unlock prompt on every pip install
invocation (even with default index URL which is not password protected).
- Prevent packages already-installed alongside with pip to be injected into an
isolated build environment during build-time dependency population.
- Fix ``pip freeze`` permission denied error in order to display an understandable error message and offer solutions.
- Correctly uninstall script files (from setuptools' ``scripts`` argument), when installed with ``--user``.
- New resolver: When a requirement is requested both via a direct URL
(``req @ URL``) and via version specifier with extras (``req[extra]``), the
resolver will now be able to use the URL to correctly resolve the requirement
with extras.
- New resolver: Show relevant entries from user-supplied constraint files in the
error message to improve debuggability.
- Avoid parsing version to make the version check more robust against lousily
debundled downstream distributions.
- ``--user`` is no longer suggested incorrectly when pip fails with a permission
error in a virtual environment.
- Fix incorrect reporting on ``Requires-Python`` conflicts.
- Make wheel compatibility tag preferences more important than the build tag
- Fix pip to work with warnings converted to errors.
- **SECURITY**: Stop splitting on unicode separators in git references,
which could be maliciously used to install a different revision on the
repository.
Vendored Libraries
------------------
- Update urllib3 to 1.26.4 to fix CVE-2021-28363
- Remove contextlib2.
- Upgrade idna to 3.1
- Upgrade pep517 to 0.10.0
- Upgrade vendored resolvelib to 0.7.0.
- Upgrade tenacity to 7.0.0
Improved Documentation
----------------------
- Update "setuptools extras" link to match upstream.
- Improve SSL Certificate Verification docs and ``--cert`` help text.
- Add a section in the documentation to suggest solutions to the ``pip freeze`` permission denied issue.
- Add warning about ``--extra-index-url`` and dependency confusion
- Describe ``--upgrade-strategy`` and direct requirements explicitly; add a brief
example.
21.0.1 (2021-01-30)
===================
Bug Fixes
---------
- commands: debug: Use packaging.version.parse to compare between versions.
- New resolver: Download and prepare a distribution only at the last possible
moment to avoid unnecessary network access when the same version is already
installed locally.
Vendored Libraries
------------------
- Upgrade packaging to 20.9
21.0 (2021-01-23)
=================
Deprecations and Removals
-------------------------
- Drop support for Python 2.
- Remove support for legacy wheel cache entries that were created with pip
versions older than 20.0.
- Remove support for VCS pseudo URLs editable requirements. It was emitting
deprecation warning since version 20.0.
- Modernise the codebase after Python 2.
- Drop support for Python 3.5.
- Remove the VCS export feature that was used only with editable VCS
requirements and had correctness issues.
Features
--------
- Add ``--ignore-requires-python`` support to pip download.
- New resolver: Error message shown when a wheel contains inconsistent metadata
is made more helpful by including both values from the file name and internal
metadata.
Bug Fixes
---------
- Fix a regression that made ``pip wheel`` do a VCS export instead of a VCS clone
for editable requirements. This broke VCS requirements that need the VCS
information to build correctly.
- Fix ``pip download`` of editable VCS requirements that need VCS information
to build correctly.
Vendored Libraries
------------------
- Upgrade msgpack to 1.0.2.
- Upgrade requests to 2.25.1.
Improved Documentation
----------------------
- Render the unreleased pip version change notes on the news page in docs.
- Fix broken email link in docs feedback banners.
20.3.4 (2021-01-23)
===================
Features
--------
- ``pip wheel`` now verifies the built wheel contains valid metadata, and can be
installed by a subsequent ``pip install``. This can be disabled with
``--no-verify``.
- Improve presentation of XMLRPC errors in pip search.
Bug Fixes
---------
- Fixed hanging VCS subprocess calls when the VCS outputs a large amount of data
on stderr. Restored logging of VCS errors that was inadvertently removed in pip
20.2.
- Fix error when an existing incompatibility is unable to be applied to a backtracked state.
- New resolver: Discard a faulty distribution, instead of quitting outright.
This implementation is taken from 20.2.2, with a fix that always makes the
resolver iterate through candidates from indexes lazily, to avoid downloading
candidates we do not need.
- New resolver: Discard a source distribution if it fails to generate metadata,
instead of quitting outright. This implementation is taken from 20.2.2, with a
fix that always makes the resolver iterate through candidates from indexes
lazily, to avoid downloading candidates we do not need.
Vendored Libraries
------------------
- Upgrade resolvelib to 0.5.4.
21.2 - 2021-10-29
~~~~~~~~~~~~~~~~~
* Update documentation entry for 21.1.
21.1 - 2021-10-29
~~~~~~~~~~~~~~~~~
* Update pin to pyparsing to exclude 3.0.0.
21.0 - 2021-07-03
~~~~~~~~~~~~~~~~~
* PEP 656: musllinux support (:issue:`411`)
* Drop support for Python 2.7, Python 3.4 and Python 3.5.
* Replace distutils usage with sysconfig (:issue:`396`)
* Add support for zip files in ``parse_sdist_filename`` (:issue:`429`)
* Use cached ``_hash`` attribute to short-circuit tag equality comparisons (:issue:`417`)
* Specify the default value for the ``specifier`` argument to ``SpecifierSet`` (:issue:`437`)
* Proper keyword-only "warn" argument in packaging.tags (:issue:`403`)
* Correctly remove prerelease suffixes from ~= check (:issue:`366`)
* Fix type hints for ``Version.post`` and ``Version.dev`` (:issue:`393`)
* Use typing alias ``UnparsedVersion`` (:issue:`398`)
* Improve type inference for ``packaging.specifiers.filter()`` (:issue:`430`)
* Tighten the return type of ``canonicalize_version()`` (:issue:`402`)
Add some missing dependencies and test dependencies.
1.1
~~~
Breaking changes:
* Drop support for Python 3.3. (#358)
* Drop support for Python 3.4. (#421)
Deprecations:
* Deprecate the ``html5lib`` sanitizer (``html5lib.serialize(sanitize=True)`` and
``html5lib.filters.sanitizer``). We recommend users migrate to `Bleach
<https://github.com/mozilla/bleach>`. Please let us know if Bleach doesn't suffice for your
use. (#443)
Other changes:
* Try to import from ``collections.abc`` to remove DeprecationWarning and ensure
``html5lib`` keeps working in future Python versions. (#403)
* Drop optional ``datrie`` dependency. (#442)
Move this over from pkgsrc-wip.
Introducing `Routinator 3000,' RPKI relying party software written
in Rust. If you have any feedback, we would love to hear from you.
Don't hesitate to create an issue on Github or post a message on
our RPKI mailing list. You can lean more about Routinator and RPKI
technology by reading our documentation on Read the Docs.