ros-infrastructure / ros_buildfarm

ROS buildfarm based on Docker
Apache License 2.0
81 stars 96 forks source link

Proposal: Move ros_builfdarm scripts into libexec and invoke them with single ros_buildfarm binary. #937

Closed nuclearsandwich closed 2 years ago

nuclearsandwich commented 2 years ago

This project includes a large number of scripts, many of the form generate_*_{script,job,jobs}.py (92). This makes it a rather unwieldy when installed in a global FHS such as a debian package.

Since many of these scripts don't include ros_buildfarm some amount of digging is required to identify their provenance.

I'd like to propose updating the installation mechanism for these scripts allowing them to be used in a libexec style. I haven't yet looked closely enough to see whether the entry points specification could be used instead (or as an implementation detail for accomplishing the same effect).

I can see reasons to make this change gradually by first quickly re-organizing the existing scripts so that they're runnable as

ros_buildfarm generate_release_script.py ...

and then later transitioning to a more common git-style subcommand pattern. As well as reasons to break the CLI interface exactly once and build to our desired end state from the beginning but I also don't know what that end state is.

Potential command patterns


There are a couple of miscellaneous scripts like the apt and git wrappers, and the subprocess reaper which may need special handling although I think these scripts may only be used from within the other scripts and thus may not need to be installed as scripts at all.