summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Vagelpohl <jens@plyp.com>2022-11-02 11:20:09 +0100
committerJens Vagelpohl <jens@plyp.com>2022-11-02 11:20:09 +0100
commit70ca5531d543ef02fd240ece6eede8c67c9fe01e (patch)
treea5a58b21642dfae3ac731fabb15cf9d503adfb9f
parent51cbb57e61e330d3a30656a1552ebad7c9ee737c (diff)
downloadzope-proxy-70ca5531d543ef02fd240ece6eede8c67c9fe01e.tar.gz
- update to latest meta/config and add support for Python 3.11
-rw-r--r--.github/workflows/tests.yml38
-rwxr-xr-x.manylinux-install.sh11
-rw-r--r--.meta.toml4
-rw-r--r--CHANGES.rst4
-rw-r--r--appveyor.yml4
-rw-r--r--setup.py3
-rw-r--r--tox.ini3
7 files changed, 55 insertions, 12 deletions
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index c0bb016..bdecefe 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -105,6 +105,7 @@ jobs:
- "3.8"
- "3.9"
- "3.10"
+ - "3.11"
os: [ubuntu-20.04, macos-latest]
exclude:
- os: macos-latest
@@ -130,7 +131,7 @@ jobs:
- name: Get pip cache dir
id: pip-cache
run: |
- echo "::set-output name=dir::$(pip cache dir)"
+ echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
- name: pip cache
uses: actions/cache@v2
@@ -153,6 +154,16 @@ jobs:
pip install -U pip
pip install -U setuptools wheel twine cffi
+ - name: Build zope.proxy (3.11)
+ if: ${{ startsWith(matrix.python-version, '3.11') }}
+ run: |
+ # Next, build the wheel *in place*. This helps ccache, and also lets us cache the configure
+ # output (pip install uses a random temporary directory, making this difficult).
+ python setup.py build_ext -i
+ python setup.py bdist_wheel
+ # Also install it, so that we get dependencies in the (pip) cache.
+ pip install -U 'faulthandler; python_version == "2.7" and platform_python_implementation == "CPython"'
+ pip install --pre .[test]
- name: Build zope.proxy (Python 3.10 on MacOS)
if: >
startsWith(runner.os, 'Mac')
@@ -199,6 +210,7 @@ jobs:
&& startsWith(github.ref, 'refs/tags')
&& startsWith(runner.os, 'Mac')
&& !startsWith(matrix.python-version, 'pypy')
+ && !startsWith(matrix.python-version, '3.11')
env:
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
run: |
@@ -220,6 +232,7 @@ jobs:
- "3.8"
- "3.9"
- "3.10"
+ - "3.11"
os: [ubuntu-20.04, macos-latest]
exclude:
- os: macos-latest
@@ -245,7 +258,7 @@ jobs:
- name: Get pip cache dir
id: pip-cache
run: |
- echo "::set-output name=dir::$(pip cache dir)"
+ echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
- name: pip cache
uses: actions/cache@v2
@@ -260,7 +273,21 @@ jobs:
with:
name: zope.proxy-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/
+ - name: Install zope.proxy 3.11
+ if: ${{ startsWith(matrix.python-version, '3.11') }}
+ run: |
+ pip install -U wheel setuptools
+ # coverage has a wheel on PyPI for a future python version which is
+ # not ABI compatible with the current one, so build it from sdist:
+ pip install -U --no-binary :all: coverage
+ pip install -U 'faulthandler; python_version == "2.7" and platform_python_implementation == "CPython"'
+ # Unzip into src/ so that testrunner can find the .so files
+ # when we ask it to load tests from that directory. This
+ # might also save some build time?
+ unzip -n dist/zope.proxy-*whl -d src
+ pip install --pre -U -e .[test]
- name: Install zope.proxy
+ if: ${{ !startsWith(matrix.python-version, '3.11') }}
run: |
pip install -U wheel setuptools
pip install -U coverage
@@ -322,7 +349,7 @@ jobs:
- name: Get pip cache dir
id: pip-cache
run: |
- echo "::set-output name=dir::$(pip cache dir)"
+ echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
- name: pip cache
uses: actions/cache@v2
@@ -373,7 +400,7 @@ jobs:
- name: Get pip cache dir
id: pip-cache
run: |
- echo "::set-output name=dir::$(pip cache dir)"
+ echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
- name: pip cache
uses: actions/cache@v2
@@ -403,6 +430,7 @@ jobs:
manylinux:
runs-on: ubuntu-20.04
+ if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
# We use a regular Python matrix entry to share as much code as possible.
strategy:
matrix:
@@ -425,7 +453,7 @@ jobs:
- name: Get pip cache dir
id: pip-cache
run: |
- echo "::set-output name=dir::$(pip cache dir)"
+ echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
- name: pip cache
uses: actions/cache@v2
diff --git a/.manylinux-install.sh b/.manylinux-install.sh
index 0c1e237..2c14215 100755
--- a/.manylinux-install.sh
+++ b/.manylinux-install.sh
@@ -30,6 +30,7 @@ tox_env_map() {
case $1 in
*"cp27"*) echo 'py27';;
*"cp35"*) echo 'py35';;
+ *"cp311"*) echo 'py311';;
*"cp36"*) echo 'py36';;
*"cp37"*) echo 'py37';;
*"cp38"*) echo 'py38';;
@@ -44,13 +45,19 @@ for PYBIN in /opt/python/*/bin; do
if \
[[ "${PYBIN}" == *"cp27"* ]] || \
[[ "${PYBIN}" == *"cp35"* ]] || \
+ [[ "${PYBIN}" == *"cp311"* ]] || \
[[ "${PYBIN}" == *"cp36"* ]] || \
[[ "${PYBIN}" == *"cp37"* ]] || \
[[ "${PYBIN}" == *"cp38"* ]] || \
[[ "${PYBIN}" == *"cp39"* ]] || \
[[ "${PYBIN}" == *"cp310"* ]] ; then
- "${PYBIN}/pip" install -e /io/
- "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+ if [[ "${PYBIN}" == *"cp311"* ]] ; then
+ "${PYBIN}/pip" install --pre -e /io/
+ "${PYBIN}/pip" wheel /io/ --pre -w wheelhouse/
+ else
+ "${PYBIN}/pip" install -e /io/
+ "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+ fi
if [ `uname -m` == 'aarch64' ]; then
cd /io/
${PYBIN}/pip install tox
diff --git a/.meta.toml b/.meta.toml
index f05fff4..60df8c2 100644
--- a/.meta.toml
+++ b/.meta.toml
@@ -2,13 +2,13 @@
# https://github.com/zopefoundation/meta/tree/master/config/c-code
[meta]
template = "c-code"
-commit-id = "5c53fd90b1a529f2d1d4ed361d3bfa646520ba58"
+commit-id = "70229255d495a945324228b50ee735cc75e01430"
[python]
with-appveyor = true
with-windows = false
with-pypy = true
-with-future-python = false
+with-future-python = true
with-legacy-python = true
with-docs = true
with-sphinx-doctests = true
diff --git a/CHANGES.rst b/CHANGES.rst
index 2ad7531..4ed8b4d 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -2,10 +2,10 @@
Changes
=========
-4.5.2 (unreleased)
+4.6.0 (unreleased)
==================
-- Nothing changed yet.
+- Add support for Python 3.11.
4.5.1 (2022-09-15)
diff --git a/appveyor.yml b/appveyor.yml
index 720d642..eeaf5c3 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -23,6 +23,10 @@ environment:
- python: 39-x64
- python: 310
- python: 310-x64
+ # `multibuild` cannot install non-final versions as they are not on
+ # ftp.python.org, so we skip Python 3.11 until its final release:
+ - python: 311
+ - python: 311-x64
install:
- "SET PYTHONVERSION=%PYTHON%"
diff --git a/setup.py b/setup.py
index 8b9cb66..1b28c78 100644
--- a/setup.py
+++ b/setup.py
@@ -80,7 +80,7 @@ else:
headers = [os.path.join('src', 'zope', 'proxy', 'proxy.h')]
setup(name='zope.proxy',
- version='4.5.2.dev0',
+ version='4.6.0.dev0',
author='Zope Foundation and Contributors',
author_email='zope-dev@zope.org',
description='Generic Transparent Proxies',
@@ -105,6 +105,7 @@ setup(name='zope.proxy',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
+ 'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
'Framework :: Zope :: 3',
diff --git a/tox.ini b/tox.ini
index 768e3e7..3767cb4 100644
--- a/tox.ini
+++ b/tox.ini
@@ -11,6 +11,7 @@ envlist =
py38,py38-pure
py39,py39-pure
py310,py310-pure
+ py311,py311-pure
pypy
pypy3
docs
@@ -18,7 +19,9 @@ envlist =
[testenv]
usedevelop = true
+pip_pre = py311: true
deps =
+ Sphinx
setenv =
pure: PURE_PYTHON=1
!pure-!pypy-!pypy3: PURE_PYTHON=0