Skip to content

Build warnings: missing source files, broken cross-references, footnote ID mismatch, and external link failures #6

@sanchuanhehe

Description

@sanchuanhehe

Description

The CI build (docs.yml) produces 41 warnings. After verifying against the source code, the root causes are as follows.

https://github.com/theopensourceway/production/actions/runs/26198396307/job/77082787146


Category 1: Missing source files (2 files)

Two cross-reference targets do not exist in the guidebook repository:

  • getting-started/creating-an-open-source-product-strategy.md — MISSING
  • getting-started/setting-goals.md — MISSING

These are referenced in essentials-of-building-a-community.md (lines 42, 58, 73) but have never been created. This is a content gap in the guidebook.

Fix: Create these files in the guidebook repository, or remove/update the references if the content has been folded into other chapters.


Category 2: Cross-reference path resolution (12 warnings for existing files)

Cross-references like [text](getting-started/community-101.md) from within getting-started/essentials-of-building-a-community.md produce warnings even though the target files exist.

Root cause: The source uses directory-prefixed paths (e.g., getting-started/community-101.md) from within the same directory. Since the referencing file is already in getting-started/, MyST resolves getting-started/community-101.md relative to the current document as getting-started/getting-started/community-101.md, which does not exist. The correct relative reference would be just community-101.md (or community-101 without the .md extension).

Similarly, [text](../measuring-success/defining-healthy-communities.md) from getting-started/ works because the ../ correctly navigates up one level.

Affected file: getting-started/essentials-of-building-a-community.md — 11 references with incorrect relative paths. Also getting-started/building-a-strategy.md — 1 reference with incorrect path.

Fix: In the guidebook repository, update the cross-reference paths to be correctly relative to the current file's location. For example:

  • [community](getting-started/community-101.md)[community](community-101.md)
  • Alternatively, use MyST's explicit cross-reference syntax: {doc}`community-101`

Category 3: Footnote ID mismatch (22 warnings)

All 22 warnings are in community-manager-self-care.md, of the form:

WARNING: 'myst' cross-reference target not found: 'user-content-fn-1' [myst.xref_missing]

Root cause: The source uses [^1] footnote syntax, which MyST renders with user-content-fn-* IDs (a GitBook convention that MyST's markdown-it parser preserves). However, Sphinx's cross-reference resolver does not register these IDs as valid targets, so it reports them as missing.

The footnotes render correctly in the HTML output — the references and back-references work. The warnings are false positives from MyST's cross-reference validation, but they clutter the build log and may mask real issues.

Fix (options):

  1. Add user-content-fn-* patterns to myst_xref_missing suppression in conf.py:
    myst_xref_missing_suppress = [r"user-content-fn-\d+"]
  2. Configure MyST to use Sphinx-native footnote IDs instead of GitBook-style IDs
  3. Suppress the specific warning type in conf.py:
    suppress_warnings = ["myst.xref_missing"]

Category 4: Broken external links (15 links — 403/404 errors)

404 Not Found (2 links)

Source file URL
building-diverse-open-source-communities... https://www2.deloitte.com/au/en/blog/diversity-inclusion-blog/2019/meritocracy-unraveling-paradox.html
defining-healthy-communities https://github.com/theopensourceway/guidebook/blob/master/worksheet_for_community_audits.ods

403 Forbidden — likely blocks automated requests (11 links)

Source file URL
building-diverse-open-source-communities... https://www.bls.gov/cps/cpsaat11.htm
building-diverse-open-source-communities... https://www.nytimes.com/2020/07/11/...
building-diverse-open-source-communities... https://www.unwomen.org/en/news/in-focus/csw61/redistribute-unpaid-work
building-diverse-open-source-communities... https://www.weforum.org/agenda/2019/03/...
community-manager-self-care https://academic.oup.com/occmed/article/69/1/35/5151234
community-manager-self-care https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1365-2702.2011.03868.x
community-manager-self-care https://spssi.onlinelibrary.wiley.com/doi/abs/10.1111/j.1540-4560.1974.tb00706.x
community-manager-self-care https://www.huffpost.com/entry/in-control-vs-under-control-leadership_b_12590650
community-manager-self-care https://www.managers.org.uk/insights/news/2019/september/how-to-talk-about-depression-at-work
community-manager-self-care https://www.mayoclinic.org/healthy-lifestyle/stress-management/in-depth/social-support/art-20044445
community-manager-self-care https://www.teamblind.com/blog/...
community-manager-self-care https://www.theburnoutproject.com.au/product/burnoutbookpaperback/
project-and-community-governance https://www.opavote.com/

Anchor not found (1 link)

Source file URL
building-diverse-open-source-communities... https://insights.stackoverflow.com/survey/2019#... (text fragment anchor)

Note: Many 403 errors are from sites that block automated requests but may be accessible in a browser. Options:

  • Find alternative/archive URLs (e.g., Wayback Machine)
  • Add known-403 patterns to linkcheck_ignore in conf.py
  • Replace with local references or cached content

Fix location: guidebook repository — update or replace broken URLs. production repository — add linkcheck_ignore patterns for sites that consistently block CI.


Category 5: Permanent redirects (14 links — should be updated)

URL Redirects to
http://kubernetes.io/ https://kubernetes.io/
http://credit.niso.org/ https://credit.niso.org/
https://about.gitlab.com/job-families/expert/merge-request-coach/ https://handbook.gitlab.com/job-description-library/expert/merge-request-coach/
https://docs.gitlab.com/ee/user/project/description_templates.html https://docs.gitlab.com/user/project/description_templates/
https://docs.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository
https://github.com/kubernetes/community/tree/master/sig-contributor-experience https://github.com/kubernetes/community/tree/main/sig-contributor-experience
https://theopensourceway.org https://www.theopensourceway.org/
https://www.apa.org/topics/manage-stress-social-support https://www.apa.org/topics/stress/manage-social-support
https://www.mentalhealth.org.uk/campaigns/mental-health-awareness-week https://www.mentalhealth.org.uk/our-work/public-engagement/mental-health-awareness-week
https://www.mentorship.guide/ https://mentorship.guide/
https://www.python.org/dev/peps/pep-0008/ https://peps.python.org/pep-0008/
https://www.who.int/mental_health/evidence/burn-out/en/ https://www.who.int/news/item/28-05-2019-burn-out-an-occupational-phenomenon-international-classification-of-diseases
https://www.psychologytoday.com/...the-heavy-price-high-achievement ...the-heavy-price-of-high-achievement
https://www.karenhixsonlpc.com/ https://www.drhixson.com/

Fix location: guidebook repository — update URLs to their current targets.


Action items

guidebook repository (requires maintainer action)

  • Create missing files: creating-an-open-source-product-strategy.md, setting-goals.md (or remove references)
  • Fix cross-reference paths in essentials-of-building-a-community.md and building-a-strategy.md
  • Update or replace broken external links (403/404)
  • Update redirected URLs to their current targets

production repository (can be done by production team)

  • Suppress footnote cross-reference warnings in conf.py
  • Add linkcheck_ignore patterns for sites that consistently block CI

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions