Apache Beam v2.77.0, published on October 7, 2026, adds schema update controls to Python WriteToBigQuery file loads, allowing append jobs to accommodate nullable additions and relaxed required fields. This stable release also changes Iceberg ingestion and introduces Java coder and TensorRT compatibility requirements that deserve review before deployment.
The full release notes and downloads are on the GitHub release page.
BigQuery append schemas and catalog reads ¶
Python WriteToBigQuery now accepts schema_update_options for file loads. BigQuery load jobs can use those options to add nullable fields or relax required fields while appending data. The release ties this capability to the file load path, so it should be evaluated against the write method each pipeline actually uses. See issue #21141.
For an ingestion job receiving a new optional source field, this provides a way to let the append load update the destination schema. Relaxing a required field is a separate contract decision. A successful load does not establish that downstream queries can handle missing values. Review those consumers when enabling relaxation, especially where required fields have been treated as a data quality guarantee.
Java BigQueryIO also gains support for reading Iceberg tables in the BigQuery Lakehouse runtime catalog through the Storage Read API. It accepts the four part identifier project.catalog.namespace.table. A TableReference can instead use a composite catalog.namespace dataset id. Previously, Beam silently misparsed these references, according to issue #39597.
That makes identifier handling a concrete upgrade check for catalog backed reads. Exercise the actual catalog and namespace combination used by the pipeline. This change addresses how Beam interprets the table reference; the notes make no throughput claim for these reads.
Iceberg file registration can evolve the schema ¶
IcebergIO AddFiles, exposed as IcebergAddFiles in YAML, can now evolve the table schema before registering files. The change applies to Java and YAML batch pipelines. It gives file registration jobs a schema evolution step within the operation described in issue #40144.
The controls are schema_evolution_options, required_columns, incompatible_schema_handling, and unverifiable_file_handling. Those names belong in the configuration review for any job adopting the feature. The release notes identify the controls but do not enumerate their accepted values or defaults, so they are not enough to construct a complete configuration example.
For batch ETL that registers existing files, the operational question is which schema changes the job should permit. Check representative files against required columns and review the handling chosen for incompatible or unverifiable schemas. The documented scope is batch only; streaming ingestion needs its own assessment.
Upgrade notes ¶
The portable Java SDK now encodes SchemaCoders in a portable format. Beam lists this as a breaking change in issue #34672. The original custom Java coder encoding remains available through StreamingOptions.setUpdateCompatibilityVersion("2.76").
For existing portable Java jobs, review that compatibility setting before changing SDK versions. The release provides a way to retain the previous encoding, but it does not establish that every existing job can switch encodings without further checks. Include coder compatibility in the update test for affected pipelines.
Python inference deployments have a separate migration requirement. TensorRTEngineHandlerNumPy now requires TensorRT 10 or later and drops TensorRT 8.x support. Engines serialized by TensorRT 8.x must be rebuilt because deserialization requires the same major version that built the engine. The release also states that TensorRT 10 and later require GPU compute capability 7.5 or higher, excluding Pascal and Volta GPUs. These requirements are recorded in issue #36306.
Check both serialized engines and worker GPU models before upgrading those inference jobs. Updating the Python environment alone does not satisfy the engine rebuild or hardware requirements.