Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-zope.hookable for
openSUSE:Factory checked in at 2021-10-20 20:23:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zope.hookable (Old)
and /work/SRC/openSUSE:Factory/.python-zope.hookable.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-zope.hookable"
Wed Oct 20 20:23:23 2021 rev:10 rq:925647 version:5.1.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-zope.hookable/python-zope.hookable.changes
2020-04-15 20:07:27.838144685 +0200
+++
/work/SRC/openSUSE:Factory/.python-zope.hookable.new.1890/python-zope.hookable.changes
2021-10-20 20:24:07.489372169 +0200
@@ -1,0 +2,14 @@
+Wed Oct 13 09:21:27 UTC 2021 - [email protected]
+
+- update to version 5.1.0
+ - Add support for Python 3.9.
+ - Create Linux aarch64 wheels.
+
+-------------------------------------------------------------------
+Wed Oct 13 08:29:25 UTC 2021 - [email protected]
+
+- %check: use %pyunittest rpm macro
+- added sources
+ + _multibuild
+
+-------------------------------------------------------------------
Old:
----
zope.hookable-5.0.1.tar.gz
New:
----
_multibuild
zope.hookable-5.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-zope.hookable.spec ++++++
--- /var/tmp/diff_new_pack.glFZZa/_old 2021-10-20 20:24:09.029373120 +0200
+++ /var/tmp/diff_new_pack.glFZZa/_new 2021-10-20 20:24:09.029373120 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package python-zope.hookable
+# spec file
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2013 LISA GmbH, Bingen, Germany.
#
# All modifications and additions to the file contributed by third parties
@@ -18,8 +18,16 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-Name: python-zope.hookable
-Version: 5.0.1
+%global flavor @BUILD_FLAVOR@%{nil}
+%if "%{flavor}" == "test"
+%define psuffix -test
+%bcond_without test
+%else
+%define psuffix %{nil}
+%bcond_with test
+%endif
+Name: python-zope.hookable%{psuffix}
+Version: 5.1.0
Release: 0
Summary: Zope hookable
License: ZPL-2.1
@@ -33,7 +41,10 @@
BuildRequires: %{python_module Sphinx}
# /SECTION
# SECTION testing requirements
+%if %{with test}
+BuildRequires: %{python_module zope.hookable}
BuildRequires: %{python_module zope.testing}
+%endif
# /SECTION
%python_subpackages
@@ -60,24 +71,35 @@
rm -rf zope.hookable.egg-info
%build
+%if !%{with test}
%python_build
python3 setup.py build_sphinx && rm build/sphinx/html/.buildinfo
build/sphinx/html/objects.inv
+%endif
%install
+%if !%{with test}
%python_install
%{python_expand rm -f
%{buildroot}%{$python_sitearch}/zope/hookable/_zope_hookable.c
%fdupes %{buildroot}%{$python_sitearch}
}
+%endif
%check
-%python_exec setup.py test
+%if %{with test}
+pushd src
+%pyunittest 'zope.hookable.tests.test_hookable.test_suite'
+%endif
+%if !%{with test}
%files %{python_files}
%license LICENSE.txt
%doc CHANGES.rst COPYRIGHT.txt README.rst
%{python_sitearch}/*
+%endif
+%if !%{with test}
%files -n %{name}-doc
%doc build/sphinx/html/
+%endif
%changelog
++++++ _multibuild ++++++
<multibuild>
<package>test</package>
</multibuild>
++++++ zope.hookable-5.0.1.tar.gz -> zope.hookable-5.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/.coveragerc
new/zope.hookable-5.1.0/.coveragerc
--- old/zope.hookable-5.0.1/.coveragerc 2020-03-10 14:22:30.000000000 +0100
+++ new/zope.hookable-5.1.0/.coveragerc 2021-07-20 08:09:00.000000000 +0200
@@ -1,10 +1,29 @@
+# Generated from:
+# https://github.com/zopefoundation/meta/tree/master/config/c-code
[run]
source = zope.hookable
+# New in 5.0; required for the GHA coveralls submission.
+relative_files = True
+branch = true
+
+[paths]
+source =
+ src/
+ .tox/*/lib/python*/site-packages/
+ .tox/pypy*/site-packages/
[report]
+show_missing = true
+precision = 2
exclude_lines =
- pragma: no cover
+ except ImportError:
if __name__ == '__main__':
- raise NotImplementedError
+ pragma: no cover
+ pragma: nocover
raise AssertionError
- self.fail
+ raise NotImplementedError
+ raise unittest.Skip
+ self.fail\(
+
+[html]
+directory = parts/htmlcov
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/.manylinux-install.sh
new/zope.hookable-5.1.0/.manylinux-install.sh
--- old/zope.hookable-5.0.1/.manylinux-install.sh 1970-01-01
01:00:00.000000000 +0100
+++ new/zope.hookable-5.1.0/.manylinux-install.sh 2021-07-20
08:09:00.000000000 +0200
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+# Generated from:
+# https://github.com/zopefoundation/meta/tree/master/config/c-code
+
+set -e -x
+
+# Running inside docker
+# Set a cache directory for pip. This was
+# mounted to be the same as it is outside docker so it
+# can be persisted.
+export XDG_CACHE_HOME="/cache"
+# XXX: This works for macOS, where everything bind-mounted
+# is seen as owned by root in the container. But when the host is Linux
+# the actual UIDs come through to the container, triggering
+# pip to disable the cache when it detects that the owner doesn't match.
+# The below is an attempt to fix that, taken from bcrypt. It seems to work on
+# Github Actions.
+if [ -n "$GITHUB_ACTIONS" ]; then
+ echo Adjusting pip cache permissions
+ mkdir -p $XDG_CACHE_HOME/pip
+ chown -R $(whoami) $XDG_CACHE_HOME
+fi
+ls -ld /cache
+ls -ld /cache/pip
+
+# Compile wheels
+for PYBIN in /opt/python/*/bin; do
+ if [[ "${PYBIN}" == *"cp27"* ]] || \
+ [[ "${PYBIN}" == *"cp35"* ]] || \
+ [[ "${PYBIN}" == *"cp36"* ]] || \
+ [[ "${PYBIN}" == *"cp37"* ]] || \
+ [[ "${PYBIN}" == *"cp38"* ]] || \
+ [[ "${PYBIN}" == *"cp39"* ]]; then
+ "${PYBIN}/pip" install -e /io/
+ "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+ if [ `uname -m` == 'aarch64' ]; then
+ cd /io/
+ "${PYBIN}/pip" install tox
+ "${PYBIN}/tox" -e py
+ cd ..
+ fi
+ rm -rf /io/build /io/*.egg-info
+ fi
+done
+
+# Bundle external shared libraries into the wheels
+for whl in wheelhouse/zope.hookable*.whl; do
+ auditwheel repair "$whl" -w /io/wheelhouse/
+done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/.manylinux.sh
new/zope.hookable-5.1.0/.manylinux.sh
--- old/zope.hookable-5.0.1/.manylinux.sh 1970-01-01 01:00:00.000000000
+0100
+++ new/zope.hookable-5.1.0/.manylinux.sh 2021-07-20 08:09:00.000000000
+0200
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+# Generated from:
+# https://github.com/zopefoundation/meta/tree/master/config/c-code
+
+set -e -x
+
+# Mount the current directory as /io
+# Mount the pip cache directory as /cache
+# `pip cache` requires pip 20.1
+echo Setting up caching
+python --version
+python -mpip --version
+LCACHE="$(dirname `python -mpip cache dir`)"
+echo Sharing pip cache at $LCACHE $(ls -ld $LCACHE)
+
+docker run --rm -e GITHUB_ACTIONS -v "$(pwd)":/io -v "$LCACHE:/cache"
$DOCKER_IMAGE $PRE_CMD /io/.manylinux-install.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/.travis.yml
new/zope.hookable-5.1.0/.travis.yml
--- old/zope.hookable-5.0.1/.travis.yml 2020-03-10 14:22:30.000000000 +0100
+++ new/zope.hookable-5.1.0/.travis.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,101 +0,0 @@
-language: python
-env:
- global:
- TWINE_USERNAME: zope.wheelbuilder
- TWINE_PASSWORD:
- secure:
"iHOASkMh4JGxVom8gVdIDmmj7VRa5j8vvdABphmyuO6ZH6Qyvu/dIJwzp5S5GKEn+SmwoB+MdKHdxtvVTmmryA5TqimYVd0zti+DeCdSU2N87W/dCpuvNUIL0dz+QeCzuQluipl0qjhkPPhR4GzwxLwxFZW1vJyQ7puGlbhjlkY="
-
-python:
- - 2.7
- - 3.5
- - 3.6
- - 3.7
- - 3.8
- - pypy
- - pypy3
-
-jobs:
- include:
- - name: "Python: 2.7, pure (no C extensions)"
- python: 2.7
- env: PURE_PYTHON=1
-
- # manylinux wheel builds
- - name: 64-bit manylinux wheels (all Pythons)
- services: docker
- env: DOCKER_IMAGE=quay.io/pypa/manylinux2010_x86_64
- install: docker pull $DOCKER_IMAGE
- script: bash .manylinux.sh
-
- - name: 32-bit manylinux wheels (all Pythons)
- services: docker
- env: DOCKER_IMAGE=quay.io/pypa/manylinux2010_i686 PRE_CMD=linux32
- install: docker pull $DOCKER_IMAGE
- script: bash .manylinux.sh
-
- # It's important to use 'macpython' builds to get the least
- # restrictive wheel tag. It's also important to avoid
- # 'homebrew 3' because it floats instead of being a specific version.
- - name: Python 2.7 wheels for MacOS
- os: osx
- language: generic
- env: TERRYFY_PYTHON='macpython 2.7.17'
- - name: Python 3.5 wheels for MacOS
- os: osx
- language: generic
- env: TERRYFY_PYTHON='macpython 3.5'
- - name: Python 3.6 wheels for MacOS
- os: osx
- language: generic
- env: TERRYFY_PYTHON='macpython 3.6.2'
- - name: Python 3.7 wheels for MacOS
- os: osx
- language: generic
- env: TERRYFY_PYTHON='macpython 3.7.0'
-
-before_install:
- - |
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
- git clone https://github.com/MacPython/terryfy
- source terryfy/travis_tools.sh
- get_python_environment $TERRYFY_PYTHON venv
- fi
-
-install:
- - pip install -U pip setuptools
- - pip install -U coveralls coverage
- - pip install -U -e .[test,docs]
-
-script:
- - python --version
- - coverage run setup.py -q test
- - coverage run -a -m sphinx -b doctest -d docs/_build/doctrees docs
docs/_build/doctest
- - python setup.py -q bdist_wheel
-
-after_success:
- - coveralls
- - |
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
- # macpython 3.5 doesn't support recent TLS protocols which causes twine
- # upload to fail, so we use the system Python to run twine
- /usr/bin/python -m ensurepip --user
- /usr/bin/python -m pip install --user -U pip
- /usr/bin/python -m pip install --user -U -I twine
- /usr/bin/python -m twine check dist/*
- if [[ $TRAVIS_TAG ]]; then
- /usr/bin/python -m twine upload --skip-existing dist/*
- fi
- fi
- - |
- if [[ -n "$DOCKER_IMAGE" ]]; then
- pip install twine
- twine check wheelhouse/*
- if [[ $TRAVIS_TAG ]]; then
- twine upload --skip-existing wheelhouse/*
- fi
- fi
-
-notifications:
- email: false
-
-cache: pip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/CHANGES.rst
new/zope.hookable-5.1.0/CHANGES.rst
--- old/zope.hookable-5.0.1/CHANGES.rst 2020-03-10 14:22:30.000000000 +0100
+++ new/zope.hookable-5.1.0/CHANGES.rst 2021-07-20 08:09:00.000000000 +0200
@@ -2,6 +2,14 @@
Changes
=========
+5.1.0 (2021-07-20)
+==================
+
+- Add support for Python 3.9.
+
+- Create Linux aarch64 wheels.
+
+
5.0.1 (2020-03-10)
==================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/MANIFEST.in
new/zope.hookable-5.1.0/MANIFEST.in
--- old/zope.hookable-5.0.1/MANIFEST.in 2020-03-10 14:22:30.000000000 +0100
+++ new/zope.hookable-5.1.0/MANIFEST.in 2021-07-20 08:09:00.000000000 +0200
@@ -1,15 +1,17 @@
+# Generated from:
+# https://github.com/zopefoundation/meta/tree/master/config/c-code
include *.rst
include *.txt
-include *.py
include buildout.cfg
include tox.ini
-include .travis.yml
include appveyor.yml
include .coveragerc
-recursive-include docs *.bat
recursive-include docs *.py
recursive-include docs *.rst
+recursive-include docs *.txt
recursive-include docs Makefile
-global-exclude *.pyc
+recursive-include src *.py
+include *.sh
+recursive-include docs *.bat
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/PKG-INFO
new/zope.hookable-5.1.0/PKG-INFO
--- old/zope.hookable-5.0.1/PKG-INFO 2020-03-10 14:22:31.633509900 +0100
+++ new/zope.hookable-5.1.0/PKG-INFO 2021-07-20 08:09:01.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: zope.hookable
-Version: 5.0.1
+Version: 5.1.0
Summary: Zope hookable
Home-page: http://github.com/zopefoundation/zope.hookable
Author: Zope Foundation and Contributors
@@ -18,8 +18,8 @@
:target: https://pypi.org/project/zope.hookable/
:alt: Supported Python versions
- .. image::
https://travis-ci.org/zopefoundation/zope.hookable.svg?branch=master
- :target: https://travis-ci.org/zopefoundation/zope.hookable
+ .. image::
https://travis-ci.com/zopefoundation/zope.hookable.svg?branch=master
+ :target: https://travis-ci.com/zopefoundation/zope.hookable
.. image::
https://readthedocs.org/projects/zopehookable/badge/?version=latest
:target: https://zopehookable.readthedocs.io/en/latest/
@@ -44,6 +44,14 @@
Changes
=========
+ 5.1.0 (2021-07-20)
+ ==================
+
+ - Add support for Python 3.9.
+
+ - Create Linux aarch64 wheels.
+
+
5.0.1 (2020-03-10)
==================
@@ -155,6 +163,7 @@
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Framework :: Zope :: 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/README.rst
new/zope.hookable-5.1.0/README.rst
--- old/zope.hookable-5.0.1/README.rst 2020-03-10 14:22:30.000000000 +0100
+++ new/zope.hookable-5.1.0/README.rst 2021-07-20 08:09:00.000000000 +0200
@@ -10,8 +10,8 @@
:target: https://pypi.org/project/zope.hookable/
:alt: Supported Python versions
-.. image:: https://travis-ci.org/zopefoundation/zope.hookable.svg?branch=master
- :target: https://travis-ci.org/zopefoundation/zope.hookable
+.. image:: https://travis-ci.com/zopefoundation/zope.hookable.svg?branch=master
+ :target: https://travis-ci.com/zopefoundation/zope.hookable
.. image:: https://readthedocs.org/projects/zopehookable/badge/?version=latest
:target: https://zopehookable.readthedocs.io/en/latest/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/appveyor.yml
new/zope.hookable-5.1.0/appveyor.yml
--- old/zope.hookable-5.0.1/appveyor.yml 2020-03-10 14:22:30.000000000
+0100
+++ new/zope.hookable-5.1.0/appveyor.yml 2021-07-20 08:09:00.000000000
+0200
@@ -1,8 +1,12 @@
+# Generated from:
+# https://github.com/zopefoundation/meta/tree/master/config/c-code
environment:
+ # Currently the builds use @mgedmin's Appveyor account. The PyPI token
belongs
+ # to zope.wheelbuilder, which is managed by @mgedmin and @dataflake.
global:
- TWINE_USERNAME: zope.wheelbuilder
+ TWINE_USERNAME: __token__
TWINE_PASSWORD:
- secure: UcdTh6W78cRLVGfKRFoa5A==
+ secure:
aoZC/+rvJKg8B5GMGIxd1VVAqNNBjVQeFnBhHb5CSR6SETwd7qeNIP92xgZA2hhgiZH3KVFYEID+OR7j6TTVLVZLHP3EXKP+/sccqPjs3DDgDKuGjU5iovqpJnXiTPNI1LlGqUMM7neCvljjLkcW1InVbygB5p/V1YE8Zs8PjZ8j7Ny84EalvWprAO/xB1hawCIydi1bpq0WZbw8H+IvmDYYkVa1jgSBfHhsA3/S7943QWzPCRtUPuIXziAhdMUgnhj/1N/RPXRMYoNG/Se5Kg==
matrix:
- python: 27
@@ -15,8 +19,11 @@
- python: 37-x64
- python: 38
- python: 38-x64
+ - python: 39
+ - python: 39-x64
install:
+ - "SET PYTHONVERSION=%PYTHON%"
- "SET PATH=C:\\Python%PYTHON%;c:\\Python%PYTHON%\\scripts;%PATH%"
- ps: |
$env:PYTHON = "C:\\Python${env:PYTHON}"
@@ -26,20 +33,23 @@
}
- ps: if (-not (Test-Path $env:PYTHON)) { throw "No $env:PYTHON" }
- echo "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 >
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat"
- - pip install -e .
+ - python -m pip install -U pip
+ - pip install -U setuptools wheel
+ - pip install -U -e .[test]
+
+matrix:
+ fast_finish: true
build_script:
- - pip install wheel
- python -W ignore setup.py -q bdist_wheel
test_script:
- - python setup.py -q test
-
+ - zope-testrunner --test-path=src
artifacts:
- path: 'dist\*.whl'
name: wheel
deploy_script:
- - ps: if ($env:APPVEYOR_REPO_TAG -eq $TRUE) { pip install twine; twine
upload --skip-existing dist/* }
+ - ps: if ($env:APPVEYOR_REPO_TAG -eq $TRUE) { pip install twine; twine
upload --skip-existing dist\*.whl }
deploy: on
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/bootstrap.py
new/zope.hookable-5.1.0/bootstrap.py
--- old/zope.hookable-5.0.1/bootstrap.py 2020-03-10 14:22:30.000000000
+0100
+++ new/zope.hookable-5.1.0/bootstrap.py 1970-01-01 01:00:00.000000000
+0100
@@ -1,210 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2006 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Bootstrap a buildout-based project
-
-Simply run this script in a directory containing a buildout.cfg.
-The script accepts buildout command-line options, so you can
-use the -c option to specify an alternate configuration file.
-"""
-
-import os
-import shutil
-import sys
-import tempfile
-
-from optparse import OptionParser
-
-__version__ = '2015-07-01'
-# See zc.buildout's changelog if this version is up to date.
-
-tmpeggs = tempfile.mkdtemp(prefix='bootstrap-')
-
-usage = '''\
-[DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options]
-
-Bootstraps a buildout-based project.
-
-Simply run this script in a directory containing a buildout.cfg, using the
-Python that you want bin/buildout to use.
-
-Note that by using --find-links to point to local resources, you can keep
-this script from going over the network.
-'''
-
-parser = OptionParser(usage=usage)
-parser.add_option("--version",
- action="store_true", default=False,
- help=("Return bootstrap.py version."))
-parser.add_option("-t", "--accept-buildout-test-releases",
- dest='accept_buildout_test_releases',
- action="store_true", default=False,
- help=("Normally, if you do not specify a --version, the "
- "bootstrap script and buildout gets the newest "
- "*final* versions of zc.buildout and its recipes and "
- "extensions for you. If you use this flag, "
- "bootstrap and buildout will get the newest releases "
- "even if they are alphas or betas."))
-parser.add_option("-c", "--config-file",
- help=("Specify the path to the buildout configuration "
- "file to be used."))
-parser.add_option("-f", "--find-links",
- help=("Specify a URL to search for buildout releases"))
-parser.add_option("--allow-site-packages",
- action="store_true", default=False,
- help=("Let bootstrap.py use existing site packages"))
-parser.add_option("--buildout-version",
- help="Use a specific zc.buildout version")
-parser.add_option("--setuptools-version",
- help="Use a specific setuptools version")
-parser.add_option("--setuptools-to-dir",
- help=("Allow for re-use of existing directory of "
- "setuptools versions"))
-
-options, args = parser.parse_args()
-if options.version:
- print("bootstrap.py version %s" % __version__)
- sys.exit(0)
-
-
-######################################################################
-# load/install setuptools
-
-try:
- from urllib.request import urlopen
-except ImportError:
- from urllib2 import urlopen
-
-ez = {}
-if os.path.exists('ez_setup.py'):
- exec(open('ez_setup.py').read(), ez)
-else:
- exec(urlopen('https://bootstrap.pypa.io/ez_setup.py').read(), ez)
-
-if not options.allow_site_packages:
- # ez_setup imports site, which adds site packages
- # this will remove them from the path to ensure that incompatible versions
- # of setuptools are not in the path
- import site
- # inside a virtualenv, there is no 'getsitepackages'.
- # We can't remove these reliably
- if hasattr(site, 'getsitepackages'):
- for sitepackage_path in site.getsitepackages():
- # Strip all site-packages directories from sys.path that
- # are not sys.prefix; this is because on Windows
- # sys.prefix is a site-package directory.
- if sitepackage_path != sys.prefix:
- sys.path[:] = [x for x in sys.path
- if sitepackage_path not in x]
-
-setup_args = dict(to_dir=tmpeggs, download_delay=0)
-
-if options.setuptools_version is not None:
- setup_args['version'] = options.setuptools_version
-if options.setuptools_to_dir is not None:
- setup_args['to_dir'] = options.setuptools_to_dir
-
-ez['use_setuptools'](**setup_args)
-import setuptools
-import pkg_resources
-
-# This does not (always?) update the default working set. We will
-# do it.
-for path in sys.path:
- if path not in pkg_resources.working_set.entries:
- pkg_resources.working_set.add_entry(path)
-
-######################################################################
-# Install buildout
-
-ws = pkg_resources.working_set
-
-setuptools_path = ws.find(
- pkg_resources.Requirement.parse('setuptools')).location
-
-# Fix sys.path here as easy_install.pth added before PYTHONPATH
-cmd = [sys.executable, '-c',
- 'import sys; sys.path[0:0] = [%r]; ' % setuptools_path +
- 'from setuptools.command.easy_install import main; main()',
- '-mZqNxd', tmpeggs]
-
-find_links = os.environ.get(
- 'bootstrap-testing-find-links',
- options.find_links or
- ('http://downloads.buildout.org/'
- if options.accept_buildout_test_releases else None)
- )
-if find_links:
- cmd.extend(['-f', find_links])
-
-requirement = 'zc.buildout'
-version = options.buildout_version
-if version is None and not options.accept_buildout_test_releases:
- # Figure out the most recent final version of zc.buildout.
- import setuptools.package_index
- _final_parts = '*final-', '*final'
-
- def _final_version(parsed_version):
- try:
- return not parsed_version.is_prerelease
- except AttributeError:
- # Older setuptools
- for part in parsed_version:
- if (part[:1] == '*') and (part not in _final_parts):
- return False
- return True
-
- index = setuptools.package_index.PackageIndex(
- search_path=[setuptools_path])
- if find_links:
- index.add_find_links((find_links,))
- req = pkg_resources.Requirement.parse(requirement)
- if index.obtain(req) is not None:
- best = []
- bestv = None
- for dist in index[req.project_name]:
- distv = dist.parsed_version
- if _final_version(distv):
- if bestv is None or distv > bestv:
- best = [dist]
- bestv = distv
- elif distv == bestv:
- best.append(dist)
- if best:
- best.sort()
- version = best[-1].version
-if version:
- requirement = '=='.join((requirement, version))
-cmd.append(requirement)
-
-import subprocess
-if subprocess.call(cmd) != 0:
- raise Exception(
- "Failed to execute command:\n%s" % repr(cmd)[1:-1])
-
-######################################################################
-# Import and run buildout
-
-ws.add_entry(tmpeggs)
-ws.require(requirement)
-import zc.buildout.buildout
-
-if not [a for a in args if '=' not in a]:
- args.append('bootstrap')
-
-# if -c was provided, we push it back into args for buildout' main function
-if options.config_file is not None:
- args[0:0] = ['-c', options.config_file]
-
-zc.buildout.buildout.main(args)
-shutil.rmtree(tmpeggs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/setup.cfg
new/zope.hookable-5.1.0/setup.cfg
--- old/zope.hookable-5.0.1/setup.cfg 2020-03-10 14:22:31.634053200 +0100
+++ new/zope.hookable-5.1.0/setup.cfg 2021-07-20 08:09:01.000000000 +0200
@@ -1,20 +1,19 @@
-[nosetests]
-nocapture = 1
-cover-package = zope.hookable
-cover-erase = 1
-with-doctest = 0
-where = src
-
-[aliases]
-dev = develop easy_install zope.hookable[testing]
-docs = easy_install zope.hookable[docs]
-
[bdist_wheel]
-universal = 0
+universal = 1
-[zest-releaser]
+[zest.releaser]
create-wheel = no
+[flake8]
+doctests = 1
+
+[check-manifest]
+ignore =
+ .editorconfig
+ .meta.toml
+ docs/_build/html/_sources/*
+ docs/_build/doctest/*
+
[egg_info]
tag_build =
tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/setup.py
new/zope.hookable-5.1.0/setup.py
--- old/zope.hookable-5.0.1/setup.py 2020-03-10 14:22:30.000000000 +0100
+++ new/zope.hookable-5.1.0/setup.py 2021-07-20 08:09:00.000000000 +0200
@@ -36,6 +36,7 @@
"""This class subclasses build_ext and allows
the building of C extensions to fail.
"""
+
def run(self):
try:
build_ext.run(self)
@@ -64,10 +65,10 @@
codeoptimization = [
- Extension(
- "zope.hookable._zope_hookable",
- [os.path.join('src', 'zope', 'hookable', "_zope_hookable.c")],
- ),
+ Extension(
+ "zope.hookable._zope_hookable",
+ [os.path.join('src', 'zope', 'hookable', "_zope_hookable.c")],
+ ),
]
is_pypy_or_jython = platform.python_implementation() in ('PyPy', 'Jython')
@@ -82,10 +83,11 @@
TESTS_REQUIRE = [
'zope.testing',
+ 'zope.testrunner',
]
setup(name='zope.hookable',
- version='5.0.1',
+ version='5.1.0',
url='http://github.com/zopefoundation/zope.hookable',
license='ZPL 2.1',
description='Zope hookable',
@@ -107,6 +109,7 @@
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Framework :: Zope :: 3",
@@ -131,4 +134,4 @@
'test': TESTS_REQUIRE,
},
python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*',
-)
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/src/zope/__init__.py
new/zope.hookable-5.1.0/src/zope/__init__.py
--- old/zope.hookable-5.0.1/src/zope/__init__.py 2020-03-10
14:22:30.000000000 +0100
+++ new/zope.hookable-5.1.0/src/zope/__init__.py 2021-07-20
08:09:00.000000000 +0200
@@ -1 +1 @@
-__import__('pkg_resources').declare_namespace(__name__) # pragma: no cover
+__import__('pkg_resources').declare_namespace(__name__) # pragma: no cover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/src/zope/hookable/__init__.py
new/zope.hookable-5.1.0/src/zope/hookable/__init__.py
--- old/zope.hookable-5.0.1/src/zope/hookable/__init__.py 2020-03-10
14:22:30.000000000 +0100
+++ new/zope.hookable-5.1.0/src/zope/hookable/__init__.py 2021-07-20
08:09:00.000000000 +0200
@@ -20,6 +20,7 @@
_PYPY = platform.python_implementation() in ('PyPy', 'Jython')
_PURE_PYTHON = os.environ.get('PURE_PYTHON', _PYPY)
+
class _py_hookable(object):
__slots__ = ('_original', '_implementation')
@@ -62,12 +63,13 @@
def __call__(self, *args, **kw):
return self._implementation(*args, **kw)
+
try:
from zope.hookable._zope_hookable import hookable as _c_hookable
-except ImportError: # pragma: no cover
+except ImportError: # pragma: no cover
_c_hookable = None
-if _PURE_PYTHON or _c_hookable is None: # pragma: no cover
+if _PURE_PYTHON or _c_hookable is None:
hookable = _py_hookable
-else:
+else: # pragma: no cover
hookable = _c_hookable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zope.hookable-5.0.1/src/zope/hookable/tests/test_hookable.py
new/zope.hookable-5.1.0/src/zope/hookable/tests/test_hookable.py
--- old/zope.hookable-5.0.1/src/zope/hookable/tests/test_hookable.py
2020-03-10 14:22:30.000000000 +0100
+++ new/zope.hookable-5.1.0/src/zope/hookable/tests/test_hookable.py
2021-07-20 08:09:00.000000000 +0200
@@ -15,35 +15,41 @@
"""
import unittest
+
def return_foo():
return 'FOO'
+
def return_bar():
return 'BAR'
+
def not_called():
raise AssertionError("This should not be called")
+
class PyHookableMixin(object):
def _callFUT(self, *args, **kw):
from zope.hookable import _py_hookable
return _py_hookable(*args, **kw)
+
class HookableMixin(object):
def _callFUT(self, *args, **kw):
from zope.hookable import hookable, _py_hookable
- if hookable is _py_hookable: # pragma: no cover
+ if hookable is _py_hookable:
raise unittest.SkipTest("Hookable and PyHookable are the same")
- return hookable(*args, **kw)
+ return hookable(*args, **kw) # pragma: no cover
class PyHookableTests(PyHookableMixin,
unittest.TestCase):
def test_pure_python(self):
- from zope.hookable import _PURE_PYTHON, hookable, _py_hookable,
_c_hookable
+ from zope.hookable import _PURE_PYTHON, hookable
+ from zope.hookable import _py_hookable, _c_hookable
self.assertIs(hookable, _py_hookable if _PURE_PYTHON else _c_hookable)
def test_before_hook(self):
@@ -107,6 +113,7 @@
hooked.sethook(return_bar)
self.assertEqual(hooked(), 'BAR')
+
class TestIssue6Py(PyHookableMixin,
unittest.TestCase):
# Make sphinx docs for hooked objects work.
@@ -175,11 +182,14 @@
with self.assertRaises(AttributeError):
hooked.__getattribute__('')
+
class HookableTests(HookableMixin, PyHookableTests):
pass
+
class TestIssue6(HookableMixin, TestIssue6Py):
pass
+
def test_suite():
return unittest.defaultTestLoader.loadTestsFromName(__name__)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zope.hookable-5.0.1/src/zope.hookable.egg-info/PKG-INFO
new/zope.hookable-5.1.0/src/zope.hookable.egg-info/PKG-INFO
--- old/zope.hookable-5.0.1/src/zope.hookable.egg-info/PKG-INFO 2020-03-10
14:22:31.000000000 +0100
+++ new/zope.hookable-5.1.0/src/zope.hookable.egg-info/PKG-INFO 2021-07-20
08:09:01.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: zope.hookable
-Version: 5.0.1
+Version: 5.1.0
Summary: Zope hookable
Home-page: http://github.com/zopefoundation/zope.hookable
Author: Zope Foundation and Contributors
@@ -18,8 +18,8 @@
:target: https://pypi.org/project/zope.hookable/
:alt: Supported Python versions
- .. image::
https://travis-ci.org/zopefoundation/zope.hookable.svg?branch=master
- :target: https://travis-ci.org/zopefoundation/zope.hookable
+ .. image::
https://travis-ci.com/zopefoundation/zope.hookable.svg?branch=master
+ :target: https://travis-ci.com/zopefoundation/zope.hookable
.. image::
https://readthedocs.org/projects/zopehookable/badge/?version=latest
:target: https://zopehookable.readthedocs.io/en/latest/
@@ -44,6 +44,14 @@
Changes
=========
+ 5.1.0 (2021-07-20)
+ ==================
+
+ - Add support for Python 3.9.
+
+ - Create Linux aarch64 wheels.
+
+
5.0.1 (2020-03-10)
==================
@@ -155,6 +163,7 @@
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Framework :: Zope :: 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zope.hookable-5.0.1/src/zope.hookable.egg-info/SOURCES.txt
new/zope.hookable-5.1.0/src/zope.hookable.egg-info/SOURCES.txt
--- old/zope.hookable-5.0.1/src/zope.hookable.egg-info/SOURCES.txt
2020-03-10 14:22:31.000000000 +0100
+++ new/zope.hookable-5.1.0/src/zope.hookable.egg-info/SOURCES.txt
2021-07-20 08:09:01.000000000 +0200
@@ -1,12 +1,12 @@
.coveragerc
-.travis.yml
+.manylinux-install.sh
+.manylinux.sh
CHANGES.rst
COPYRIGHT.txt
LICENSE.txt
MANIFEST.in
README.rst
appveyor.yml
-bootstrap.py
buildout.cfg
setup.cfg
setup.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zope.hookable-5.0.1/src/zope.hookable.egg-info/requires.txt
new/zope.hookable-5.1.0/src/zope.hookable.egg-info/requires.txt
--- old/zope.hookable-5.0.1/src/zope.hookable.egg-info/requires.txt
2020-03-10 14:22:31.000000000 +0100
+++ new/zope.hookable-5.1.0/src/zope.hookable.egg-info/requires.txt
2021-07-20 08:09:01.000000000 +0200
@@ -5,7 +5,9 @@
[test]
zope.testing
+zope.testrunner
[testing]
zope.testing
+zope.testrunner
coverage
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.hookable-5.0.1/tox.ini
new/zope.hookable-5.1.0/tox.ini
--- old/zope.hookable-5.0.1/tox.ini 2020-03-10 14:22:30.000000000 +0100
+++ new/zope.hookable-5.1.0/tox.ini 2021-07-20 08:09:00.000000000 +0200
@@ -1,35 +1,67 @@
+# Generated from:
+# https://github.com/zopefoundation/meta/tree/master/config/c-code
[tox]
+minversion = 3.18
envlist =
- py27,py35,py36,py37,py38,py27-pure,pypy,pypy3,coverage,docs
+ lint
+ py27,py27-pure
+ py35,py35-pure
+ py36,py36-pure
+ py37,py37-pure
+ py38,py38-pure
+ py39,py39-pure
+ pypy
+ pypy3
+ docs
+ coverage
[testenv]
-commands =
- python setup.py -q test -q
- sphinx-build -b doctest -d {envdir}/.cache/doctrees docs
{envdir}/.cache/doctest
+usedevelop = true
deps =
- .[test,docs]
+ # Until repoze.sphinx.autointerface supports Sphinx 4.x we cannot use it:
+ Sphinx < 4
+setenv =
+ pure: PURE_PYTHON=1
+ !pure-!pypy-!pypy3: PURE_PYTHON=0
+commands =
+ zope-testrunner --test-path=src {posargs:-vc}
+ !py27-!pypy: sphinx-build -b doctest -d {envdir}/.cache/doctrees docs
{envdir}/.cache/doctest
+extras =
+ test
+ docs
[testenv:coverage]
-usedevelop = true
-basepython =
- python2.7
-commands =
- coverage run setup.py -q test -q
- coverage run -a -m sphinx -b doctest -d {envdir}/.cache/doctrees docs
{envdir}/.cache/doctest
- coverage report --fail-under=100
+basepython = python3
+allowlist_externals =
+ mkdir
deps =
- {[testenv]deps}
coverage
-
-[testenv:py27-pure]
-basepython =
- python2.7
setenv =
- PURE_PYTHON = 1
+ PURE_PYTHON=1
+commands =
+ mkdir -p {toxinidir}/parts/htmlcov
+ coverage run -m zope.testrunner --test-path=src {posargs:-vc}
+ coverage html -i
+ coverage report -i -m --fail-under=100
+
+[testenv:lint]
+basepython = python3
+skip_install = true
+deps =
+ flake8
+ check-manifest
+ check-python-versions
+commands =
+ flake8 src setup.py
+ check-manifest
+ check-python-versions
[testenv:docs]
-basepython =
- python2.7
+basepython = python3
+skip_install = false
+# Until repoze.sphinx.autointerface supports Sphinx 4.x we cannot use it:
+deps = Sphinx < 4
+commands_pre =
commands =
sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html
sphinx-build -b doctest -d docs/_build/doctrees docs docs/_build/doctest