Skip to content

docs(6.3.0): deprecation table page, versioned warnings, v6.2.5 archive cut - #56

Open
wisdommen wants to merge 3 commits into
alphafrom
docs/07-19-deprecation-sync-6.3.0
Open

wisdommen wants to merge 3 commits into
alphafrom
docs/07-19-deprecation-sync-6.3.0

Conversation

@wisdommen

Copy link
Copy Markdown
Member

Summary

Doc-sync for framework phase 07-generational-removals (plan 07-19), companion to
UltiKits/UltiTools-Reborn phase 07-generational-removals. Deliberately targets
alpha, not master
-- this documents unreleased v6.3.0 behaviour; master is the
published branch dev.ultikits.com serves.

  • Cuts docs/archive/v6.2.5/ from origin/master's docs/src/ (the released layer,
    not this branch's alpha-derived working tree, which carries 24 files of unreleased
    6.3.0 doc content) -- before deleting any page describing a type 6.3.0 removes.
  • Adds a generated, bilingual, searchable deprecation table at
    guide/advanced/deprecations.md (EN) / zh/guide/advanced/deprecations.md (ZH),
    rendered at build time from a vendored, byte-identical copy of the framework's
    compatibility/deprecations.json. Placed under guide/advanced/ rather than the
    plan's originally-named api/ path -- see Deviations.
  • Deletes api/version-wrapper.md (EN+ZH) -- VersionWrapper was removed outright in
    v6.3.0; preserved in the v6.2.5 archive.
  • Every deprecation warning that used to say "a future version" or leaked internal
    "Phase 7" milestone vocabulary now names the concrete removal version from the
    registry (AbstractDataEntity, AbstractCommandExecutor, PagingPage/OkCancelPage,
    PlayerTempListener, SimpleTempListener's four confusable constructors).

Deviations from the plan (see 07-19-SUMMARY.md in the companion framework PR for full detail)

  1. Archive re-cut mid-session: an initial archive cut sourced from this branch's own
    alpha-derived working tree was wrong (would have labelled ~900 lines of unreleased
    6.3.0 prose "v6.2.5") and was amended before push -- re-cut from origin/master.
  2. Page placement: deprecations.md placed at guide/advanced/ instead of the
    plan's named api/ path, because a concurrent Phase-1 GSD milestone in this same
    repository (PR feat(api): javadoc 反向代理与 /api/ 命名空间腾挪 #55, draft, targets master) gives functions/api/[[path]].js
    ownership of the whole /api/* namespace and forwards unrecognised segments
    upstream to javadoc.io at 200 -- a page at api/deprecations.md would silently
    serve someone else's content under our URL if that PR merges, not 404.
  3. Vendored JSON exception: docs/src/public/deprecations.json is byte-identical to
    the framework registry per D-25, and that registry's own text for four entries
    contains "Phase 7" / "a future version" verbatim -- raw vendored data, not page prose.

Test plan

  • npm run build -- clean, no dead links
  • bash scripts/check-bilingual-parity.sh -- clean, 29/29 EN-ZH pages
  • find docs/src -name '*.md' -print0 | xargs -0 bash scripts/check-container-length.sh -- clean
  • diff -r docs/archive/v6.2.5/ against a fresh git archive origin/master docs/src extraction -- no differences
  • diff docs/src/public/deprecations.json against the framework's compatibility/deprecations.json -- byte-identical
  • Maintainer review of the placement deviation (en/guide/introduction #2 above) and the vendored-JSON exception (docs: add UltiKits CLI documentation #3 above)

Companion framework-side plan: UltiKits/UltiTools-Reborn .planning/phases/07-generational-removals/07-19-PLAN.md
(SUMMARY committed separately in that repository, not part of this PR).

…deleted

Freezes the released docs content as docs/archive/v6.2.5/ ahead of the
deletions this doc-sync makes for VersionWrapper, AbstractDataEntity,
AbstractCommandExecutor, PagingPage, OkCancelPage and PlayerTempListener
(all removed by 6.3.0). Cutting the archive first is the ordering D-26
requires -- reversed, the v6.2.5 archive would lose pages 6.2.5 users
still need.

Sourced from origin/master's docs/src, not this branch's alpha-derived
working tree. alpha carries 24 files / +915/-248 lines of unreleased
6.3.0 doc content synced in by Phases 1-6 under the Doc-Sync Workflow
(module-dependencies.md and panel-integration.md are whole pages that
do not exist in master at all; auto-register.md, transactions.md,
cmd-executor.md, event-listener.md, config-file.md, i18n.md,
conditional-registration.md, config-validation.md, declarative-gui.md
and ioc-container.md carry forward-looking prose inline). A v6.2.5
archive cut from alpha would have labelled that unreleased content
"v6.2.5", which is the exact defect class this milestone exists to
eliminate: a declared version that does not describe what it declares.

Verified: `diff -r` between docs/archive/v6.2.5/ and a `git archive
origin/master docs/src` extraction reports no differences.

sidebarGuideEN_v625/sidebarGuideZH_v625 are literal copies of
origin/master's sidebarGuideEN/sidebarGuideZH at cut time (which already
lacks Module Load Ordering and Panel Integration -- no manual exclusion
needed, master never had them). sidebarApiEN_v625/sidebarApiZH_v625
likewise freeze origin/master's sidebarApiEN/sidebarApiZH, and every
archived version from v6.1.0 through v6.2.4 is repointed from the live
sidebarApiEN/sidebarApiZH onto these frozen constants -- the live ones
are about to change in this same doc sync (a deprecations page is added
elsewhere, version-wrapper.md is removed), and archived versions must
not inherit that change.

versionsConfig.current stays 'v6.2.5' and examples/pom.xml is untouched;
bumping either is a release-time step per check-version-consistency.sh's
three-way invariant, and 6.3.0 is not released.
Vendors compatibility/deprecations.json from the framework repository
into docs/src/public/deprecations.json (byte-identical, verified via
diff) and renders it as a searchable, bilingual reference table at
guide/advanced/deprecations.md (EN) and zh/guide/advanced/deprecations.md
(ZH), via a shared build-time VitePress data loader
(docs/src/deprecations.data.mts). The loader reads the vendored JSON
from disk at build time -- no runtime fetch, no network dependency on
another repository's branch state (D-25) -- so the rendered <table> is
static SSR'd HTML present at build time, indexed by VitePress local
search like any other page text.

Placement deviation (Rule 1 -- avoiding a defect the plan's original
path would have caused): the plan named docs/src/api/deprecations.md.
Placed under guide/advanced/ instead, for two reasons surfaced during
this session by the concurrent Phase-1 javadoc-proxy work in this same
repository (PR #55, targets master, currently draft):

  1. That phase's functions/api/[[path]].js takes over the whole /api/*
     namespace and forwards any unrecognised first path segment
     upstream to javadoc.io. A page at docs/src/api/deprecations.md
     would not 404 after that phase merges -- GET /api/deprecations
     returns 200 with javadoc.io's own version-listing page instead,
     silently serving someone else's content under our URL.
  2. If PR #55 never merges, docs/src/api/ stays an ordinary VitePress
     directory and the original placement would have been fine --
     guide/advanced/ is asymmetric-risk-driven, not a certainty.

Also discovered while vendoring: docs/src/public/deprecations.json,
exactly as the plan names it, does not serve as a static asset under
this site's config (srcDir: 'docs' makes docs/public the actual public
root, confirmed against the existing docs/public/favicon.ico). Rather
than relocate the vendored file against the plan's named path, the data
loader reads it directly from docs/src/public/ at build time -- the
named artifact path is honoured, and no runtime-servable copy is
needed since nothing fetches it over HTTP.

Added "Deprecations" / "弃用清单" to both live sidebarGuideEN and
sidebarGuideZH's Releasing section, alongside Module Versioning.
Verified: bilingual parity (30/30 pages, both sidebars cover it),
container-length gate clean, npm run build clean with no dead links,
no <<< @/../examples/ reference added.
Deletes docs/src/api/version-wrapper.md and its zh mirror -- VersionWrapper
was removed outright in v6.3.0, and D-26's policy is to delete the page
covering a removed type, not just re-warn on it. Preserved in
docs/archive/v6.2.5/ (cut in a prior commit on this branch). Repoints the
top nav "API Reference" link and both live sidebarApiEN/sidebarApiZH from
the deleted page to ulti-tools-plugin (the only remaining /api/ page,
frozen archive versions untouched).

Removes the three getVersionWrapper() rows from ulti-tools-plugin.md's
method-summary tables (EN+ZH) -- the method no longer exists.

Every other deprecation warning that named "a future version" or leaked
internal "Phase 7" milestone vocabulary now names the concrete version
from compatibility/deprecations.json:

  - data-storage.md (EN+ZH): AbstractDataEntity migration warning ->
    "removed in v6.3.0", entities still extending it fail to compile
  - cmd-executor.md (EN+ZH): AbstractCommandExecutor "deprecated since
    v6.2.0" -> "removed in v6.3.0"
  - gui.md (EN+ZH): removed the "Deprecated API" section documenting
    PagingPage/OkCancelPage outright (both gone, not just deprecated);
    updated the top info callout to say "removed in v6.3.0"
  - event-listener.md (EN+ZH): SimpleTempListener's four-constructor
    warning renamed from "Phase 7" to "v6.3.0" (matching
    deprecations.json's removeIn value for all four keys); the inline
    code comment and PlayerTempListener prose ("also deprecated" ->
    "removed in v6.3.0") corrected the same way

module-versioning.md's AbstractDataEntity mention is a historical worked
example of the 6.2.0->6.2.1 PATCH-release descriptor change and is
unrelated to this removal -- left unchanged, verified by reading context.

The two `blob/alpha/COMPATIBILITY.md` links in module-versioning.md
(EN+ZH) were checked against 07-18's split and need no re-pointing: both
are whole-file references (no #anchor) to the "product-stage version
signal, MINOR may remove API" policy statement, which survived intact in
the slimmed ~580-line COMPATIBILITY.md after the split.

Known exception, not fixed: docs/src/public/deprecations.json (vendored
byte-identical per D-25) itself contains "Phase 7" and "a future version"
in three SimpleTempListener replacement-text fields and one VersionWrapper
field, copied verbatim from the framework's own registry. This is raw
vendored data, not page prose, and D-25's byte-identical requirement
takes precedence -- flagged in the SUMMARY rather than silently
resolved by paraphrasing the vendored source or silently declared clean.

Verified: bilingual parity 29/29 EN-ZH pages, container-length gate
clean, npm run build clean with no dead links, sidebarApiEN/ZH now list
only UltiToolsPlugin.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-01T17:44:16.828975Z a2cb680 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying ultitools-dev-doc with  Cloudflare Pages  Cloudflare Pages

Latest commit: a2cb680
Status: ✅  Deploy successful!
Preview URL: https://339536b9.ultitools-dev-doc.pages.dev
Branch Preview URL: https://docs-07-19-deprecation-sync.ultitools-dev-doc.pages.dev

View logs

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a2cb680c9e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

</tbody>
</table>

## 如何读这张表

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Replace the prohibited question-style heading

Rename this heading to a noun phrase such as 表格说明 or 字段说明. The repository's prescribed pre-submit check explicitly rejects headings beginning with 如何, and this line is reported by that exact check.

AGENTS.md reference: AGENTS.md:L95-L98

Useful? React with 👍 / 👎.

</thead>
<tbody>
<tr v-for="entry in data" :key="entry.key">
<td><code>{{ entry.className }}{{ entry.memberName ? '#' + entry.memberName + '(...)' : '' }}</code></td>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve signatures when rendering deprecated symbols

Render the signature from entry.key or expose parameter data instead of replacing every member signature with (...). With the current expression, the two DataStore#getOperator overloads, four SimpleTempListener constructors, and two CommandManager#register overloads produce indistinguishable symbols; it also incorrectly renders the UltiTools#versionWrapper field as a callable member. Readers therefore cannot identify which overload or member a row describes.

AGENTS.md reference: AGENTS.md:L7-L11

Useful? React with 👍 / 👎.

<td>{{ entry.since }}</td>
<td>{{ entry.removeIn || '—' }}</td>
<td>{{ entry.removedIn || '—' }}</td>
<td>{{ entry.replacement }}</td>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Convert Javadoc tags in replacement text

Convert or strip Javadoc inline tags before displaying this column. Several registry values contain constructs such as {@code resourceFolderPath}, {@code @CmdMapping}, and {@code DataStore}; Vue interpolation renders those braces and tag names literally, so both language pages expose registry markup instead of readable replacement guidance.

AGENTS.md reference: AGENTS.md:L7-L11

Useful? React with 👍 / 👎.

@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: b9871d0b-857e-423f-b5f5-34eaa3126fbc

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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