From 2b1af462d95aaace4b30168e043e06afd21da552 Mon Sep 17 00:00:00 2001 From: Maurits van Rees Date: Sun, 19 Jan 2025 00:16:48 +0100 Subject: [PATCH 1/2] Fix DeprecationWarnings. --- news/4090.bugfix | 1 + plone/namedfile/picture.py | 7 +------ plone/namedfile/scaling.zcml | 2 +- plone/namedfile/utils/__init__.py | 5 +---- setup.py | 2 +- 5 files changed, 5 insertions(+), 12 deletions(-) create mode 100644 news/4090.bugfix diff --git a/news/4090.bugfix b/news/4090.bugfix new file mode 100644 index 00000000..8528aefb --- /dev/null +++ b/news/4090.bugfix @@ -0,0 +1 @@ +Fix DeprecationWarnings. [maurits] diff --git a/plone/namedfile/picture.py b/plone/namedfile/picture.py index 14ea65bb..d9e42413 100644 --- a/plone/namedfile/picture.py +++ b/plone/namedfile/picture.py @@ -1,5 +1,6 @@ from bs4 import BeautifulSoup from plone.app.uuid.utils import uuidToObject +from plone.base.interfaces import IImagingSchema from plone.namedfile.interfaces import IAvailableSizes from plone.registry.interfaces import IRegistry from zope.component import getUtility @@ -9,12 +10,6 @@ import re -try: - from plone.base.interfaces import IImagingSchema -except ImportError: - from Products.CMFPlone.interfaces.controlpanel import IImagingSchema - - logger = logging.getLogger(__name__) appendix_re = re.compile("^(.*)([?#].*)$") resolveuid_re = re.compile("^[./]*resolve[Uu]id/([^/]*)/?(.*)$") diff --git a/plone/namedfile/scaling.zcml b/plone/namedfile/scaling.zcml index f90ac013..034213cd 100644 --- a/plone/namedfile/scaling.zcml +++ b/plone/namedfile/scaling.zcml @@ -29,7 +29,7 @@ diff --git a/plone/namedfile/utils/__init__.py b/plone/namedfile/utils/__init__.py index a2ccf851..79229f28 100644 --- a/plone/namedfile/utils/__init__.py +++ b/plone/namedfile/utils/__init__.py @@ -2,6 +2,7 @@ from io import BytesIO from io import FileIO from logging import getLogger +from plone.base.interfaces import IImagingSchema from plone.namedfile.interfaces import IBlobby from plone.namedfile.utils.jpeg_utils import process_jpeg from plone.namedfile.utils.png_utils import process_png @@ -25,10 +26,6 @@ log = getLogger(__name__) -try: - from plone.base.interfaces.controlpanel import IImagingSchema -except ImportError: - from Products.CMFPlone.interfaces.controlpanel import IImagingSchema try: # Zope 5.8.6+ diff --git a/setup.py b/setup.py index b79102b0..49d3a72a 100644 --- a/setup.py +++ b/setup.py @@ -67,7 +67,7 @@ "plone.app.testing", "lxml", "Pillow", - "plone.testing[z2]", + "plone.testing", ], }, ) From b7aac9f762d309c74de6b644325d81c302cc9a51 Mon Sep 17 00:00:00 2001 From: Maurits van Rees Date: Mon, 20 Jan 2025 21:39:12 +0100 Subject: [PATCH 2/2] Drop support for Plone 5.2. Bumped version for breaking release. --- .github/workflows/tests.yml | 13 ++++++++----- news/4090.breaking | 1 + requirements-52.txt | 4 ---- requirements-61.txt | 7 +++++++ setup.py | 10 +++++----- sources-52.ini | 19 ------------------- sources-61.ini | 11 +++++++++++ tox.ini | 22 +++++++++++++--------- 8 files changed, 45 insertions(+), 42 deletions(-) create mode 100644 news/4090.breaking delete mode 100644 requirements-52.txt create mode 100644 requirements-61.txt delete mode 100644 sources-52.ini create mode 100644 sources-61.ini diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4f052910..2680dc3f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,22 +12,25 @@ jobs: matrix: config: # [Python version, tox env] - - ["3.7", "plone52-py37"] - - ["3.8", "plone52-py38"] - - ["3.8", "plone60-py38"] - ["3.9", "plone60-py39"] - ["3.10", "plone60-py310"] - ["3.11", "plone60-py311"] + - ["3.12", "plone60-py312"] + - ["3.13", "plone60-py313"] + - ["3.10", "plone61-py310"] + - ["3.11", "plone61-py311"] + - ["3.12", "plone61-py312"] + - ["3.13", "plone61-py313"] runs-on: ubuntu-latest name: ${{ matrix.config[1] }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.config[0] }} - name: Pip cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ matrix.config[0] }}-${{ hashFiles('setup.*', 'tox.ini') }} diff --git a/news/4090.breaking b/news/4090.breaking new file mode 100644 index 00000000..f1c320ca --- /dev/null +++ b/news/4090.breaking @@ -0,0 +1 @@ +Drop support for Plone 5.2. [maurits] diff --git a/requirements-52.txt b/requirements-52.txt deleted file mode 100644 index 95d53f8b..00000000 --- a/requirements-52.txt +++ /dev/null @@ -1,4 +0,0 @@ --e .[test] -zope.testrunner ---pre --c https://dist.plone.org/release/5.2-dev/constraints.txt diff --git a/requirements-61.txt b/requirements-61.txt new file mode 100644 index 00000000..833b91cb --- /dev/null +++ b/requirements-61.txt @@ -0,0 +1,7 @@ +-e .[test] +zope.testrunner +# Somehow the Zope[wsgi] dependency of CMFPlone is not pulled in, making all tests fail. +# So include it explicitly for now. +Zope[wsgi] +--pre +-c https://dist.plone.org/release/6.1-dev/constraints.txt diff --git a/setup.py b/setup.py index 49d3a72a..f3338ca3 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ import os -version = "6.4.1.dev0" +version = "7.0.0.dev0" description = "File types and fields for images, files and blob files with filenames" long_description = "\n\n".join( @@ -24,15 +24,15 @@ classifiers=[ "Development Status :: 5 - Production/Stable", "Framework :: Plone", - "Framework :: Plone :: 5.2", "Framework :: Plone :: 6.0", + "Framework :: Plone :: 6.1", "Framework :: Plone :: Core", "Programming Language :: Python", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries :: Python Modules", "License :: OSI Approved :: BSD License", ], @@ -45,7 +45,7 @@ namespace_packages=["plone"], include_package_data=True, zip_safe=False, - python_requires=">=3.7", + python_requires=">=3.8", install_requires=[ "persistent", "piexif", diff --git a/sources-52.ini b/sources-52.ini deleted file mode 100644 index 2474738a..00000000 --- a/sources-52.ini +++ /dev/null @@ -1,19 +0,0 @@ -[settings] -# This is a mxdev configuration file -# -# available options are documented at -# https://pypi.org/project/mxdev/ - -requirements-in = requirements-52.txt -requirements-out = requirements-52-mxdev.txt -constraints-out = constraints-52-mxdev.txt -ignores = - plone.namedfile - plone.scale -version-overrides = - # We need the unrestricted=True option: - plone.app.uuid==2.2.1 - -# [plone.scale] -# url = https://github.com/plone/plone.scale.git -# branch = master diff --git a/sources-61.ini b/sources-61.ini new file mode 100644 index 00000000..cd5725c2 --- /dev/null +++ b/sources-61.ini @@ -0,0 +1,11 @@ +[settings] +# This is a mxdev configuration file +# +# available options are documented at +# https://pypi.org/project/mxdev/ + +requirements-in = requirements-61.txt +requirements-out = requirements-61-mxdev.txt +constraints-out = constraints-61-mxdev.txt +ignores = + plone.namedfile diff --git a/tox.ini b/tox.ini index e303afaa..756360f0 100644 --- a/tox.ini +++ b/tox.ini @@ -1,11 +1,14 @@ [tox] envlist = - plone52-py37, - plone52-py38, - plone60-py38, plone60-py39, plone60-py310, plone60-py311, + plone60-py312, + plone60-py313, + plone61-py310, + plone61-py311, + plone61-py312, + plone61-py313, skip_missing_interpreters = False @@ -17,15 +20,16 @@ commands = pip list zope-testrunner --test-path={toxinidir} -s plone.namedfile {posargs:-vc} -[testenv:plone52-py{37,38}] +[testenv:plone60-py{39,310,311,312,313}] commands_pre = + pip install -U pip pip install -U --pre mxdev - mxdev -c sources-52.ini - pip install --use-deprecated legacy-resolver -rrequirements-52-mxdev.txt + mxdev -c sources-60.ini + pip install -rrequirements-60-mxdev.txt -[testenv:plone60-py{38,39,310,311}] +[testenv:plone61-py{310,311,312,313}] commands_pre = pip install -U pip pip install -U --pre mxdev - mxdev -c sources-60.ini - pip install -rrequirements-60-mxdev.txt + mxdev -c sources-61.ini + pip install -rrequirements-61-mxdev.txt