Skip to content

Commit

Permalink
rfc: Migrate most configs from setup.py to pyproject.toml
Browse files Browse the repository at this point in the history
Call `python setup.py` directly is deprecated, to modernize this
project, let's introduce pyproject.toml, it supports more features. For
compatibility with the past, keep setup.py in present.

Signed-off-by: Yihuang Yu <[email protected]>
  • Loading branch information
PaulYuuu committed Jun 19, 2024
1 parent 47976d4 commit 40236e2
Show file tree
Hide file tree
Showing 40 changed files with 616 additions and 582 deletions.
14 changes: 14 additions & 0 deletions examples/plugins/cli-cmd/hello/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "avocado-hello-world"
version = "1.0"
description = "Avocado Hello World CLI command"

[project.entry-points."avocado.plugins.cli.cmd"]
hello = "hello:HelloWorld"

[tool.setuptools]
py-modules = ["hello"]
10 changes: 1 addition & 9 deletions examples/plugins/cli-cmd/hello/setup.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
from setuptools import setup

if __name__ == "__main__":
setup(
name="avocado-hello-world",
version="1.0",
description="Avocado Hello World CLI command",
py_modules=["hello"],
entry_points={
"avocado.plugins.cli.cmd": ["hello = hello:HelloWorld"],
},
)
setup()
14 changes: 14 additions & 0 deletions examples/plugins/cli-cmd/hello_option/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "avocado-hello-world-option"
version = "1.0"
description = "Avocado Hello World CLI command with config option"

[project.entry-points."avocado.plugins.cli.cmd"]
hello_option = "hello_option:HelloWorld"

[tool.setuptools]
py-modules = ["hello_option"]
10 changes: 1 addition & 9 deletions examples/plugins/cli-cmd/hello_option/setup.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
from setuptools import setup

if __name__ == "__main__":
setup(
name="avocado-hello-world-option",
version="1.0",
description="Avocado Hello World CLI command with config option",
py_modules=["hello_option"],
entry_points={
"avocado.plugins.cli.cmd": ["hello_option = hello_option:HelloWorld"],
},
)
setup()
14 changes: 14 additions & 0 deletions examples/plugins/cli-cmd/hello_parser/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "avocado-hello-world-parser"
version = "1.0"
description = "Avocado Hello World CLI command with config parser"

[project.entry-points."avocado.plugins.cli.cmd"]
hello_parser = "hello_parser:HelloWorld"

[tool.setuptools]
py-modules = ["hello_parser"]
10 changes: 1 addition & 9 deletions examples/plugins/cli-cmd/hello_parser/setup.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
from setuptools import setup

if __name__ == "__main__":
setup(
name="avocado-hello-world-parser",
version="1.0",
description="Avocado Hello World CLI command with config parser",
py_modules=["hello_parser"],
entry_points={
"avocado.plugins.cli.cmd": ["hello_parser = hello_parser:HelloWorld"],
},
)
setup()
14 changes: 14 additions & 0 deletions examples/plugins/cli-cmd/hello_priority/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "avocado-hello-world-priority"
version = "1.0"
description = "Avocado Hello World CLI command, with priority"

[project.entry-points."avocado.plugins.cli.cmd"]
hello = "hello_priority:HelloWorld"

[tool.setuptools]
py-modules = ["hello_priority"]
10 changes: 1 addition & 9 deletions examples/plugins/cli-cmd/hello_priority/setup.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
from setuptools import setup

if __name__ == "__main__":
setup(
name="avocado-hello-world-priority",
version="1.0",
description="Avocado Hello World CLI command, with priority",
py_modules=["hello_priority"],
entry_points={
"avocado.plugins.cli.cmd": ["hello = hello_priority:HelloWorld"],
},
)
setup()
17 changes: 17 additions & 0 deletions examples/plugins/job-pre-post/mail/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "avocado_job_mail"
version = "1.0"
description = "Avocado Pre/Post Job Mail Notification"

[project.entry-points."avocado.plugins.init"]
avocado_job_mail = "avocado_job_mail:MailInit"

[project.entry-points."avocado.plugins.job.prepost"]
avocado_job_mail = "avocado_job_mail:Mail"

[tool.setuptools]
py-modules = ["avocado_job_mail"]
17 changes: 1 addition & 16 deletions examples/plugins/job-pre-post/mail/setup.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,4 @@
from setuptools import setup

name = "avocado_job_mail"
init_klass = "MailInit"
klass = "Mail"
entry_point = f"{name} = {name}:{klass}"
init_entry_point = f"{name} = {name}:{init_klass}"

if __name__ == "__main__":
setup(
name=name,
version="1.0",
description="Avocado Pre/Post Job Mail Notification",
py_modules=[name],
entry_points={
"avocado.plugins.init": [init_entry_point],
"avocado.plugins.job.prepost": [entry_point],
},
)
setup()
17 changes: 17 additions & 0 deletions examples/plugins/job-pre-post/sleep/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "avocado_job_sleep"
version = "1.0"
description = "Avocado Pre/Post Job Sleep"

[project.entry-points."avocado.plugins.init"]
avocado_job_sleep = "avocado_job_sleep:SleepInit"

[project.entry-points."avocado.plugins.job.prepost"]
avocado_job_sleep = "avocado_job_sleep:Sleep"

[tool.setuptools]
py-modules = ["avocado_job_sleep"]
17 changes: 1 addition & 16 deletions examples/plugins/job-pre-post/sleep/setup.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,4 @@
from setuptools import setup

name = "avocado_job_sleep"
init_klass = "SleepInit"
klass = "Sleep"
entry_point = f"{name} = {name}:{klass}"
init_entry_point = f"{name} = {name}:{init_klass}"

