I’d like to show off a Colcon plugin I’ve been working on that lets you use Poetry instead of setuptools (setup.py, setup.cfg) to declare your Python ROS2 packages and their dependencies!
https://github.com/UrbanMachine/colcon-poetry-ros
In case you’re unfamiliar, Poetry is an alternative packaging and dependency management tool for Python. It creates and maintains a lock file for your dependencies out of the box, which makes achieving reliable builds easy.
Poetry uses the new-ish pyproject.toml standard for defining Python packages instead of setup.py or setup.cfg. Colcon-poetry-ros takes care of pulling the information that Colcon needs from the pyproject.toml. It has support for defining nodes, running tests, and including data files. I’ve also included a small utility that assists in installing your Python dependencies to Colcon’s install/ directory.
Please let me know what you think! This is the first Colcon plugin I’ve written, so I would appreciate any feedback.