Hello community,
here is the log from the commit of package python3-setuptools for
openSUSE:Factory checked in at 2016-02-18 11:06:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-setuptools (Old)
and /work/SRC/openSUSE:Factory/.python3-setuptools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-setuptools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-setuptools/python3-setuptools.changes
2016-02-05 00:31:13.000000000 +0100
+++
/work/SRC/openSUSE:Factory/.python3-setuptools.new/python3-setuptools.changes
2016-02-18 12:35:48.000000000 +0100
@@ -1,0 +2,24 @@
+Sun Feb 14 02:10:35 UTC 2016 - [email protected]
+
+- update to version 20.1.1:
+ * Update "upload_docs" command to also honor keyring for password
+ resolution.
+
+-------------------------------------------------------------------
+Fri Feb 12 04:56:15 UTC 2016 - [email protected]
+
+- update to version 20.1:
+ * Added support for using passwords from keyring in the upload
+ command. See `the upload docs
+
<http://pythonhosted.org/setuptools/setuptools.html#upload-upload-source-and-or-egg-distributions-to-pypi>`_
+ for details.
+
+-------------------------------------------------------------------
+Sun Feb 7 16:19:06 UTC 2016 - [email protected]
+
+- update to version 20.0:
+ * Issue #118: Once again omit the package metadata (egg-info) from
+ the list of outputs in "--record". This version of setuptools can
+ no longer be used to upgrade pip earlier than 6.0.
+
+-------------------------------------------------------------------
Old:
----
setuptools-19.7.tar.gz
New:
----
setuptools-20.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-setuptools.spec ++++++
--- /var/tmp/diff_new_pack.HqY6jP/_old 2016-02-18 12:35:48.000000000 +0100
+++ /var/tmp/diff_new_pack.HqY6jP/_new 2016-02-18 12:35:48.000000000 +0100
@@ -17,7 +17,7 @@
Name: python3-setuptools
-Version: 19.7
+Version: 20.1.1
Release: 0
Url: http://pypi.python.org/pypi/setuptools
Summary: Easily download, build, install, upgrade, and uninstall Python
packages
++++++ setuptools-19.7.tar.gz -> setuptools-20.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/setuptools-19.7/CHANGES.txt
new/setuptools-20.1.1/CHANGES.txt
--- old/setuptools-19.7/CHANGES.txt 2016-02-03 14:19:59.000000000 +0100
+++ new/setuptools-20.1.1/CHANGES.txt 2016-02-12 17:10:11.000000000 +0100
@@ -2,6 +2,27 @@
CHANGES
=======
+20.1.1
+------
+
+* Update ``upload_docs`` command to also honor keyring
+ for password resolution.
+
+20.1
+----
+
+* Added support for using passwords from keyring in the upload
+command. See `the upload docs
+<http://pythonhosted.org/setuptools/setuptools.html#upload-upload-source-and-or-egg-distributions-to-pypi>`_
+for details.
+
+20.0
+----
+
+* Issue #118: Once again omit the package metadata (egg-info)
+ from the list of outputs in ``--record``. This version of setuptools
+ can no longer be used to upgrade pip earlier than 6.0.
+
19.7
----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/setuptools-19.7/PKG-INFO
new/setuptools-20.1.1/PKG-INFO
--- old/setuptools-19.7/PKG-INFO 2016-02-03 14:20:32.000000000 +0100
+++ new/setuptools-20.1.1/PKG-INFO 2016-02-12 17:11:11.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: setuptools
-Version: 19.7
+Version: 20.1.1
Summary: Easily download, build, install, upgrade, and uninstall Python
packages
Home-page: https://bitbucket.org/pypa/setuptools
Author: Python Packaging Authority
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/setuptools-19.7/docs/setuptools.txt
new/setuptools-20.1.1/docs/setuptools.txt
--- old/setuptools-19.7/docs/setuptools.txt 2016-01-30 18:43:56.000000000
+0100
+++ new/setuptools-20.1.1/docs/setuptools.txt 2016-02-12 05:41:37.000000000
+0100
@@ -2328,54 +2328,25 @@
``upload`` - Upload source and/or egg distributions to PyPI
===========================================================
-PyPI now supports uploading project files for redistribution; uploaded files
-are easily found by EasyInstall, even if you don't have download links on your
-project's home page.
-
-Although Python 2.5 will support uploading all types of distributions to PyPI,
-setuptools only supports source distributions and eggs. (This is partly
-because PyPI's upload support is currently broken for various other file
-types.) To upload files, you must include the ``upload`` command *after* the
-``sdist`` or ``bdist_egg`` commands on the setup command line. For example::
-
- setup.py bdist_egg upload # create an egg and upload it
- setup.py sdist upload # create a source distro and upload it
- setup.py sdist bdist_egg upload # create and upload both
-
-Note that to upload files for a project, the corresponding version must already
-be registered with PyPI, using the distutils ``register`` command. It's
-usually a good idea to include the ``register`` command at the start of the
-command line, so that any registration problems can be found and fixed before
-building and uploading the distributions, e.g.::
-
- setup.py register sdist bdist_egg upload
-
-This will update PyPI's listing for your project's current version.
-
-Note, by the way, that the metadata in your ``setup()`` call determines what
-will be listed in PyPI for your package. Try to fill out as much of it as
-possible, as it will save you a lot of trouble manually adding and updating
-your PyPI listings. Just put it in ``setup.py`` and use the ``register``
-command to keep PyPI up to date.
-
-The ``upload`` command has a few options worth noting:
-
-``--sign, -s``
- Sign each uploaded file using GPG (GNU Privacy Guard). The ``gpg`` program
- must be available for execution on the system ``PATH``.
-
-``--identity=NAME, -i NAME``
- Specify the identity or key name for GPG to use when signing. The value of
- this option will be passed through the ``--local-user`` option of the
- ``gpg`` program.
-
-``--show-response``
- Display the full response text from server; this is useful for debugging
- PyPI problems.
-
-``--repository=URL, -r URL``
- The URL of the repository to upload to. Defaults to
- https://pypi.python.org/pypi (i.e., the main PyPI installation).
+The ``upload`` command is implemented and `documented
+<https://docs.python.org/3.1/distutils/uploading.html>`_
+in distutils.
+
+Setuptools augments the ``upload`` command with support
+for `keyring <https://pypi.python.org/pypi/keyring>`_,
+allowing the password to be stored in a secure
+location and not in plaintext in the .pypirc file. To use
+keyring, first install keyring and set the password for
+the relevant repository, e.g.::
+
+ python -m keyring set <repository> <username>
+ Password for '<username>' in '<repository>': ********
+
+Then, in .pypirc, set the repository configuration as normal,
+but omit the password. Thereafter, uploads will use the
+password from the keyring.
+
+New in 20.1: Added keyring support.
.. _upload_docs:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/setuptools-19.7/pkg_resources/tests/test_resources.py
new/setuptools-20.1.1/pkg_resources/tests/test_resources.py
--- old/setuptools-19.7/pkg_resources/tests/test_resources.py 2016-02-01
03:32:22.000000000 +0100
+++ new/setuptools-20.1.1/pkg_resources/tests/test_resources.py 2016-02-07
15:38:32.000000000 +0100
@@ -1,7 +1,7 @@
+from __future__ import unicode_literals
+
import os
import sys
-import tempfile
-import shutil
import string
from pkg_resources.extern.six.moves import map
@@ -610,35 +610,44 @@
class TestNamespaces:
- def setup_method(self, method):
- self._ns_pkgs = pkg_resources._namespace_packages.copy()
-
- # Further, test case where the temp dir is a symlink, where applicable
- # See #231
- if hasattr(os, 'symlink'):
- real_tmpdir = tempfile.mkdtemp(prefix="real-tests-setuptools-")
- tmpdir_base, tmpdir_name = os.path.split(real_tmpdir)
- tmpdir = os.path.join(tmpdir_base, tmpdir_name[5:])
- os.symlink(real_tmpdir, tmpdir)
- self._real_tmpdir = real_tmpdir
- self._tmpdir = tmpdir
- else:
- tmpdir = tempfile.mkdtemp(prefix="tests-setuptools-")
- self._real_tmpdir = self._tmpdir = tmpdir
-
- os.makedirs(os.path.join(self._tmpdir, "site-pkgs"))
- self._prev_sys_path = sys.path[:]
- sys.path.append(os.path.join(self._tmpdir, "site-pkgs"))
-
- def teardown_method(self, method):
- shutil.rmtree(self._real_tmpdir)
- if os.path.islink(self._tmpdir):
- os.unlink(self._tmpdir)
+ ns_str = "__import__('pkg_resources').declare_namespace(__name__)\n"
- pkg_resources._namespace_packages = self._ns_pkgs.copy()
- sys.path = self._prev_sys_path[:]
+ @pytest.yield_fixture
+ def symlinked_tmpdir(self, tmpdir):
+ """
+ Where available, return the tempdir as a symlink,
+ which as revealed in #231 is more fragile than
+ a natural tempdir.
+ """
+ if not hasattr(os, 'symlink'):
+ yield str(tmpdir)
+ return
+
+ link_name = str(tmpdir) + '-linked'
+ os.symlink(str(tmpdir), link_name)
+ try:
+ yield type(tmpdir)(link_name)
+ finally:
+ os.unlink(link_name)
+
+ @pytest.yield_fixture(autouse=True)
+ def patched_path(self, tmpdir):
+ """
+ Patch sys.path to include the 'site-pkgs' dir. Also
+ restore pkg_resources._namespace_packages to its
+ former state.
+ """
+ saved_ns_pkgs = pkg_resources._namespace_packages.copy()
+ saved_sys_path = sys.path[:]
+ site_pkgs = tmpdir.mkdir('site-pkgs')
+ sys.path.append(str(site_pkgs))
+ try:
+ yield
+ finally:
+ pkg_resources._namespace_packages = saved_ns_pkgs
+ sys.path = saved_sys_path
- def test_two_levels_deep(self):
+ def test_two_levels_deep(self, symlinked_tmpdir):
"""
Test nested namespace packages
Create namespace packages in the following tree :
@@ -647,19 +656,16 @@
Check both are in the _namespace_packages dict and that their __path__
is correct
"""
- sys.path.append(os.path.join(self._tmpdir, "site-pkgs2"))
- os.makedirs(os.path.join(self._tmpdir, "site-pkgs", "pkg1", "pkg2"))
- os.makedirs(os.path.join(self._tmpdir, "site-pkgs2", "pkg1", "pkg2"))
- ns_str = "__import__('pkg_resources').declare_namespace(__name__)\n"
- for site in ["site-pkgs", "site-pkgs2"]:
- pkg1_init = open(os.path.join(self._tmpdir, site,
- "pkg1", "__init__.py"), "w")
- pkg1_init.write(ns_str)
- pkg1_init.close()
- pkg2_init = open(os.path.join(self._tmpdir, site,
- "pkg1", "pkg2", "__init__.py"), "w")
- pkg2_init.write(ns_str)
- pkg2_init.close()
+ real_tmpdir = symlinked_tmpdir.realpath()
+ tmpdir = symlinked_tmpdir
+ sys.path.append(str(tmpdir / 'site-pkgs2'))
+ site_dirs = tmpdir / 'site-pkgs', tmpdir / 'site-pkgs2'
+ for site in site_dirs:
+ pkg1 = site / 'pkg1'
+ pkg2 = pkg1 / 'pkg2'
+ pkg2.ensure_dir()
+ (pkg1 / '__init__.py').write_text(self.ns_str, encoding='utf-8')
+ (pkg2 / '__init__.py').write_text(self.ns_str, encoding='utf-8')
import pkg1
assert "pkg1" in pkg_resources._namespace_packages
# attempt to import pkg2 from site-pkgs2
@@ -669,12 +675,12 @@
assert pkg_resources._namespace_packages["pkg1"] == ["pkg1.pkg2"]
# check the __path__ attribute contains both paths
expected = [
- os.path.join(self._real_tmpdir, "site-pkgs", "pkg1", "pkg2"),
- os.path.join(self._real_tmpdir, "site-pkgs2", "pkg1", "pkg2"),
+ str(real_tmpdir / "site-pkgs" / "pkg1" / "pkg2"),
+ str(real_tmpdir / "site-pkgs2" / "pkg1" / "pkg2"),
]
assert pkg1.pkg2.__path__ == expected
- def test_path_order(self):
+ def test_path_order(self, symlinked_tmpdir):
"""
Test that if multiple versions of the same namespace package subpackage
are on different sys.path entries, that only the one earliest on
@@ -684,26 +690,29 @@
Regression test for https://bitbucket.org/pypa/setuptools/issues/207
"""
- site_pkgs = ["site-pkgs", "site-pkgs2", "site-pkgs3"]
+ tmpdir = symlinked_tmpdir
+ site_dirs = (
+ tmpdir / "site-pkgs",
+ tmpdir / "site-pkgs2",
+ tmpdir / "site-pkgs3",
+ )
- ns_str = "__import__('pkg_resources').declare_namespace(__name__)\n"
vers_str = "__version__ = %r"
- for idx, site in enumerate(site_pkgs):
- if idx > 0:
- sys.path.append(os.path.join(self._tmpdir, site))
- os.makedirs(os.path.join(self._tmpdir, site, "nspkg", "subpkg"))
- with open(os.path.join(self._tmpdir, site, "nspkg",
- "__init__.py"), "w") as f:
- f.write(ns_str)
-
- with open(os.path.join(self._tmpdir, site, "nspkg", "subpkg",
- "__init__.py"), "w") as f:
- f.write(vers_str % (idx + 1))
+ for number, site in enumerate(site_dirs, 1):
+ if number > 1:
+ sys.path.append(str(site))
+ nspkg = site / 'nspkg'
+ subpkg = nspkg / 'subpkg'
+ subpkg.ensure_dir()
+ (nspkg / '__init__.py').write_text(self.ns_str, encoding='utf-8')
+ (subpkg / '__init__.py').write_text(vers_str % number,
encoding='utf-8')
import nspkg.subpkg
import nspkg
- assert nspkg.__path__ == [os.path.join(self._real_tmpdir, site,
- "nspkg")
- for site in site_pkgs]
+ expected = [
+ str(site.realpath() / 'nspkg')
+ for site in site_dirs
+ ]
+ assert nspkg.__path__ == expected
assert nspkg.subpkg.__version__ == 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/setuptools-19.7/setuptools/command/__init__.py
new/setuptools-20.1.1/setuptools/command/__init__.py
--- old/setuptools-19.7/setuptools/command/__init__.py 2016-01-30
18:43:56.000000000 +0100
+++ new/setuptools-20.1.1/setuptools/command/__init__.py 2016-02-12
05:34:08.000000000 +0100
@@ -2,7 +2,7 @@
'alias', 'bdist_egg', 'bdist_rpm', 'build_ext', 'build_py', 'develop',
'easy_install', 'egg_info', 'install', 'install_lib', 'rotate', 'saveopts',
'sdist', 'setopt', 'test', 'install_egg_info', 'install_scripts',
- 'register', 'bdist_wininst', 'upload_docs',
+ 'register', 'bdist_wininst', 'upload_docs', 'upload',
]
from distutils.command.bdist import bdist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/setuptools-19.7/setuptools/command/install_egg_info.py
new/setuptools-20.1.1/setuptools/command/install_egg_info.py
--- old/setuptools-19.7/setuptools/command/install_egg_info.py 2016-02-01
03:32:22.000000000 +0100
+++ new/setuptools-20.1.1/setuptools/command/install_egg_info.py
2016-02-07 15:36:03.000000000 +0100
@@ -29,7 +29,7 @@
).egg_name() + '.egg-info'
self.source = ei_cmd.egg_info
self.target = os.path.join(self.install_dir, basename)
- self.outputs = [self.target]
+ self.outputs = []
def run(self):
self.run_command('egg_info')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/setuptools-19.7/setuptools/command/upload.py
new/setuptools-20.1.1/setuptools/command/upload.py
--- old/setuptools-19.7/setuptools/command/upload.py 1970-01-01
01:00:00.000000000 +0100
+++ new/setuptools-20.1.1/setuptools/command/upload.py 2016-02-12
13:49:14.000000000 +0100
@@ -0,0 +1,23 @@
+from distutils.command import upload as orig
+
+
+class upload(orig.upload):
+ """
+ Override default upload behavior to look up password
+ in the keyring if available.
+ """
+
+ def finalize_options(self):
+ orig.upload.finalize_options(self)
+ self.password or self._load_password_from_keyring()
+
+ def _load_password_from_keyring(self):
+ """
+ Attempt to load password from keyring. Suppress Exceptions.
+ """
+ try:
+ keyring = __import__('keyring')
+ self.password = keyring.get_password(self.repository,
+ self.username)
+ except Exception:
+ pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/setuptools-19.7/setuptools/command/upload_docs.py
new/setuptools-20.1.1/setuptools/command/upload_docs.py
--- old/setuptools-19.7/setuptools/command/upload_docs.py 2016-01-30
18:43:56.000000000 +0100
+++ new/setuptools-20.1.1/setuptools/command/upload_docs.py 2016-02-12
17:08:14.000000000 +0100
@@ -8,18 +8,17 @@
from base64 import standard_b64encode
from distutils import log
from distutils.errors import DistutilsOptionError
-from distutils.command.upload import upload
import os
import socket
import zipfile
import tempfile
-import sys
import shutil
from setuptools.extern import six
from setuptools.extern.six.moves import http_client, urllib
from pkg_resources import iter_entry_points
+from .upload import upload
errors = 'surrogateescape' if six.PY3 else 'strict'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/setuptools-19.7/setuptools/version.py
new/setuptools-20.1.1/setuptools/version.py
--- old/setuptools-19.7/setuptools/version.py 2016-02-03 14:20:24.000000000
+0100
+++ new/setuptools-20.1.1/setuptools/version.py 2016-02-12 17:11:07.000000000
+0100
@@ -1 +1 @@
-__version__ = '19.7'
+__version__ = '20.1.1'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/setuptools-19.7/setuptools.egg-info/PKG-INFO
new/setuptools-20.1.1/setuptools.egg-info/PKG-INFO
--- old/setuptools-19.7/setuptools.egg-info/PKG-INFO 2016-02-03
14:20:29.000000000 +0100
+++ new/setuptools-20.1.1/setuptools.egg-info/PKG-INFO 2016-02-12
17:11:10.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: setuptools
-Version: 19.7
+Version: 20.1.1
Summary: Easily download, build, install, upgrade, and uninstall Python
packages
Home-page: https://bitbucket.org/pypa/setuptools
Author: Python Packaging Authority
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/setuptools-19.7/setuptools.egg-info/SOURCES.txt
new/setuptools-20.1.1/setuptools.egg-info/SOURCES.txt
--- old/setuptools-19.7/setuptools.egg-info/SOURCES.txt 2016-02-03
14:20:32.000000000 +0100
+++ new/setuptools-20.1.1/setuptools.egg-info/SOURCES.txt 2016-02-12
17:11:11.000000000 +0100
@@ -103,6 +103,7 @@
setuptools/command/sdist.py
setuptools/command/setopt.py
setuptools/command/test.py
+setuptools/command/upload.py
setuptools/command/upload_docs.py
setuptools/extern/__init__.py
setuptools/tests/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/setuptools-19.7/setuptools.egg-info/entry_points.txt
new/setuptools-20.1.1/setuptools.egg-info/entry_points.txt
--- old/setuptools-19.7/setuptools.egg-info/entry_points.txt 2016-02-03
14:20:29.000000000 +0100
+++ new/setuptools-20.1.1/setuptools.egg-info/entry_points.txt 2016-02-12
17:11:10.000000000 +0100
@@ -22,6 +22,7 @@
sdist = setuptools.command.sdist:sdist
setopt = setuptools.command.setopt:setopt
test = setuptools.command.test:test
+upload = setuptools.command.upload:upload
upload_docs = setuptools.command.upload_docs:upload_docs
[distutils.setup_keywords]