if __name__ == "__main__":
setup(
name=name,
version="1.0",
description="Avocado Pre/Post Job Sleep",
py_modules=[name],
entry_points={
"avocado.plugins.init": [init_entry_point],
"avocado.plugins.job.prepost": [entry_point],
},
)
setup()
17 changes: 17 additions & 0 deletions examples/plugins/test-pre-post/hello/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "avocado-hello-world-pre-post-test"
version = "1.0"
description = "Avocado Hello World pre and post test plugin"

[project.entry-points."avocado.plugins.test.pre"]
hello_pre = "hello:HelloWorld"

[project.entry-points."avocado.plugins.test.post"]
hello_post = "hello:HelloWorld"

[tool.setuptools]
py-modules = ["hello"]
11 changes: 1 addition & 10 deletions examples/plugins/test-pre-post/hello/setup.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,4 @@
from setuptools import setup

if __name__ == "__main__":
setup(
name="avocado-hello-world-pre-post-test",
version="1.0",
description="Avocado Hello World pre and post test plugin",
py_modules=["hello"],
entry_points={
"avocado.plugins.test.pre": ["hello_pre = hello:HelloWorld"],
"avocado.plugins.test.post": ["hello_post = hello:HelloWorld"],
},
)
setup()
29 changes: 29 additions & 0 deletions examples/plugins/tests/magic/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "magic"
version = "1.0"
description = 'Avocado "magic" test type'

[project.scripts]
avocado-runner-magic = "avocado_magic.runner:main"

[project.entry-points."avocado.plugins.init"]
magic = "avocado_magic.resolver:MagicInit"

[project.entry-points."avocado.plugins.resolver"]
magic = "avocado_magic.resolver:MagicResolver"

[project.entry-points."avocado.plugins.discoverer"]
magic = "avocado_magic.resolver:MagicDiscoverer"

[project.entry-points."avocado.plugins.runnable.runner"]
magic = "avocado_magic.runner:MagicRunner"

[tool.setuptools]
py-modules = ["avocado_magic"]

[tool.setuptools.packages]
find = {}
26 changes: 2 additions & 24 deletions examples/plugins/tests/magic/setup.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,4 @@
from setuptools import find_packages, setup

name = "magic"
module = "avocado_magic"
init_ep = f"{name} = {module}.resolver:MagicInit"
resolver_ep = f"{name} = {module}.resolver:MagicResolver"
discoverer_ep = f"{name} = {module}.resolver:MagicDiscoverer"
runner_ep = f"{name} = {module}.runner:MagicRunner"
runner_script = f"avocado-runner-{name} = {module}.runner:main"

from setuptools import setup

if __name__ == "__main__":
setup(
name=name,
version="1.0",
description='Avocado "magic" test type',
py_modules=[module],
entry_points={
"avocado.plugins.init": [init_ep],
"avocado.plugins.resolver": [resolver_ep],
"avocado.plugins.discoverer": [discoverer_ep],
"avocado.plugins.runnable.runner": [runner_ep],
"console_scripts": [runner_script],
},
packages=find_packages(),
)
setup()
18 changes: 18 additions & 0 deletions examples/plugins/tests/rogue/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "avocado-rogue"
version = "1.0"
description = 'Avocado "rogue" test type'
readme = {text = "This is a plugin that contains a rogue runner, that is, a runner that will try to never allow to be terminated.", content-type = "text/x-rst"}

[project.scripts]
avocado-runner-rogue = "avocado_rogue.runner:main"

[project.entry-points."avocado.plugins.resolver"]
rogue = "avocado_rogue.resolver:RogueResolver"

[project.entry-points."avocado.plugins.runnable.runner"]
rogue = "avocado_rogue.runner:RogueRunner"
23 changes: 1 addition & 22 deletions examples/plugins/tests/rogue/setup.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,4 @@
from setuptools import setup

name = "rogue"
module = "avocado_rogue"
resolver_ep = f"{name} = {module}.resolver:RogueResolver"
runner_ep = f"{name} = {module}.runner:RogueRunner"
runner_script = f"avocado-runner-{name} = {module}.runner:main"


if __name__ == "__main__":
setup(
name="avocado-rogue",
version="1.0",
description='Avocado "rogue" test type',
long_description=(
"This is a plugin that contains a rogue runner, that is, "
"a runner that will try to never allow to be terminated."
),
py_modules=[module],
entry_points={
"avocado.plugins.resolver": [resolver_ep],
"avocado.plugins.runnable.runner": [runner_ep],
"console_scripts": [runner_script],
},
)
setup()
28 changes: 28 additions & 0 deletions optional_plugins/ansible/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "avocado-framework-plugin-ansible"
dynamic = ["dependencies", "version"]
authors = [{name = "Avocado Developers", email = "[email protected]"}]
description = "Adds to Avocado the ability to use ansible modules as dependencies for tests"
readme = {text = "Adds to Avocado the ability to use ansible modules as dependencies for tests", content-type = "text/x-rst"}

[projet.urls]
Homepage = "https://avocado-vt.readthedocs.io"

[project.scripts]
avocado-runner-ansible-module = "avocado_ansible.module:main"

[project.entry-points."avocado.plugins.runnable.runner"]
ansible-module = "avocado_ansible.module:AnsibleModuleRunner"

[tool.setuptools]
include-package-data = true

[tool.setuptools.dynamic]
version = {file = "VERSION"}

[tool.setuptools.packages.find]
include = ["avocado_ansible"]
Loading

0 comments on commit 40236e2

Please sign in to comment.