From 0c738abbe452f98ce0c9cdcd19afab7f6b27f548 Mon Sep 17 00:00:00 2001 From: Callum Dickinson Date: Thu, 12 Mar 2026 07:36:46 +1300 Subject: [PATCH] Require Python 3.10 or later * Switch python-adjutantclient to pyproject.toml, using the new PEP-517 build backend for PBR. * Define python-requires to require Python 3.10 or later. Change-Id: Ie9a9212b24c5cec4d26da55ded0c03f5269cc5b9 Signed-off-by: Callum Dickinson --- pyproject.toml | 77 +++++++++++++++++++ ...older-python-support-40b72d5327db9499.yaml | 5 ++ requirements.txt | 2 +- setup.cfg | 60 --------------- setup.py | 9 ++- 5 files changed, 88 insertions(+), 65 deletions(-) create mode 100644 pyproject.toml create mode 100644 releasenotes/notes/drop-older-python-support-40b72d5327db9499.yaml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..4351530 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,77 @@ +[build-system] +requires = ["pbr>=6.1.1"] +build-backend = "pbr.build" + +[project] +name = "python-adjutantclient" +description = "Adjutant API Client Library" +authors = [ + {name = "OpenStack", email = "openstack-discuss@lists.openstack.org"}, +] +readme = "README.rst" +# NOTE(callumdickinson): PBR only supports the now-deprecated dictionary +# format. With upstream setuptools, this would be simply "Apache-2.0". +license = {text = "Apache-2.0"} +requires-python = ">=3.10" +keywords = [ + "openstack", + "keystone", + "users", + "tasks", + "registration", + "workflow", +] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Environment :: OpenStack", + "Intended Audience :: System Administrators", + "Programming Language :: Python :: 3", + "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", +] +dynamic = ["version", "dependencies"] + +[project.urls] +"Bug Tracker" = "https://storyboard.openstack.org/#!/project/openstack/python-adjutantclient" +Documentation = "https://docs.openstack.org/adjutant/latest" +"Source Code" = "https://opendev.org/openstack/python-adjutantclient" + +[project.entry-points."openstack.cli.extension"] +admin_logic = "adjutantclient.osc.plugin" + +[project.entry-points."openstack.admin_logic.v1"] +admin_task_list = "adjutantclient.osc.v1.tasks:TaskList" +admin_task_show = "adjutantclient.osc.v1.tasks:TaskShow" +admin_task_approve = "adjutantclient.osc.v1.tasks:TaskApprove" +admin_task_cancel = "adjutantclient.osc.v1.tasks:TaskCancel" +admin_task_update = "adjutantclient.osc.v1.tasks:TaskUpdate" +admin_task_token_reissue = "adjutantclient.osc.v1.tasks:TaskTokenReissue" +admin_task_token_list = "adjutantclient.osc.v1.tokens:TokenList" +admin_task_token_show = "adjutantclient.osc.v1.tokens:TokenShow" +admin_task_token_submit = "adjutantclient.osc.v1.tokens:TokenSubmit" +admin_task_tokens_clear = "adjutantclient.osc.v1.tokens:TokenClear" +admin_task_notification_list = "adjutantclient.osc.v1.notifications:NotificationList" +admin_task_notification_show = "adjutantclient.osc.v1.notifications:NotificationShow" +admin_task_notification_acknowledge = "adjutantclient.osc.v1.notifications:NotificationAcknowledge" +project_user_list = "adjutantclient.osc.v1.users:UserList" +project_user_show = "adjutantclient.osc.v1.users:UserShow" +project_user_invite = "adjutantclient.osc.v1.users:UserInvite" +project_user_invite_cancel = "adjutantclient.osc.v1.users:UserInviteCancel" +project_user_role_list = "adjutantclient.osc.v1.users:UserRoleList" +project_user_role_add = "adjutantclient.osc.v1.users:UserRoleAdd" +project_user_role_remove = "adjutantclient.osc.v1.users:UserRoleRemove" +project_manageable_roles = "adjutantclient.osc.v1.users:ManageableRolesList" +project_quota_show = "adjutantclient.osc.v1.quota:QuotaShow" +project_quota_sizes = "adjutantclient.osc.v1.quota:QuotaSizes" +project_quota_tasks = "adjutantclient.osc.v1.quota:QuotaTasks" +project_quota_update = "adjutantclient.osc.v1.quota:QuotaUpdate" +password_forgot = "adjutantclient.osc.v1.users:PasswordForgot" +password_reset = "adjutantclient.osc.v1.users:PasswordReset" +signup = "adjutantclient.osc.v1.signup:Signup" +adjutant_status = "adjutantclient.osc.v1.status:Status" + +[tool.setuptools.packages.find] +include = ["adjutantclient", "adjutantclient.*"] diff --git a/releasenotes/notes/drop-older-python-support-40b72d5327db9499.yaml b/releasenotes/notes/drop-older-python-support-40b72d5327db9499.yaml new file mode 100644 index 0000000..109e52e --- /dev/null +++ b/releasenotes/notes/drop-older-python-support-40b72d5327db9499.yaml @@ -0,0 +1,5 @@ +--- +upgrade: + - | + Support for unsupported versions of Python has been removed. + python-adjutantclient now requires Python 3.10 or later. diff --git a/requirements.txt b/requirements.txt index 586e25e..366d603 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -pbr>=3.0.0 # Apache-2.0 +pbr>=6.1.1 # Apache-2.0 cliff>=2.6.0 # Apache-2.0 iso8601>=0.1.11 # MIT osc-lib>=1.8.0 # Apache-2.0 diff --git a/setup.cfg b/setup.cfg index 021aa7f..00bbae8 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,62 +1,2 @@ [metadata] name = python-adjutantclient -summary = Adjutant API Client Library -description-file = - README.rst -author = Adrian Turjak -author-email = adriant@catalyst.net.nz -home-page = https://github.com/openstack/python-adjutantclient -python-requires = >=3.8 -classifier = - Environment :: OpenStack - Intended Audience :: Information Technology - Intended Audience :: System Administrators - License :: OSI Approved :: Apache Software License - Operating System :: POSIX :: Linux - Programming Language :: Python - Programming Language :: Python :: Implementation :: CPython - Programming Language :: Python :: 3 :: Only - Programming Language :: Python :: 3 - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 - Programming Language :: Python :: 3.10 - Programming Language :: Python :: 3.11 - -[files] -packages = - adjutantclient - -[entry_points] -openstack.cli.extension = - admin_logic = adjutantclient.osc.plugin - -openstack.admin_logic.v1 = - admin_task_list = adjutantclient.osc.v1.tasks:TaskList - admin_task_show = adjutantclient.osc.v1.tasks:TaskShow - admin_task_approve = adjutantclient.osc.v1.tasks:TaskApprove - admin_task_cancel = adjutantclient.osc.v1.tasks:TaskCancel - admin_task_update = adjutantclient.osc.v1.tasks:TaskUpdate - admin_task_token_reissue = adjutantclient.osc.v1.tasks:TaskTokenReissue - admin_task_token_list = adjutantclient.osc.v1.tokens:TokenList - admin_task_token_show = adjutantclient.osc.v1.tokens:TokenShow - admin_task_token_submit = adjutantclient.osc.v1.tokens:TokenSubmit - admin_task_tokens_clear = adjutantclient.osc.v1.tokens:TokenClear - admin_task_notification_list = adjutantclient.osc.v1.notifications:NotificationList - admin_task_notification_show = adjutantclient.osc.v1.notifications:NotificationShow - admin_task_notification_acknowledge = adjutantclient.osc.v1.notifications:NotificationAcknowledge - project_user_list = adjutantclient.osc.v1.users:UserList - project_user_show = adjutantclient.osc.v1.users:UserShow - project_user_invite = adjutantclient.osc.v1.users:UserInvite - project_user_invite_cancel = adjutantclient.osc.v1.users:UserInviteCancel - project_user_role_list = adjutantclient.osc.v1.users:UserRoleList - project_user_role_add = adjutantclient.osc.v1.users:UserRoleAdd - project_user_role_remove = adjutantclient.osc.v1.users:UserRoleRemove - project_manageable_roles = adjutantclient.osc.v1.users:ManageableRolesList - project_quota_show = adjutantclient.osc.v1.quota:QuotaShow - project_quota_sizes = adjutantclient.osc.v1.quota:QuotaSizes - project_quota_tasks = adjutantclient.osc.v1.quota:QuotaTasks - project_quota_update = adjutantclient.osc.v1.quota:QuotaUpdate - password_forgot = adjutantclient.osc.v1.users:PasswordForgot - password_reset = adjutantclient.osc.v1.users:PasswordReset - signup = adjutantclient.osc.v1.signup:Signup - adjutant_status = adjutantclient.osc.v1.status:Status diff --git a/setup.py b/setup.py index 2b3847e..b335156 100644 --- a/setup.py +++ b/setup.py @@ -13,8 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -import setuptools +from setuptools import setup -setuptools.setup( - setup_requires=['pbr>=1.6'], - pbr=True) +setup( + setup_requires=["pbr"], + pbr=True, +)