From de335c28f3299492458dab74548d0d10ec125daa Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Fri, 7 Jul 2023 10:42:38 +0200 Subject: [PATCH 1/3] add rudimentary pyproject.toml based on existing setup.py --- pyproject.toml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..4d14e46 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,31 @@ +# References: +# https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ +# https://packaging.python.org/en/latest/guides/packaging-namespace-packages/#native-namespace-packages +# https://packaging.python.org/en/latest/guides/single-sourcing-package-version/ +# https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html + +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[project] +name = "freecad.workbench_starterkit" +dynamic = ["version"] +description = "template for a freecad extensions, installable with pip" +readme = "README.md" +license = {file = "LICENSE"} +maintainers = [ + {name = "looooo", email = "sppedflyer@gmail.com"}, +] +requires-python = ">=3.8" +dependencies = ["numpy"] + +[project.urls] +source = "https://github.com/FreeCAD/freecad.workbench_starterkit" + +[tool.setuptools] +packages = ["freecad", "freecad.workbench_starterkit"] +include-package-data = true + +[tool.setuptools.dynamic] +version = {attr = "freecad.workbench_starterkit.version.__version__"} From 2bb6954458df4ae7d104c9934aeab75b4f5e7a7e Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Fri, 7 Jul 2023 10:45:11 +0200 Subject: [PATCH 2/3] keep a minimal setup.py for legacy builds and editable installs --- setup.py | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/setup.py b/setup.py index 11fffc0..2dde8b2 100644 --- a/setup.py +++ b/setup.py @@ -1,21 +1,12 @@ -from setuptools import setup -import os -# from freecad.workbench_starterkit.version import __version__ -# name: this is the name of the distribution. -# Packages using the same name here cannot be installed together +""" +We keep this file to support legacy builds and editable installs, +while keeping all configuration in pyproject.toml + +References: -version_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), - "freecad", "workbench_starterkit", "version.py") -with open(version_path) as fp: - exec(fp.read()) + https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html +""" + +from setuptools import setup -setup(name='freecad.workbench_starterkit', - version=str(__version__), - packages=['freecad', - 'freecad.workbench_starterkit'], - maintainer="looooo", - maintainer_email="sppedflyer@gmail.com", - url="https://github.com/FreeCAD/Workbench-Starterkit", - description="template for a freecad extensions, installable with pip", - install_requires=['numpy'], # should be satisfied by FreeCAD's system dependencies already - include_package_data=True) +setup() From b08502c8b470f5614d837241cf36626282f6ca2c Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Fri, 7 Jul 2023 10:57:32 +0200 Subject: [PATCH 3/3] simplify version in pyproject.toml this is also more robust in case the separate version.py file is ever removed --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4d14e46..3b8bc14 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,4 +28,4 @@ packages = ["freecad", "freecad.workbench_starterkit"] include-package-data = true [tool.setuptools.dynamic] -version = {attr = "freecad.workbench_starterkit.version.__version__"} +version = {attr = "freecad.workbench_starterkit.__version__"}