Skip to content

[Feature](website) Retire the deprecated /learning, /archive-docs and /vendors pages - #4040

Merged
morningman merged 2 commits into
apache:masterfrom
morningman:fix-learn
Aug 6, 2026
Merged

[Feature](website) Retire the deprecated /learning, /archive-docs and /vendors pages#4040
morningman merged 2 commits into
apache:masterfrom
morningman:fix-learn

Conversation

@morningman

Copy link
Copy Markdown
Contributor

What

Three standalone pages have no inbound link anywhere on the site. /learning lost its footer entry back in #1461; /archive-docs and /vendors lost theirs in the new-homepage refactor (#3660). Their content has gone stale as well — /learning links to pre-4.x doc slugs that no longer exist, and /archive-docs still calls 3.0 the "latest version".

Page Action Redirect
/learning page removed /course
/archive-docs page removed none (404)
/vendors source parked, route removed /

Details:

  • /learning — removed along with its 10 exclusive sitemap icons. Doris 101 is now the entry point for newcomers.
  • /archive-docs — removed, together with its exclusive pdf.svg, the unused ARCHIVE_PATH constant and 17 orphaned archive.* zh-CN translation keys. The v2.0 PDF it linked stays reachable from the download page.
  • /vendors — source parked at src/pages/_vendors (underscore = not routed) so the content is preserved, while the route redirects to the homepage. plugin-client-redirects drops any redirect that would override a live route, so the page has to leave the route table for the redirect to apply.
  • src/pages/_download — removed. Underscore-prefixed, so it was never built; it was the last importer of src/components/More and src/components/PageColumn, which are now unreferenced (left in place for a follow-up).

createRedirects() previously normalized the site root to an empty string, which meant no redirect could ever target the homepage. It now keeps /.

Testing

Production-shaped build (--locale en --locale zh-CN):

From EN ZH
/learning /course/ /zh-CN/course/
/vendors / /zh-CN/

/archive-docs, /_vendors and /_download produce no route; /, /course, /download, /events, /why-doris/users and /profile-analysis all still build. No remaining route or broken-link warning references any of the removed pages.

Versions

  • dev

Languages

  • Chinese
  • English

Docs Checklist

  • Checked by AI
  • Updated required version and language counterparts, or explained why not

🤖 Generated with Claude Code

… /vendors pages

These three standalone pages have no inbound link anywhere on the site:
/learning lost its footer entry in apache#1461, while /archive-docs and /vendors
lost theirs in the new-homepage refactor (apache#3660). Their content has also
gone stale — /learning links to pre-4.x doc slugs that no longer exist, and
/archive-docs still calls 3.0 the "latest version".

- /learning: page removed, redirects to /course (Doris 101 is now the entry
  point for newcomers). Its 10 exclusive sitemap icons are removed too.
- /archive-docs: page removed, along with its exclusive pdf.svg, the unused
  ARCHIVE_PATH constant and 17 orphaned archive.* zh-CN translation keys.
  The v2.0 PDF it linked stays reachable from the download page.
- /vendors: source parked at src/pages/_vendors (underscore = not routed) so
  the content is preserved, and the route redirects to the homepage.
  plugin-client-redirects drops any redirect that would override a live
  route, so the page has to leave the route table for the redirect to apply.
- src/pages/_download: removed. Underscore-prefixed, so it was never built.

createRedirects() previously normalized the site root to an empty string,
which meant no redirect could ever target the homepage; it now keeps '/'.

Verified with a production-shaped `--locale en --locale zh-CN` build:
/learning -> /course/, /zh-CN/learning -> /zh-CN/course/, /vendors -> /,
/zh-CN/vendors -> /zh-CN/, and no remaining route or broken link references
any of the removed pages.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The detect step had only two outcomes — a specific version set, or every
version — so any touch of src/ or static/ jumped straight to the most
expensive build. Combined with i18n/**/code.json forcing both locales, a
website-only PR paid for 4 doc versions x 2 locales (~11k pages). That is
the build that starved the runner and got it killed mid-step on apache#4040.

Split the decision into three independent questions:

- TIER (skip / build / full): only versions.json and config/versions-plugin.js
  — the files that define which versions exist — earn a full build. Site code
  compiles identically for every version, so one probe version catches the
  same errors at a quarter of the cost.
- VERSIONS: unchanged, still intersected with the active set.
- LOCALES: derived from which locale's *content* changed, so an en-only doc
  change no longer drags zh-CN along, and vice versa.

Also:

- static/** no longer widens the scope. It is copied verbatim and never
  reaches the bundler, so a build can neither validate it nor be broken by it.
- i18n/**/*.json translation tables are syntax-checked with jq instead of
  pulling in a whole zh-CN site build. A stale or missing key only warns
  (Docusaurus falls back to the source string); malformed JSON is the sole
  build-breaking failure mode.
- sidebarsCommunity.json / sidebarsReleases.json no longer force a full build;
  their plugins are not version-scoped.
- Unclassified paths fall back to a minimal build instead of being skipped.
- Removed the dead NEED_BUILD variable.
- New skip_build output. The Build step still installs dependencies, since the
  governance steps need node_modules, and skips only the site build itself.

Verified by extracting the step and running it under `bash -e` against 29
fixtures, including the real file lists from apache#4040 and apache#4038, paired en/zh
doc edits, retired version dirs, a versions.json bump, and an empty diff.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@morningman
morningman merged commit e632b82 into apache:master Aug 6, 2026
3 checks passed
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