← Back to issue list

Docs: Implement an alternative link checker

View original Github issue

Metadata

Project
starbase
Number
#417
Type
issue
State
open
Author
medubelko
Labels
Status: Triaged
Created
Updated
Closed
—

Current evaluation

Maintainer request to replace Sphinx's slow linkcheck builder with a different external link checker, after a gnu.org link stalled a Rockcraft docs build for six hours. Mitigations (gnu.org ignore, retries=20) landed, but no alternative checker implemented yet.

Suggested action: keep open

Reason: Labelled 'Status: Triaged', authored by a maintainer, and mirrored to JIRA as CRAFT-4668, so it is acknowledged work rather than an unassessed report. Repo inspection at HEAD confirms the current pipeline is still Sphinx-based (docs/Makefile 'linkcheck: $(SPHINX_BUILD) -b linkcheck', common.mk 'docs-lint' calling 'make -C docs linkcheck', and the make-linkcheck pre-commit hook) with no alternative checker (no lychee/linkinator) anywhere in the tree; only mitigations exist — linkcheck_ignore entry for www.gnu.org, linkcheck_retries = 20, and linkcheck_report_timeouts_as_broken = False from commit 9cbbaf5 (PR #444). The issue asks to 'pursue other link checking solutions' without naming a tool or specifying a design, so tool selection and ignore-list/config migration still need maintainer decision, which caps actionability and raises complexity for a template repo whose changes propagate to all Starcraft child projects.

Evaluated by: mr-cal-bot

Impact: 50 Quick Win: 10 Complexity: 60 Confidence: 82 Actionability: 52

Issue body

In a recent [Rockcraft build](https://github.com/canonical/rockcraft/actions/runs/16355474142/job/46217812410?pr=921#step:6:5734), the sphinx-build link checker spent six hours trying to reach a link to [gnu.org](https://gnu.org). I've tried every timeout-related config setting available in the configuration, but none seem to stop it from infinitely looping. I think it's caused by the FSF's recent work walling themselves off from [DDoSing by LLM agents](https://www.fsf.org/blogs/sysadmin/our-small-team-vs-millions-of-bots). Something about the response causes it to keep trying, possibly because of a limitation with [`Retry-After`](https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-linkcheck_rate_limit_timeout). Or, Sphinx's user agent might be blocked now. Or, FSF is sending bots into a maze. Regardless of what other domains are doing, it shouldn't bog our builds. If other savvy sites do likewise in the future, we don't want to be surprised by blocked builds. Sphinx's link checker has always been slow and its capabilities meagre. I'd like to pursue other link checking solutions.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 50
Quick Win: 10
Complexity: 60
Confidence: 82
Actionability: 52
keep open Maintainer request to replace Sphinx's slow linkcheck builder with a different external link checker, after a gnu.org link stalled a Rockcraft docs build for six hours. Mitigations (gnu.org ignore, retries=20) landed, but no alternative checker implemented yet.
qwen/qwen3.6-35b-a3b
Impact: 50
Quick Win: 21
Complexity: 40
Confidence: 60
Actionability: 70
keep open Feature request to replace Sphinx's link checker with an alternative solution due to infinite hangs on domains like gnu.org during documentation builds.
qwen/qwen3.8-27b
Impact: 45
Quick Win: 25
Staleness: 75
Complexity: 45
Confidence: 80
Support Request: 5
keep open Proposal to replace Sphinx's link checker with a faster alternative after it caused a 6-hour build hang on gnu.org. Triaged by maintainer but inactive for over a year; Sphinx linkcheck is still in use in the codebase.
qwen/qwen3.6-35b-a3b
Staleness: 80
Complexity: 40
Confidence: 85
Support Request: 5
keep open Proposal to replace Sphinx's link checker with a faster alternative after it caused a 6-hour build hang on gnu.org. Currently triaged but inactive for a year.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 45
Confidence: 65
Support Request: 10
close stale Request to replace Sphinx's link checker due to infinite hangs on external domains. Triaged by a maintainer but inactive for over a year with only an automated Jira sync comment.

Update history

No update history recorded yet.

Related work

  • Related To: canonical/starbase#444 (confidence 72%)

    PR 'docs: make linkcheck more forgiving' (commit 9cbbaf5) added the flaky-domain linkcheck_ignore entries, linkcheck_retries=20 and linkcheck_report_timeouts_as_broken=False — mitigations for the hang rather than the requested checker replacement.

  • Related To: canonical/starbase#398 (confidence 60%)

    PR 'docs: add linkcheck to doc checks' (commit d240af2) introduced the Sphinx linkcheck step into docs linting that this issue wants to replace.

Related issues

No related issues found above the similarity threshold.