Skip to content

Conversation

iimpulse
Copy link
Contributor

Summary

This PR addresses issue #313 by implementing comprehensive link checking for documentation and fixing several broken links.

Changes Made

  • Added GitHub workflow for automated link checking using sphinx-build -b linkcheck
  • Fixed malformed VRS URL in variant.rst (removed duplicate https://)
  • Fixed obsolete GitHub organization reference in version2.rst
  • Updated sphinx configuration to use modern CSS API and set language to 'en'
  • Configured linkcheck to run on push/PR to docs, weekly schedule, and manual dispatch

Link Check Results

The link checker identifies ~109 broken/redirected links across the documentation, including:

  • Multiple broken HPO links (hpo.jax.org/app/browse/term/*)
  • Broken protocol buffer documentation anchors
  • SSL certificate issues with some external sites
  • Various redirects that could be updated

Test Plan

  • Sphinx linkcheck runs successfully and identifies broken links
  • Fixed links now work correctly
  • GitHub workflow validates properly
  • Documentation builds without errors

The workflow will now automatically check for broken links on documentation changes and run weekly to catch external link breakage.

🤖 Generated with Claude Code

This addresses issue ga4gh#313 by implementing comprehensive link checking for documentation.

Changes:
- Add GitHub workflow for automated link checking using sphinx-build -b linkcheck
- Fix malformed VRS URL in variant.rst (removed duplicate https://)
- Fix obsolete GitHub organization reference in version2.rst
- Update sphinx configuration to use modern CSS API and set language to 'en'
- Configure linkcheck to run on push/PR to docs, weekly schedule, and manual dispatch

The link checker identifies ~109 broken/redirected links across the documentation,
providing a foundation for future link maintenance.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@iimpulse
Copy link
Contributor Author

  • we do not need the scheduled run
  • the job should fail if there are broken links and we should report them

- Remove scheduled cron run as requested
- Update to actions/upload-artifact@v4 (v3 deprecated)
- Remove --keep-going flag so job fails on broken links
@iimpulse
Copy link
Contributor Author

Thanks for the feedback! I've addressed both issues:

Removed scheduled run - No more weekly cron job
Job now fails on broken links - Removed --keep-going flag so the workflow fails when broken links are found
Fixed deprecated artifact action - Updated from actions/upload-artifact@v3 to @v4

The workflow will now:

  • Only run on push/PR to docs and manual dispatch
  • Fail the check when broken links are detected (as intended)
  • Report broken links via both workflow failure and uploaded artifacts

The next workflow run should pass the action setup but correctly fail due to the broken links identified in the documentation.

- Added linkcheck_allowed_redirects to treat all redirects as successful
- Added specific ignore patterns for sites that block bots but are functional
- Added anchor ignore patterns for sites with problematic anchor checking
- Configured reasonable timeout and worker settings for efficient checking

This reduces false positives from ~109 redirect 'errors' to ~23 genuine broken links.
@iimpulse
Copy link
Contributor Author

Configured linkcheck to allow redirects

Updated the sphinx configuration to treat redirects as successful while still catching genuine broken links:

Configuration Changes

  • Allow all redirects - Redirects no longer fail the build (they're usually good!)
  • Smart ignore patterns - Skip sites that block bots but work in browsers
  • Anchor checking limits - Don't check anchors on sites with known issues
  • Performance tuning - Reasonable timeout and parallel workers

Results

  • Before: ~109 'broken' links (mostly redirects)
  • After: ~23 genuine broken links (404s, timeouts, missing anchors)

The workflow will now focus on real issues rather than being noisy about harmless redirects. 🎯

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant