Skip to content

ci(lychee): enforce relative link check + clean dead template links (rustchain-bounties#16248) - #8505

Open
Ljunqiang wants to merge 1 commit into
Scottcjn:mainfrom
Ljunqiang:fix/bounty-16248-enforce-relative-links
Open

Ljunqiang wants to merge 1 commit into
Scottcjn:mainfrom
Ljunqiang:fix/bounty-16248-enforce-relative-links

Conversation

@Ljunqiang

Copy link
Copy Markdown

Summary

Resolves rustchain-bounties#16248 (5 RTC, claimed by @Ljunqiang).

What this changes

  1. .github/workflows/lychee.yml — split into two jobs:

    • linkcheck-relative (blocking): lychee --offline over README.md, top-level *.md, and docs/**/*.md with fail: true. A broken relative link now fails CI.
    • linkcheck-external (advisory): full-repo external URL check with fail: false (unchanged behavior; avoids flaky external 403/timeouts blocking PRs).
  2. GHOST_IN_THE_MACHINE.md — submission-template evidence entries that pointed at non-existent ./evidence/* paths are now plain code spans (paths for the submitter to fill), not markdown links.

Audit of the five linked issues

All five were already fixed in README.md relative links on main (verified against this tree):

Issue Reported link Status on main
#7910 / #7908 https://rustchain.org/api/tokenomics Removed from README; tokenomics documents GET /epoch instead
#7908 https://rustchain.org/bcos/ in README README now links local BCOS.md
#7886 CI badge / stargazers / DOI badge CI badge + workflow exist; DOI badge present
#7885 docs/mining.md File exists (stub → MINING_GUIDE.md)
#7792 docs/attestation-pipeline.md, docs/pay-out-ledger.md, sprint HN link No longer referenced from README

Local fence-aware relative-link scan over README.md + top-level *.md + docs/**/*.md: 0 missing file targets (directory links such as integrations/, miners/, miners/linux/ resolve to existing tracked directories).

CI demonstration

  • After this PR: relative job runs lychee --offline ... -- './README.md' './*.md' './docs/**/*.md' with fail: true.
  • Breaking any relative link in those paths makes linkcheck-relative red and blocks merge.
  • External noise stays advisory in linkcheck-external.

Closes #7910
Closes #7908
Closes #7886
Closes #7885
Closes #7792

Wallet: bc1qt26njj9uz20hprpe2de9h7z7lhkr0vrsc6sp3t

… and docs

- Split link-check into blocking relative (offline, fail: true) and advisory external jobs
- Remove dead evidence placeholder links from GHOST_IN_THE_MACHINE.md submission template
- Addresses rustchain-bounties#16248 acceptance: relative links must fail CI when broken

Closes Scottcjn#7910
Closes Scottcjn#7908
Closes Scottcjn#7886
Closes Scottcjn#7885
Closes Scottcjn#7792
@Ljunqiang
Ljunqiang requested a review from Scottcjn as a code owner September 22, 2026 09:51
@github-actions

Copy link
Copy Markdown
Contributor

Welcome to RustChain! Thanks for your first pull request.

Before we review, please make sure:

  • Non-doc PRs have a BCOS-L1 or BCOS-L2 label
  • Doc-only PRs are exempt from BCOS tier labels when they only touch docs/**, *.md, or common image/PDF files
  • New code files include an SPDX license header
  • You've tested your changes against the live node

Bounty tiers: Micro (1-10 RTC) | Standard (20-50) | Major (75-100) | Critical (100-150)

A maintainer will review your PR soon. Thanks for contributing!

@github-actions github-actions Bot added documentation Improvements or additions to documentation BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) ci size/XS PR: 1-10 lines labels Sep 22, 2026

This branch has not been deployed

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

Labels

BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) ci documentation Improvements or additions to documentation size/XS PR: 1-10 lines

Projects

None yet

1 participant