Skip to content

No link checking at all; both sibling templates run check-links #175

Description

@d-morrison

This repo has no link checking in any of its 14 workflows — no lychee, no check-links, nothing. Both sibling templates do:

Repo Link checking
qwt d-morrison/gha/.github/workflows/check-links.yml@v2
qbt d-morrison/gha/.github/workflows/check-links.yml@v2
rpt none

That matters more here than in a book template, because an R package template ships documentation full of links that rot in exactly the ways a checker catches: @seealso and @references URLs in roxygen blocks, badge URLs in README.Rmd, DESCRIPTION's URL/BugReports fields, vignette citations, and the altdoc site's own cross-references. None of R CMD check, lintr, or the spellcheck looks at any of them.

Since this is a template, every package created from it inherits the gap.

Suggested fix

Add a caller stub for the shared workflow, matching what qwt/qbt already do:

# .github/workflows/check-links.yml
name: Links
on:
  pull_request:
  push:
    branches: [main]
  schedule:
    - cron: "0 0 * * 0"   # weekly, catches rot with no code change
jobs:
  link-checker:
    uses: d-morrison/gha/.github/workflows/check-links.yml@v2
    permissions:
      contents: read
      issues: write        # files an issue when a scheduled run on main fails

Copy the exact shape from gha/examples/check-links.yml rather than the above, which is from memory of the sibling stubs.

Two things worth carrying over from qwt/qbt while doing it:

  • a lychee.toml at the repo root (this repo has none) — needed to exclude template-placeholder URLs, which would otherwise fail on day one for every package generated from the template
  • the links checked by hand skip label, so a PR that knowingly adds a not-yet-live URL can opt out

The weekly cron is the part that earns its keep: link rot happens with no commit to trigger a PR run.

Found while auditing all three templates' CI against IndrajeetPatil/workflows; rpt is by far the least migrated of the three (1 of 14 workflows calls gha, versus 3 of 12 in qwt and 6 of 11 in qbt), so there may be more gaps of this kind worth a separate pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions