zhangshenghang opened a new pull request, #13135:
URL: https://github.com/apache/seatunnel/pull/13135

   Yes, I am contributing to Apache SeaTunnel.
   
   ## What documentation issues were found
   
   While auditing documentation against the actual source code on the current 
`dev` branch, I found 19 real doc bugs across the Zeta engine, transform, and 
connector docs. Every issue below was verified against a specific code location 
before fixing:
   
   **Zeta engine docs**
   1. `rest-api-v2.md` (en) documented `scheduleStrategy` values `WAIT` / 
`FAIL_FAST`, but `ScheduleStrategy` enum 
(`seatunnel-engine-common/.../server/ScheduleStrategy.java`) only has `WAIT` 
and `REJECT` — `FAIL_FAST` does not exist in the engine.
   2. `rest-api-v2.md` (en + zh) claimed `totalSlot` is always `0` under 
`dynamic-slot`. Contradicted by `DefaultSlotService.requestSlot` 
(`assignedSlots.put(...)` regardless of mode) and `GetOverviewOperation` 
(`totalSlot = assigned + unassigned`): only `unassignedSlot` is always `0`; 
`totalSlot` reflects currently assigned slots.
   3. `checkpoint-storage.md` (en + zh) used `//` comment lines inside a 
```yaml fence — invalid YAML that breaks when copy-pasted; changed to `#`. The 
zh HDFS example was also missing the `hdfs_site_path` sample present in en 
(supported by `HdfsConfiguration`).
   4. `resource-isolation.md` (en + zh) used an invalid fenced-code language 
tag `hacon` instead of `hocon`.
   5. `user-command.md` (zh) translated two option descriptions inside the 
verbatim `bin/seatunnel.sh -h` help block, which no longer matches the actual 
CLI output (`ClientCommandArgs.java`).
   6. `slot-allocation-strategy.md` (en) lacked the `sidebar_position: 15` 
front-matter that zh has, breaking sidebar ordering consistency.
   
   **Transform docs**
   7. `table-merge.md` (en + zh): the example uses `table_match_regex`, an 
option never documented in the Options table (registered in 
`TableMergeTransformFactory.optionRule()` together with `table_transform` / 
`rule_match_mode`); the doc also never stated that unmatched tables pass 
through unchanged (`AbstractMultiCatalogTransform` identity transform).
   8. `encrypt.md` (en + zh): did not document that all `fields` must be 
string-typed; `FieldEncryptTransform.initializeFieldIndexes()` throws 
`unsupportedDataType` at startup for non-string fields.
   9. `metadata.md` (en + zh): claimed `Partition` output is a `string` with 
"multiple partition fields separated by commas". 
`MetadataTransform.getMetadataFieldValue()` returns the raw row-option value 
with no joining logic, and the key is only available when declared by the input 
table's `MetadataSchema`.
   
   **Connector docs**
   10. Hive sink (en + zh): "example 1" was missing a closing brace, making the 
HOCON config invalid; duplicate `### example 2` headings created colliding 
anchors (renamed the second to `example 3` / `示例 3`).
   11. Hive source + sink (zh): missing the `## 支持的引擎` engine-support section 
present in en.
   12. HdfsFile source (en + zh): `file_format_type` was marked unconditionally 
required, but `HdfsFileSourceFactory.optionRule()` declares it `.optional(...)` 
(and per-table `tables_configs` entries carry their own format); aligned with 
the LocalFile doc's `conditionally yes` wording.
   13. HdfsFile source (en): missing the dedicated `### schema [config]` / 
`#### metadata_table_id` sections that zh (and en LocalFile) have.
   14. LocalFile source (en): missing the `### metalake_type [string]` section 
present in zh (option defined in `TableSchemaOptions`, default `gravitino`).
   15. HdfsFile sink + LocalFile sink (zh): the `merge_update_event` table cell 
was truncated mid-sentence; completed it to match en and the option's actual 
behavior (`FileBaseSinkOptions`).
   16. LocalFile sink (zh): excel example missing `schema_save_mode` / 
`data_save_mode` lines present in en.
   17. Iceberg source (en): missing the `## Source Option descriptions` section 
that zh has; Iceberg source examples (en + zh) used a lowercase `iceberg` 
plugin identifier (factory identifier is `Iceberg`).
   18. Iceberg sink (en + zh): SeaTunnel→Iceberg type mapping table omitted 
`TINYINT` / `SMALLINT` (both mapped to `INTEGER` per `IcebergTypeMapper`); 
Iceberg source (en + zh) did not document that `LIST` columns are only readable 
when the element type is BOOLEAN/INT/BIGINT/FLOAT/DOUBLE/STRING 
(`mappingListType` throws otherwise).
   19. IoTDBv2 sink (zh): missing the entire "Case 4: Combined TAG, ATTRIBUTE, 
and FIELD columns" example present in en; Fluss source (en + zh): `start_mode` 
typed as `string` although declared `.enumType(StartMode.class)` in 
`FlussSourceOptions`.
   
   ## What was changed
   
   All 19 issues above were fixed in place. 31 documentation files updated (156 
insertions, 36 deletions), always keeping en and zh in sync.
   
   ## Areas / files updated
   
   - `docs/{en,zh}/engines/zeta/`: rest-api-v2, checkpoint-storage, 
resource-isolation, user-command, slot-allocation-strategy (10 files)
   - `docs/{en,zh}/transforms/`: table-merge, encrypt, metadata, sql (8 files)
   - `docs/{en,zh}/connectors/`: Hive (source+sink), HdfsFile (source+sink), 
LocalFile (source+sink), Iceberg (source+sink), IoTDBv2 (sink), Fluss (source) 
(21 files)
   
   ## Were English and Chinese docs both checked?
   
   Yes. Every issue was verified in both language versions, and all fixes were 
applied symmetrically to `docs/en` and `docs/zh`.
   
   ## How duplicate PRs from the last 7 days were checked
   
   - Listed all PRs authored by @zhangshenghang in the last 7 days (#13097, 
#13072, #13050, #12993, #12986, #12971, merged #13121) and excluded every file 
they touch; none of the 31 files in this PR appear in those PRs.
   - Cross-checked all currently open PRs from any author against the 31 
changed files. Four open **feature** PRs touch some of the same files 
(13085/13129 Hive compression, 13096 file Word format, 13084 ZSTD ORC): they 
add new feature options and do not fix any of the issues in this PR. The only 
same-line proximity is the `file_format_type` row in PR 13096 (it adds a new 
format to the same cell this PR marks as conditionally required) — the edits 
are complementary, but a trivial one-line conflict may need resolving depending 
on merge order.
   
   ## How the change was verified
   
   - Every option-table claim was checked against the defining Java source 
(Options classes, Factory `optionRule()` methods, type mappers), cited per 
issue above.
   - Automated checks over all 31 changed files: (a) brace balance of every 
`hocon`/`yaml` fenced example — all balanced after fixing the Hive sink 
example; (b) all relative links resolve to existing files; (c) markdown table 
pipe-count consistency — all consistent.
   - A full Docusaurus build was not run: this change set contains only content 
edits with no front-matter/sidebar structural changes beyond a single 
front-matter addition mirroring zh, and the repo's CI has no dedicated docs 
build workflow for PRs.
   


-- 
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]

Reply via email to