I have a question regarding the documentation of pseudomodules (triggered by an error in #21985). According to the PR that introduced documenting pseudomodules (#17133) "A dedicated group is created for each module.", but there seems to be some inconsistencies in pseudomodules.inc.mk (I think).
This one defines a group for gnrc_nettype_ccn and sets net_gnrc_nettype as a parent:
|
## @addtogroup net_gnrc_nettype |
|
## @{ |
|
|
|
## @defgroup net_gnrc_nettype_ccn gnrc_nettype_ccn |
|
## @{ |
|
## Enables @ref GNRC_NETTYPE_CCN and @ref GNRC_NETTYPE_CCN_CHUNK |
|
PSEUDOMODULES += gnrc_nettype_ccn |
|
## @} |
This has the effect that now gnrc_nettype: Protocol type shows up as a child of Generic pseudomodules, but at least we know that gnrc_nettype_ccn will enable the GNRC implementation of CCN (though the location of this information may be questionable).
Conversely, we have this example:
|
## @addtogroup net_gcoap_dns |
|
## @{ |
|
## Enable @ref net_gcoap_dns |
|
PSEUDOMODULES += gcoap_dns |
|
## Enable the @ref gcoap_dns_server_proxy_set function |
|
PSEUDOMODULES += gcoap_dns_proxied |
|
## @} |
In this case we have the same effect of the GCoap DNS module being a child of pseudomodules. One can argue that this is correct in this case. But the documentation now just shows an extra sentence in the module's page, with no clue as to which pseudomodule is required, and it even has a circular reference: https://doc.riot-os.org/group__net__gcoap__dns.html.
What should be the (documented) approach to this?
Some quick thoughts:
- We could simple define always a doxygen group with
pseudomodule_ prefix or so, and make it a child of the proper module (maybe using ingroup instead of addtogroup?).
- We could skip defining groups whenever one direct matching already exists, but define the rest.
I'd say that whatever option we go with, the @brief and / or title should explicitly mention the pseudomodule, otherwise one doesn't gain much from just reading the docs.
CC @chrysn
I have a question regarding the documentation of pseudomodules (triggered by an error in #21985). According to the PR that introduced documenting pseudomodules (#17133) "A dedicated group is created for each module.", but there seems to be some inconsistencies in
pseudomodules.inc.mk(I think).This one defines a group for
gnrc_nettype_ccnand setsnet_gnrc_nettypeas a parent:RIOT/makefiles/pseudomodules.inc.mk
Lines 137 to 144 in f442d25
This has the effect that now gnrc_nettype: Protocol type shows up as a child of Generic pseudomodules, but at least we know that
gnrc_nettype_ccnwill enable the GNRC implementation of CCN (though the location of this information may be questionable).Conversely, we have this example:
RIOT/makefiles/pseudomodules.inc.mk
Lines 87 to 93 in f442d25
In this case we have the same effect of the GCoap DNS module being a child of pseudomodules. One can argue that this is correct in this case. But the documentation now just shows an extra sentence in the module's page, with no clue as to which pseudomodule is required, and it even has a circular reference: https://doc.riot-os.org/group__net__gcoap__dns.html.
What should be the (documented) approach to this?
Some quick thoughts:
pseudomodule_prefix or so, and make it a child of the proper module (maybe usingingroupinstead ofaddtogroup?).I'd say that whatever option we go with, the
@briefand / or title should explicitly mention the pseudomodule, otherwise one doesn't gain much from just reading the docs.CC @chrysn