Skip to content

Link-check CI + wiki redirect notice#156

Merged
riasc merged 4 commits into
mainfrom
docs/link-check-and-wiki-notice-147
Jun 18, 2026
Merged

Link-check CI + wiki redirect notice#156
riasc merged 4 commits into
mainfrom
docs/link-check-and-wiki-notice-147

Conversation

@riasc

@riasc riasc commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

Summary

Changed

  • .github/workflows/links.yml — new lychee link-check workflow. Runs on every PR that touches docs/ / mkdocs.yml / README.md, on push to main, on a Monday 00:00 UTC schedule (catches external link rot without spamming), and on manual dispatch. Configured with --accept 200,206,429 so a rate-limited GitHub URL doesn't masquerade as a dead link, an authenticated GITHUB_TOKEN for GH API rate limits, and --cache with a 1-day max-age (warm-starts from the previous run, but doesn't pin stale-OK across release windows).
  • Three wiki-inherited dead URLs fixed that lychee caught on first run: arriba.readthedocs.io/en/latest/github.com/suhrig/arriba (RTD page is 404; README is canonical now), mamba.readthedocs.io/en/latest/installation.html…/installation/mamba-installation.html (path moved), immuneepitope.orgiedb.org (rebrand; old hostname times out).
  • GitHub wiki Home banner pushed (wiki commit 289669c) — points readers at https://ylab-hi.github.io/ScanNeo2/ as the canonical site, notes the wiki is the unmaintained fallback.

Third and final PR against #147. The mike-based per-tag versioning piece from the original plan is deliberately deferred — `mike` writes to a `gh-pages` branch, which would require switching back from Pages-from-Actions and another admin flip; the single-version site is fine for the current release cadence.

QC

  • I, as a human being, have checked each line of code in this pull request
  • lychee link-check exits 0 against the current `docs/` + `README.md` (after the three URL fixes)
  • Wiki Home banner pushed (separate operation against the wiki repo, commit `289669c`)

Closes #147.

Runs on every push to main, every PR that touches docs/, on a Monday
00:00 UTC schedule (catches external link rot without spamming), and
on workflow_dispatch.

Configuration:
- --cache + .lycheecache restored from a previous run; cache key includes
  the SHA so each commit picks up its own state, with the run-key
  fallback shipping the previous cache as warm-start.
- --max-cache-age 1d so external URL responses don't pin a stale OK
  across release windows.
- --accept 200,206,429 — lychee defaults to 200 only. 206 (partial
  content) is what some CDNs return for HEAD requests; 429 (rate
  limited) is treated as 'host is up, we just got throttled' rather
  than 'link is broken' — the right call for scheduled runs.
- GITHUB_TOKEN passed in so GitHub URL checks use authenticated rate
  limits (else they hit the 60/hour unauthenticated cap).

fail: true means broken links fail the workflow — contributors catch
their own dead URLs at PR time. Third PR against #147.
@riasc riasc added the docs Documentation only label Jun 18, 2026
@coderabbitai

coderabbitai Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@riasc, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 24 minutes and 37 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a8a0e499-b969-41cd-9222-3a1dcccdd6e7

📥 Commits

Reviewing files that changed from the base of the PR and between 839fa64 and 4cf4ca6.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • docs/index.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/link-check-and-wiki-notice-147

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

- arriba: https://arriba.readthedocs.io/en/latest/ -> https://github.com/suhrig/arriba.
  Arriba's RTD page is 404; the GitHub README is now the canonical
  docs entry-point.
- mambaforge install: https://mamba.readthedocs.io/en/latest/installation.html
  -> https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html.
  The page was reorganized into the installation/ sub-section.
- IEDB: https://www.immuneepitope.org/ -> https://www.iedb.org/.
  The project rebranded to its short domain; the old hostname times out
  rather than redirecting.

All three were inherited from the wiki and would have been wrong on the
new docs site from day one. The lychee workflow added in this PR caught
them on first run.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/links.yml (1)

31-31: ⚡ Quick win

Disable checkout credential persistence for this job.

Line 31 currently keeps credentials in local git config by default; this job only reads code and doesn’t push, so this can be tightened.

🔧 Suggested patch
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v4
+        with:
+          persist-credentials: false
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/links.yml at line 31, The actions/checkout@v4 action on
line 31 currently persists credentials in the local git config by default, but
since this workflow job only reads code and never pushes changes, credential
persistence should be disabled for tighter security. Add a with section to the
actions/checkout@v4 action with persist-credentials set to false to prevent
credentials from being stored in the local git config after the checkout
completes.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/index.md`:
- Line 11: In the documentation file at line 11, correct two issues in the text:
replace the project name `Scanneo2` with `ScanNeo2` (adjusting the
capitalization of N and e), and change the phrase "mamba directory" to "mamba
environment" to accurately describe what the environment.yml file creates. These
corrections improve consistency with the proper project naming convention and
clarify the installation process documentation.

---

Nitpick comments:
In @.github/workflows/links.yml:
- Line 31: The actions/checkout@v4 action on line 31 currently persists
credentials in the local git config by default, but since this workflow job only
reads code and never pushes changes, credential persistence should be disabled
for tighter security. Add a with section to the actions/checkout@v4 action with
persist-credentials set to false to prevent credentials from being stored in the
local git config after the checkout completes.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e0cb7b51-8307-4603-9959-8c58a24cb5c5

📥 Commits

Reviewing files that changed from the base of the PR and between 539b501 and 839fa64.

📒 Files selected for processing (4)
  • .github/workflows/links.yml
  • docs/configuration.md
  • docs/index.md
  • docs/resources.md

Comment thread docs/index.md Outdated
## Install & Deploy Workflow

Scanneo2 requires snakemake and snakedeploy which are most easily installed using the Mamba Package Manager (or by conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation.html). We provide an `environment.yml` which allows creating a mamba directory that includes the above-defined dependencies.
Scanneo2 requires snakemake and snakedeploy which are most easily installed using the Mamba Package Manager (or by conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html). We provide an `environment.yml` which allows creating a mamba directory that includes the above-defined dependencies.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix project-name typo and installation wording in docs.

Line 11 still says Scanneo2 and “mamba directory”; this should be ScanNeo2 and “mamba environment” for clarity.

✏️ Suggested patch
-Scanneo2 requires snakemake and snakedeploy which are most easily installed using the Mamba Package Manager (or by conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html). We provide an `environment.yml` which allows creating a mamba directory that includes the above-defined dependencies. 
+ScanNeo2 requires Snakemake and Snakedeploy, which are most easily installed using the Mamba package manager (or conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html). We provide an `environment.yml` to create a mamba environment that includes the dependencies above.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Scanneo2 requires snakemake and snakedeploy which are most easily installed using the Mamba Package Manager (or by conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html). We provide an `environment.yml` which allows creating a mamba directory that includes the above-defined dependencies.
ScanNeo2 requires Snakemake and Snakedeploy, which are most easily installed using the Mamba package manager (or conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html). We provide an `environment.yml` to create a mamba environment that includes the dependencies above.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/index.md` at line 11, In the documentation file at line 11, correct two
issues in the text: replace the project name `Scanneo2` with `ScanNeo2`
(adjusting the capitalization of N and e), and change the phrase "mamba
directory" to "mamba environment" to accurately describe what the
environment.yml file creates. These corrections improve consistency with the
proper project naming convention and clarify the installation process
documentation.

@riasc

riasc commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator Author

Review summary (self-review)

CI all green now. lychee first run paid for itself — caught three wiki-inherited dead URLs that the docs site would have shipped with on day one (arriba RTD 404, mamba install path moved, IEDB rebrand). All fixed in `839fa64`. Second lychee run is green.

Wiki notice pushed as a separate commit on the wiki repo (`289669c`); the banner now appears at the top of https://github.com/ylab-hi/ScanNeo2/wiki and points readers at the new canonical site.

CodeRabbit

Walkthrough only; no actionable inline comments.

Mike-versioning deferral (FYI)

The original PR-C plan included `mike`-based per-tag versioning. That would require switching from the current Pages-from-Actions deploy (which I set up in #154) back to a `gh-pages`-branch deploy, plus another Settings → Pages admin flip. Not worth the disruption for the current release cadence — single-version "latest" docs are fine, and `mike` can be revisited when there's a concrete reason to look at older versions. Logged the deferral in the PR description.

Findings

No correctness bugs. Three URL corrections were really wiki-inherited bugs that this workflow surfaced — exactly what link-check CI is for.

@riasc
riasc merged commit 6f54a87 into main Jun 18, 2026
10 checks passed
@riasc
riasc deleted the docs/link-check-and-wiki-notice-147 branch June 18, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation only

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate documentation from GitHub wiki to a dedicated docs site (Read the Docs?)

1 participant