Hello community, here is the log from the commit of package python3-pip for openSUSE:Factory checked in at 2016-01-26 10:15:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3-pip (Old) and /work/SRC/openSUSE:Factory/.python3-pip.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-pip" Changes: -------- --- /work/SRC/openSUSE:Factory/python3-pip/python3-pip.changes 2016-01-22 01:10:26.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.python3-pip.new/python3-pip.changes 2016-01-26 10:15:19.000000000 +0100 @@ -1,0 +2,27 @@ +Sun Jan 24 03:39:13 UTC 2016 - [email protected] + +- specfile: + * update copyright year + +- update to version 8.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. + +- changes from version 8.0.1 (2016-01-21): + * 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 error. + * 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. + +------------------------------------------------------------------- Old: ---- pip-8.0.0.tar.gz New: ---- pip-8.0.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-pip.spec ++++++ --- /var/tmp/diff_new_pack.umJDMQ/_old 2016-01-26 10:15:20.000000000 +0100 +++ /var/tmp/diff_new_pack.umJDMQ/_new 2016-01-26 10:15:20.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package python3-pip # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: python3-pip -Version: 8.0.0 +Version: 8.0.2 Release: 0 Url: http://www.pip-installer.org Summary: Pip installs packages. Python packages. An easy_install replacement ++++++ pip-8.0.0.tar.gz -> pip-8.0.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/AUTHORS.txt new/pip-8.0.2/AUTHORS.txt --- old/pip-8.0.0/AUTHORS.txt 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/AUTHORS.txt 2016-01-22 00:49:22.000000000 +0100 @@ -46,6 +46,7 @@ Cristian Sorinel <[email protected]> Dan Savilonis <[email protected]> Dan Sully <[email protected]> +daniel <[email protected]> Daniel Collins <[email protected]> Daniel Hahler <[email protected]> Daniel Holth <[email protected]> @@ -67,6 +68,7 @@ Dongweiming <[email protected]> Douglas Thor <[email protected]> Dwayne Bailey <[email protected]> +Emil Styrke <[email protected]> Endoh Takanao <[email protected]> enoch <[email protected]> Eric Gillingham <[email protected]> @@ -155,6 +157,7 @@ Matthew Trumbell <[email protected]> Matthias Bussonnier <[email protected]> Maxime Rouyrre <[email protected]> +Michael <[email protected]> Michael E. Karpeles <[email protected]> Michael Klich <[email protected]> Michael Williamson <[email protected]> @@ -240,6 +243,7 @@ Ville Skyttä <[email protected]> Vinay Sajip <[email protected]> Vitaly Babiy <[email protected]> +Vladimir Rutsky <[email protected]> W. Trevor King <[email protected]> Wil Tan <[email protected]> William ML Leslie <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/CHANGES.txt new/pip-8.0.2/CHANGES.txt --- old/pip-8.0.0/CHANGES.txt 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/CHANGES.txt 2016-01-22 00:49:22.000000000 +0100 @@ -1,3 +1,30 @@ +**8.0.2 (2016-01-21)** + +* 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. + + +**8.0.1 (2016-01-21)** + +* 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 + error. + +* 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. + + **8.0.0 (2016-01-19)** * **BACKWARD INCOMPATIBLE** Drop support for Python 3.2. @@ -67,7 +94,7 @@ * Drop PasteScript specific egg_info hack. (:pull:`3270`) -* Allow combination of pip list options --editable with --outdated/--updtodate. +* Allow combination of pip list options --editable with --outdated/--uptodate. (:issue:`933`) * Gives VCS implementations control over saying whether a project diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/PKG-INFO new/pip-8.0.2/PKG-INFO --- old/pip-8.0.0/PKG-INFO 2016-01-20 01:38:34.000000000 +0100 +++ new/pip-8.0.2/PKG-INFO 2016-01-22 00:49:26.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pip -Version: 8.0.0 +Version: 8.0.2 Summary: The PyPA recommended tool for installing Python packages. Home-page: https://pip.pypa.io/ Author: The pip developers diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/docs/development.rst new/pip-8.0.2/docs/development.rst --- old/pip-8.0.0/docs/development.rst 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/docs/development.rst 2016-01-22 00:49:22.000000000 +0100 @@ -104,11 +104,11 @@ 6. Upload the distribution files to PyPI using twine (``twine upload -s dist/*``). The upload should include GPG signatures of the distribution files. -7. Regenerate the ``get-pip.py`` script by running - ``invoke generate.installer`` on the master branch, and committing the +7. Merge the ``master`` branch into the ``develop`` branch. +8. Push all of the changes. +9. Regenerate the ``get-pip.py`` script by running + ``invoke generate.installer`` in the get-pip repository, and committing the results. -8. Merge the ``master`` branch into the ``develop`` branch. -9. Push all of the changes. Creating a Bugfix Release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/docs/reference/pip_install.rst new/pip-8.0.2/docs/reference/pip_install.rst --- old/pip-8.0.0/docs/reference/pip_install.rst 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/docs/reference/pip_install.rst 2016-01-22 00:49:22.000000000 +0100 @@ -235,7 +235,7 @@ :: SomeProject ==5.4 ; python_version < '2.7' - SomeProject; sys.platform == 'win32' + SomeProject; sys_platform == 'win32' Environment markers are supported in the command line and in requirements files. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/pip/__init__.py new/pip-8.0.2/pip/__init__.py --- old/pip-8.0.0/pip/__init__.py 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/pip/__init__.py 2016-01-22 00:49:22.000000000 +0100 @@ -30,7 +30,7 @@ cmdoptions = pip.cmdoptions # The version as used in the setup.py and the docs conf.py -__version__ = "8.0.0" +__version__ = "8.0.2" logger = logging.getLogger(__name__) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/pip/cmdoptions.py new/pip-8.0.2/pip/cmdoptions.py --- old/pip-8.0.0/pip/cmdoptions.py 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/pip/cmdoptions.py 2016-01-22 00:49:22.000000000 +0100 @@ -17,7 +17,7 @@ FormatControl, fmt_ctl_handle_mutual_exclude, fmt_ctl_no_binary, fmt_ctl_no_use_wheel) from pip.models import PyPI -from pip.locations import CA_BUNDLE_PATH, USER_CACHE_DIR, src_prefix +from pip.locations import USER_CACHE_DIR, src_prefix from pip.utils.hashes import STRONG_HASHES @@ -197,7 +197,6 @@ '--cert', dest='cert', type='str', - default=CA_BUNDLE_PATH, metavar='path', help="Path to alternate CA bundle.") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/pip/commands/list.py new/pip-8.0.2/pip/commands/list.py --- old/pip-8.0.0/pip/commands/list.py 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/pip/commands/list.py 2016-01-22 00:49:22.000000000 +0100 @@ -159,6 +159,11 @@ for dist in installed_packages: typ = 'unknown' all_candidates = finder.find_all_candidates(dist.key) + if not options.pre: + # Remove prereleases + all_candidates = [candidate for candidate in all_candidates + if not candidate.version.is_prerelease] + if not all_candidates: continue best_candidate = max(all_candidates, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/pip/compat/__init__.py new/pip-8.0.2/pip/compat/__init__.py --- old/pip-8.0.0/pip/compat/__init__.py 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/pip/compat/__init__.py 2016-01-22 00:49:22.000000000 +0100 @@ -23,6 +23,26 @@ ipaddress.ip_network = ipaddress.IPNetwork +try: + import sysconfig + + def get_stdlib(): + paths = [ + sysconfig.get_path("stdlib"), + sysconfig.get_path("platstdlib"), + ] + return set(filter(bool, paths)) +except ImportError: + from distutils import sysconfig + + def get_stdlib(): + paths = [ + sysconfig.get_python_lib(standard_lib=True), + sysconfig.get_python_lib(standard_lib=True, plat_specific=True), + ] + return set(filter(bool, paths)) + + __all__ = [ "logging_dictConfig", "ipaddress", "uses_pycache", "console_to_str", "native_str", "get_path_uid", "stdlib_pkgs", "WINDOWS", "samefile" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/pip/locations.py new/pip-8.0.2/pip/locations.py --- old/pip-8.0.0/pip/locations.py 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/pip/locations.py 2016-01-22 00:49:22.000000000 +0100 @@ -4,7 +4,6 @@ import os import os.path import site -import ssl import sys from distutils import sysconfig @@ -14,17 +13,6 @@ from pip.utils import appdirs -# if the Python we're running on is new enough to have the needed API then -# we'll ask OpenSSL to give us the path to the default CA Bundle. If this API -# doesn't exist or we cannot resolve the path to an existing file, then we will -# simply set this to None. Setting this to None will have requests fall back -# and use it's default CA Bundle logic. -if getattr(ssl, "get_default_verify_paths", None): - CA_BUNDLE_PATH = ssl.get_default_verify_paths().cafile -else: - CA_BUNDLE_PATH = None - - # Application Directories USER_CACHE_DIR = appdirs.user_cache_dir("pip") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/pip/pep425tags.py new/pip-8.0.2/pip/pep425tags.py --- old/pip-8.0.0/pip/pep425tags.py 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/pip/pep425tags.py 2016-01-22 00:49:22.000000000 +0100 @@ -5,6 +5,7 @@ import sys import warnings import platform +import logging try: import sysconfig @@ -13,6 +14,10 @@ import distutils.sysconfig as sysconfig import distutils.util + +logger = logging.getLogger(__name__) + + _osx_arch_pat = re.compile(r'(.+)_(\d+)_(\d+)_(.+)') @@ -69,8 +74,8 @@ val = get_config_var(var) if val is None: if warn: - warnings.warn("Config variable '{0}' is unset, Python ABI tag may " - "be incorrect".format(var), RuntimeWarning, 2) + logger.debug("Config variable '%s' is unset, Python ABI tag may " + "be incorrect", var) return fallback() return val == expected @@ -116,8 +121,8 @@ # of MACOSX_DEPLOYMENT_TARGET on which Python was built, which may # be signficantly older than the user's current machine. release, _, machine = platform.mac_ver() - major, minor, micro = release.split('.') - return 'macosx_{0}_{1}_{2}'.format(major, minor, machine) + split_ver = release.split('.') + return 'macosx_{0}_{1}_{2}'.format(split_ver[0], split_ver[1], machine) # XXX remove distutils dependency return distutils.util.get_platform().replace('.', '_').replace('-', '_') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/pip/req/req_install.py new/pip-8.0.2/pip/req/req_install.py --- old/pip-8.0.0/pip/req/req_install.py 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/pip/req/req_install.py 2016-01-22 00:49:22.000000000 +0100 @@ -7,10 +7,11 @@ import sys import tempfile import traceback +import warnings import zipfile -from distutils.util import change_root from distutils import sysconfig +from distutils.util import change_root from email.parser import FeedParser from pip._vendor import pkg_resources, six @@ -20,7 +21,7 @@ import pip.wheel -from pip.compat import native_str, WINDOWS +from pip.compat import native_str, get_stdlib, WINDOWS from pip.download import is_url, url_to_path, path_to_url, is_archive_file from pip.exceptions import ( InstallationError, UninstallationError, UnsupportedWheel, @@ -32,9 +33,11 @@ display_path, rmtree, ask_path_exists, backup_dir, is_installable_dir, dist_in_usersite, dist_in_site_packages, egg_link_path, call_subprocess, read_text_file, FakeFile, _make_build_dir, ensure_dir, - get_installed_version, canonicalize_name + get_installed_version, canonicalize_name, normalize_path, dist_is_local, ) + from pip.utils.hashes import Hashes +from pip.utils.deprecation import RemovedInPip10Warning from pip.utils.logging import indent_log from pip.utils.setuptools_build import SETUPTOOLS_SHIM from pip.utils.ui import open_spinner @@ -114,6 +117,9 @@ self.install_succeeded = None # UninstallPathSet of uninstalled distribution (for possible rollback) self.uninstalled = None + # Set True if a legitimate do-nothing-on-uninstall has happened - e.g. + # system site packages, stdlib packages. + self.nothing_to_uninstall = False self.use_user_site = False self.target_dir = None self.options = options if options else {} @@ -606,6 +612,26 @@ ) dist = self.satisfied_by or self.conflicts_with + dist_path = normalize_path(dist.location) + if not dist_is_local(dist): + logger.info( + "Not uninstalling %s at %s, outside environment %s", + dist.key, + dist_path, + sys.prefix, + ) + self.nothing_to_uninstall = True + return + + if dist_path in get_stdlib(): + logger.info( + "Not uninstalling %s at %s, as it is in the standard library.", + dist.key, + dist_path, + ) + self.nothing_to_uninstall = True + return + paths_to_remove = UninstallPathSet(dist) develop_egg_link = egg_link_path(dist) develop_egg_link_egg_info = '{0}.egg-info'.format( @@ -647,12 +673,14 @@ paths_to_remove.add(path + '.pyo') elif distutils_egg_info: - raise UninstallationError( - "Detected a distutils installed project ({0!r}) which we " - "cannot uninstall. The metadata provided by distutils does " - "not contain a list of files which have been installed, so " - "pip does not know which files to uninstall.".format(self.name) + warnings.warn( + "Uninstalling a distutils installed project ({0}) has been " + "deprecated and will be removed in a future version. This is " + "due to the fact that uninstalling a distutils project will " + "only partially uninstall the project.".format(self.name), + RemovedInPip10Warning, ) + paths_to_remove.add(distutils_egg_info) elif dist.location.endswith('.egg'): # package installed by easy_install @@ -729,15 +757,15 @@ self.uninstalled.rollback() else: logger.error( - "Can't rollback %s, nothing uninstalled.", self.project_name, + "Can't rollback %s, nothing uninstalled.", self.name, ) def commit_uninstall(self): if self.uninstalled: self.uninstalled.commit() - else: + elif not self.nothing_to_uninstall: logger.error( - "Can't commit %s, nothing uninstalled.", self.project_name, + "Can't commit %s, nothing uninstalled.", self.name, ) def archive(self, build_dir): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/pip/req/req_uninstall.py new/pip-8.0.2/pip/req/req_uninstall.py --- old/pip-8.0.0/pip/req/req_uninstall.py 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/pip/req/req_uninstall.py 2016-01-22 00:49:22.000000000 +0100 @@ -2,13 +2,11 @@ import logging import os -import sys import tempfile from pip.compat import uses_pycache, WINDOWS, cache_from_source from pip.exceptions import UninstallationError -from pip.utils import (rmtree, ask, is_local, dist_is_local, renames, - normalize_path) +from pip.utils import rmtree, ask, is_local, renames, normalize_path from pip.utils.logging import indent_log @@ -34,17 +32,6 @@ """ return is_local(path) - def _can_uninstall(self): - if not dist_is_local(self.dist): - logger.info( - "Not uninstalling %s at %s, outside environment %s", - self.dist.project_name, - normalize_path(self.dist.location), - sys.prefix, - ) - return False - return True - def add(self, path): head, tail = os.path.split(path) @@ -94,8 +81,6 @@ def remove(self, auto_confirm=False): """Remove paths in ``self.paths`` with confirmation (unless ``auto_confirm`` is True).""" - if not self._can_uninstall(): - return if not self.paths: logger.info( "Can't uninstall '%s'. No files were found to uninstall.", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/pip/vcs/git.py new/pip-8.0.2/pip/vcs/git.py --- old/pip-8.0.0/pip/vcs/git.py 2016-01-20 01:38:23.000000000 +0100 +++ new/pip-8.0.2/pip/vcs/git.py 2016-01-22 00:49:22.000000000 +0100 @@ -100,7 +100,7 @@ def update(self, dest, rev_options): # First fetch changes from the default remote self.run_command(['fetch', '-q'], cwd=dest) - # Then reset to wanted revision (maby even origin/master) + # Then reset to wanted revision (maybe even origin/master) if rev_options: rev_options = self.check_rev_options( rev_options[0], dest, rev_options, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pip-8.0.0/pip.egg-info/PKG-INFO new/pip-8.0.2/pip.egg-info/PKG-INFO --- old/pip-8.0.0/pip.egg-info/PKG-INFO 2016-01-20 01:38:33.000000000 +0100 +++ new/pip-8.0.2/pip.egg-info/PKG-INFO 2016-01-22 00:49:24.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pip -Version: 8.0.0 +Version: 8.0.2 Summary: The PyPA recommended tool for installing Python packages. Home-page: https://pip.pypa.io/ Author: The pip developers
