From 53b00b1083a6d7683aa65b4d2ce661130eecab54 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Thu, 30 Oct 2025 12:18:12 +1000 Subject: [PATCH 1/4] Add pyproject.toml for project configuration --- pyproject.toml | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..5a60f2b --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,67 @@ +[build-system] +requires = ["setuptools>=61.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "vinca" +version = { attr = "vinca.__version__" } +description = "Conda recipe generator for ROS packages." +readme = "README.md" +license = { text = "MIT" } +authors = [ + { name = "Sean Yen", email = "seanyen@microsoft.com" }, + { name = "Silvio Traversaro", email = "silvio@traversaro.it" }, + { name = "Tobias Fischer", email = "info@tobiasfischer.info" }, +] +maintainers = [ + { name = "Silvio Traversaro" }, + { name = "Tobias Fischer" }, +] +requires-python = ">=3.9" +keywords = ["ros"] +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Programming Language :: Python", + "Operating System :: OS Independent", + "Topic :: Software Development :: Build Tools", +] + +dependencies = [ + "catkin_pkg >=0.4.16", + "ruamel.yaml >=0.16.6,<0.18.0", + "rosdistro >=0.8.0", + "empy >=3.3.4,<4.0.0", + "requests >=2.24.0", + "networkx >=2.5", + "rich >=10", + "jinja2 >=3.0.0", + "license-expression >=30.0.0", +] + +[project.urls] +Homepage = "https://github.com/RoboStack/vinca" +Changelog = "https://github.com/RoboStack/vinca/milestones?direction=desc&sort=due_date&state=closed" +GitHub = "https://github.com/RoboStack/vinca" + +[project.scripts] +vinca = "vinca.main:main" +vinca-glab = "vinca.generate_gitlab:main" +vinca-gha = "vinca.generate_gha:main" +vinca-azure = "vinca.generate_azure:main" +vinca-migrate = "vinca.migrate:main" +vinca-snapshot = "vinca.snapshot:main" + +[tool.setuptools] +zip-safe = false +include-package-data = true + +[tool.setuptools.packages.find] +include = ["vinca*"] + +[tool.setuptools.package-data] +vinca = ["templates/*", "azure_templates/*"] + +[tool.flake8] +import-order-style = "google" From 82ce938474f4d9101025be384cc420b8e44bcd92 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Thu, 30 Oct 2025 12:18:33 +1000 Subject: [PATCH 2/4] Delete setup.cfg --- setup.cfg | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 setup.cfg diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 8abdd72..0000000 --- a/setup.cfg +++ /dev/null @@ -1,50 +0,0 @@ -[metadata] -name = vinca -version = attr: vinca.__version__ -url = https://github.com/RoboStack/vinca -project_urls = - Changelog = https://github.com/RoboStack/vinca/milestones?direction=desc&sort=due_date&state=closed - GitHub = https://github.com/RoboStack/vinca -author = Sean Yen -author_email = seanyen@microsoft.com -maintainer = Sean Yen -maintainer_email = seanyen@microsoft.com -classifiers = - Development Status :: 3 - Alpha - Intended Audience :: Developers - License :: OSI Approved :: MIT Licens - Programming Language :: Python - Operating System :: OS Independent - Topic :: Software Development :: Build Tools -license = MIT -description = Conda recipe generator for ROS packages. -long_description = file: README.md -keywords = ros - -[options] -python_requires = >=3.6 -setup_requires = setuptools -install_requires = - catkin_pkg >=0.4.16 - ruamel.yaml >=0.16.6,<0.18.0 - rosdistro >=0.8.0 - empy >=3.3.4,<4.0.0 - requests >=2.24.0 - networkx >=2.5 - rich >=10 - jinja2 >=3.0.0 - license-expression >=30.0.0 -packages = find: -zip_safe = false - -[options.entry_points] -console_scripts = - vinca = vinca.main:main - vinca-glab = vinca.generate_gitlab:main - vinca-gha = vinca.generate_gha:main - vinca-azure = vinca.generate_azure:main - vinca-migrate = vinca.migrate:main - vinca-snapshot = vinca.snapshot:main - -[flake8] -import-order-style = google From e4974f5326d48c885c99cad6bb95fba38766d805 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Thu, 30 Oct 2025 12:18:42 +1000 Subject: [PATCH 3/4] Delete setup.py --- setup.py | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 setup.py diff --git a/setup.py b/setup.py deleted file mode 100644 index 25b9acb..0000000 --- a/setup.py +++ /dev/null @@ -1,9 +0,0 @@ -from setuptools import find_packages, setup - -args = { - "include_package_data": True, - "packages": find_packages(), - "package_data": {"vinca": ["templates/*", "azure_templates/*"]}, -} - -setup(**args) From 9f47af94b2fda8728d0d1b41451cdd40a9a68d45 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Thu, 30 Oct 2025 20:41:20 +0100 Subject: [PATCH 4/4] Fix CI and consolidate pixi.toml in pyproject.toml --- pixi.lock | 16 ++++++++-------- pixi.toml | 36 ---------------------------------- pyproject.toml | 52 +++++++++++++++++++++++++++++++++++++------------- ruff.toml | 2 +- 4 files changed, 48 insertions(+), 58 deletions(-) delete mode 100644 pixi.toml diff --git a/pixi.lock b/pixi.lock index da28273..dbee973 100644 --- a/pixi.lock +++ b/pixi.lock @@ -1849,19 +1849,19 @@ packages: timestamp: 1760418593847 - pypi: ./ name: vinca - version: 0.1.0 - sha256: d2bc6544875054cbc0fee273120911dd4d686c31c52c8978364aa8f26c592fbb + version: 0.2.0 + sha256: 6e7d2912d0be29dd4abc699e9d02ae8ec90dd3469876e296c90bc4a976103712 requires_dist: - catkin-pkg>=0.4.16 - - ruamel-yaml>=0.16.6,<0.18.0 - - rosdistro>=0.8.0 - empy>=3.3.4,<4.0.0 - - requests>=2.24.0 - - networkx>=2.5 - - rich>=10 - jinja2>=3.0.0 - license-expression>=30.0.0 - requires_python: '>=3.6' + - networkx>=2.5 + - requests>=2.24.0 + - rich>=10 + - rosdistro>=0.8.0 + - ruamel-yaml>=0.16.6,<0.18.0 + requires_python: '>=3.9' editable: true - conda: https://prefix.dev/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda sha256: 93807369ab91f230cf9e6e2a237eaa812492fe00face5b38068735858fba954f diff --git a/pixi.toml b/pixi.toml deleted file mode 100644 index 1b9ef03..0000000 --- a/pixi.toml +++ /dev/null @@ -1,36 +0,0 @@ -[workspace] -channels = ["https://prefix.dev/conda-forge"] -name = "vinca" -platforms = ["win-64", "linux-64", "osx-arm64", "osx-64"] -version = "0.1.0" - -[tasks] -# Testing -test = "pytest vinca/" - -# Code quality -fmt = "ruff format ." -fmt-check = "ruff format --check ." -lint = "ruff check --fix ." -lint-check = "ruff check ." - -[dependencies] -python = ">=3.14.0,<3.15" - -# Core dependencies -catkin_pkg = ">=0.4.16" -"ruamel.yaml" = ">=0.16.6,<0.18.0" -rosdistro = ">=0.8.0" -empy = ">=3.3.4,<4.0.0" -requests = ">=2.24.0" -networkx = ">=2.5" -rich = ">=10" -jinja2 = ">=3.0.0" -license-expression = ">=30.0.0" - -# Development dependencies -pytest = "*" -ruff = "*" - -[pypi-dependencies] -vinca = { path = ".", editable = true} diff --git a/pyproject.toml b/pyproject.toml index 5a60f2b..474aae9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,10 @@ [build-system] -requires = ["setuptools>=61.0"] -build-backend = "setuptools.build_meta" +requires = ["hatchling>=1.18"] +build-backend = "hatchling.build" [project] name = "vinca" -version = { attr = "vinca.__version__" } +dynamic = ["version"] description = "Conda recipe generator for ROS packages." readme = "README.md" license = { text = "MIT" } @@ -42,7 +42,6 @@ dependencies = [ [project.urls] Homepage = "https://github.com/RoboStack/vinca" -Changelog = "https://github.com/RoboStack/vinca/milestones?direction=desc&sort=due_date&state=closed" GitHub = "https://github.com/RoboStack/vinca" [project.scripts] @@ -53,15 +52,42 @@ vinca-azure = "vinca.generate_azure:main" vinca-migrate = "vinca.migrate:main" vinca-snapshot = "vinca.snapshot:main" -[tool.setuptools] -zip-safe = false -include-package-data = true +[tool.hatch.version] +path = "vinca/__init__.py" -[tool.setuptools.packages.find] -include = ["vinca*"] +[tool.hatch.build] +include = [ + "vinca/templates/**", + "vinca/azure_templates/**", +] + +[tool.hatch.build.targets.wheel] +packages = ["vinca"] + +[tool.pixi.workspace] +channels = ["https://prefix.dev/conda-forge"] +platforms = ["win-64", "linux-64", "osx-arm64", "osx-64"] + +[tool.pixi.tasks] +test = "pytest vinca/" +fmt = "ruff format ." +fmt-check = "ruff format --check ." +lint = "ruff check --fix ." +lint-check = "ruff check ." -[tool.setuptools.package-data] -vinca = ["templates/*", "azure_templates/*"] +[tool.pixi.dependencies] +python = ">=3.14.0,<3.15" +catkin_pkg = ">=0.4.16" +"ruamel.yaml" = ">=0.16.6,<0.18.0" +rosdistro = ">=0.8.0" +empy = ">=3.3.4,<4.0.0" +requests = ">=2.24.0" +networkx = ">=2.5" +rich = ">=10" +jinja2 = ">=3.0.0" +license-expression = ">=30.0.0" +pytest = "*" +ruff = "*" -[tool.flake8] -import-order-style = "google" +[tool.pixi.pypi-dependencies] +vinca = { path = ".", editable = true } diff --git a/ruff.toml b/ruff.toml index 0f59be6..1219b52 100644 --- a/ruff.toml +++ b/ruff.toml @@ -1,5 +1,5 @@ line-length = 88 -target-version = "py37" +target-version = "py39" [lint] # Ignore rules that were excluded in .flake8: