devguide icon indicating copy to clipboard operation
devguide copied to clipboard

Add a workflow to regularly run `make linkcheck`

Open ezio-melotti opened this issue 3 years ago • 1 comments

This is a follow-up of #727 and related to #681. Since make linkcheck is somewhat unreliable and can't be required for regular PR, the idea is to use a workflow to run it regularly and create (or update) an issue when a link is unreachable. Note that make linkcheck is already run for PRs, but the result is only visible by looking at the logs.

@AlexWaygood shared a similar workflow in https://github.com/python/devguide/pull/727#issuecomment-1100939982:

Over at typeshed, we have a test that runs every night. If it fails, a bot auto-creates an issue for us. It works pretty well!

Here's the .yml file: https://github.com/python/typeshed/blob/master/.github/workflows/daily.yml

And here's an example of an issue that the bot auto-created when the test failed: https://github.com/python/typeshed/issues/7572

This workflow creates a new issue every time, and it might be ok if it's run weekly/monthly however -- if we want to run it more frequently -- updating an existing issue might be a better approach.

@hugovk also raised a concern in https://github.com/python/devguide/pull/727#issuecomment-1100912440

One concern: if the cron is often failing (which it might, and often), we don't want it to show the repo as failed at the top:

If this sounds useful we can agree on the details, fix the currently broken links, and adapt the workflow linked above.

ezio-melotti avatar Jul 14 '22 02:07 ezio-melotti

Since make linkcheck is somewhat unreliable and can't be required for regular PR

FWIW, for spyder-ide/spyder-docs which is of the same OOM as this repo, we do run it for every PR, and periodically (every couple months) update any redirects. However, I certainly wouldn't run it for a repo much bigger than this, like the PEPs or docs, and I could certainly see why that wouldn't be desirable even at this scale, depending on the number and fickleness of the links involved, as well as the obvious workflow considerations.

@hugovk also raised a concern in https://github.com/python/devguide/pull/727#issuecomment-1100912440

One concern: if the cron is often failing (which it might, and often), we don't want it to show the repo as failed at the top:

I believe you could make the action itself not mark itself as failed if the linkcheck fails, but just open the issue, so the whole repo doesn't go red?

CAM-Gerlach avatar Jul 30 '22 20:07 CAM-Gerlach