From: Jeremy Stanley Date: Thu, 26 May 2022 16:50:08 +0000 (+0000) Subject: Move SetupTools metadata into pyproject.toml X-Git-Url: https://mudpy.org/gitweb?a=commitdiff_plain;h=e6f6c65d4c05325b90f43fab711f92d590a5c162;p=mudpy.git Move SetupTools metadata into pyproject.toml SetupTools 61 adds experimental support for reading metadata from pyproject.toml files instead of traditional setup.py or setup.cfg. PBR still seems to require the package name in setup.cfg for now, but otherwise hollow this file out moving everything to the new solution. Because this is experimental, silence a warning from SetupTools which states that. Also work around newer SetupTools complaints about namespace packages included as data by informing it that mudpy.tests and mudpy.tests.fixtures are included modules even though they really aren't. --- diff --git a/pyproject.toml b/pyproject.toml index 01b888b..e03fc14 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,5 +3,54 @@ # provided in the LICENSE file distributed with this software. [build-system] -requires = ["pbr>=5.8.0", "setuptools>=36.6.0"] +requires = ["pbr>=5.8", "setuptools>=61"] build-backend = "pbr.build" + +[project] +authors = [{email = "fungi@yuggoth.org"}, {name = "Jeremy Stanley"}] +classifiers = [ + "License :: OSI Approved :: ISC License (ISCL)", + "Operating System :: POSIX", + "Operating System :: Unix", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "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 :: Only", + "Topic :: Communications", + "Topic :: Communications :: BBS", + "Topic :: Communications :: Chat", + "Topic :: Games/Entertainment", + "Topic :: Games/Entertainment :: Multi-User Dungeons (MUD)", + "Topic :: Games/Entertainment :: Role-Playing", + "Topic :: Internet", +] +dependencies = ["passlib>=1.7", "pyyaml"] +description = "The mudpy MUD server engine." +dynamic = ["version"] +keywords = ["game", "mud", "telnet"] +maintainers = [{email = "fungi@yuggoth.org"}, {name = "Jeremy Stanley"}] +name = "mudpy" +readme = {charset = "UTF-8", content-type = "text/x-rst", file = "README"} +requires-python = ">=3.7" + +[project.scripts] +mudpy = "mudpy.daemon:main" +mudpy_selftest = "mudpy.tests.selftest:main" + +[project.urls] +"Big ChangeLog" = "https://mudpy.org/clog/mudpy/" +"Browse Source" = "https://mudpy.org/code/mudpy/" +"Bug Reporting" = "https://mudpy.org/bugs/mudpy/" +"Documentation" = "https://mudpy.org/docs/mudpy/" +"Git Clone URL" = "https://mudpy.org/code/mudpy/" +"License Texts" = "https://mudpy.org/license/" +"Release Files" = "https://mudpy.org/dist/mudpy/" + +[tool.setuptools] +# Silence a warning about namespace packages included as data because we ship +# subdirectories inside the mudpy package tree +packages = ["mudpy", "mudpy.tests", "mudpy.tests.fixtures"] diff --git a/setup.cfg b/setup.cfg index deccc06..f6b4429 100644 --- a/setup.cfg +++ b/setup.cfg @@ -4,54 +4,3 @@ [metadata] name = mudpy -summary = The mudpy MUD server engine. -long_description = file: README -long_description_content_type = text/x-rst; charset=UTF-8 -author = Jeremy Stanley -author_email = fungi@yuggoth.org -url = https://mudpy.org/ -project_urls = - Big ChangeLog = https://mudpy.org/clog/mudpy/ - Browse Source = https://mudpy.org/code/mudpy/ - Bug Reporting = https://mudpy.org/bugs/mudpy/ - Documentation = https://mudpy.org/docs/mudpy/ - Git Clone URL = https://mudpy.org/code/mudpy/ - License Texts = https://mudpy.org/license/ - Release Files = https://mudpy.org/dist/mudpy/ -keywords = mud game telnet -license = ISC License (ISCL) -platforms = POSIX/Unix -classifiers = - License :: OSI Approved :: ISC License (ISCL) - Operating System :: POSIX - Operating System :: Unix - Programming Language :: Python - Programming Language :: Python :: 3 - 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 :: Only - Topic :: Communications - Topic :: Communications :: BBS - Topic :: Communications :: Chat - Topic :: Games/Entertainment - Topic :: Games/Entertainment :: Multi-User Dungeons (MUD) - Topic :: Games/Entertainment :: Role-Playing - Topic :: Internet - -[options] -install_requires = - passlib>=1.7 - pyyaml -python_requires = >=3.7 - -[files] -packages = - mudpy - -[entry_points] -console_scripts = - mudpy = mudpy.daemon:main - mudpy_selftest = mudpy.tests.selftest:main diff --git a/tox.ini b/tox.ini index 61d1cd3..11e535f 100644 --- a/tox.ini +++ b/tox.ini @@ -53,6 +53,11 @@ basepython = python3 # setuptools._deprecation_warning.SetuptoolsDeprecationWarning "easy_install # command is deprecated. Use build and pip and other standards-based tools." # but only the message can be matched because the exception is private +# setuptools.config.pyprojecttoml raises +# setuptools.config.pyprojecttoml._ExperimentalProjectMetadata "Support for +# project metadata in `pyproject.toml` is still experimental and may be +# removed (or change) in future releases." but the parent Warning class has +# to be used instead # pip._vendor.certifi.core and pip._vendor.pep517.in_process raise # DeprecationWarning "path is deprecated. Use files() instead. Refer to # https://importlib-resources.readthedocs.io/en/latest/using.html#migrating-from-legacy @@ -60,7 +65,7 @@ basepython = python3 # contains a colon setenv = PYTHONWARNDFAULTENCODING = 1 - PYTHONWARNINGS = error, ignore::FutureWarning:Cython.Compiler.Main, ignore::DeprecationWarning:distutils.command.install, ignore:The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives:DeprecationWarning, ignore:Creating a LegacyVersion has been deprecated and will be removed in the next major release:DeprecationWarning, ignore:SelectableGroups dict interface is deprecated. Use select.:DeprecationWarning:flake8.plugins.manager, ignore:setup.py install is deprecated. Use build and pip and other standards-based tools., ignore:easy_install command is deprecated. Use build and pip and other standards-based tools., ignore::DeprecationWarning:pip._vendor.certifi.core, ignore::DeprecationWarning:pip._vendor.pep517.in_process, ignore:'cgi' is deprecated and slated for removal in Python 3.13:DeprecationWarning:pip._internal.index.collector, ignore:'cgi' is deprecated and slated for removal in Python 3.13:DeprecationWarning:Cython.Tempita, ignore:'crypt' is deprecated and slated for removal in Python 3.13:DeprecationWarning:passlib.utils, ignore:'telnetlib' is deprecated and slated for removal in Python 3.13:DeprecationWarning:mudpy.tests.selftest, ignore::Warning:setuptools.command.build_py + PYTHONWARNINGS = error, ignore::FutureWarning:Cython.Compiler.Main, ignore::DeprecationWarning:distutils.command.install, ignore:The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives:DeprecationWarning, ignore:Creating a LegacyVersion has been deprecated and will be removed in the next major release:DeprecationWarning, ignore:SelectableGroups dict interface is deprecated. Use select.:DeprecationWarning:flake8.plugins.manager, ignore:setup.py install is deprecated. Use build and pip and other standards-based tools., ignore:easy_install command is deprecated. Use build and pip and other standards-based tools., ignore::DeprecationWarning:pip._vendor.certifi.core, ignore::DeprecationWarning:pip._vendor.pep517.in_process, ignore:'cgi' is deprecated and slated for removal in Python 3.13:DeprecationWarning:pip._internal.index.collector, ignore:'cgi' is deprecated and slated for removal in Python 3.13:DeprecationWarning:Cython.Tempita, ignore:'crypt' is deprecated and slated for removal in Python 3.13:DeprecationWarning:passlib.utils, ignore:'telnetlib' is deprecated and slated for removal in Python 3.13:DeprecationWarning:mudpy.tests.selftest, ignore::Warning:setuptools.command.build_py, ignore:Support for project metadata in `pyproject.toml` is still experimental and may be removed (or change) in future releases.:Warning:setuptools.config.pyprojecttoml PYTHONUTF8 = 1 VIRTUALENV_CREATOR = venv commands = mudpy_selftest mudpy/tests/fixtures/test_daemon.yaml