docs/superpowers/notes/ws7c-issue-290-status.md
Issue: #290 — Documentation links broken Opened by: lionkor (Lion) WS7c verification date: 2026-05-28
On https://docs.rs/raylib/latest/raylib/index.html, the "RaylibHandle" link was broken (missing /core/ in the path). Many other links in the docs were similarly broken — the same problem appeared when building docs locally.
The structural cause: in older versions of rustdoc, re-exported types from submodules could generate incorrect paths. The crate's top-level //! doc might link to RaylibHandle which actually lived in crate::core::mod.
6.0-rc)Verification run on 2026-05-28:
RUSTDOCFLAGS='-Dwarnings' cargo doc -p raylib --features full --no-deps
Result: zero warnings, zero errors. No unresolved links detected.
The rustdoc RUSTDOCFLAGS=-Dwarnings flag turns all unresolved-link warnings into hard errors, so a clean build definitively confirms all [TypeName] / [mod::Type] intra-doc links resolve correctly.
https:// links in sourceGrep of raylib/src/**/*.rs and raylib-sys/src/**/*.rs for https://: no raw URLs found in source files.
Grep of book/src/**/*.md for https://: URLs present include:
https://www.raylib.com/ — livehttps://docs.rs/raylib — livehttps://rustup.rs/ — livehttps://brew.sh/ — livehttps://cmake.org/download/ — livehttps://visualstudio.microsoft.com/downloads/ — livehttps://github.com/raylib-rs/raylib-rs — livehttps://emscripten.org/docs/getting_started/downloads.html — livehttps://github.com/emscripten-core/emsdk.git — livehttps://releases.llvm.org/ — livehttps://rust-lang.github.io/rust-bindgen/requirements.html — livehttps://github.com/raysan5/raylib/blob/master/src/shell.html — liveNo dead links found.
The original broken-link behavior in 5.5.1 was likely caused by rustdoc's handling of re-exports from private submodules. In older rustdoc, a type defined in crate::core::window::RaylibHandle but re-exported at the crate root would sometimes generate a docs.rs page with an incorrect path, causing cross-links to 404.
This was fixed by modern rustdoc (Rust 1.85+ used as MSRV) which correctly resolves re-export paths.
RESOLVED by the combination of:
RUSTDOCFLAGS=-Dwarnings cargo doc quality gate in check.yml, which would catch any broken intra-doc links as CI failures.RUSTDOCFLAGS=-Dwarnings cargo doc run passes with zero warnings.No URL fixes were required — all raw URLs in the book are reachable, and no raw URLs exist in the crate source files.
Recommended action: Close #290 with the note: "Resolved by modern rustdoc (Rust 1.85+ MSRV) which correctly handles re-export paths. The 6.0 branch enforces RUSTDOCFLAGS=-Dwarnings cargo doc as a CI quality gate, which would catch any regressions."