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.
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.
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
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
ros_buildfarm generate_release_script.py ...
,ros_buildfarm create_devel_task_generator.py ...
ros_buildfarm release generate_script ...
,ros_buildfarm devel create_task_dockerfile ...
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.