Due to an influx of spam, we have had to temporarily disable account registrations. Please write an email to accountsupport@archlinux.org, with your desired username, if you want to get access. Sorry for the inconvenience.
As discussed in the 2022-02-02 meeting minutes, manpages are a desirable usability improvement for these tools. While Python's argparse package automatically provides useful --help output, it does not provide man pages.
In addition to executables, configurations should also contain section 5 manpages. This may require coordination with #27 (closed).
Find a method of creating/maintaining manpages that gives maximum maintainability/least effort.
I took a quick look around to see if the Python ecosystem has anything less kitchen-sink than Sphinx but I didn't really find anything. I'm partial to the simplicity of scdoc where manpages can be created extremely simply. For instance:
json2db(1)# NAMEjson2db - Read a repository database and write all contained pkgbases to one JSON file each.# SYNOPSIS*json2db* [options...] db_file output_dir# EXAMPLES*-f, --files* Create a _.files_ database instead of a _.db_ database*-h, --help* Show help message and quit.*-v, --verbose* Verbose output.# SEE ALSOdb2json(1)# AUTHORSMaintained by Arch Linux contributors.
Written in minutes with the extremely simple scdoc(5) manpage and generated with a simple scdoc < json2db.sc.
But the comprehensiveness of Sphinx can also be attractive. Are there any preferences?
We could just start out with scdoc and implement the full-blown Sphinx experience if it becomes tiresome to maintain.
The benefit to it would be that we could generate manpages and API/tool documentation in HTML from the same source. It's a nice way to both get manpages and https://archinstall.readthedocs.io/ for instance from the same blob.
Hm, I would probably also tend towards a make target for the man pages that uses sphinx then (the reasoning here being, that we would not have disconnected python argparse help and man pages - no sync effort required).
@torxed can you elaborate a bit on what is needed in addition for sphinx to create man pages for the entrypoints in our case?
(also opening another ticket for auto-deploying documentation somewhere)
Add a requirement to the sphinx configuration: extensions += ['sphinxarg.ext']
And then add a .rst entry called arguments.rst or something similar in docs/arguments.rst.
So far, my idea would be to create RST files for db2json/json2db under there but also have a section 5 manpage that could re-use the contents of documentation for the configuration of repod.