Tfx

Latest version: v1.16.0

Safety actively analyzes 714792 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 14

1.16.0

Major Features and Improvements

* N/A

Breaking Changes

* `Placeholder.__format__()` is now disallowed, so you cannot use placeholders
in f-strings and `str.format()` calls anymore. If you get an error from this,
most likely you discovered a bug and should not use an f-string in the first
place. If it is truly your intention to print the placeholder (not its
resolved value) for debugging purposes, use `repr()` or `!r` instead.
* Drop supports for the Estimator API.

For Pipeline Authors

* N/A

For Component Authors

* N/A

Deprecations

* KubeflowDagRunner (KFP v1 SDK) is deprecated. Use KubeflowV2DagRunner (KFP v2 pipeline spec) instead.
* Since Estimators will no longer be available in TensorFlow 2.16 and later versions, we have deprecated examples and templates that use them. We encourage you to explore Keras as a more modern and flexible high-level API for building and training models in TensorFlow.

Bug Fixes and Other Changes

* N/A

Dependency Updates
| Package Name | Version Constraints | Previously (in `v1.15.1`) | Comments |
| -- | -- | -- | -- |

1.15.1

Major Features and Improvements

Breaking Changes

* Support KFP pipeline spec 2.1.0 version schema and YAML files with KFP v2 DAG runner

For Pipeline Authors

For Component Authors

Deprecations

Bug Fixes and Other Changes

Dependency Updates
| Package Name | Version Constraints | Previously (in `v1.15.0`) | Comments |
| -- | -- | -- | -- |

1.15.0

Major Features and Improvements

* Dropped python 3.8 support.
* Dropped experimental TFX Centralized Kubernetes Orchestrator
* Extend GetPipelineRunExecutions, GetPipelineRunArtifacts APIs to support
filtering by execution create_time, type.
* ExampleValidator and DistributionValidator now support anomalies alert
generation. Users can use their own toolkits to extract and process the
alerts from the execution parameter.
* Allow DistributionValidator baseStatistics input channel artifacts to be
empty for cold start of data validation.
* `ph.make_proto()` allows constructing proto-valued placeholders, e.g. for
larger config protos fed to a component.
* `ph.join_path()` is like `os.path.join()` but for placeholders.
* Support passing in `experimental_debug_stripper` into the Transform
pipeline runner.

Breaking Changes

