This is an automated email from the ASF dual-hosted git repository.
xqhu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new 65a896b9780 Fix #37894: Update yaml doc for composite transform
changes (#37901)
65a896b9780 is described below
commit 65a896b97808beeb478fb4d100f6e33d149d038e
Author: liferoad <[email protected]>
AuthorDate: Mon Mar 23 19:33:57 2026 -0400
Fix #37894: Update yaml doc for composite transform changes (#37901)
* Fix #37833: Use named logger instead of root logger in transforms/util.py
Replace root logger calls (logging.info, logging.warning, etc.) with a
module-level named logger (_LOGGER = logging.getLogger(__name__)) in
apache_beam.transforms.util. This allows sdk_harness_log_level_overrides
to properly control log levels for this module.
* Update yaml-schema.md with implicit input chaining documentation
---
.../content/en/documentation/sdks/yaml-schema.md | 48 ++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/website/www/site/content/en/documentation/sdks/yaml-schema.md
b/website/www/site/content/en/documentation/sdks/yaml-schema.md
index a563bf486be..ad712f97d7a 100644
--- a/website/www/site/content/en/documentation/sdks/yaml-schema.md
+++ b/website/www/site/content/en/documentation/sdks/yaml-schema.md
@@ -110,6 +110,54 @@ pipeline:
elements: []
```
+## Implicit Input Chaining for Composite Transforms
+
+When using `type: composite`, you can now omit explicit `input` specifications
on
+sub-transforms. The sub-transforms will automatically chain together, similar
to
+how `type: chain` works.
+
+For example, this pipeline:
+
+```yaml
+pipeline:
+ type: composite
+ input: SomeInput
+ transforms:
+ - type: MapToFields
+ config:
+ language: python
+ fields:
+ x: "element.x * 2"
+ - type: Filter
+ config:
+ language: python
+ keep: "element.x > 5"
+```
+
+Is equivalent to:
+
+```yaml
+pipeline:
+ type: composite
+ input: SomeInput
+ transforms:
+ - type: MapToFields
+ input: SomeInput
+ config:
+ language: python
+ fields:
+ x: "element.x * 2"
+ - type: Filter
+ input: MapToFields
+ config:
+ language: python
+ keep: "element.x > 5"
+```
+
+Note: Implicit chaining only works when:
+1. The composite transform has an input (e.g., `input: SomeInput`)
+2. Sub-transforms have no explicit `input` or `output` specifications
+
WARNING: If a transform doesn't have the error_handling configuration available
and a user chooses to use this optional output_schema feature, any failures
found will result in the entire pipeline failing. If the user would still like