yiaany opened a new pull request, #24792: URL: https://github.com/apache/datafusion/pull/24792
## Which issue does this PR close? - Closes #17071. ## Rationale for this change The documentation published at https://datafusion.apache.org/ currently follows `main`, so it can describe behavior that differs from released DataFusion versions. This PR introduces a complete immutable documentation snapshot for DataFusion `55.0.0`, while keeping the root site on the latest `main` documentation. The approach follows the model discussed in #17071: build the complete tagged site into one version directory and use the PyData Sphinx Theme version switcher. ## What changes are included in this PR? - Adds a site-wide version picker for `Development` and `55.0.0`. - Builds the exact `55.0.0` tag into `/versions/55.0.0/`. - Verifies that tag `55.0.0` resolves to commit `d5552342012888b7d1a3ab88d92e3d292fc0cde0`. - Preserves tagged documentation content, including the existing "has not been released yet" sentence. - Pins release links that would otherwise point to mutable `main` or `latest` content. - Preserves all existing immutable version directories during normal documentation deployment. - Deletes stale current-site output without deleting archived releases. - Uses serialized, non-force deployment pushes. - Adds generated-site validation and regression tests. - Documents manual snapshot publication and the initial bootstrap sequence. - Excludes Sphinx build caches and environment-specific metadata from the published snapshot. - Refuses to replace an existing assembly output directory. This PR does not publish generated documentation, modify `asf-site`, backfill older releases, add `latest` or `stable` aliases, or automate future release publication. ## Are these changes tested? Yes. I ran: - `git diff --check` - `./ci/scripts/doc_prettier_check.sh` - `bash ci/scripts/markdown_link_check.sh` - `./ci/scripts/typos_check.sh` - `./ci/scripts/license_header.sh` - `cargo fmt --all -- --check` - `cargo clippy --all-targets --all-features -- -D warnings` - `./dev/rust_lint.sh` - 17 versioned-documentation unit and integration tests - current documentation build with warnings treated as errors - exact-tag `55.0.0` full-site snapshot build - final deployment assembly and generated-site validation - browser smoke tests over HTTP for version switching, missing-page fallback, mobile layout, and JavaScript-disabled release identification The final snapshot contains no `.doctrees`, `.buildinfo`, temporary build paths, or generated artifacts tracked in Git. ## Are there any user-facing changes? Yes. The current documentation remains at the site root. Users can switch between: - `Development`: https://datafusion.apache.org/ - `55.0.0`: https://datafusion.apache.org/versions/55.0.0/ The initial `55.0.0` snapshot must be published manually. ## Bootstrap coordination This PR intentionally remains a draft until maintainers choose the initial publication sequence. The current `asf-site` branch does not yet contain `versions/55.0.0/`, and deployment validation intentionally fails closed until the snapshot exists. Could a maintainer confirm which bootstrap procedure should be used? 1. Merge a preliminary retention-only workflow change, then publish the snapshot manually. 2. Use a coordinated window: verify that no old documentation deployment is running or queued, publish the snapshot, merge this PR, and verify that the new deployment retains it. I have not modified or published anything to `asf-site`. I reviewed the implementation end-to-end and can explain the exact-tag build, publication boundary, archive retention, validator, and deployment sequence during review. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
