Disable TAGFILES in rosdoc2 to separate namespace tf2 documentation in packages (backport #856) #862
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Generated-by: Portions of this commit may include code completion from github.copilot version 1.372.0 or later
Description
This PR modifies Doxygen generation in all packages that define (or extend) the
tfnamespace by disabling rosdoc2's default import of TAGFILES that it sees. It also modernizes any existing rosdoc2.yaml files to clearly show what has changed from default.The existence and content of TAGFILES have a significant effect on the documentation generated by rosdoc2. See here for more details.
Within geometry2, here are some examples of the consequences of this:
Function tf2::toMsg(const tf2::Stamped<Eigen::Affine3d>&)in tf2_kdl, where incomplete documentation from tf2_eigen is leaking.What you see depends on the order that packages are documented in a repository, which is currently uncontrolled. But in any case, the Doxygen-> Breathe/Exhale documentation setup that we use does not handle namespace extensions well.
What this PR does is to preclude each package's documentation from including TAGFILES that were generated by other packages. That way, the
tfnamespace documentation will be included in each package, with the correct content, regardless of the order of running.There may be a downside that some cross-package links may not be available, though I could not find any examples of where cross-platform links are working in the current documentation, but not after this PR.
This PR partially addresses #833.
Is this user-facing behavior change?
No, only in documentation
Did you use Generative AI?
See the header
Additional Information
To test this, you will need a recent rosdoc2 from github. After installing rosdoc2 (in a venv), run rosdoc2 twice (to generate then use TAGFILES for all packages). This is easiest done using:
Without this change, on the second run some of the types of problems mentioned above will appear, though might be slightly different. With these changes, in the first run and any addition runs of rosdoc2, each package should include correct documentation of tf2 classes and functions defined in that package.
This is an automatic backport of pull request #856 done by [Mergify](https://mergify.com).