• Nov 6, 2016


    Released v9.0.1
    * Correct the deprecation message when not specifying a --format so that it
      uses the correct setting name (``format``) rather than the incorrect one
      (``list_format``) (:issue:`4058`).
    * Fix ``pip check`` to check all available distributions and not just the
      local ones (:issue:`4083`).
    * Fix a crash on non ASCII characters from `lsb_release` (:issue:`4062`).
    * Fix an SyntaxError in an an used module of a vendored dependency
    * Fix UNC paths on Windows (:issue:`4064`).
  • Nov 2, 2016


    Released v9.0.0
    * **BACKWARD INCOMPATIBLE** Remove the attempted autodetection of requirement
      names from URLs, URLs must include a name via `#egg=`.
    * **DEPRECATION** ``pip install --egg`` have been deprecated and will be
      removed in the future. This "feature" has a long list of drawbacks where it
      breaks almost all of pip's other features in subtle and hard to diagnose
    * Add a pip check command to check installed packages dependencies
    * Added option to allow user to abort pip operation if file/directory exists
    * Added Appveyor CI
    * Uninstall existing packages when performing an editable installation of
      the same packages (:issue:`1548`).
    * Pip show is less verbose by default. `--verbose` prints multiline fields.
    * Added optional column formatting to ``pip list`` (:issue:`3651`).
    * Add `--not-required` option to ``pip list`` to list packages that are
      not dependencies of other packages.
    * Fix the build on systems with symlinked /tmp directory for custom
      builds such as numpy (:pull:`3701`).
    * Fix regression in pip freeze: when there is more than one git remote,
      priority is given to the remote named origin (:pull:`3708`, :issue:`3616`).
    * Fix crash when calling pip freeze with invalid requirement installed
      (:pull:`3704`, :issue:`3681`).
    * Support multiple --requirement files in pip freeze (:pull:`3703`).
    * Implementation of pep-503 ``data-requires-python``. When this field is
      present for a release link, pip will ignore the download when
      installing to a Python version that doesn't satisfy the requirement.
    * Pip wheel now works on editable packages too (it was only working on
      editable dependencies before); this allows running pip wheel on the result
      of pip freeze in presence of editable requirements (:pull:`3695`,
    * Load credentials from .netrc files (:pull:`3715`, :issue:`3569`).
    * Add --platform, --python-version, --implementation and --abi parameters to
      ``pip download``. These allow utilities and advanced users to gather
      distributions for interpreters other than the one pip is being run on.
    * Skip scanning virtual environments even when venv/bin/python is a dangling
    * Added pip completion support for fish shell.
    * Fix problems on Windows on Python 2 when username or hostname contains
      non-ASCII characters (:issue:`3463`, :pull:`3970`, :pull:`4000`).
    * Use git fetch --tags to fetch tags in addition to everything else that
      is normally fetched; this is necessary in case a git requirement url
      points to a tag or commit that is not on a branch (:pull:`3791`)
    * Normalize package names before using in ``pip show`` (:issue:`3976`)
    * Raise when Requires-Python do not match the running version and add
      ``--ignore-requires-python`` option as escape hatch (:pull:`3846`).
    * Report the correct installed version when performing an upgrade in some
      corner cases (:issue:`2382`)
    * Add -i shorthand for --index flag in pip search
    * Do not optionally load C dependencies in requests (:issue:`1840`,
      :issue:`2930`, :issue:`3024`)
    * Strip authentication from SVN url prior to passing it into svn
      (:pull:`3697`, :issue:`3209`).
    * Also install in platlib with --target option (:pull:`3694`, :issue:`3682`).
    * Restore the ability to use inline comments in requirements files passed to
      ``pip freeze`` (:issue:`3680`).
    * Deprecate --default-vcs option (:issue:`4052`).
  • May 11, 2016


    Released v8.1.2
    * Fix a regression on systems with uninitialized locale (:issue:`3575`).
    * Use environment markers to filter packages before determining if a
      required wheel is supported. Solves (:issue:`3254`).
    * Make glibc parsing for `manylinux1` support more robust for the variety of
      glibc versions found in the wild (:issue:`3588`).
    * Update environment marker support to fully support PEP 508 and legacy
      environment markers (:issue:`3624`).
    * Always use debug logging to the ``--log`` file (:issue:`3351`).
    * Don't attempt to wrap search results for extremely narrow terminal windows
  • Mar 17, 2016


    Released v8.1.1
    * Fix regression with non-ascii requirement files on Python 2 and add support
      for encoding headers in requirement files (:issue:`3548`, :pull:`3547`).
  • Mar 5, 2016


    Released v8.1.0
    * Implement PEP 513, which adds support for the manylinux1 platform tag,
      allowing carefully compiled binary wheels to be installed on compatible Linux
    * Allow wheels which are not specific to a particular Python interpreter but
      which are specific to a particular platform (:issue:`3202`).
    * Fixed an issue where ``call_subprocess`` would crash trying to print debug
      data on child process failure (:issue:`3521`, :pull:`3522`).
    * Exclude the wheel package from the `pip freeze` output (like pip and setuptools).
    * Allow installing modules from a subdirectory of a vcs repository
      in non-editable mode (:issue:`3217`, :pull:`3466`).
    * Make pip wheel and pip download work with vcs urls with subdirectory option
    * Show classifiers in ``pip show``.
    * Show PEP376 Installer in ``pip show`` (:issue:`3517`).
    * Unhide completion command (:pull:`1810`).
    * Show latest version number in ``pip search`` results (:pull:`1415`).
    * Decode requirement files according to their BOM if present (:pull:`3485`,
    * Fix and deprecate package name detection from url path (:issue:`3523` and
    * Correct the behavior where interpreter specific tags (such as cp34) were
      being used on later versions of the same interprter instead of only for that
      specific interpreter (:issue:`3472`).
    * Fix an issue where pip would erroneously install a 64 bit wheel on a 32 bit
      Python running on a 64 bit OS X machine.
    * Do not assume that all git repositories have an origin remote.
    * Correctly display the line to add to a requirements.txt for an URL based
      dependency when ``--require-hashes`` is enabled.
  • Feb 25, 2016


    Released v8.0.3
    * Make ``install --quiet`` really quiet. See :issue:`3418`.
    * Fix a bug when removing packages in python 3: disable INI-style parsing of the
      entry_point.txt file to allow entry point names with colons (:pull:`3434`)
    * Normalize generated script files path in RECORD files. (:pull:`3448`)
    * Fix bug introduced in 8.0.0 where subcommand output was not shown,
      even when the user specified ``-v`` / ``--verbose``. :issue:`3486`.
    * Enable python -W with respect to PipDeprecationWarning. (:pull:`3455`)
    * Upgrade distlib to 0.2.2 (fix :issue:`3467`):
      * Improved support for Jython when quoting executables in output scripts.
  • Jan 21, 2016


    Released v8.0.2
    * Stop attempting to trust the system CA trust store because it's extremely
      common for them to be broken, often in incompatible ways. See #3416.
  • Jan 21, 2016


    Released v8.0.1
    * Detect CAPaths in addition to CAFiles on platforms that provide them.
    * Installing argparse or wsgiref will no longer warn or error - pip will allow
      the installation even though it may be useless (since the installed thing
      will be shadowed by the standard library).
    * Upgrading a distutils installed item that is installed outside of a virtual
      environment, while inside of a virtual environment will no longer warn or
    * Fix a bug where pre-releases were showing up in ``pip list --outdated``
      without the ``--pre`` flag.
    * Switch the SOABI emulation from using RuntimeWarnings to debug logging.
    * Rollback the removal of the ability to uninstall distutils installed items
      until a future date.
  • Jan 20, 2016


    Released v8.0.0
    * **BACKWARD INCOMPATIBLE** Drop support for Python 3.2.
    * **BACKWARD INCOMPATIBLE** Remove the ability to find any files other than the
      ones directly linked from the index or find-links pages.
    * **BACKWARD INCOMPATIBLE** Remove the ``--download-cache`` which had been
      deprecated and no-op'd in 6.0.
    * **BACKWARD INCOMPATIBLE** Remove the ``--log-explicit-levels`` which had been
      deprecated in 6.0.
    * **BACKWARD INCOMPATIBLE** Change pip wheel --wheel-dir default path from
      <cwd>/wheelhouse to <cwd>.
    * Deprecate and no-op the ``--allow-external``, ``--allow-all-external``, and
      ``--allow-unverified`` functionality that was added as part of PEP 438. With
      changes made to the repository protocol made in PEP 470, these options are no
      longer functional.
    * Allow ``--trusted-host`` within a requirements file. :issue:`2822`.
    * Allow ``--process-dependency-links`` within a requirements file. :issue:`1274`.
    * Allow ``--pre`` within a requirements file. :issue:`1273`.
    * Allow repository URLs with secure transports to count as trusted. (E.g.,
      "git+ssh" is okay.) :issue:`2811`.
    * Implement a top-level ``pip download`` command and deprecate
      ``pip install --download``.
    * Fixed :issue:`3141`, when uninstalling, look for the case of paths containing
      symlinked directories (:pull:`3154`)
    * When installing, if building a wheel fails, clear up the build directory
      before falling back to a source install. :issue:`3047`.
    * Fix user directory expansion when ``HOME=/``. Workaround for Python bug
      http://bugs.python.org/issue14768, reported in :issue:`2996`.
    * Fixed :issue:`3009`, correct reporting of requirements file line numbers
    * Fixed :issue:`1062`, Exception(IOError) for ``pip freeze`` and ``pip list``
      commands with subversion >= 1.7. (:pull:`3346`)
    * Provide a spinner showing that progress is happening when installing or
      building a package via ``setup.py``. This will alleviate concerns that
      projects with unusually long build times have with pip appearing to stall.
    * Include the functionality of ``peep`` into pip, allowing hashes to be baked
      into a requirements file and ensuring that the packages being downloaded
      match one of those hashes. This is an additional, opt-in security measure
      that, when used, removes the need to trust the repository.
    * Fix a bug causing pip to not select a wheel compiled against an OSX SDK later
      than what Python itself was compiled against when running on a newer version
      of OSX.
    * Add a new ``--prefix`` option for ``pip install`` that supports wheels and
      sdists. (:pull:`3252`)
    * Fixed :issue:`2042` regarding wheel building with setup.py using a different
      encoding than the system.
    * Drop PasteScript specific egg_info hack. (:pull:`3270`)
    * Allow combination of pip list options --editable with --outdated/--updtodate.
    * Gives VCS implementations control over saying whether a project
      is under their control (:pull:`3258`)
    * Git detection now works when ``setup.py`` is not at the Git repo root
      and when ``package_dir`` is used, so ``pip freeze`` works in more
      cases (:pull:`3258`)
    * Correctly freeze Git develop packages in presence of the &subdirectory
      option (:pull:`3258`)
    * The detection of editable packages now relies on the presence of ``.egg-link``
      instead of looking for a VCS, so ``pip list -e`` is more reliable
    * Add the ``--prefix`` flag to ``pip install`` which allows specifying a root
      prefix to use instead of ``sys.prefix`` (:pull:`3252`).
    * Allow duplicate specifications in the case that only the extras differ, and
      union all specified extras together (:pull:`3198`).
    * Fix the detection of the user's current platform on OSX when determining the
      OSX SDK version (:pull:`3232`).
    * Prevent the automatically built wheels from mistakenly being used across
      multiple versions of Python when they may not be correctly configured for
      that by making the wheel specific to a specific version of Python and
      specific interpreter (:pull:`3225`).
    * Emulate the SOABI support in wheels from Python 2.x on Python 2.x as closely
      as we can with the information available within the interpreter
    * Don't roundtrip to the network when git is pinned to a specific commit hash
      and that hash already exists locally (:pull:`3066`).
    * Prefer wheels built against a newer SDK to wheels built against an older SDK
      on OSX (:pull:`3163`).
    * Show entry points for projects installed via wheel (:pull:`3122`).
    * Improve message when an unexisting path is passed to --find-links option
    * pip freeze does not add the VCS branch/tag name in the #egg=... fragment anymore
    * Warn on installation of editable if the provided #egg=name part does not
      match the metadata produced by `setup.py egg_info`. :issue:`3143`.
    * Add support for .xz files for python versions supporting them (>= 3.3).
  • Aug 22, 2015


    Released v7.1.2
    * Don't raise an error if pip is not installed when checking for the latest pip