diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6509b1eb3..6158c70e3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -69,7 +69,7 @@ repos: rev: "0.24.2" hooks: - id: check-python-versions - args: ['--only', 'setup.py,tox.ini'] + args: ['--only', 'pyproject.toml,tox.ini'] - repo: https://github.com/collective/i18ndude rev: "6.3.0" hooks: diff --git a/news/+setup-to-pyproject.internal b/news/+setup-to-pyproject.internal new file mode 100644 index 000000000..72ce34a5a --- /dev/null +++ b/news/+setup-to-pyproject.internal @@ -0,0 +1,2 @@ +Move package metadata from ``setup.py`` to ``pyproject.toml``. +[plone devs] diff --git a/pyproject.toml b/pyproject.toml index 70eb1894f..cd7bd542f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,91 @@ [build-system] requires = ["setuptools>=68.2,<83", "wheel"] +# START-MARKER-MANUAL-CONFIG +# Anything from here until END-MARKER-MANUAL-CONFIG +# will be kept by plone.meta + +[project] +name = "plone.app.layout" +version = "7.0.0a3.dev0" +description = "Layout mechanisms for Plone" +classifiers = [ + "Development Status :: 6 - Mature", + "Environment :: Web Environment", + "Framework :: Plone", + "Framework :: Plone :: 6.2", + "Framework :: Plone :: Core", + "Framework :: Zope :: 5", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", +] +license = "GPL-2.0-only" +dynamic = ["readme"] +requires-python = ">=3.10" +authors = [ + {name = "Plone Foundation",email = "plone-developers@lists.sourceforge.net"}, +] +maintainers = [ + {name = "Plone Foundation and contributors",email = "plone-developers@lists.sourceforge.net"}, +] +dependencies = [ + "Products.CMFEditions >=1.2.2", + "Products.GenericSetup", + "Products.ZCatalog", + "Products.statusmessages", + "Zope", + "lxml", + "plone.app.content", + "plone.app.dexterity", + "plone.app.linkintegrity", + "plone.app.registry", + "plone.app.relationfield", + "plone.app.uuid", + "plone.app.viewletmanager >=1.2", + "plone.app.workflow", + "plone.autoform", + "plone.base >=4.0.0a1", + "plone.dexterity", + "plone.formwidget.namedfile", + "plone.i18n", + "plone.memoize", + "plone.portlets", + "plone.protect", + "z3c.form", +] +keywords = ["plone", "layout", "viewlet"] + +[project.optional-dependencies] +test = [ + "plone.app.contenttypes[test]", + "plone.app.linkintegrity", + "plone.app.relationfield", + "plone.app.robotframework", + "plone.app.testing", + "plone.app.textfield", + "plone.browserlayer", + "plone.dexterity", + "plone.locking", + "plone.testing", + "robotsuite", + "z3c.relationfield", + "zc.relation", + "zope.intid", +] + +[project.urls] +Source = "https://github.com/plone/plone.app.layout" +Issues = "https://github.com/plone/Products.CMFPlone/issues" +Changelog = "https://github.com/plone/plone.app.layout/blob/master/CHANGES.rst" +[tool.setuptools.dynamic] +readme = {file = ["README.rst", "CHANGES.rst"]} +# END-MARKER-MANUAL-CONFIG [tool.towncrier] directory = "news/" diff --git a/setup.py b/setup.py index b3f502d64..d5dbbc6f2 100644 --- a/setup.py +++ b/setup.py @@ -1,85 +1,4 @@ -from pathlib import Path from setuptools import setup -version = "7.0.0a3.dev0" - -long_description = ( - f"{Path('README.rst').read_text()}\n{Path('CHANGES.rst').read_text()}" -) - -setup( - name="plone.app.layout", - version=version, - description="Layout mechanisms for Plone", - long_description=long_description, - long_description_content_type="text/x-rst", - # Get more strings from - # https://pypi.org/classifiers/ - classifiers=[ - "Development Status :: 6 - Mature", - "Environment :: Web Environment", - "Framework :: Plone", - "Framework :: Plone :: 6.2", - "Framework :: Plone :: Core", - "Framework :: Zope :: 5", - "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", - "Operating System :: OS Independent", - "Programming Language :: Python", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", - "Programming Language :: Python :: 3.14", - ], - keywords="plone layout viewlet", - author="Plone Foundation", - author_email="plone-developers@lists.sourceforge.net", - url="https://pypi.org/project/plone.app.layout", - license="GPL version 2", - include_package_data=True, - zip_safe=False, - python_requires=">=3.10", - install_requires=[ - "lxml", - "plone.app.content", - "plone.app.dexterity", - "plone.app.linkintegrity", - "plone.app.registry", - "plone.app.relationfield", - "plone.app.workflow", - "plone.app.uuid", - "plone.app.viewletmanager >=1.2", - "plone.autoform", - "plone.base >=4.0.0a1", - "plone.dexterity", - "plone.formwidget.namedfile", - "plone.i18n", - "plone.memoize", - "plone.portlets", - "plone.protect", - "Products.CMFEditions >=1.2.2", - "Products.GenericSetup", - "Products.statusmessages", - "Products.ZCatalog", - "z3c.form", - "Zope", - ], - extras_require=dict( - test=[ - "plone.app.contenttypes[test]", - "plone.app.linkintegrity", - "plone.app.relationfield", - "plone.app.robotframework", - "plone.app.testing", - "plone.app.textfield", - "plone.browserlayer", - "plone.dexterity", - "plone.locking", - "plone.testing", - "robotsuite", - "z3c.relationfield", - "zc.relation", - "zope.intid", - ] - ), -) +# See pyproject.toml for package metadata +setup()