Skip to content

[Docs] Broken and inconsistent links in the development documentation #57

Open

Description

@rok

Describe the bug, including details regarding any error messages, version, and platform.

A crawl of the development documentation (https://arrow.apache.org/docs/dev/, build 26.0.0.dev290, 3,832 pages, 2026-09-25) found a number of broken and inconsistent links. The crawl checked every <a>, <link>, <img> and <script> target, plus same-site #fragment anchors. It checked apache/arrow GitHub source and edit links against the main tree.

Paths below are relative to https://arrow.apache.org/docs/dev/.

Broken links with a clear fix in the repo

  1. "Edit on GitHub" is broken on every autogenerated pyarrow API page (830 pages). Pages under python/generated/ link to .../edit/main/docs/source/python/generated/<name>.rst. Autosummary creates those files at build time, and they are not checked in.
  2. python/parquet.html returns 404. The Python Parquet docs were split into python/parquet/ without a redirect. The stable URL will break the same way at the next release.
  3. developers/continuous_integration/crossbow.html has relative targets conda-recipes, python-wheels and linux-packages, which all 404 (crossbow.rst). The conda recipes were removed from dev/tasks.
  4. developers/python/development.html: `building the project <build_pyarrow>`_ is treated as a URL, which 404s. It should be a :ref:.
  5. R vignettes:
    • r/articles/data_wrangling.html links to developers/writing_bindings.html, which was removed.
    • r/articles/developers/binary_features.html links to ../../install.html (404). The target should be ../install.html.
    • r/articles/developers/setup.html has a stale anchor #step-3-building-arrow.
    • r/articles/install.html has a stale anchor fs.html#s3-and-gcs-support.
    • r/articles/developers/docker.html links to the old docs/developers/{docker,crossbow}.html locations (404).
  6. Java docs links point to https://arrow.apache.org/docs/java/ (404) from python/integration/python_java.html and from the R pkgdown navbar (r/_pkgdown.yml). The Java docs are at https://arrow.apache.org/java/current/.
  7. developers/guide/resources.html links to r/articles/install.html#install-the-nightly-build. That anchor no longer exists, because the content moved to install_nightly.html.
  8. C GLib: c_glib/doc/{arrow-glib,gandiva-glib}.toml.in set docs_url for Parquet GLib to .../c_glib/arrow-parquet-glib/ (404). The published path is .../c_glib/parquet-glib/.
  9. Dead external links:
    • Numba CUDA docs (numba.pydata.org/numba-doc/latest/..., 404)
    • Jaeger docs/1.21/opentelemetry/ (redirects to a 404)
    • Wikipedia Quantile_rank (no such article), in the rank_quantile function doc in vector_rank.cc
  10. Plain http:// links in several pages (ORC/Parquet/Hadoop/Hive/Drill/Impala/Spark, flatbuffers, nanoarrow, jemalloc, doxygen, sphinx, lz4). The old mail-archives.apache.org mailing-list archive link should point to lists.apache.org.

Needs investigation or a maintainer decision (not a simple link edit)

  • Parts of the dev site appear stale. c_glib/index.html and r/index.html are Last-Modified 2026-08-12, and c_glib/arrow-glib/index.html is 2026-07-21, while the rest of the site is 2026-09-24. As a result, c_glib/index.html still has the old sidebar linking to python/parquet.html. The C GLib and R parts of the nightly dev-docs deploy may not be publishing.
  • The sidebar/navbar "R" entry (implementations.rst hidden toctree) points to the stable R docs (https://arrow.apache.org/docs/r), while C++, C GLib and Python stay on dev. A toctree entry can't be a relative non-Sphinx path, so this needs a different approach.
  • GLib macro pages (func.DEPRECATED_FOR.html and others, 7 libraries × 38 pages) link to c_glib/<lib>/version.h on GitHub. That file is generated by meson, and only version.h.in exists in the repo.
  • c_glib/arrow-glib/alias.TimePoint.html links to a non-existent struct.TimePoint.html, because GArrowTimePoint is a typedef gint64.
  • _modules/index.html lists 18 Cython modules (pyarrow/lib, _compute, _fs, …) whose viewcode pages don't exist.
  • The viewcode backlinks in _modules/pyarrow/compute.html use #pyarrow.dataset.<fn> anchors that don't exist, for 7 functions re-exported in pyarrow.dataset.
  • The R pkgdown site references favicon.svg, favicon-96x96.png and site.webmanifest (404 on 147 pages). r/pkgdown/favicon/ only has the older favicon set.
  • Dev pages have about 70 absolute links to stable docs (/docs/...), and a few have hard-coded /docs/dev/... links. Many could be :ref:/:doc: or relative links.
  • The implementations.html toctree and table use different URLs for Java, JavaScript, R, Rust and nanoarrow.
  • These external links need a replacement chosen:
    • conbench.ursa.dev (DNS does not resolve)
    • the Intel SDLT page in format/Columnar.rst (404)
    • the two JIRA links in cpp/flight.rst
  • A few developer-guide GitHub links are pinned to old commit SHAs, which is intentional for line ranges but may be outdated.

Links that looked broken but are fine: arrow.apache.org/swift/ (bot-blocked redirect), the Bluesky profile (SPA that returns a 404 status), reporter.apache.org (needs login), and the localhost examples.

Component(s)

Documentation

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

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions