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

   ## Contribution Acknowledgment
   
   I acknowledge that I am contributing to **Apache SeaTunnel**.
   
   ## What documentation issues were found
   
   While auditing the connector documentation against the actual source code on 
`dev` (commit f3e1c2ee3b), I found 12 real documentation defects across 10 
connector/common-option pages. Every issue was verified against the Java 
sources before editing:
   
   1. **Maxcompute source** (`docs/{en,zh}/connectors/source/Maxcompute.md`): 
the `table_list` section claimed every per-table option (including 
`read_columns`) falls back to the top-level value. In `MaxcomputeSource.java` 
(lines 140-148), `read_columns` is the only per-table option **without** a 
top-level fallback — a top-level `read_columns` is silently ignored in 
`table_list` mode.
   2. **Maxcompute sink** (`docs/{en,zh}/connectors/sink/Maxcompute.md`):
      - `overwrite` is deprecated in code — `MaxcomputeSink.java` (lines 86-91) 
logs a warning and forces `DataSaveMode.DROP_DATA` — but the doc did not 
mention this.
      - The `save_mode_create_template` placeholder list advertised 
`${table_name}`, which is `@Deprecated` in `SaveModePlaceHolder` and never 
replaced by this connector; the catalog replaces `${table}` 
(`MaxComputeCatalogUtil.java`, lines 106-113).
      - The claim "Only work on multi-table mode at now" is stale: 
`MaxcomputeSink.getSaveModeHandler()` always builds a save-mode handler that 
applies the template in single-table mode too.
   3. **Paimon source** (`docs/en/connectors/source/Paimon.md`): `database` was 
marked unconditionally required, but `PaimonSourceFactory.optionRule()` lists 
it as optional and it is unused when reading via `table_list` (each item 
carries its own `database`). Also fixed the `paimon.hadoop.conf` detail heading 
from `[string]` to `[map]` (it is `mapType()` in `PaimonBaseOptions.java`). The 
ZH counterpart is intentionally untouched because open PR #13062 already covers 
it.
   4. **Databend source** (`docs/{en,zh}/connectors/source/Databend.md`): the 
`parallelism` feature checkbox was `[x]`, but `DatabendSource` extends 
`AbstractSingleSplitSource` (single split; parallelism does not increase read 
parallelism).
   5. **Databend sink** (`docs/{en,zh}/connectors/sink/Databend.md`): the 
SeaTunnel→Databend type mapping still showed `TIME → TIME`, while 
`DatabendTypeConverter.java` (lines 70-78) maps `TIME → STRING` (Databend has 
no TIME type; PR #13040 fixed the code and the source doc but missed this sink 
table). Also added the missing `ARRAY`/`MAP`/`ROW`/`NULL` rows that the same 
converter produces.
   6. **FakeSource** (`docs/{en,zh}/connectors/source/FakeSource.md`): 
`parallelism` was unchecked with a note arguing it should stay unchecked, but 
`FakeSource` implements `SupportParallelism` and `FakeSourceSplitEnumerator` 
computes `numReaders × split.num` splits and distributes them — this is exactly 
what the [feature 
definition](docs/en/introduction/concepts/connector-v2-features.md) describes.
   7. **Elasticsearch sink** (`docs/{en,zh}/connectors/sink/Elasticsearch.md`): 
removed the duplicated `### Schema Evolution` heading (two identical headings, 
the second wrapping only the example); fixed the `auth_type` type column from 
`string` to `enum` (`AuthTypeEnum` in `ElasticsearchBaseOptions.java`); in the 
ZH page, fixed a full-width comma (,) inside the code span of the `hosts` 
example, which breaks the example when copied, and the same duplicated-heading 
problem.
   8. **Pulsar source** (`docs/en/connectors/source/Pulsar.md`): the 
`cursor.stop.mode` detail heading said `[String]` while the option is an 
`enumType` (the table and the ZH page already said `Enum`).
   9. **HBase sink** (`docs/{en,zh}/connectors/sink/Hbase.md`): the 
`schema_save_mode` value list omitted the `IGNORE` enum value defined in 
`SchemaSaveMode` and handled by `DefaultSaveModeHandler`.
   10. **ObsFile sink** (`docs/{en,zh}/connectors/sink/ObsFile.md`): three 
example code fences used the invalid language tag `hcocn` instead of `hocon` 
(json/excel/csv examples).
   11. **Sink Common Options** 
(`docs/en/connectors/common-options/sink-common-options.md`): fixed the typo 
"pipiles" → "pipelines".
   12. **Sink Common Options ZH** 
(`docs/zh/connectors/common-options/sink-common-options.md`): the option table 
was missing the whole `Description` column that the EN page has, and the EN 
"Important note" section (`plugin_input` vs `plugin_output` semantics) had no 
ZH counterpart — both added to align the two languages.
   
   ## What was changed
   
   - 20 documentation files (10 EN + 10 ZH pages; Paimon ZH deliberately 
excluded to avoid conflicting with open PR #13062)
   - 56 insertions / 38 deletions of real content: corrected option semantics, 
deprecated-option notes, enum value lists, type-mapping rows, feature 
checkboxes, heading structure, copy-paste-safe examples, and EN/ZH alignment
   
   ## Which areas/files were updated
   
   - `docs/en/connectors/source/`: FakeSource, Databend, Maxcompute, Paimon, 
Pulsar
   - `docs/zh/connectors/source/`: FakeSource, Databend, Maxcompute
   - `docs/en/connectors/sink/`: Databend, Maxcompute, Elasticsearch, Hbase, 
ObsFile
   - `docs/zh/connectors/sink/`: Databend, Maxcompute, Elasticsearch, Hbase, 
ObsFile
   - `docs/{en,zh}/connectors/common-options/sink-common-options.md`
   
   ## Were English and Chinese docs both checked?
   
   Yes. Every fix was applied to both language versions except: (a) the Paimon 
ZH page, which open PR #13062 already rewrites, and (b) the Pulsar 
`cursor.stop.mode` heading and the Maxcompute `table_list` wording, where the 
ZH page was already correct or the divergence did not exist there.
   
   ## How duplicate PRs from the last 7 days were checked
   
   Before starting I listed all PRs created since 2026-10-24 that touch `docs/` 
(#13062, #13050, #12993, #12986, #13081) and built an exclusion set of every 
file they modify; none of those connectors were re-audited for this PR except 
the Paimon EN page, which does not overlap with #13062's ZH-only Paimon 
changes. Immediately before opening this PR I re-ran the search — no new 
overlapping docs PR had appeared. This PR modifies only files outside all of 
those PRs' file sets.
   
   ## How the change was verified
   
   - Every option name, type, default, enum value and behavioral claim was read 
back against the connector source (`Options.key` definitions, factory 
`optionRule()`s, and the cited classes) before editing; file/line evidence is 
listed above.
   - Ran a repository-wide relative-link checker (3,163 links across `docs/en` 
+ `docs/zh`): 0 broken links.
   - Ran a repository-wide anchor checker (381 in-page anchors): the two 
remaining reports were manually traced through the CommonMark fenced-code rules 
and confirmed to be false positives (the `### UUID` target heading exists; the 
checker mis-tracked non-fence ``` lines with info strings).
   - Verified all edited markdown tables keep consistent column counts.
   - No build/test run: this PR changes only `.md` files; there is no code or 
config change to compile, and the repository has no markdown linter in CI. The 
doc CI job is path-gated and only triggers website builds.
   


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