Hello community,
here is the log from the commit of package python-zope.security for
openSUSE:Factory checked in at 2020-03-11 18:43:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zope.security (Old)
and /work/SRC/openSUSE:Factory/.python-zope.security.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-zope.security"
Wed Mar 11 18:43:36 2020 rev:4 rq:782895 version:5.1.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-zope.security/python-zope.security.changes
2020-01-23 16:12:40.999698747 +0100
+++
/work/SRC/openSUSE:Factory/.python-zope.security.new.3160/python-zope.security.changes
2020-03-11 18:46:37.171424124 +0100
@@ -1,0 +2,9 @@
+Mon Mar 9 10:17:25 UTC 2020 - [email protected]
+
+- version update to 5.1.0
+ - Let proxied interfaces be iterated on Python 3. This worked on
+ Python 2, but raised ``ForbiddenAttribute`` an Python 3. See
+ `zope.interface issue 141
<https://github.com/zopefoundation/zope.interface/issues/141>`_.
+ - Allow to use a common Sphinx version for Python 2 and 3.
+
+-------------------------------------------------------------------
Old:
----
zope.security-5.0.tar.gz
New:
----
zope.security-5.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-zope.security.spec ++++++
--- /var/tmp/diff_new_pack.bx4RWl/_old 2020-03-11 18:46:40.499426166 +0100
+++ /var/tmp/diff_new_pack.bx4RWl/_new 2020-03-11 18:46:40.503426168 +0100
@@ -27,7 +27,7 @@
%bcond_with test
%endif
Name: python-zope.security%{psuffix}
-Version: 5.0
+Version: 5.1.0
Release: 0
Summary: Zope Security Framework
License: ZPL-2.1
++++++ zope.security-5.0.tar.gz -> zope.security-5.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.security-5.0/.manylinux-install.sh
new/zope.security-5.1.0/.manylinux-install.sh
--- old/zope.security-5.0/.manylinux-install.sh 1970-01-01 01:00:00.000000000
+0100
+++ new/zope.security-5.1.0/.manylinux-install.sh 2020-02-14
11:20:18.000000000 +0100
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+
+set -e -x
+
+# Compile wheels
+for PYBIN in /opt/python/*/bin; do
+ if [[ "${PYBIN}" == *"cp27"* ]] || \
+ [[ "${PYBIN}" == *"cp35"* ]] || \
+ [[ "${PYBIN}" == *"cp36"* ]] || \
+ [[ "${PYBIN}" == *"cp37"* ]] || \
+ [[ "${PYBIN}" == *"cp38"* ]]; then
+ "${PYBIN}/pip" install -U pip setuptools cffi
+ "${PYBIN}/pip" install -e /io/
+ "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+ rm -rf /io/build /io/*.egg-info
+ fi
+done
+
+# Bundle external shared libraries into the wheels
+for whl in wheelhouse/zope.security*.whl; do
+ auditwheel repair "$whl" -w /io/wheelhouse/
+done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.security-5.0/.manylinux.sh
new/zope.security-5.1.0/.manylinux.sh
--- old/zope.security-5.0/.manylinux.sh 1970-01-01 01:00:00.000000000 +0100
+++ new/zope.security-5.1.0/.manylinux.sh 2020-02-14 11:20:18.000000000
+0100
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -e -x
+
+docker run --rm -v "$(pwd)":/io $DOCKER_IMAGE $PRE_CMD
/io/.manylinux-install.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.security-5.0/.travis.yml
new/zope.security-5.1.0/.travis.yml
--- old/zope.security-5.0/.travis.yml 2019-11-11 19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/.travis.yml 2020-02-14 11:20:18.000000000 +0100
@@ -57,7 +57,7 @@
- name: Python 3.6 wheels for MacOS
os: osx
language: generic
- env: TERRYFY_PYTHON='macpython 3.6.0'
+ env: TERRYFY_PYTHON='macpython 3.6.2'
- name: Python 3.7 wheels for MacOS
os: osx
language: generic
@@ -72,21 +72,21 @@
fi
install:
- - pip install -U pip setuptools
- - pip install -U coveralls coverage
+ - python -m pip install -U pip setuptools
+ - python -m pip install -U coveralls coverage
# pip install zope.proxy here because because setup_requires will use
# easy_install, which fails on Python 3.5 on Mac OS
- - pip install -U zope.proxy
- - pip install -U -e .[test,docs]
+ - python -m pip install -U zope.proxy
+ - python -m pip install -U -e .[test,docs]
script:
- python --version
- - coverage run -m zope.testrunner --test-path=src
- - coverage run -a -m sphinx -b doctest -d docs/_build/doctrees docs
docs/_build/doctest
+ - python -m coverage run -m zope.testrunner --test-path=src
+ - python -m coverage run -a -m sphinx -b doctest -d docs/_build/doctrees
docs docs/_build/doctest
- python setup.py bdist_wheel
after_success:
- - coveralls
+ - python -m coveralls
- |
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
# macpython 3.5 doesn't support recent TLS protocols which causes twine
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.security-5.0/CHANGES.rst
new/zope.security-5.1.0/CHANGES.rst
--- old/zope.security-5.0/CHANGES.rst 2019-11-11 19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/CHANGES.rst 2020-02-14 11:20:18.000000000 +0100
@@ -2,8 +2,18 @@
Changes
=========
-5.0 (2019-11-11)
-================
+5.1.0 (2020-02-14)
+==================
+
+- Let proxied interfaces be iterated on Python 3. This worked on
+ Python 2, but raised ``ForbiddenAttribute`` an Python 3. See
+ `zope.interface issue 141
<https://github.com/zopefoundation/zope.interface/issues/141>`_.
+
+- Allow to use a common Sphinx version for Python 2 and 3.
+
+
+5.0.0 (2019-11-11)
+==================
- Drop support for Python 3.4.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.security-5.0/MANIFEST.in
new/zope.security-5.1.0/MANIFEST.in
--- old/zope.security-5.0/MANIFEST.in 2019-11-11 19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/MANIFEST.in 2020-02-14 11:20:18.000000000 +0100
@@ -6,13 +6,12 @@
include .travis.yml
include tox.ini
include buildout.cfg
+include *.sh
+recursive-include docs *.bat
+recursive-include docs *.py
+recursive-include docs *.rst
+recursive-include docs Makefile
+recursive-include src *.py
+recursive-include src *.zcml
-recursive-include docs *
-recursive-include src *
-
-global-exclude *.dll
-global-exclude *.pyc
-global-exclude *.pyo
-global-exclude *.so
-
-prune docs/_build
+prune docs/_static
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.security-5.0/PKG-INFO
new/zope.security-5.1.0/PKG-INFO
--- old/zope.security-5.0/PKG-INFO 2019-11-11 19:14:48.000000000 +0100
+++ new/zope.security-5.1.0/PKG-INFO 2020-02-14 11:20:18.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: zope.security
-Version: 5.0
+Version: 5.1.0
Summary: Zope Security Framework
Home-page: http://github.com/zopefoundation/zope.security
Author: Zope Foundation and Contributors
@@ -39,8 +39,18 @@
Changes
=========
- 5.0 (2019-11-11)
- ================
+ 5.1.0 (2020-02-14)
+ ==================
+
+ - Let proxied interfaces be iterated on Python 3. This worked on
+ Python 2, but raised ``ForbiddenAttribute`` an Python 3. See
+ `zope.interface issue 141
<https://github.com/zopefoundation/zope.interface/issues/141>`_.
+
+ - Allow to use a common Sphinx version for Python 2 and 3.
+
+
+ 5.0.0 (2019-11-11)
+ ==================
- Drop support for Python 3.4.
@@ -649,8 +659,8 @@
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Framework :: Zope :: 3
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*
-Provides-Extra: docs
Provides-Extra: pytz
-Provides-Extra: test
+Provides-Extra: docs
Provides-Extra: untrustedpython
+Provides-Extra: test
Provides-Extra: zcml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.security-5.0/setup.py
new/zope.security-5.1.0/setup.py
--- old/zope.security-5.0/setup.py 2019-11-11 19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/setup.py 2020-02-14 11:20:18.000000000 +0100
@@ -32,7 +32,6 @@
from setuptools.command.build_ext import build_ext
from setuptools import find_packages
from setuptools import setup
-from setuptools import Feature
class optional_build_ext(build_ext):
"""This class subclasses build_ext and allows
@@ -87,22 +86,19 @@
include = [ModuleHeaderDir('zope.proxy')]
-codeoptimization = Feature(
- "Optional code optimizations",
- standard=True,
- ext_modules=[
- Extension(
- "zope.security._proxy",
- [os.path.join('src', 'zope', 'security', "_proxy.c")],
- include_dirs=include,
- ),
- Extension(
- "zope.security._zope_security_checker",
- [os.path.join('src', 'zope', 'security',
- "_zope_security_checker.c")]
- ),
- ]
-)
+codeoptimization = [
+ Extension(
+ "zope.security._proxy",
+ [os.path.join('src', 'zope', 'security', "_proxy.c")],
+ include_dirs=include,
+ ),
+ Extension(
+ "zope.security._zope_security_checker",
+ [os.path.join('src', 'zope', 'security',
+ "_zope_security_checker.c")]
+ ),
+]
+
# Jython cannot build the C optimizations, while on PyPy they are
# anti-optimizations (the C extension compatibility layer is known-slow,
@@ -114,12 +110,11 @@
if is_pypy or is_jython:
setup_requires = []
- features = {}
+ ext_modules = []
else:
setup_requires = ['zope.proxy >= 4.3.0']
- features = {
- 'codeoptimization': codeoptimization,
- }
+ ext_modules = codeoptimization
+
TESTS_REQUIRE = [
'BTrees',
@@ -132,7 +127,7 @@
setup(name='zope.security',
- version='5.0',
+ version='5.1.0',
author='Zope Foundation and Contributors',
author_email='[email protected]',
description='Zope Security Framework',
@@ -171,7 +166,7 @@
cmdclass={
'build_ext': optional_build_ext,
},
- features=features,
+ ext_modules=ext_modules,
python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*',
install_requires=[
'setuptools',
@@ -196,8 +191,7 @@
],
'test': TESTS_REQUIRE,
'docs': [
- 'Sphinx < 2; python_version < "3"',
- 'Sphinx >= 2; python_version >= "3"',
+ 'Sphinx',
'repoze.sphinx.autointerface',
],
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.security-5.0/src/zope/security/checker.py
new/zope.security-5.1.0/src/zope/security/checker.py
--- old/zope.security-5.0/src/zope/security/checker.py 2019-11-11
19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/src/zope/security/checker.py 2020-02-14
11:20:18.000000000 +0100
@@ -858,8 +858,14 @@
type(f()): _iteratorChecker,
type(Interface): InterfaceChecker(
IInterface,
- __str__=CheckerPublic, _implied=CheckerPublic, subscribe=CheckerPublic,
- ),
+ __str__=CheckerPublic,
+ _implied=CheckerPublic,
+ subscribe=CheckerPublic,
+ # To iterate, Python calls __len__ as a hint.
+ # Python 2 ignores AttributeErrors, but Python 3
+ # lets them pass.
+ __len__=CheckerPublic,
+ ),
zope.interface.interface.Method: InterfaceChecker(
zope.interface.interfaces.IMethod),
zope.interface.declarations.ProvidesClass: _Declaration_checker,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zope.security-5.0/src/zope/security/tests/test_proxy.py
new/zope.security-5.1.0/src/zope/security/tests/test_proxy.py
--- old/zope.security-5.0/src/zope/security/tests/test_proxy.py 2019-11-11
19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/src/zope/security/tests/test_proxy.py
2020-02-14 11:20:18.000000000 +0100
@@ -27,6 +27,7 @@
raise NotImplementedError("Not on Python 3")
cmp = coerce
long = int
+ unicode = str
class AbstractProxyTestBase(object):
@@ -1770,7 +1771,7 @@
return x == 42
-class ProxyTests(unittest.TestCase):
+class ProxyFactoryTests(unittest.TestCase):
def setUp(self):
from zope.security.proxy import ProxyFactory
@@ -1958,6 +1959,11 @@
if PYTHON2:
unops.append("long(x)")
+ def _make_eval(self, expr, locs):
+ def _eval(*args):
+ eval(expr, globals(), locs)
+ return _eval
+
def test_unops(self):
# We want the starting value of the expressions to be a proxy,
# but we don't want to create new proxies as a result of
@@ -1968,6 +1974,7 @@
self.c.unproxied_types = {str, int, float}
if PYTHON2:
self.c.unproxied_types.add(long)
+
for expr in self.unops:
x = 1
y = eval(expr)
@@ -1976,7 +1983,7 @@
z = eval(expr)
self.assertEqual(removeSecurityProxy(z), y,
"x=%r; expr=%r" % (x, expr))
- self.shouldFail(lambda x: eval(expr), x)
+ self.shouldFail(self._make_eval(expr, locals()), x)
@_skip_if_not_Py2
def test_odd_unops(self):
@@ -2007,7 +2014,7 @@
else:
self.assertEqual(removeSecurityProxy(eval(expr)), z,
"x=%r; y=%r; expr=%r" % (x, y, expr))
- self.shouldFail(lambda x, y: eval(expr), x, y)
+ self.shouldFail(self._make_eval(expr, locals()), x, y)
def test_inplace(self):
# TODO: should test all inplace operators...
@@ -2101,6 +2108,20 @@
self.assertIs(type(removeSecurityProxy(a)), float)
self.assertIs(b, y)
+ def test_iterate_interface(self):
+ # This used to work on Python 2, but fail on Python 3.
+ # See https://github.com/zopefoundation/zope.interface/issues/141
+ from zope.interface import Interface
+ from zope.security.proxy import ProxyFactory
+
+ class IFoo(Interface):
+ def x():
+ """A method"""
+
+ proxy = ProxyFactory(IFoo)
+ self.assertEqual(list(IFoo), ['x'])
+ self.assertEqual(list(proxy), list(IFoo))
+
def test_using_mapping_slots_hack():
"""The security proxy will use mapping slots, on the checker to go faster
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zope.security-5.0/src/zope.security.egg-info/PKG-INFO
new/zope.security-5.1.0/src/zope.security.egg-info/PKG-INFO
--- old/zope.security-5.0/src/zope.security.egg-info/PKG-INFO 2019-11-11
19:14:48.000000000 +0100
+++ new/zope.security-5.1.0/src/zope.security.egg-info/PKG-INFO 2020-02-14
11:20:18.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: zope.security
-Version: 5.0
+Version: 5.1.0
Summary: Zope Security Framework
Home-page: http://github.com/zopefoundation/zope.security
Author: Zope Foundation and Contributors
@@ -39,8 +39,18 @@
Changes
=========
- 5.0 (2019-11-11)
- ================
+ 5.1.0 (2020-02-14)
+ ==================
+
+ - Let proxied interfaces be iterated on Python 3. This worked on
+ Python 2, but raised ``ForbiddenAttribute`` an Python 3. See
+ `zope.interface issue 141
<https://github.com/zopefoundation/zope.interface/issues/141>`_.
+
+ - Allow to use a common Sphinx version for Python 2 and 3.
+
+
+ 5.0.0 (2019-11-11)
+ ==================
- Drop support for Python 3.4.
@@ -649,8 +659,8 @@
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Framework :: Zope :: 3
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*
-Provides-Extra: docs
Provides-Extra: pytz
-Provides-Extra: test
+Provides-Extra: docs
Provides-Extra: untrustedpython
+Provides-Extra: test
Provides-Extra: zcml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zope.security-5.0/src/zope.security.egg-info/SOURCES.txt
new/zope.security-5.1.0/src/zope.security.egg-info/SOURCES.txt
--- old/zope.security-5.0/src/zope.security.egg-info/SOURCES.txt
2019-11-11 19:14:48.000000000 +0100
+++ new/zope.security-5.1.0/src/zope.security.egg-info/SOURCES.txt
2020-02-14 11:20:18.000000000 +0100
@@ -1,4 +1,6 @@
.coveragerc
+.manylinux-install.sh
+.manylinux.sh
.travis.yml
CHANGES.rst
COPYRIGHT.txt
@@ -20,7 +22,6 @@
docs/make.bat
docs/narr.rst
docs/proxy.rst
-docs/_static/.gitignore
docs/api/adapter.rst
docs/api/checker.rst
docs/api/decorator.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zope.security-5.0/src/zope.security.egg-info/requires.txt
new/zope.security-5.1.0/src/zope.security.egg-info/requires.txt
--- old/zope.security-5.0/src/zope.security.egg-info/requires.txt
2019-11-11 19:14:48.000000000 +0100
+++ new/zope.security-5.1.0/src/zope.security.egg-info/requires.txt
2020-02-14 11:20:18.000000000 +0100
@@ -7,14 +7,9 @@
zope.schema>=4.2.0
[docs]
+Sphinx
repoze.sphinx.autointerface
-[docs:python_version < "3"]
-Sphinx<2
-
-[docs:python_version >= "3"]
-Sphinx>=2
-
[pytz]
pytz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.security-5.0/tox.ini
new/zope.security-5.1.0/tox.ini
--- old/zope.security-5.0/tox.ini 2019-11-11 19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/tox.ini 2020-02-14 11:20:18.000000000 +0100
@@ -9,8 +9,10 @@
commands =
zope-testrunner --test-path=src []
sphinx-build -b doctest -d {envdir}/.cache/doctrees docs
{envdir}/.cache/doctest
+extras =
+ test
+ docs
deps =
- .[test,docs]
[testenv:py27-watch]
basepython =
@@ -41,6 +43,7 @@
commands =
coverage run -m zope.testrunner --test-path=src []
coverage run -a -m sphinx -b doctest -d {envdir}/.cache/doctrees docs
{envdir}/.cache/doctest
+ coverage html
coverage report --fail-under=100
deps =
{[testenv]deps}