rusackas opened a new pull request, #42501:
URL: https://github.com/apache/superset/pull/42501

   ### SUMMARY
   
   Swaps `JustinBeckwith/linkinator-action` for `lycheeverse/lychee-action` in 
the docs "Link Checking" job (`superset-docs-verify.yml`). lychee is a Rust 
link checker with real on-disk caching support, and handles a docs site the 
size of ours (a lot of `.md`/`.mdx` under `docs/`) noticeably better than 
linkinator in practice.
   
   What changed:
   - Pinned to `lychee-action` **v2.9.0** 
(`e7477775783ea5526144ba13e8db5eec57747ce8`).
   - All 24 `linksToSkip` regex patterns carried over 1:1 as `--exclude` flags 
(diffed programmatically against the old list, not just eyeballed, to make sure 
nothing got dropped or reworded in translation).
   - Added an `actions/cache` step to persist `.lycheecache` (lychee's own 
request cache, enabled via `--cache`) across CI runs — `linkinator-action` has 
no equivalent, so every run previously re-checked every external link from 
cold. Keyed on `github.run_id` with a prefix `restore-keys` fallback, so every 
run saves a fresh cache while always restoring the nearest prior one. 
`--max-cache-age 7d` keeps entries from going stale forever.
   - Job stays fully advisory, same as before: `continue-on-error: true` plus 
lychee-action's own `fail: false`.
   - Job key renamed `linkinator` → `lychee`; the **display name** ("Link 
Checking") is unchanged, so this shouldn't touch branch protection if anything 
matches on it.
   
   ### ⚠️ Requires an ASF Infra ticket before this can run
   
   The file already carries this comment for `linkinator-action` version bumps, 
and it applies at least as much to a full action swap: **actions have to be 
allowlisted org-side before GitHub Actions will let a workflow run them.** 
`lycheeverse/lychee-action` isn't used anywhere else in this repo today, so 
this PR's CI run for the link-checking job will likely fail to even start until 
an INFRA ticket adds it to the Apache org's allowlist. Filing that is probably 
the actual next step here — happy to do it, just flagging so it's not a 
surprise when the job comes back red for "action not allowed" rather than a 
real problem with the workflow.
   
   ### Other things worth a second pair of eyes
   
   - lychee doesn't have native `.mdx` support (it knows HTML and Markdown; 
anything else, including `.mdx`, falls back to best-effort link extraction via 
`linkify`). In practice this is unlikely to matter much for straightforward 
Docusaurus content, but it's a real behavioral difference from linkinator worth 
watching on the first few runs once the action is allowlisted.
   - I have no way to actually execute this job locally (no GH Actions runner 
here), so "does it pass" is unverified beyond `zizmor` finding no issues, the 
YAML parsing cleanly, and manually confirming (by round-tripping the parsed 
`args` string through `eval`, matching what `lychee-action`'s own 
`entrypoint.sh` does) that every regex survives as a single argv token with 
parens/pipes/backslashes intact. The real proof is the first live CI run once 
it's allowlisted.
   
   ### TESTING INSTRUCTIONS
   
   1. Get `lychee-action` allowlisted for `apache/superset` (ASF Infra ticket).
   2. Push to this branch (or open the PR) and confirm the "Link Checking" job 
runs and produces a job summary.
   3. Spot-check that a known-broken link still gets flagged, and that a couple 
of the excluded domains (e.g. `localhost:8088`) are still silently skipped.
   4. Confirm a second run restores the `.lycheecache` cache (visible in the 
job's cache-restore log line) rather than re-checking every link cold.
   
   ### ADDITIONAL INFORMATION
   - [ ] Has associated issue:
   - [ ] Required feature flags:
   - [ ] Changes UI
   - [ ] Includes DB Migration (follow approval process in 
[SIP-59](https://github.com/apache/superset/issues/13351))
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to