Package: debhelper Severity: minor Tags: newcomer I think the current documentation for extending debhelper leaves a bit to be wanted.
As an example: * I think debhelper should better advice its build system feature. There has been a few examples of people using a dh sequence to remove the dh_auto_* tools and replace them with their own similar tooling that is basically a build system. This suggests we are not advertising the build system extension point enough in our documentation. * The current PROGRAMMING documentation is a reference documentation of the debhelper API (plus some other things). However, being a separate document means I tend to forget to update it when I add new functions in Dh_Lib. It might be better to migrate the documentation to POD documentation and provide standard perldoc documentation for Dh_Lib to replace that part of PROGRAMMING. - Doing a similar thing for Buildsystem.pm might be useful for improving the documentation for build systems. Our current documentation is basically "It is possible, read the source". Note that PROGRAMMING still have bits that do not belong in the perldoc (like the general dh_* interface of how options are supposed to be interpreted). I think the documentation part of this is a rather self-contained task that should be bite-sized for someone interested in starting to work on debhelper and is looking for something technically simple to start with to get accustomed to the setup. Note that for me, a "newcomer" can be an existing experienced debian contributor (including uploading DD). Please note I expect interested to have basic perl knowledge (such as basic POD knowledge and coding conventions - things like knowing that "_foo" functions are "private"/not a part of the API). An example of how I think this task could be solved: * Extract most of the Dh_Lib documentation from PROGRAMMING, convert it into POD and inject it into the Dh_Lib.pm. Some things to be aware of: - I prefer POD and code being interleaved. That is, the POD for a function in Dh_Lib should be just above the function itself. - A few functions might be undocumented in PROGRAMMING. Often these will have a 1-2 line documentation in Dh_Lib.pm, which might be enough. But if not, please add a TODO for the function in the patch/MR and I will write the documentation for that function after merging (or provide it as a part of the review). * For Buildsystem.pm, convert it to use POD (like Dh_Lib.pm). * The PROGRAMMING file should reference the new POD documentation (such as via "perldoc Debian::Debhelper::Dh_Lib"). - There will be a grey area of how much PROGRAMMING should introduce the Dh_Lib and the Buildsystem module. Make a cut that ensures the modules can be read standalone reference documentation. Stretch goals include providing tutorials or a how-to guide (related #993677). Though it should probably be in a separate file to avoid mixing documentation types (more than we already do).