Skip to content

docs: publish Javadoc as part of the User Guide#31

Merged
andygrove merged 5 commits into
apache:mainfrom
andygrove:worktree-feat+session-context-config
May 13, 2026
Merged

docs: publish Javadoc as part of the User Guide#31
andygrove merged 5 commits into
apache:mainfrom
andygrove:worktree-feat+session-context-config

Conversation

@andygrove
Copy link
Copy Markdown
Member

Which issue does this PR close?

Rationale for this change

The User Guide has no rendered API reference today. Readers can browse the
narrative pages but have to drop into source code to look up class and method
signatures.

What changes are included in this PR?

Generates Javadoc at docs build time and embeds it under /api/ in the
Sphinx output. A new "API Reference" page in the User Guide links into it.

  • pom.xml — adds maven-javadoc-plugin 3.11.2, configured to exclude the
    generated protobuf packages (datafusion_common.*,
    org.apache.datafusion.protobuf.*) so the published reference only covers
    hand-written API.
  • docs/build.sh — invokes ./mvnw javadoc:javadoc from the repo root and
    stages target/reports/apidocs/ into docs/source/_extra/api/ before
    sphinx-build runs.
  • docs/source/conf.py — adds html_extra_path = ["_extra"] so Sphinx
    copies the staged tree verbatim into the output, plus
    exclude_patterns = ["_extra"] so the Javadoc-emitted .md files
    (legal/jquery.md, etc.) aren't scanned as Sphinx sources under -W.
  • docs/source/user-guide/api-reference.md — new page in the User Guide
    toctree linking to api/index.html. The link is a raw HTML anchor with a
    comment explaining why (MyST treats relative .html Markdown links as
    cross-references and fails the strict build).
  • .gitignore — ignores the new staging directory.
  • docs/README.md — documents the new JDK + first-run network requirement
    for the docs build.

Are these changes tested?

The docs build itself is the verification. ./docs/build.sh now produces a
single tree at docs/build/html/ containing the existing Sphinx pages plus
/api/index.html and the surrounding Javadoc, and exits 0 under
sphinx-build -W with no warnings. The exclusion of generated protobuf
packages is verified by directory absence checks in the build output.

Are there any user-facing changes?

Yes — the published User Guide gains an "API Reference" page and a
browsable Javadoc tree at api/.

@andygrove andygrove force-pushed the worktree-feat+session-context-config branch from ec38364 to 0f33cb9 Compare May 13, 2026 21:38
@andygrove andygrove merged commit be10e16 into apache:main May 13, 2026
2 checks passed
@andygrove andygrove deleted the worktree-feat+session-context-config branch May 13, 2026 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant