Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sys: add modulenames for Doxygen #19314

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

kfessel
Copy link
Contributor

@kfessel kfessel commented Feb 24, 2023

Contribution description

Add modulenames for Doxygen

Testing procedure

read the murdoc doxygen prview

Issues/PRs references

#7094
#8479

@github-actions github-actions bot added Area: arduino API Area: Arduino wrapper API Area: build system Area: Build system Area: CoAP Area: Constrained Application Protocol implementations Area: doc Area: Documentation Area: LoRa Area: LoRa radio support Area: network Area: Networking Area: OTA Area: Over-the-air updates Area: SAUL Area: Sensor/Actuator Uber Layer Area: sys Area: System Area: tests Area: tests and testing framework Area: timers Area: timer subsystems labels Feb 24, 2023
@kfessel kfessel added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: skip compile test If set, CI server will run only non-compile jobs, but no compile jobs or their dependent jobs labels Feb 24, 2023
@benpicco
Copy link
Contributor

The Department of Redundancy Department would approve, but I don't see how this makes anything better.
Our documentation already suffers from duplication in @defgroup and @brief which just looks odd when rendered, we don't need triplication.

@riot-ci
Copy link

riot-ci commented Feb 24, 2023

Murdock results

✔️ PASSED

f67bb8c doccheck updated

Success Failures Total Runtime
1 0 1 56s

Artifacts

@kfessel
Copy link
Contributor Author

kfessel commented Feb 24, 2023

I do not see a cononical place the module name is rendered to in our current documentation

Callback multiplexer

Initialization of USB Device Firmware < the title of that page not even contains a hint that it might be conneted to riotboot

Millisecond interval event timers << what module is this?

for UDP benchmark is it USEMODULE += udp_benchmark or benchmark_udp

@maribu
Copy link
Member

maribu commented Feb 24, 2023

I do not see a cononical place the module name is rendered to in our current documentation

It is indeed an issue that students regularly express. Specifically, they find some function in the doc but don't know which module to include to be able to use it.

But IMO the KConfig files would be the place to generate a list of module names from, especially as they already have a brief description / help text already. Maybe that could be used to generate a doc.txt from automatically?

It would be a huge pain to keep the KConfig module description, the @brief and @defgroup, as well as a third registry in sync.

@kfessel
Copy link
Contributor Author

kfessel commented Feb 24, 2023

Some auto generation would be nice but sadly the the current situation is realy bad the @defgroups are allover the place and are of very different quality, often the group names correlate with the module name but not always somtimes the title hints the module name, sometimes it just has the word reversed sometimes for good sometimes it seems the writer just did not want to write his chosen modulename and have some extra fun with words.

"Helpers for pointer tagging" is what module?

@github-actions github-actions bot added the Area: pkg Area: External package ports label Feb 24, 2023
Copy link
Contributor

@benpicco benpicco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A lot of those aren't actually modules - is this intentional?

* @ingroup sys
* @brief Provides math libraries and utilities for RIOT
*/

/**
* @defgroup sys_memory_management Memory management
* @defgroup sys_memory_management memory_management: Memory management
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

memory_management is not a module

* @ingroup sys
* @brief Provides memory management implementations and utilities
*/

/**
* @defgroup sys_serialization Serialization
* @defgroup sys_serialization serialization: Serialization
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

serialization is not a module

* @ingroup sys
* @brief Utilities for data serialization
*/

/**
* @defgroup net_lorawan LoRaWAN
* @defgroup net_lorawan lorawan: LoRaWAN
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lorawan is not a module

@@ -7,7 +7,7 @@
*/

/**
* @defgroup sys_ecc ECC
* @defgroup sys_ecc ecc: ECC
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ecc is not a module

@@ -7,8 +7,7 @@
*/

/**
* @defgroup sys_architecture Platform-independent access to architecture
* details
* @defgroup sys_architecture architecture: Platform-independent details
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

architecture is not a module

Copy link
Contributor Author

@kfessel kfessel Mar 6, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This module provides architecture-independent access to architecture details.

There seems to be a bit of clarity missing when something is a module and when not. (Is a module that is not need to be used a module?)

@benpicco benpicco requested a review from OlegHahm March 6, 2023 19:37
@OlegHahm
Copy link
Member

OlegHahm commented Mar 6, 2023

I still like the proposal from the last VMA to add a usage section that includes information about which module to use (and which header to include).

@kfessel
Copy link
Contributor Author

kfessel commented Mar 6, 2023

I still like the proposal from the last VMA to add a usage section that includes information about which module to use (and which header to include).

I also like that proposal, sadly that takes much longer to implement, since when doing that it would be a module by module effort and would for many module require a person that has some inside knowlege about that module.

I think having the area of concern (like we do for our pr) in the title of the documentation is a huge step;
For modules it is the generalized and standardized modul-name.
For packages it is the generalized and standardized package-name.
(eg for flashdb it would be flashdb not FlashDB, not flashdb-mtd)
For boards it is the standardized board-name.

standardized: lowercase like we write in pr , usemodule / usepackage.

@benpicco: the area of concern is also the reason why some not modules got a generalized and standardized name.

@github-actions github-actions bot added the Area: tools Area: Supplementary tools label Mar 6, 2023
@OlegHahm
Copy link
Member

OlegHahm commented Mar 7, 2023

I still like the proposal from the last VMA to add a usage section that includes information about which module to use (and which header to include).

I also like that proposal, sadly that takes much longer to implement, since when doing that it would be a module by module effort and would for many module require a person that has some inside knowlege about that module.

Understood but as far as I understood your approach here also requires manual maintenance or am I mistaken? On the other hand, why not go step by step? Maybe we setup a bit tracking issue and try to introduce these usage sections one by one?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: arduino API Area: Arduino wrapper API Area: build system Area: Build system Area: CoAP Area: Constrained Application Protocol implementations Area: doc Area: Documentation Area: LoRa Area: LoRa radio support Area: network Area: Networking Area: OTA Area: Over-the-air updates Area: pkg Area: External package ports Area: SAUL Area: Sensor/Actuator Uber Layer Area: sys Area: System Area: tests Area: tests and testing framework Area: timers Area: timer subsystems Area: tools Area: Supplementary tools CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: skip compile test If set, CI server will run only non-compile jobs, but no compile jobs or their dependent jobs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants