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

Doxygen 1.9 support tasklist #215

Open
12 of 22 tasks
mosra opened this issue Jan 10, 2022 · 1 comment
Open
12 of 22 tasks

Doxygen 1.9 support tasklist #215

mosra opened this issue Jan 10, 2022 · 1 comment

Comments

@mosra
Copy link
Owner

mosra commented Jan 10, 2022

Because dealing with this project is never easy ALWAYS AN ABSOLUTE HORRID NIGHTMARE. Things to do:

  • Ignoring the new Doxyfile.xml to avoid an assert -- 45911a1
  • Adapt to changes in how friend classes are listed to avoid an assert -- c7ee89e
  • Bisect and work around breakage of inline namespaces from 1.9.1 -- in test_doxygen.test_compound.InlineNamespace.test, Foo::Bar and Foo::Bar::Baz are inline, but Foo::Bar::Baz is being listed as Foo::Baz even though stored in namespaceFoo_1_1Bar_1_1Baz.xml and referenced correctly from the parent, hitting an assert. Workaround could be doable but dirty (detecting if inline and extracting from filename).
  • HAVE_DOT has to be explicitly enabled for 1.9.2+ to make graphs appear in XML output -- 901988f
  • Dot files no longer have an absolute path but are copied to the XML directory instead, handle that (and check how that treats filename conflicts rather not, 'nuff nightmares already) -- e92be04
  • Certain functions have different hashes (test_doxygen.test_compound.Listing.test_class, test_doxygen.test_cpp.FunctionAttributes.test, test_doxygen.test_search.LongSuffixLength.test), special-case the test files?
  • test_doxygen.test_compound.Includes no longer exhibits the broken behavior, treating the file where a class was defined as the include file, not the file with a fwdecl; update the test file
  • test_doxygen/contents_blocks/input.dox:29: warning: End of list marker found without any preceding list items, same on line 39, nothing suspicious in the output, although happening on 1.8.18 already -- tracked already as Incorrect warning regarding end of list doxygen/doxygen#8493, nothing to do here
  • The damn thing started inserting <zwj/> to random places (test_doxygen.test_contents.Typography.test, test_doxygen.test_contents.Code.test, test_doxygen.test_contents.Blocks.test, log output in test_doxygen.test_contents.AutobriefBlockquote.test). What's the point of that?! -- 58a04dd
  • A bit less excessive spacing around inline elements (test_doxygen.test_contents.Custom.test), update the test file
  • list of xrefitems has changed order again (test_doxygen.test_contents.Blocks.test_xrefitem, inverse of 4ec09a2), what the hell -- was a temporary 1.8.18-1.8.20 regression, 228c9b8
  • As of Include qualified names in <memberdef>s in XML output doxygen/doxygen#8983, XML files now include <qualname> elements, which could help with restoring scopes in file docs?
  • warning: documented empty return type of, fix the test files -- 568edda, a0a0032
  • There's a potential change in behavior related to ignored asterisks at line beginnings, which I was always working around with * *foo* instead of *foo*, investigate the impact (Markdown **emphasis** at the beginning of the line is not rendered. doxygen/doxygen#8615)
  • Run on Magnum docs to discover the remaining 96 new bugs and regressions
    • The damn thing doesn't understand anchors in Markdown links anymore, so [scalar/vector functions](#scalarvector-functions) leads to a stupid warning: unable to resolve reference to 'scalarvector-functions' for \ref command FFS, I hope the usual HTML links work at least 🙄
    • unable to resolve reference to 'PixelFormat::RGBA8Unorm/@ref' for \ref command because apparently / is now considered a part of the reference? could be a good thing tho (yeah there's warning: expected whitespace after \ref command for the same line)
    • warning: unable to resolve reference to 'Platform' for \ref command from a class inside that namespace (basically no link to Platform works for some reason?!)
    • ⚠️ THE DAMN THING no longer knows how to link to stuff defined in parent classes
      • Magnum/Math/Vector3.h:139: warning: @copybrief or @copydoc target 'Vector::Vector(T)' not found
      • Magnum/SceneGraph/AbstractTranslationRotation3D.h:210: warning: unable to resolve reference to 'rotate(const Math::Quaternion<T>&)' for \ref command, the original doc work so i suppose this is because the same function is overriden in a subclass with no docstring?
  • Update the CI to run against 1.9.3
@marzer
Copy link
Contributor

marzer commented Apr 15, 2022

Something else for this list: It appears that in some recent doxygen version they've changed the way = default is handled, in that now it no longer leaks into the argsstring, meaning that this code isn't strictly correct anymore:

m.css/documentation/doxygen.py

Lines 2031 to 2036 in 6f5c7d5

signature: str = element.find('argsstring').text
if signature.endswith('=default'):
signature = signature[:-8]
func.is_defaulted = True
else:
func.is_defaulted = False

Doesn't appear that they've added any way to compensate for this (there's no defaulted="yes" attribute or similar) :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Doxygen theme
  
TODO
Development

No branches or pull requests

2 participants