Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: zopefoundation/persistent
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6.0
Choose a base ref
...
head repository: zopefoundation/persistent
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 6.1
Choose a head ref
  • 19 commits
  • 27 files changed
  • 3 contributors

Commits on May 29, 2024

  1. fix: remove '#else' and following Py2 definitions

    The '#else' would've actually bound to the '#ifndef' at the top of
    the module, resulting in breakage if the header ever got included
    multiple times.
    tseaver committed May 29, 2024

    Verified

    This commit was signed with the committer’s verified signature.
    tseaver Tres Seaver
    Copy the full SHA
    30635f9 View commit details

Commits on May 30, 2024

  1. - vb [ci skip]

    dataflake committed May 30, 2024

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    dataflake Jens Vagelpohl
    Copy the full SHA
    937218e View commit details

Commits on May 31, 2024

  1. Merge pull request #203 from zopefoundation/tseaver-fix_compat_header

    fix: remove '#else' and following Py2 definitions
    tseaver authored May 31, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    83c39c6 View commit details

Commits on Aug 26, 2024

  1. Update docs/conf.py to Sphinx 8.

    icemac committed Aug 26, 2024

    Verified

    This commit was signed with the committer’s verified signature.
    icemac Michael Howitz
    Copy the full SHA
    7363695 View commit details
  2. - Run the latest meta/config template

    dataflake committed Aug 26, 2024

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    dataflake Jens Vagelpohl
    Copy the full SHA
    3be40d8 View commit details
  3. Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    dataflake Jens Vagelpohl
    Copy the full SHA
    282244b View commit details
  4. - remove appveyor references

    dataflake committed Aug 26, 2024

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    dataflake Jens Vagelpohl
    Copy the full SHA
    556aa9f View commit details

Commits on Aug 27, 2024

  1. Merge pull request #205 from zopefoundation/config-with-c-code-templa…

    …te-9e2b2911
    
    Run the latest meta/config template
    dataflake authored Aug 27, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    91013f9 View commit details

