docs(cli): document all 106 CLI commands - #19799
Open
rangareddy wants to merge 1 commit into
Open
Conversation
rangareddy
force-pushed
the
docs-15376-cli-commands
branch
from
August 31, 2026 04:31
a11a0e2 to
70a311d
Compare
Member
|
Is this a 2 part PR or? The description says part of. If this is a 2 part PR, please make it clear in the title this is Part 1 of N, where N should be clearly defined. |
rangareddy
marked this pull request as draft
August 31, 2026 05:03
Closes apache#15376 (HUDI-4689). hudi-cli exposes 106 commands across 26 command classes. cli.md covered 86 of them, and of those only 30 had their options documented anywhere; the other 56 existed on the page as a single line in the embedded help output. Twenty were absent entirely, including the whole locks audit family, both timeline commands and both diff commands. Every command name, option, default and behaviour below was read from the @ShellMethod and @ShellOption declarations on master, not from the help strings, which have drifted. The help listing now carries all 106 commands, inserted at their alphabetical positions rather than regenerated, so the diff stays reviewable. A new "Command reference" section documents every command, grouped into nine areas, with each command's options and defaults. It also records which entries are aliases rather than distinct commands: refresh, metadata refresh, commits refresh, cleans refresh and savepoints refresh are five names for one method, and temp query / temp_query, temp delete / temp_delete and temps show / temps_show are spelling variants. New worked sections for what had no documentation at all: Auditing Storage Locks locks audit enable / disable / status / validate / cleanup, the layout under .hoodie/.locks, and what validate reports as an error versus a warning Inspecting the Timeline timeline show active / incomplete and the two metadata timeline equivalents, with the output columns Diffing a File or Partition diff file, diff partition Repairing a Table rename partition, repair deprecated partition, repair show empty commit metadata Changing the Meta Fields Mode table set-meta-fields-mode and its two guards Four more are documented in the sections they belong to: trigger archival under Archived Commits, show restore / show restores under Savepoint and Restore, kerberos kdestroy under the Kerberos section, and metadata delete-record-index under Record Index Lookup. Three things the source read turned up that the help text does not tell you: - diff file and diff partition ignore --startTs and --endTs unless --includeArchivedTimeline is also true. CLIUtils#getTimelineInRange applies the bounds only on the archived branch and returns the whole active timeline otherwise, so a narrow range silently does nothing. - repair show empty commit metadata returns void and reports through log.warn, so it renders no result table. - rename partition physically removes the old partition directory after its delete_partition write; repair deprecated partition leaves the emptied directory. Angle brackets in generated text are escaped: the rename partition usage string contains <oldPartition>, which MDX otherwise parses as a JSX tag and fails the build on.
rangareddy
force-pushed
the
docs-15376-cli-commands
branch
from
August 31, 2026 06:09
4e1cc4c to
2dd66c7
Compare
rangareddy
marked this pull request as ready for review
August 31, 2026 06:21
Collaborator
Author
|
Hi @voonhous I have update the PR description and documentation changes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe the issue this Pull Request addresses
Closes #15376 (JIRA: HUDI-4689, epic
HUDI-1388), "Add documentation for all CLI commands".
hudi-cliexposes 106 commands across 26 command classes.website/docs/cli.mdhad two gaps:discover they exist. The whole
locks auditfamily, bothtimelinecommands and bothdiffcommands were amongthem.
helpoutput, with their options documentednowhere on the page.
Summary and Changelog
One file,
website/docs/cli.md.1. The
helplisting now carries all 106 commands. Entries were inserted at their alphabetical positionsrather than the block being regenerated, so the diff stays reviewable.
2. A new
Command referencesection documents every command, grouped into nine areas, with each command'soptions and their defaults. It also records which entries are aliases rather than distinct commands:
refresh,metadata refresh,commits refresh,cleans refreshandsavepoints refreshare five names for one method thatreloads table metadata, and
temp query/temp_query,temp delete/temp_deleteandtemps show/temps_showare spelling variants of three commands.3. New worked sections for the commands that had no documentation at all:
Auditing Storage Lockslocks auditcommands, the layout under.hoodie/.locks, and whatvalidatereports as an error versus a warningInspecting the Timelinetimeline show active/incompleteand the twometadata timelineequivalents, with their output columnsDiffing a File or Partitiondiff file,diff partitionRepairing a Tablerename partition,repair deprecated partition,repair show empty commit metadataChanging the Meta Fields Modetable set-meta-fields-modeand its two guardsFour more are documented in the sections they belong to:
trigger archivalunder Archived Commits,show restore/show restoresunder Savepoint and Restore,kerberos kdestroyunder the Kerberos section, andmetadata delete-record-indexunder Record Index Lookup.Every command name, option, default and behaviour was read from the
@ShellMethodand@ShellOptiondeclarationson
master, not from the help strings, which have drifted.Things the source read turned up that the help text does not say
diff fileanddiff partitionignore--startTsand--endTsunless--includeArchivedTimelineis alsotrue.CLIUtils#getTimelineInRange(:46-62) applies the bounds only on the archived branch and returns thewhole active timeline otherwise, so a narrow range silently does nothing. The help text advertises the defaults
with no hint of the precondition.
repair show empty commit metadatareturnsvoidand reports throughlog.warn, so it renders no resulttable; its findings go to the CLI log.
rename partitionphysically removes the old partition directory after itsdelete_partitionwrite(
SparkMain#renamePartition), whilerepair deprecated partitionleaves the emptieddefaultdirectory. The twoare otherwise the same shape.
Verification
The extraction behind the command reference was validated against the source as well: the 18 commands recorded as
taking no options were each confirmed to declare none, and the captured option count reconciles exactly with the
404
@ShellOptionoccurrences in the tree once the two alias methods that double-count are accounted for.Sections and the reference were confirmed in the rendered
build/docs/next/cli/index.html, including that theescaped angle brackets in the
rename partitionusage string render as literal<and>.Impact
Documentation only; no code or config changes. The page is the current (
next) docs version, which tracksmaster, where these commands live. Versioned copies underwebsite/versioned_docs/are deliberately untouched,since several of these commands do not exist in those releases.
Risk Level
none
Documentation Update
This is the documentation update.
Contributor's checklist