Validate and update links (STF-557)#311
Conversation
There was a problem hiding this comment.
Code Review
This pull request configures the Lychee link checker by adding a lychee.toml configuration file, adding .lycheecache to .gitignore, and updating various documentation and source code URLs to their canonical, non-redirecting forms. The review feedback suggests a key improvement to the Lychee configuration: removing the 500..=599 status code range from the accepted list to ensure that persistent server errors are properly flagged rather than silently ignored.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| # 500-599: Server errors (temporary issues shouldn't fail CI) | ||
| # 999: LinkedIn's custom status code | ||
| accept = ["100..=103", "200..=299", "403", "429", "500..=599", "999"] |
There was a problem hiding this comment.
Accepting all 500..=599 (Server Error) status codes will cause lychee to treat permanently broken links or down servers as successful, leading to silent failures. Since lychee has a built-in retry mechanism for transient errors, it is safer to remove "500..=599" from the accept list so that persistent server errors are properly surfaced.
| # 500-599: Server errors (temporary issues shouldn't fail CI) | |
| # 999: LinkedIn's custom status code | |
| accept = ["100..=103", "200..=299", "403", "429", "500..=599", "999"] | |
| # 999: LinkedIn's custom status code | |
| accept = ["100..=103", "200..=299", "403", "429", "999"] |
There was a problem hiding this comment.
Keeping 500..=599 in accept, matching the dev-site and blog-site configs — transient upstream 5xx shouldn't fail link-checking CI.
— Claude (posted on Greg's behalf)
541994d to
6254992
Compare
Adds a lychee configuration and a Links GitHub Actions workflow so that stale or redirecting links are caught automatically going forward. The checker runs on push, pull request, and weekly to catch external link rot. max_redirects is 0 so links that have moved are surfaced and can be updated to their canonical destination. Part of STF-557. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Validated all links with lychee and updated those that were out of date or redirected elsewhere: - dev.maxmind.com doc URLs now use canonical trailing-slash form - php.net manual links -> www.php.net - www.maxmind.com/en/correction -> /en/geoip-data-correction-request - www.maxmind.com/en/support -> support.maxmind.com/knowledge-base - www.maxmind.com/ -> /en/home Historical CHANGELOG.md entries are intentionally left unchanged. Part of STF-557. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Validated every link in the repo with the lychee link checker and updated those that were stale or redirecting. Also adds a lychee config and a Links CI workflow (push, pull request, weekly schedule) so link rot is caught automatically going forward.
max_redirects = 0so any moved link is surfaced and updated to its canonical destination.Final lychee result:
36 OK, 0 Errors, 2 Excluded.Links updated (old -> new)
https://www.maxmind.com/->https://www.maxmind.com/en/home(composer.json)https://dev.maxmind.com/geoip/docs/web-services->https://dev.maxmind.com/geoip/docs/web-services/(CLAUDE.md)https://dev.maxmind.com/geoip/docs/web-services?lang=en->https://dev.maxmind.com/geoip/docs/web-services/?lang=en(README.md, src/Model/City.php, Country.php, Enterprise.php, Insights.php)https://dev.maxmind.com/geoip/docs/databases?lang=en->https://dev.maxmind.com/geoip/docs/databases/?lang=en(README.md)https://dev.maxmind.com/geoip/updating-databases?lang=en->https://dev.maxmind.com/geoip/updating-databases/?lang=en(README.md)https://php.net/manual/en/book.phar.php->https://www.php.net/manual/en/book.phar.php(README.md)https://php.net/manual/en/book.curl.php->https://www.php.net/manual/en/book.curl.php(README.md)https://www.maxmind.com/en/correction->https://www.maxmind.com/en/geoip-data-correction-request(README.md)https://www.maxmind.com/en/support->https://support.maxmind.com/knowledge-base(README.md, 2 occurrences)Historical
CHANGELOG.mdentries are intentionally left unchanged (excluded viaexclude_path).Part of STF-557.
🤖 Generated with Claude Code