Commits on Aug 28, 2024

  1. - fix local tox coverage configuration

    dataflake committed Aug 28, 2024

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    dataflake Jens Vagelpohl
    Copy the full SHA
    149c88e View commit details
  2. ci: fix Windows setuptools / cffi breakage (#207)

    tseaver authored Aug 28, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    8dfa5a3 View commit details

Commits on Aug 30, 2024

  1. - silence Sphinx warning [ci skip]

    dataflake committed Aug 30, 2024

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    dataflake Jens Vagelpohl
    Copy the full SHA
    12fd1cc View commit details

Commits on Sep 4, 2024

  1. fix: remove 'simple_new' fossil (#208)

    Closees #206.
    tseaver authored Sep 4, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    b70746b View commit details
  2. chore: garden changelog

    tseaver committed Sep 4, 2024

    Verified

    This commit was signed with the committer’s verified signature.
    tseaver Tres Seaver
    Copy the full SHA
    7724937 View commit details

Commits on Sep 6, 2024

  1. Version 6 was released but still supporting this BBB import.

    icemac authored Sep 6, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    7297f4f View commit details

Commits on Sep 9, 2024

  1. Update to master of meta/config (#209)

    icemac authored Sep 9, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    29f2721 View commit details

Commits on Sep 16, 2024

  1. - update to latest meta/config, declare final Python 3.13 support

    dataflake committed Sep 16, 2024

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    dataflake Jens Vagelpohl
    Copy the full SHA
    8088a17 View commit details
  2. - due to skipped tests coverage on pypy is just 95%

    dataflake committed Sep 16, 2024

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    dataflake Jens Vagelpohl
    Copy the full SHA
    6a52fc0 View commit details

Commits on Sep 17, 2024

  1. Merge pull request #210 from zopefoundation/config-with-c-code-templa…

    …te-a7193216
    
    Update to latest meta/config, declare final Python 3.13 support
    dataflake authored Sep 17, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    f0677f1 View commit details
  2. - prepare release 6.1

    dataflake committed Sep 17, 2024

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    dataflake Jens Vagelpohl
    Copy the full SHA
    69681c4 View commit details
32 changes: 0 additions & 32 deletions .coveragerc

This file was deleted.

33 changes: 33 additions & 0 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Generated from:
# https://github.com/zopefoundation/meta/tree/master/config/c-code
name: pre-commit

on:
pull_request:
push:
branches:
- master
# Allow to run this workflow manually from the Actions tab
workflow_dispatch:

env:
FORCE_COLOR: 1

jobs:
pre-commit:
name: linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x
- uses: pre-commit/action@v3.0.1
with:
extra_args: --all-files --show-diff-on-failure
env:
PRE_COMMIT_COLOR: always
- uses: pre-commit-ci/lite-action@v1.0.2
if: always()
with:
msg: Apply pre-commit code formatting
117 changes: 9 additions & 108 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@
# Original comment follows.
###
###
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# This workflow will install Python dependencies, run tests with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
###

@@ -81,7 +81,7 @@ jobs:
# other people to test/debug), the strategy is to divide the process
# into several different jobs. The first builds and saves the binary
# wheels. It has dependent jobs that download and install the wheel
# to run tests, build docs, and perform linting. Building the
# to run tests, and build docs. Building the
# manylinux wheels is an independent set of jobs.
#
# This division is time-saving for projects that take awhile to
@@ -152,17 +152,10 @@ jobs:
restore-keys: |
${{ runner.os }}-pip-
- name: Install Build Dependencies (3.13)
if: matrix.python-version == '3.13'
run: |
pip install -U pip
pip install -U --pre cffi
pip install -U "setuptools<69" wheel twine
- name: Install Build Dependencies
if: matrix.python-version != '3.13'
run: |
pip install -U pip
pip install -U "setuptools<69" wheel twine
pip install -U "setuptools <74" wheel twine
pip install cffi
- name: Build persistent (macOS x86_64)
@@ -201,15 +194,7 @@ jobs:
python setup.py build_ext -i
python setup.py bdist_wheel
- name: Install persistent and dependencies (3.13)
if: matrix.python-version == '3.13'
run: |
# Install to collect dependencies into the (pip) cache.
# Use "--pre" here because dependencies with support for this future
# Python release may only be available as pre-releases
pip install --pre .[test]
- name: Install persistent and dependencies
if: matrix.python-version != '3.13'
run: |
# Install to collect dependencies into the (pip) cache.
pip install .[test]
@@ -252,7 +237,6 @@ jobs:
&& startsWith(github.ref, 'refs/tags')
&& !startsWith(runner.os, 'Linux')
&& !startsWith(matrix.python-version, 'pypy')
&& !startsWith(matrix.python-version, '3.13')
env:
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
run: |
@@ -326,32 +310,16 @@ jobs:
with:
name: persistent-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/
- name: Install persistent ${{ matrix.python-version }}
if: matrix.python-version == '3.13'
run: |
pip install -U --pre cffi
pip install -U wheel "setuptools<69"
# coverage might have 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
# 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/persistent-*whl -d src
# Use "--pre" here because dependencies with support for this future
# Python release may only be available as pre-releases
pip install --pre -U -e .[test]
- name: Install persistent
if: matrix.python-version != '3.13'
run: |
pip install -U wheel "setuptools<69"
pip install -U coverage
pip install -U wheel "setuptools <74"
pip install -U coverage[toml]
pip install -U 'cffi; 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/persistent-*whl -d src
pip install -U -e .[test]
pip install -e .[test]
- name: Run tests with C extensions
if: ${{ !startsWith(matrix.python-version, 'pypy') }}
run: |
@@ -387,7 +355,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ["3.9"]
python-version: ["3.11"]
os: [ubuntu-latest]

steps:
@@ -442,7 +410,7 @@ jobs:
- name: Install persistent
run: |
pip install -U wheel
pip install -U coverage
pip install -U coverage[toml]
pip install -U "`ls dist/persistent-*.whl`[docs]"
- name: Build docs
env:
@@ -451,80 +419,13 @@ jobs:
sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html
sphinx-build -b doctest -d docs/_build/doctrees docs docs/_build/doctest
lint:
needs: build-package
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ["3.9"]
os: [ubuntu-latest]

steps:
- name: checkout
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
###
# Caching.
# This actually *restores* a cache and schedules a cleanup action
# to save the cache. So it must come before the thing we want to use
# the cache.
###
- name: Get pip cache dir (default)
id: pip-cache-default
if: ${{ !startsWith(runner.os, 'Windows') }}
run: |
echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
- name: Get pip cache dir (Windows)
id: pip-cache-windows
if: ${{ startsWith(runner.os, 'Windows') }}
run: |
echo "dir=$(pip cache dir)" >> $Env:GITHUB_OUTPUT
- name: pip cache (default)
uses: actions/cache@v4
if: ${{ !startsWith(runner.os, 'Windows') }}
with:
path: ${{ steps.pip-cache-default.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
restore-keys: |
${{ runner.os }}-pip-
- name: pip cache (Windows)
uses: actions/cache@v4
if: ${{ startsWith(runner.os, 'Windows') }}
with:
path: ${{ steps.pip-cache-windows.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
restore-keys: |
${{ runner.os }}-pip-
- name: Download persistent wheel
uses: actions/download-artifact@v4
with:
name: persistent-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/
- name: Install persistent
run: |
pip install -U pip
pip install -U wheel
pip install -U `ls dist/persistent-*`[test]
- name: Lint
run: |
pip install -U tox
tox -e lint
manylinux:
runs-on: ubuntu-latest
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:
python-version: ["3.9"]
python-version: ["3.11"]
image: [manylinux2014_x86_64, manylinux2014_i686, manylinux2014_aarch64]

steps:
19 changes: 7 additions & 12 deletions .manylinux-install.sh
Original file line number Diff line number Diff line change
@@ -28,32 +28,27 @@ yum -y install libffi-devel

tox_env_map() {
case $1 in
*"cp313"*) echo 'py313';;
*"cp38"*) echo 'py38';;
*"cp39"*) echo 'py39';;
*"cp310"*) echo 'py310';;
*"cp311"*) echo 'py311';;
*"cp312"*) echo 'py312';;
*"cp313"*) echo 'py313';;
*) echo 'py';;
esac
}

# Compile wheels
for PYBIN in /opt/python/*/bin; do
if \
[[ "${PYBIN}" == *"cp313/"* ]] || \
[[ "${PYBIN}" == *"cp311/"* ]] || \
[[ "${PYBIN}" == *"cp312/"* ]] || \
[[ "${PYBIN}" == *"cp38/"* ]] || \
[[ "${PYBIN}" == *"cp39/"* ]] || \
[[ "${PYBIN}" == *"cp310/"* ]] ; then
if [[ "${PYBIN}" == *"cp313/"* ]] ; 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
[[ "${PYBIN}" == *"cp310/"* ]] || \
[[ "${PYBIN}" == *"cp311/"* ]] || \
[[ "${PYBIN}" == *"cp312/"* ]] || \
[[ "${PYBIN}" == *"cp313/"* ]] ; then
"${PYBIN}/pip" install -e /io/
"${PYBIN}/pip" wheel /io/ -w wheelhouse/
if [ `uname -m` == 'aarch64' ]; then
cd /io/
${PYBIN}/pip install tox
14 changes: 5 additions & 9 deletions .meta.toml
Original file line number Diff line number Diff line change
@@ -2,13 +2,12 @@
# https://github.com/zopefoundation/meta/tree/master/config/c-code
[meta]
template = "c-code"
commit-id = "73f176ee"
commit-id = "32ea0a11"

[python]
with-appveyor = false
with-windows = true
with-pypy = true
with-future-python = true
with-future-python = false
with-docs = true
with-sphinx-doctests = true
with-macos = false
@@ -19,18 +18,15 @@ coverage-command = [
"coverage run -m zope.testrunner --test-path=src {posargs:-vc}",
"python -c 'import os, subprocess; subprocess.check_call(\"coverage run -a -m zope.testrunner --test-path=src\", env=dict(os.environ, PURE_PYTHON=\"0\"), shell=True)'",
]
testenv-deps = [
"py37: urllib3 < 2",
]

[coverage]
fail-under = 99.8
fail-under = 95

[coverage-run]
source = "src/persistent"
source = "persistent"
additional-config = [
"omit =",
" src/persistent/_ring_build.py",
" _ring_build.py",
]

[manifest]
28 changes: 28 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Generated from:
# https://github.com/zopefoundation/meta/tree/master/config/c-code
minimum_pre_commit_version: '3.6'
repos:
- repo: https://github.com/pycqa/isort
rev: "5.13.2"
hooks:
- id: isort
- repo: https://github.com/hhatto/autopep8
rev: "v2.3.1"
hooks:
- id: autopep8
args: [--in-place, --aggressive, --aggressive]
- repo: https://github.com/asottile/pyupgrade
rev: v3.17.0
hooks:
- id: pyupgrade
args: [--py38-plus]
- repo: https://github.com/isidentical/teyit
rev: 0.4.3
hooks:
- id: teyit
- repo: https://github.com/PyCQA/flake8
rev: "7.1.1"
hooks:
- id: flake8
additional_dependencies:
- flake8-debugger == 4.1.2
8 changes: 8 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -2,6 +2,14 @@
``persistent`` Changelog
==========================

6.1 (2024-09-17)
================

- Add final support for Python 3.13.

- Removed ``persisent.cPersistence.simple_new`` fossil.
See https://github.com/zopefoundation/persistent/pull/208

6.0 (2024-05-30)
================

2 changes: 1 addition & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@ include *.rst
include *.txt
include buildout.cfg
include tox.ini
include .coveragerc
include .pre-commit-config.yaml

recursive-include docs *.py
recursive-include docs *.rst
Loading