* `Placeholder` and all subclasses have been moved to other modules, their
structure has been changed and they're now immutable. Most users won't care
(the main public-facing API is unchanged and behaves the same way). If you
do special operations like `isinstance()` or some kind of custom
serialization on placeholders, you will have to update your code.
* `placeholder.Placeholder.traverse()` now returns more items than before,
namely also placeholder operators like `_ConcatOperator` (which is the
implementation of Python's `+` operator).
* The `placeholder.RuntimeInfoKey` enumeration was removed. Just hard-code the
appropriate string values in your code, and reference the new `Literal` type
`placeholder.RuntimeInfoKeys` if you want to ensure correctness.
* Arguments to `component` must now be passed as kwargs and its return type
is changed from being a `Type` to just being a callable that returns a new
instance (like the type's initializer). This will allow us to instead return
a factory function (which is not a `Type`) in future. For a given
`component def C()`, this means:
* You should not use `C` as a type anymore. For instance, replace
`isinstance(foo, C)` with something else. Depending on your use case, if
you just want to know whether it's a component, then use
`isinstance(foo, tfx.types.BaseComponent)` or
`isinstance(foo, tfx.types.BaseFunctionalComponent)`.
If you want to know _which_ component it is, check its `.id` instead.
Existing such checks will break type checking today and may additionally
break at runtime in future, if we migrate to a factory function.
* You can continue to use `C.test_call()` like before, and it will
continue to be supported in future.
* Any type declarations using `foo: C` break and must be replaced with
`foo: tfx.types.BaseComponent` or
`foo: tfx.types.BaseFunctionalComponent`.
* Any references to static class members like `C.EXECUTOR_SPEC` breaks
type checking today and should be migrated away from. In particular, for
`.EXECUTOR_SPEC.executor_class().Do()` in unit tests, use `.test_call()`
instead.
* If your code previously asserted a wrong type declaration on `C`, this
can now lead to (justified) type checking errors that were previously
hidden due to `C` being of type `Any`.
* `ph.to_list()` was renamed to `ph.make_list()` for consistency.


For Pipeline Authors

For Component Authors

Deprecations

* Deprecated python 3.8

Bug Fixes and Other Changes

* Fixed a synchronization bug in google_cloud_ai_platform tuner.
* Print best tuning trials only from the chief worker of google_cloud_ai_platform tuner.
* Add a kpf dependency in the docker-image extra packages.
* Fix BigQueryExampleGen failure without custom_config.

Dependency Updates
| Package Name | Version Constraints | Previously (in `v1.14.0`) | Comments |
| -- | -- | -- | -- |

1.14.0

Major Features and Improvements

* Added python 3.10 support.
* Support `TypedDict` as a native output annotation for `component`.
`OutputDict` is still supported but it is recommended to use `TypedDict`
instead.

Breaking Changes

* `Placeholder` (and `_PlaceholderOperator`) are no longer `Jsonable`.
* Optimize MLMD register type to one call in most time instead of two calls.

For Pipeline Authors

* N/A

For Component Authors

* Replace "tf_estimator" with "tfma_eval" as the identifier for tfma
EvalSavedModel. "tf_estimator" is now serves as the identifier for the normal
estimator model with any signature (by default 'serving').

Deprecations

* For `component` return type annotation, it is recommended to use a python
native `TypedDict` instead.

Bug Fixes and Other Changes

* Apply latest TFX image vulnerability resolutions (base OS and software updates)

Dependency Updates
| Package Name | Version Constraints | Previously (in `v1.13.0`) | Comments |
| -- | -- | -- | -- |

1.13.0

Not secure
Major Features and Improvements

* Supported setting the container image at a component level for Kubeflow V2
Dag Runner.

Breaking Changes

For Pipeline Authors

* Conditional can be used from `tfx.dsl.Cond` (Given `from tfx import v1 as
tfx`).
* Dummy channel for testing can be constructed by
`tfx.testing.Channel(artifact_type)`.
* `placeholder.Placeholder.placeholders_involved()` was replaced with
`placeholder.Placeholder.traverse()`.
* `placeholder.Predicate.dependent_channels()` was replaced with
`channel_utils.get_dependent_channels(Placeholder)`.
* `placeholder.Predicate.encode_with_keys(...)` was replaced with
`channel_utils.encode_placeholder_with_channels(Placeholder, ...)`.
* `placeholder.Predicate.from_comparison()` removed (was deprecated)
* enable `external_pipeline_artifact_query` for querying artifact within one pipeline
* Support `InputArtifact[List[Artifact]]` annotation in Python function custom component

For Component Authors

* N/A

Deprecations

* Deprecate python 3.7 support

Bug Fixes and Other Changes

* Support to task type "workerpool1" of CLUSTER_SPEC in Vertex AI training's
service according to the changes of task type in Tuner component.
* Propagates unexpected import failures in the public v1 module.

Dependency Updates
| Package Name | Version Constraints | Previously (in `v1.12.0`) | Comments |
| -- | -- | -- | -- |
| `click` | `>=7,<9` | `>=7,<8` | |
| `ml-metadata` | `~=1.13.1` | `~=1.12.0` | Synced release train |

1.12.0

Not secure
Major Features and Improvements

* N/A

Breaking Changes

* N/A

For Pipeline Authors

* N/A

For Component Authors

* N/A

Deprecations

* N/A

Bug Fixes and Other Changes

* ExampleValidator and DistributionValidator now support custom validations.

Dependency Updates
| Package Name | Version Constraints | Previously (in `v1.11.0`) | Comments |
| -- | -- | -- | -- |

Page 4 of 14

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.