all: fix all undefined doxygen groups#9264
Conversation
7c0fe4a to
ba66b18
Compare
|
Can we divide this up into two PRs please? One introducing the script (but not wired hot yet, just silently warning in the output) and one fixing the warnings? Also, since this is doc, why isn't this included into |
Sure, that's what I wrote in the initial comment of this PR (well not exactly, but the idea was there)
I thought it would be simpler to have it separate first. But I'm fine with merging the two once all grouping issues are fixed. |
ba66b18 to
094c4eb
Compare
doc.txt
Outdated
|
|
||
| /** | ||
| * @defgroup tests Tests | ||
| * @brief Tests applications |
There was a problem hiding this comment.
AFAIK those groups will be empty in the rendered doc. Do we really need them?
There was a problem hiding this comment.
Yes, all examples are using @ingroup examples and tests @ingroup tests. I know this is not nice but at least it silents the check script.
There are 3 solutions:
- Remove all
@ingroup testsand@ingroup examples - Ignore undefined examples and tests groups in the check script
- Define
testsandexamplesgroups and document them. If this solution is pushed a bit, we could have all examples and tests documented in doxygen (instead of READMEs).
I think 1. should be avoided because it will touch too many files and maybe one day it can be useful to have those groups defined.
2. is the simplest.
3. is IMHO technically and from a centralized documentation the best solution. But requires more work.
There was a problem hiding this comment.
I think 3 does make little sense. While I prefer API documentation and usage documentation to be centralized, the READMEs of applications should be kept with the application for two reasons:
- One can easily open a README in command-line or their favorite editor/IDE while working with the example and does not need to open an extra browser window
- The context might get lost if the README is moved somewhere else
As such, I prefer 2, but instead of ignoring the groups I rather would ignore the directories (as e.g. the vendor headers).
Furthermore, I don't see the point of being so strict with group names in .c-files, as they are not parsed by doxygen, so they can't break the rendered doc (which was the whole point of my initial issue), so it might also be sensible to ignore .c-files altogether. But maybe I'm in the minority with this opinion.
There was a problem hiding this comment.
I dropped the defined examples and tests groups. Will update #9266 with solution 2.
pkg/lwip/include/arch/cc.h
Outdated
| @@ -8,7 +8,7 @@ | |||
|
|
|||
| /** | |||
| * @defgroup lwip_arch_cc Compiler and processor description | |||
There was a problem hiding this comment.
Ok, but a bit out of the scope of this PR. If you insist, I can also change that.
There was a problem hiding this comment.
It's less out of scope than the introduction of auto_init doc below since this PR is about group naming ;-).
pkg/lwip/include/arch/sys_arch.h
Outdated
| @@ -8,7 +8,7 @@ | |||
|
|
|||
| /** | |||
| * @defgroup lwip_arch_sys_arch Architecture depentent definitions | |||
pkg/lwip/include/lwipopts.h
Outdated
| @@ -8,7 +8,7 @@ | |||
|
|
|||
| /** | |||
| * @defgroup lwip_opts lwIP options | |||
There was a problem hiding this comment.
all lwip pkg groups are fixed
sys/auto_init/auto_init.c
Outdated
| * directory for more details. | ||
| * | ||
| * @ingroup auto_init | ||
| * @ingroup sys_autoinit |
There was a problem hiding this comment.
Here and below: shouldn't it rather be sys_auto_init?
There was a problem hiding this comment.
I kept the initially defined sys_autoinit, I'll use your suggestion.
| * This module contains all netif drivers that support auto-initialization. | ||
| */ | ||
|
|
||
| /** |
There was a problem hiding this comment.
the changes related to auto_init was a bit problematic. I went for the improvement of the initial doc and add the missing groups there. Do you have a better suggestion ?
There was a problem hiding this comment.
Ah sorry, forgot about this comment. Iff you insist to keep the doc improvement in this PR, please at least factor it out of 6f91bf8 into a separate commit.
There was a problem hiding this comment.
please at least factor it out of 6f91bf8 into a separate commit.
done
| #define CCM_ERR_INVALID_DATA_LENGTH (-3) | ||
| #define CCM_ERR_INVALID_LENGTH_ENCODING (-4) | ||
| #define CCM_ERR_INVALID_MAC_LENGTH (-5) | ||
| /** @} */ |
There was a problem hiding this comment.
No, fixing the doxygen for this file is allowing the processing of doxygen in this file and, in the end, triggers a warning from doxygen because of undocumented defines. This change is fixing this. Do you want it in a separate commit ?
d6f2153 to
279bc6d
Compare
|
Rebased, now that #9266 is merged. |
|
@miri64, are your concerns addressed here so I can squash ? |
miri64
left a comment
There was a problem hiding this comment.
Given the number of defects, I really prefer to move all doc enhancements to a separate PR, and only have the group renames in here.
sys/include/auto_init.h
Outdated
| * This feature can be enabled in any application by adding the `auto_init` | ||
| * module to the application Makefile: | ||
| * | ||
| * ```mk |
There was a problem hiding this comment.
This syntax doesn't work in Doxygen. Try
~~~~~~~~~~~~~~~~~~~~~~~ {.mk}
USEMODULE += auto_init
~~~~~~~~~~~~~~~~~~~~~~~instead if you like to enable syntax highlighting, otherwise remove the mk.
There was a problem hiding this comment.
removed the commit related to that change. Will open a dedicated PR for that later.
sys/include/auto_init.h
Outdated
| * `auto_init` initializes any included module that provides auto | ||
| * initialization capabilities. | ||
| * | ||
| * Drivers or cpu peripherals that provides a SAUL adaption and net interfaces |
sys/include/auto_init.h
Outdated
| * initialization capabilities. | ||
| * | ||
| * Drivers or cpu peripherals that provides a SAUL adaption and net interfaces | ||
| * can be initialized automatically with auto_init. |
sys/include/auto_init.h
Outdated
| * can be initialized automatically with auto_init. | ||
| * | ||
| * For high-level device drivers (@ref drivers), the default initialization | ||
| * parameters are taken from the `DRIVERS_params.h` files provided by the |
sys/include/auto_init.h
Outdated
| * The modules will be initialized in the context of the main thread right | ||
| * before the main function gets called. Be aware that most modules expect to | ||
| * be initialized only once, so do not call a module's init function when using | ||
| * auto_init unless you know what you're doing. |
There was a problem hiding this comment.
`auto_init`, unless you know what you're doing.
sys/include/auto_init.h
Outdated
| * @ingroup sys_auto_init | ||
| * @brief Provides auto-initialization of SAUL drivers. | ||
| * | ||
| * This module contains all high-level drivers (sensor or actuators) that |
There was a problem hiding this comment.
Please rephrase. This sentence makes little sense:
- What are high-level drivers? Do you mean SAUL as a high-level interface to the drivers?
- This module only allows for auto-initialization of those drivers using SAUL, and does not contain the drivers.
sys/include/auto_init.h
Outdated
| * @ingroup sys_auto_init | ||
| * @brief Provides auto-initialization of Netif drivers via GNRC. | ||
| * | ||
| * This module contains all netif drivers that support auto-initialization. |
There was a problem hiding this comment.
This module also doesn't contain any drivers, only enables their auto-initialization.
sys/include/auto_init.h
Outdated
| /** | ||
| * @defgroup sys_auto_init_gnrc_netif GNRC netif drivers auto-initialization | ||
| * @ingroup sys_auto_init | ||
| * @brief Provides auto-initialization of Netif drivers via GNRC. |
There was a problem hiding this comment.
s/Netif/network device drivers/. Ideally, link to drivers_netdev, e.g.
Provides auto-initialization for [network device drivers](@ref drivers_netdev) via GNRC.
miri64
left a comment
There was a problem hiding this comment.
Another definitively unrelated thing.
sys/crypto/modes/cbc.c
Outdated
|
|
||
| /** | ||
| * @ingroup sys_crypto_modes | ||
| * @ingroup sys_crypto_mode_cbc |
There was a problem hiding this comment.
If you just use sys_crypto here, the introduction of the new groups below would not be required.
There was a problem hiding this comment.
You are right, fixed now.
sys/include/crypto/modes/cbc.h
Outdated
| */ | ||
|
|
||
| /** | ||
| * @defgroup sys_crypto_mode_cbc Cipher block chaining mode |
There was a problem hiding this comment.
This is really completely unrelated. These files are perfectly fine to all be grouped in sys_crypto. If you disagree, please move this group introductions to a separate PR.
279bc6d to
b193ad1
Compare
|
@miri64, before this PR becomes unmaintainable, do you have other concerns ? I think I addressed all your comments and moved out the unrelated things. |
39bb193 to
1e8866f
Compare
miri64
left a comment
There was a problem hiding this comment.
Locally tested ACK. Please squash!
1e8866f to
00828bb
Compare
|
squashed, let's wait for the CI. |
|
Travis fail is unrelated (and due to an old cppcheck version, I believe) => go |
Contribution description
This PR fixes #8972 by adding a doxygen groups checker script. This script is based on the gist provided by @kaspar030 and which is working very well.
I slightly adapted it to not take into account the vendor header files and to make it return the full list of non matching groups.
In the meantime, I fixed all issues raised by the script. But I think I'll split this PR in several parts to simplify the reviews:
Issues/PRs references
fixes #8972
and based on #9266