The Doxygen gate fails on main: nine errors, none of them new #56
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
MAINTENANCE.md calls the API documentation "a gate, not a convenience" — the
DoxyfilesetsWARN_AS_ERROR = FAIL_ON_WARNINGS, and every public declaration is supposed to carry a full@paramset.doxygen Doxyfileonmain(ae2c702) exits 1. Found while bumping the submodules; none of it is caused by that bump, and none of the named files were touched by it.They are four different defects, and they want four different fixes:
runtime.h:843documentsobjanddesttwice. A stacked doc block aboveakbasic_runtime_call_functionrepeats the shared@param obj/@param destpreamble. This is the one the gate was actually built to catch.@ref-style links intolibakgl's namespace do not resolve (AKGL_MAX_HEAP_COLLISION_PROXY,AKGL_COLLISION_LAYER_STATIC), plus one to aAKBASIC_SHAPE_prefix that is not a symbol.libakgl's headers are not in thisDoxyfile's input, so a cross-project link cannot resolve — these want to be plain code spans, or the input has to grow.statichelpers insrc/scanner.chave partial@paramsets.peek,peek_nextandmatch_next_chareach miss at least one.error.h"included by" graph hitsDOT_GRAPH_MAX_NODESexactly at 50. Environmental rather than a documentation defect, and it will keep tripping as the tree grows; raising the threshold in theDoxyfileis the fix.Item 4 also means the gate's result depends on whether
graphvizis installed, which is worth deciding about:.gitea/workflows/release.yamlinstalls it, so CI sees this error and a developer withoutdotdoes not.Worth knowing that
ctestis fully green in both configurations — 114/114 default, 116/116 under-DAKBASIC_WITH_AKGL=ON— so nothing here is visible from the test suite. The documentation gate is the only thing that sees it, and it is not wired intoctest.Beginning work on this. Plan: fix the four defects the gate caught - deduplicate the stacked @param doc block on akbasic_runtime_call_function, convert the unresolvable libakgl @ref links to plain code spans, fill in the missing @param entries on the scanner.c static helpers, and raise DOT_GRAPH_MAX_NODES in the Doxyfile past 50.
Progress: all four defects fixed and 'doxygen Doxyfile' now exits 0 with no errors/warnings (graphviz installed locally). Details: (1) moved the misplaced doc block off akbasic_runtime_new_function so it no longer stacks onto akbasic_runtime_call_function and duplicates @param obj/@param dest; (2) converted the three unresolvable #AKGL_/#AKBASIC_SHAPE_ @ref-style autolinks in sprite.h, akgl.h and sprite_akgl.c to plain code spans; (3) added the missing @param entries to peek, peek_next and match_next_char in scanner.c; (4) raised DOT_GRAPH_MAX_NODES to 100 in the Doxyfile. Opening the PR now.
Done. Opened #60 with the fixes for all four defects, andrew requested as reviewer, labels moved to status::review.