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 <callum.dickinson@catalystcloud.nz>
This commit is contained in:
Callum Dickinson
2026-03-12 07:36:46 +13:00
parent 501679cbdf
commit 0c738abbe4
5 changed files with 88 additions and 65 deletions

77
pyproject.toml Normal file
View File

@@ -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.*"]

View File

@@ -0,0 +1,5 @@
---
upgrade:
- |
Support for unsupported versions of Python has been removed.
python-adjutantclient now requires Python 3.10 or later.

View File

@@ -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

View File

@@ -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

View File

@@ -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,
)