# Why is there no ament\_python\_simple?

**URL:** <https://discourse.openrobotics.org/t/why-is-there-no-ament-python-simple/42591>\
**Category:** ROS General\
**Created:** [March 18, 2025, 7:36am UTC](https://discourse.openrobotics.org/t/why-is-there-no-ament-python-simple/42591 "2025-03-18T07:36:58Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![peci1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/peci1/32/10145_2.png) [@peci1](https://discourse.openrobotics.org/u/peci1)\
**Post date:** [March 18, 2025, 7:36am UTC](https://discourse.openrobotics.org/t/why-is-there-no-ament-python-simple/42591/1 "2025-03-18T07:36:58Z")

</div>

Recently I started working with ament\_python packages and I was astonished by the complexity of the bootstrapping code/files needed.

Just to list a few:

- the need for creating an empty file `resource/<package_name>`
- the need for having `setup.cfg` with strictly required content
- the need for repeating many information from `package.xml` in the `setup.py` (package name, version, description, maintainer, authors, …)
- the need for adding (deprecated) `data_files` entries in `setup.py`
- the need to define nodes as `entry_points` in `setup.py`
- the need to copy test file templates just for the sake of being able to test pep compliance, copyright etc. (this is a big one I’d say!)

I’ve [posted this question on RSE](https://robotics.stackexchange.com/questions/114952/why-is-there-no-ament-python-simple-package-that-would-simplify-ament-python-p) a week ago, but apparently it did not raise any views there, so I’m reposting here because I think this is a kind of meta question, probably targeted at the ROS PMC or the core developers team.

I’d still keep the discussion on RSE, so I won’t repost the whole question here, just the core of it:

**Why is there no support library (e.g. ament\_python\_simple) that would automate most of these boilerplate tasks?** Are there technical reasons? Or just lack of devs? Are there any community alternatives?

Thanks anyone for stopping by at the RSE question and sharing your ideas 🙂

---

<div class="post-metadata">

**Author:** ![jak](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/jak/32/20941_2.png) [@jak](https://discourse.openrobotics.org/u/jak)\
**Post date:** [March 18, 2025, 9:17am UTC](https://discourse.openrobotics.org/t/why-is-there-no-ament-python-simple/42591/2 "2025-03-18T09:17:30Z")

</div>

Thanks for bringing up an important topic! Package creation is one of the first topics new ROS users usually start with, and it can be very discouraging if the process is tedious, confusing and includes many steps that are prone to errors.

The issues you raised are definitely something that should addressed by the core team. But since you asked about the community alternatives, I just wanted to bring to your attention [**Turtle Nest**](https://github.com/Jannkar/turtle_nest) tool, which I’ve been developing to simplify the package creation process and make it more informative using GUI. To me, it’s interesting to hear about the different types of struggles in package creation, to see if some of them could be addressed with Turtle Nest.

---

<div class="post-metadata">

**Author:** ![peci1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/peci1/32/10145_2.png) [@peci1](https://discourse.openrobotics.org/u/peci1)\
**Post date:** [March 18, 2025, 9:20am UTC](https://discourse.openrobotics.org/t/why-is-there-no-ament-python-simple/42591/3 "2025-03-18T09:20:02Z")

</div>

Thanks, I’ve already used Turtle Nest and it is nice 🙂 What I was missing is the option to create an interface- (message-) only package. I think this is also a quite common task.

---

<div class="post-metadata">

**Author:** ![Rayman](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/rayman/32/268_2.png) [@Rayman](https://discourse.openrobotics.org/u/Rayman)\
**Post date:** [March 18, 2025, 9:21am UTC](https://discourse.openrobotics.org/t/why-is-there-no-ament-python-simple/42591/4 "2025-03-18T09:21:59Z")

</div>

A good alternative to `ament_python` is writing your package with `ament_cmake_python`. With your cmake you need to install the python node & package in the correct spot, but other than that its pretty clean and no duplicated info.

> **[ament\_cmake\_python user documentation — ROS 2 Documentation: Jazzy ...](https://docs.ros.org/en/jazzy/How-To-Guides/Ament-CMake-Python-Documentation.html)**

---

<div class="post-metadata">

**Author:** ![jak](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/jak/32/20941_2.png) [@jak](https://discourse.openrobotics.org/u/jak)\
**Post date:** [March 18, 2025, 9:22am UTC](https://discourse.openrobotics.org/t/why-is-there-no-ament-python-simple/42591/5 "2025-03-18T09:22:48Z")

</div>

Thanks! I’m looking forward to adding this feature.

---

<div class="post-metadata">

**Author:** ![peci1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/peci1/32/10145_2.png) [@peci1](https://discourse.openrobotics.org/u/peci1)\
**Post date:** [March 18, 2025, 9:23am UTC](https://discourse.openrobotics.org/t/why-is-there-no-ament-python-simple/42591/6 "2025-03-18T09:23:46Z")

</div>

Yes, I know about this possibility. However, it kind of defeats the reasons why ament\_python package types were created - to be able to use language-native packaging… And CMake is definitely not Python-native…

---

<div class="post-metadata">

**Author:** ![peci1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/peci1/32/10145_2.png) [@peci1](https://discourse.openrobotics.org/u/peci1)\
**Post date:** [March 20, 2025, 10:59am UTC](https://discourse.openrobotics.org/t/why-is-there-no-ament-python-simple/42591/7 "2025-03-20T10:59:03Z")

</div>

Thanks @christophebedard for the comment on RSE. It seems the right place to continue the discussion is [Add setuptools helper to deduplicate package.xml and setup.py metadata · Issue #1132 · ros2/ros2 · GitHub](https://github.com/ros2/ros2/issues/1132) .
