Skip to content

[ZEPPELIN-6432] Modernize the Jekyll documentation build - #5372

Open
jongyoul wants to merge 1 commit into
apache:masterfrom
jongyoul:codex/docs-agents-guide
Open

[ZEPPELIN-6432] Modernize the Jekyll documentation build#5372
jongyoul wants to merge 1 commit into
apache:masterfrom
jongyoul:codex/docs-agents-guide

Conversation

@jongyoul

@jongyoul jongyoul commented Aug 3, 2026

Copy link
Copy Markdown
Member

What is this PR for?

Modernize the versioned documentation build and keep its publication output compatible with zeppelin-site.

  • Replace github-pages / Jekyll 3.9.5 / Redcarpet with Jekyll 4.4.1 and Kramdown GFM.
  • Make Docker the documented environment for dependency updates, preview, and production builds.
  • Exclude build-only files from _site and document the Zeppelin-to-zeppelin-site publication boundary.
  • Remove obsolete third-party analytics, comment, sharing, and feed integrations.
  • Replace two externally hosted graph diagrams with original Apache-licensed SVG diagrams.
  • Preserve Apache Zeppelin's approved ASF Matomo site ID 69 only in --safe production builds.
  • Add a generated-site check for non-ASF embedded resources and unapproved trackers.

This also prevents the build manifests covered by ZEPPELIN-6431 from being copied into future versioned documentation snapshots. Cleaning historical snapshots remains work in apache/zeppelin-site.

What type of PR is it?

Improvement

Todos

  • Upgrade the Jekyll and Ruby toolchain.
  • Document and verify the Docker-only build.
  • Remove legacy integrations and empty Atom/RSS feeds.
  • Replace external documentation images with original local SVG diagrams.
  • Preserve approved ASF Matomo tracking for production docs.
  • Verify generated output and external-resource policy.

What is the Jira issue?

How should this be tested?

From docs/:

docker run --rm \
  -v "$PWD:/docs" \
  -w /docs \
  ruby:4.0.6 \
  bash -lc "bundle install && bundle exec jekyll build --safe"

Then:

docker run --rm \
  -v "$PWD:/docs:ro" \
  -w /docs \
  ruby:4.0.6 \
  ruby check_external_resources.rb _site

The final verification generated 94 HTML files with Jekyll 4.4.1, emitted no build warnings, retained ASF Matomo site ID 69 only in the safe build, and produced no Atom/RSS or build-manifest output. It also verified that both original SVG diagrams are present in the generated site without the previous GitHub/S3 resource URLs. The full Apache RAT check passed for all 56 reactor modules.

Screenshots (if appropriate)

The replacement diagrams are committed as SVG files and rendered directly by the documentation page; this PR does not change the documentation CSS or page layout.

Questions:

  • Does the license files need to update? No.
  • Is there breaking changes for older versions? No runtime behavior changes; this affects the documentation build and generated output.
  • Does this needs documentation? docs/README.md and docs/AGENTS.md are updated.

@jongyoul
jongyoul force-pushed the codex/docs-agents-guide branch from 6b2faa3 to 8c95219 Compare August 3, 2026 15:25
@jongyoul
jongyoul force-pushed the codex/docs-agents-guide branch from 8c95219 to 43319ce Compare August 3, 2026 15:34
@jongyoul
jongyoul marked this pull request as ready for review August 4, 2026 01:45
Copilot AI review requested due to automatic review settings August 4, 2026 01:45

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR modernizes the docs/ Jekyll build to produce versioned documentation output compatible with zeppelin-site, while removing legacy third-party integrations and tightening publication policy checks.

Changes:

  • Upgrades the docs toolchain from GitHub Pages/Jekyll 3 + Redcarpet to Jekyll 4.4.1 + Kramdown GFM and documents Docker-based build/preview workflows.
  • Removes Atom/RSS feeds, comments, sharing, and legacy third-party analytics integrations; preserves ASF Matomo (site ID 69) only for --safe builds.
  • Replaces externally hosted diagram images with local ASF-licensed SVGs and adds a generated-site external resource/tracker check script.

Reviewed changes

Copilot reviewed 23 out of 26 changed files in this pull request and generated no comments.

Show a summary per file
File Description
docs/usage/display_system/basic.md Replaces externally hosted graph images with local SVG assets referenced via {{BASE_PATH}}.
docs/rss.xml Removes obsolete RSS feed template from the docs build.
docs/atom.xml Removes obsolete Atom feed template from the docs build.
docs/README.md Updates documentation build instructions to a Docker-only workflow and adds generated-site verification step.
docs/AGENTS.md Adds scoped contributor/agent guidance for docs/ including Docker build commands and publication boundary.
docs/Gemfile Pins Jekyll 4.4.1 explicitly and removes GitHub Pages/redcarpet-era gems.
docs/Gemfile.lock Refreshes the locked Ruby dependencies for the new Jekyll/Kramdown-based toolchain.
docs/_config.yml Switches markdown engine to Kramdown GFM, expands excludes to keep build-only files out of _site, and adds Matomo site ID config.
docs/check_external_resources.rb Adds a post-build scan to reject non-ASF embedded resources/unapproved trackers in generated _site.
docs/_includes/themes/zeppelin/default.html Removes feed link tags and legacy analytics include; conditionally includes Matomo only when site.safe.
docs/_includes/themes/zeppelin/post.html Removes comments include from post template.
docs/_includes/JB/matomo Adds ASF Matomo embed snippet (used only during --safe builds).
docs/_includes/JB/sharing Removes legacy sharing helper include.
docs/_includes/JB/comments Removes legacy comments helper include.
docs/_includes/JB/comments-providers/livefyre Removes legacy Livefyre comment provider include.
docs/_includes/JB/comments-providers/intensedebate Removes legacy IntenseDebate comment provider include.
docs/_includes/JB/comments-providers/facebook Removes legacy Facebook comments embed include.
docs/_includes/JB/comments-providers/disqus Removes legacy Disqus comments embed include.
docs/_includes/JB/analytics Removes legacy analytics helper include.
docs/_includes/JB/analytics-providers/piwik Removes legacy Piwik analytics include.
docs/_includes/JB/analytics-providers/mixpanel Removes legacy Mixpanel analytics include.
docs/_includes/JB/analytics-providers/google-universal Removes legacy Google Analytics (universal) include.
docs/_includes/JB/analytics-providers/google-classic Removes legacy Google Analytics (classic) include.
docs/_includes/JB/analytics-providers/getclicky Removes legacy GetClicky analytics include.
docs/assets/themes/zeppelin/img/docs-img/property-graph-example.svg Adds local, ASF-licensed replacement diagram for the property graph example.
docs/assets/themes/zeppelin/img/docs-img/labeled-property-graph-model.svg Adds local, ASF-licensed replacement diagram for the labeled property graph model.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

2 participants