Skip to content

Feature #584 linkcheck - #587

Draft
JohnHalleyGotway wants to merge 4 commits into
developfrom
feature_584_linkcheck
Draft

JohnHalleyGotway wants to merge 4 commits into
developfrom
feature_584_linkcheck

Conversation

@JohnHalleyGotway

@JohnHalleyGotway JohnHalleyGotway commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Closes #584

Summary

Moves the link check into the existing Documentation workflow and updates Sphinx to the versions METplus uses, as was done for MET (dtcenter/MET#3457) and METplus (dtcenter/METplus#3359). The broken links themselves were resolved in #585. With these changes, the Documentation workflow builds the docs with no warnings and all checked links pass.

Changes

Link Check Moved Into the Documentation Workflow

  • .github/workflows/documentation.yaml now runs dtcenter/metplus-action-linkcheck@v1 (v1.6.0) as a Check links step after the docs build, with the same inputs linkcheck.yml used. The weekly schedule is dropped.
  • A workflow_dispatch trigger is added so the workflow can be run manually.
  • .github/workflows/linkcheck.yml is removed.

Sphinx Updated to Match METplus

Package Before After
sphinx 5.3.0 8.2.3
sphinx-design 0.3.0 0.6.1
sphinx-rtd-theme 1.3.0 3.0.1
sphinx-gallery 0.14.0 0.19.0
sphinxcontrib-bibtex 2.6.1 2.6.1 (unchanged; compatible with Sphinx 8)
  • Sphinx 8.2 requires Python 3.11 or later, so the Documentation workflow now uses Python 3.12 (was 3.10). Read the Docs already used 3.12.
  • The workflow no longer installs unpinned sphinx, sphinx-gallery, and sphinx_rtd_theme before docs/requirements.txt.

Links

  • Venita Hagerty (index.rst): https://sites.gsl.noaa.gov/authors/365 returns 503 Service Unavailable. Her name is now shown in bold with no link, as in MET and METplus, since this section will be removed before the next release. (v1.6.0 of the link checker re-checks 503 responses, which Sphinx reports as ignored.)
  • linkcheck_ignore in docs/conf.py is reduced to one pattern:
    • Removed https://doi\.org/.*: the link checker checks DOI links with the DOI API, so DOIs whose publishers block automated requests (e.g. Wiley) still pass, and a mistyped DOI fails.
    • Kept https://bmcnoldy\.rsmas\.miami\.edu/.* (incomplete TLS certificate chain, and often unreachable), with a shorter comment.
    • Removed the commented-out example patterns.

Consistent Spacing

Tabs in the .rst files (31 line(s) in 15 file(s), 4097779) are replaced with spaces, for consistent spacing that matches the formatting conventions used elsewhere in the docs:

  • Tabs used for indentation are replaced with the same number of spaces docutils already used for them (tab stops every 8 columns), so continuation lines and code blocks still line up.
  • Lines containing only whitespace are now empty, and trailing tabs are removed.
  • Tabs between words in a sentence, or after a directive name, are replaced with a single space.

These are whitespace-only changes (git diff -w is empty), and the rendered docs are unchanged. Each changed line was checked to give docutils the same input as before (docutils expands tabs to 8-column tab stops and strips trailing whitespace when it reads a file), and the Documentation workflow builds the docs with no warnings.

Pull Request Testing

  • Describe testing already performed for these changes:

    The Documentation workflow passed on this branch (run 37078013741): the docs build with no warnings, and all 74 checked links passed (including 4 DOIs checked with the DOI API), with 1 ignored (bmcnoldy.rsmas.miami.edu). The docs were also built and link checked locally with Sphinx 8.2.3 on Python 3.12, with no warnings. "Python 3.12 tests" also passed.

  • Recommend testing for the reviewer(s) to perform, including the location of input datasets, and any additional instructions:

    Review the Linkcheck Results in the Documentation job summary for this PR.

  • Do these changes include sufficient documentation updates, ensuring that no errors or warnings exist in the build of the documentation? [Yes]

  • Do these changes include sufficient testing updates? [Yes]

  • Will this PR result in changes to the test suite? [No]

    If yes, describe the new output and/or changes to the existing output:

  • Do these changes introduce new SonarQube findings? [No]

    If yes, please describe:

  • Please complete this pull request review by [Fill in date].

Pull Request Checklist

See the METplus Workflow for details.

  • Add any new Python packages to the METplus Components Python Requirements table.
  • Review the source issue metadata (required labels, projects, and milestone).
  • Complete the PR definition above.
  • Ensure the PR title matches the feature or bugfix branch name.
  • Define the PR metadata, as permissions allow.
    Select: Reviewer(s) and Development issue
    Select: Milestone as the version that will include these changes
    Select: Coordinated METplus-X.Y Support project for bugfix releases or METplotpy-X.Y.Z Development project for official releases
  • After submitting the PR, select the ⚙️ icon in the Development section of the right hand sidebar. Search for the issue that this PR will close and select it, if it is not already selected.
  • After the PR is approved, merge your changes. If permissions do not allow this, request that the reviewer do the merge.
  • Close the linked issue and delete your feature or bugfix branch from GitHub.

🤖 Generated with Claude Code

JohnHalleyGotway and others added 3 commits October 2, 2026 17:28
… linkcheck.yml, and update Sphinx to match METplus

- Run dtcenter/metplus-action-linkcheck@v1 as a "Check links" step of
  documentation.yaml after the docs build, with the same inputs linkcheck.yml
  used, as was done for MET (dtcenter/MET#3457) and METplus
  (dtcenter/METplus#3359). The weekly schedule is dropped.
- Add a workflow_dispatch trigger so the workflow can be run manually.
- Update docs/requirements.txt to the versions METplus uses: sphinx 8.2.3,
  sphinx-design 0.6.1, sphinx-rtd-theme 3.0.1, and sphinx-gallery 0.19.0.
- Use Python 3.12 for the Documentation workflow (was 3.10), since Sphinx 8.2
  requires Python 3.11 or later. Read the Docs already uses 3.12.
- Stop installing unpinned sphinx, sphinx-gallery, and sphinx_rtd_theme before
  docs/requirements.txt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The sites.gsl.noaa.gov author page returns 503 Service Unavailable. This
section will be removed before the next release, so no replacement link is
needed. This matches the same change in MET (dtcenter/MET#3457) and METplus
(dtcenter/METplus#3359).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ed-out examples

dtcenter/metplus-action-linkcheck checks DOI links with the DOI API, so a
DOI whose publisher blocks automated requests still passes, and a mistyped
DOI fails. Shorten the comment for bmcnoldy.rsmas.miami.edu, which is still
ignored.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JohnHalleyGotway JohnHalleyGotway added this to the METplotpy-13.0.0 milestone Oct 2, 2026
@JohnHalleyGotway JohnHalleyGotway self-assigned this Oct 2, 2026
@JohnHalleyGotway JohnHalleyGotway linked an issue Oct 3, 2026 that may be closed by this pull request
8 of 23 tasks
Tabs in the .rst files are replaced with spaces, matching the spacing
conventions used elsewhere in the docs:

- Tabs used for indentation are replaced with the same number of spaces
  docutils already used for them (tab stops every 8 columns), so the
  rendered docs are unchanged.
- Lines containing only whitespace are now empty, and trailing tabs are
  removed.
- Tabs between words in a sentence, or after a directive name, are
  replaced with a single space.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JohnHalleyGotway JohnHalleyGotway mentioned this pull request Oct 3, 2026
9 of 15 tasks

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

None yet

Projects

Status: 🔎 In review

Development

Successfully merging this pull request may close these issues.

Resolve the issues discovered by the automated linkcheck

1 participant