tag:github.com,2008:https://github.com/tensorflow/tfx/releasesRelease notes from tfx2024-12-11T18:12:20Ztag:github.com,2008:Repository/169116405/v1.16.02024-12-11T18:57:33ZTFX 1.16.0 Release<h2>Major Features and Improvements</h2>
<ul>
<li>N/A</li>
</ul>
<h2>Breaking Changes</h2>
<ul>
<li><code>Placeholder.__format__()</code> is now disallowed, so you cannot use placeholders<br>
in f-strings and <code>str.format()</code> calls anymore. If you get an error from this,<br>
most likely you discovered a bug and should not use an f-string in the first<br>
place. If it is truly your intention to print the placeholder (not its<br>
resolved value) for debugging purposes, use <code>repr()</code> or <code>!r</code> instead.</li>
<li>Drop supports for the Estimator API.</li>
</ul>
<h3>For Pipeline Authors</h3>
<ul>
<li>N/A</li>
</ul>
<h3>For Component Authors</h3>
<ul>
<li>N/A</li>
</ul>
<h2>Deprecations</h2>
<ul>
<li>KubeflowDagRunner (KFP v1 SDK) is deprecated. Use KubeflowV2DagRunner (KFP v2 pipeline spec) instead.</li>
<li>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.</li>
</ul>
<h2>Bug Fixes and Other Changes</h2>
<ul>
<li>N/A</li>
</ul>
<h2>Dependency Updates</h2>
<table>
<thead>
<tr>
<th>Package Name</th>
<th>Version Constraints</th>
<th>Previously (in <code>v1.15.1</code>)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>docker</code></td>
<td><code>>=7,<8</code></td>
<td><code>>=4.1,<5</code></td>
<td></td>
</tr>
</tbody>
</table>
<h2>Documentation Updates</h2>
<ul>
<li>N/A</li>
</ul>vkarampuditag:github.com,2008:Repository/169116405/v1.16.0-rc02024-12-06T20:07:55ZTFX 1.16.0-rc0 Release<h2>Major Features and Improvements</h2>
<ul>
<li>N/A</li>
</ul>
<h2>Breaking Changes</h2>
<ul>
<li><code>Placeholder.__format__()</code> is now disallowed, so you cannot use placeholders<br>
in f-strings and <code>str.format()</code> calls anymore. If you get an error from this,<br>
most likely you discovered a bug and should not use an f-string in the first<br>
place. If it is truly your intention to print the placeholder (not its<br>
resolved value) for debugging purposes, use <code>repr()</code> or <code>!r</code> instead.</li>
<li>Drop supports for the Estimator API.</li>
</ul>
<h3>For Pipeline Authors</h3>
<ul>
<li>N/A</li>
</ul>
<h3>For Component Authors</h3>
<ul>
<li>N/A</li>
</ul>
<h2>Deprecations</h2>
<ul>
<li>KubeflowDagRunner (KFP v1 SDK) is deprecated. Use KubeflowV2DagRunner (KFP v2 pipeline spec) instead.</li>
<li>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.</li>
</ul>
<h2>Bug Fixes and Other Changes</h2>
<ul>
<li>N/A</li>
</ul>
<h2>Dependency Updates</h2>
<table>
<thead>
<tr>
<th>Package Name</th>
<th>Version Constraints</th>
<th>Previously (in <code>v1.15.1</code>)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>docker</code></td>
<td><code>>=7,<8</code></td>
<td><code>>=4.1,<5</code></td>
<td></td>
</tr>
</tbody>
</table>
<h2>Documentation Updates</h2>
<ul>
<li>N/A</li>
</ul>vkarampuditag:github.com,2008:Repository/169116405/v1.15.12024-05-13T20:43:40ZTFX 1.15.1<h1>Version 1.15.1</h1>
<h2>Major Features and Improvements</h2>
<h2>Breaking Changes</h2>
<ul>
<li>Support KFP pipeline spec 2.1.0 version schema and YAML files with KFP v2 DAG runner</li>
</ul>
<h3>For Pipeline Authors</h3>
<h3>For Component Authors</h3>
<h2>Deprecations</h2>
<h2>Bug Fixes and Other Changes</h2>
<h2>Dependency Updates</h2>
<table>
<thead>
<tr>
<th>Package Name</th>
<th>Version Constraints</th>
<th>Previously (in <code>v1.14.0</code>)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>kfp-pipeline-spec</code></td>
<td><code>kfp-pipeline-spec>=0.1.10,<0.2</code></td>
<td><code>>0.1.13,<0.2</code></td>
<td></td>
</tr>
</tbody>
</table>
<h2>Documentation Updates</h2>vkarampuditag:github.com,2008:Repository/169116405/v1.15.02024-04-29T17:07:02ZTFX 1.15.0 Release<h1>Version 1.15.0</h1>
<h2>Major Features and Improvements</h2>
<ul>
<li>Dropped python 3.8 support.</li>
<li>Extend GetPipelineRunExecutions, GetPipelineRunArtifacts APIs to support<br>
filtering by execution create_time, type.</li>
<li>ExampleValidator and DistributionValidator now support anomalies alert<br>
generation. Users can use their own toolkits to extract and process the<br>
alerts from the execution parameter.</li>
<li>Allow DistributionValidator baseStatistics input channel artifacts to be<br>
empty for cold start of data validation.</li>
<li><code>ph.make_proto()</code> allows constructing proto-valued placeholders, e.g. for<br>
larger config protos fed to a component.</li>
<li><code>ph.join_path()</code> is like <code>os.path.join()</code> but for placeholders.</li>
<li>Support passing in <code>experimental_debug_stripper</code> into the Transform<br>
pipeline runner.</li>
</ul>
<h2>Breaking Changes</h2>
<ul>
<li><code>Placeholder</code> and all subclasses have been moved to other modules, their<br>
structure has been changed and they're now immutable. Most users won't care<br>
(the main public-facing API is unchanged and behaves the same way). If you<br>
do special operations like <code>isinstance()</code> or some kind of custom<br>
serialization on placeholders, you will have to update your code.</li>
<li><code>placeholder.Placeholder.traverse()</code> now returns more items than before,<br>
namely also placeholder operators like <code>_ConcatOperator</code> (which is the<br>
implementation of Python's <code>+</code> operator).</li>
<li>The <code>placeholder.RuntimeInfoKey</code> enumeration was removed. Just hard-code the<br>
appropriate string values in your code, and reference the new <code>Literal</code> type<br>
<code>placeholder.RuntimeInfoKeys</code> if you want to ensure correctness.</li>
<li>Arguments to <code>@component</code> must now be passed as kwargs and its return type<br>
is changed from being a <code>Type</code> to just being a callable that returns a new<br>
instance (like the type's initializer). This will allow us to instead return<br>
a factory function (which is not a <code>Type</code>) in future. For a given<br>
<code>@component def C()</code>, this means:
<ul>
<li>You should not use <code>C</code> as a type anymore. For instance, replace<br>
<code>isinstance(foo, C)</code> with something else. Depending on your use case, if<br>
you just want to know whether it's a component, then use<br>
<code>isinstance(foo, tfx.types.BaseComponent)</code> or<br>
<code>isinstance(foo, tfx.types.BaseFunctionalComponent)</code>.<br>
If you want to know <em>which</em> component it is, check its <code>.id</code> instead.<br>
Existing such checks will break type checking today and may additionally<br>
break at runtime in future, if we migrate to a factory function.</li>
<li>You can continue to use <code>C.test_call()</code> like before, and it will<br>
continue to be supported in future.</li>
<li>Any type declarations using <code>foo: C</code> break and must be replaced with<br>
<code>foo: tfx.types.BaseComponent</code> or<br>
<code>foo: tfx.types.BaseFunctionalComponent</code>.</li>
<li>Any references to static class members like <code>C.EXECUTOR_SPEC</code> breaks<br>
type checking today and should be migrated away from. In particular, for<br>
<code>.EXECUTOR_SPEC.executor_class().Do()</code> in unit tests, use <code>.test_call()</code><br>
instead.</li>
<li>If your code previously asserted a wrong type declaration on <code>C</code>, this<br>
can now lead to (justified) type checking errors that were previously<br>
hidden due to <code>C</code> being of type <code>Any</code>.</li>
</ul>
</li>
<li><code>ph.to_list()</code> was renamed to <code>ph.make_list()</code> for consistency.</li>
</ul>
<h3>For Pipeline Authors</h3>
<h3>For Component Authors</h3>
<h2>Deprecations</h2>
<ul>
<li>Deprecated python 3.8</li>
</ul>
<h2>Bug Fixes and Other Changes</h2>
<ul>
<li>Fixed a synchronization bug in google_cloud_ai_platform tuner.</li>
<li>Print best tuning trials only from the chief worker of google_cloud_ai_platform tuner.</li>
<li>Add a kpf dependency in the docker-image extra packages.</li>
<li>Fix BigQueryExampleGen failure without custom_config.</li>
</ul>
<h2>Dependency Updates</h2>
<table>
<thead>
<tr>
<th>Package Name</th>
<th>Version Constraints</th>
<th>Previously (in <code>v1.14.0</code>)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>keras-tuner</code></td>
<td><code>>=1.0.4,<2,!=1.4.0,!=1.4.1</code></td>
<td><code>>=1.0.4,<2</code></td>
<td></td>
</tr>
<tr>
<td><code>packaging</code></td>
<td><code>>=20,<21</code></td>
<td><code>>=22</code></td>
<td></td>
</tr>
<tr>
<td><code>attrs</code></td>
<td><code>19.3.0,<22</code></td>
<td><code>19.3.0,<24</code></td>
<td></td>
</tr>
<tr>
<td><code>google-cloud-bigquery</code></td>
<td><code>>=2.26.0,<3</code></td>
<td><code>>=3,<4</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflow</code></td>
<td><code>>=2.15,<2.16</code></td>
<td><code>>=2.13,<2.14</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflow-decision-forests</code></td>
<td><code>>=1.0.1,<1.9</code></td>
<td><code>>=1.0.1,<2</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflow-hub</code></td>
<td><code>>=0.9.0,<0.14</code></td>
<td><code>>=0.15.0,<0.16</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflow-serving</code></td>
<td><code>>=1.15,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,<3</code></td>
<td><code>>=2.15,<2.16</code></td>
<td></td>
</tr>
</tbody>
</table>
<h2>Documentation Updates</h2>vkarampuditag:github.com,2008:Repository/169116405/v1.15.0-rc02024-04-25T18:22:07ZTFX 1.15.0-rc0 Release<h2>Major Features and Improvements</h2>
<ul>
<li>Dropped python 3.8 support.</li>
<li>Extend GetPipelineRunExecutions, GetPipelineRunArtifacts APIs to support<br>
filtering by execution create_time, type.</li>
<li>ExampleValidator and DistributionValidator now support anomalies alert<br>
generation. Users can use their own toolkits to extract and process the<br>
alerts from the execution parameter.</li>
<li>Allow DistributionValidator baseStatistics input channel artifacts to be<br>
empty for cold start of data validation.</li>
<li><code>ph.make_proto()</code> allows constructing proto-valued placeholders, e.g. for<br>
larger config protos fed to a component.</li>
<li><code>ph.join_path()</code> is like <code>os.path.join()</code> but for placeholders.</li>
<li>Support passing in <code>experimental_debug_stripper</code> into the Transform<br>
pipeline runner.</li>
</ul>
<h2>Breaking Changes</h2>
<ul>
<li><code>Placeholder</code> and all subclasses have been moved to other modules, their<br>
structure has been changed and they're now immutable. Most users won't care<br>
(the main public-facing API is unchanged and behaves the same way). If you<br>
do special operations like <code>isinstance()</code> or some kind of custom<br>
serialization on placeholders, you will have to update your code.</li>
<li><code>placeholder.Placeholder.traverse()</code> now returns more items than before,<br>
namely also placeholder operators like <code>_ConcatOperator</code> (which is the<br>
implementation of Python's <code>+</code> operator).</li>
<li>The <code>placeholder.RuntimeInfoKey</code> enumeration was removed. Just hard-code the<br>
appropriate string values in your code, and reference the new <code>Literal</code> type<br>
<code>placeholder.RuntimeInfoKeys</code> if you want to ensure correctness.</li>
<li>Arguments to <code>@component</code> must now be passed as kwargs and its return type<br>
is changed from being a <code>Type</code> to just being a callable that returns a new<br>
instance (like the type's initializer). This will allow us to instead return<br>
a factory function (which is not a <code>Type</code>) in future. For a given<br>
<code>@component def C()</code>, this means:
<ul>
<li>You should not use <code>C</code> as a type anymore. For instance, replace<br>
<code>isinstance(foo, C)</code> with something else. Depending on your use case, if<br>
you just want to know whether it's a component, then use<br>
<code>isinstance(foo, tfx.types.BaseComponent)</code> or<br>
<code>isinstance(foo, tfx.types.BaseFunctionalComponent)</code>.<br>
If you want to know <em>which</em> component it is, check its <code>.id</code> instead.<br>
Existing such checks will break type checking today and may additionally<br>
break at runtime in future, if we migrate to a factory function.</li>
<li>You can continue to use <code>C.test_call()</code> like before, and it will<br>
continue to be supported in future.</li>
<li>Any type declarations using <code>foo: C</code> break and must be replaced with<br>
<code>foo: tfx.types.BaseComponent</code> or<br>
<code>foo: tfx.types.BaseFunctionalComponent</code>.</li>
<li>Any references to static class members like <code>C.EXECUTOR_SPEC</code> breaks<br>
type checking today and should be migrated away from. In particular, for<br>
<code>.EXECUTOR_SPEC.executor_class().Do()</code> in unit tests, use <code>.test_call()</code><br>
instead.</li>
<li>If your code previously asserted a wrong type declaration on <code>C</code>, this<br>
can now lead to (justified) type checking errors that were previously<br>
hidden due to <code>C</code> being of type <code>Any</code>.</li>
</ul>
</li>
<li><code>ph.to_list()</code> was renamed to <code>ph.make_list()</code> for consistency.</li>
</ul>
<h2>Deprecations</h2>
<ul>
<li>Deprecated python 3.8</li>
</ul>
<h2>Bug Fixes and Other Changes</h2>
<ul>
<li>Fixed a synchronization bug in google_cloud_ai_platform tuner.</li>
<li>Print best tuning trials only from the chief worker of google_cloud_ai_platform tuner.</li>
<li>Add a kpf dependency in the docker-image extra packages.</li>
<li>Fix BigQueryExampleGen failure without custom_config.</li>
</ul>
<h2>Dependency Updates</h2>
<table>
<thead>
<tr>
<th>Package Name</th>
<th>Version Constraints</th>
<th>Previously (in <code>v1.14.0</code>)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>keras-tuner</code></td>
<td><code>>=1.0.4,<2,!=1.4.0,!=1.4.1</code></td>
<td><code>>=1.0.4,<2</code></td>
<td></td>
</tr>
<tr>
<td><code>packaging</code></td>
<td><code>>=20,<21</code></td>
<td><code>>=22</code></td>
<td></td>
</tr>
<tr>
<td><code>attrs</code></td>
<td><code>19.3.0,<22</code></td>
<td><code>19.3.0,<24</code></td>
<td></td>
</tr>
<tr>
<td><code>google-cloud-bigquery</code></td>
<td><code>>=2.26.0,<3</code></td>
<td><code>>=3,<4</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflow</code></td>
<td><code>>=2.15,<2.16</code></td>
<td><code>>=2.13,<2.14</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflow-decision-forests</code></td>
<td><code>>=1.0.1,<1.9</code></td>
<td><code>>=1.0.1,<2</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflow-hub</code></td>
<td><code>>=0.9.0,<0.14</code></td>
<td><code>>=0.15.0,<0.16</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflow-serving</code></td>
<td><code>>=1.15,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,<3</code></td>
<td><code>>=2.15,<2.16</code></td>
<td></td>
</tr>
</tbody>
</table>
<h2>Documentation Updates</h2>vkarampuditag:github.com,2008:Repository/169116405/v1.14.02023-09-06T18:31:57ZTFX 1.14.0 Release<h2>Major Features and Improvements</h2>
<ul>
<li>Added python 3.10 support.</li>
</ul>
<h2>Breaking Changes</h2>
<ul>
<li><code>Placeholder</code> (and <code>_PlaceholderOperator</code>) are no longer <code>Jsonable</code>.</li>
<li>Optimize MLMD register type to one call in most time instead of two calls.</li>
</ul>
<h3>For Pipeline Authors</h3>
<ul>
<li>N/A</li>
</ul>
<h3>For Component Authors</h3>
<ul>
<li>Replace "tf_estimator" with "tfma_eval" as the identifier for tfma<br>
EvalSavedModel. "tf_estimator" is now serves as the identifier for the normal<br>
estimator model with any signature (by default 'serving').</li>
</ul>
<h2>Deprecations</h2>
<ul>
<li>N/A</li>
</ul>
<h2>Bug Fixes and Other Changes</h2>
<ul>
<li>Apply latest TFX image vulnerability resolutions (base OS and software updates)</li>
</ul>
<h2>Dependency Updates</h2>
<table>
<thead>
<tr>
<th>Package Name</th>
<th>Version Constraints</th>
<th>Previously (in <code>v1.13.0</code>)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>tensorflow-hub</code></td>
<td><code>>=0.9.0,<0.14</code></td>
<td><code>>=0.9.0,<0.13</code></td>
<td></td>
</tr>
<tr>
<td><code>pyarrow</code></td>
<td><code>>=10,<11</code></td>
<td><code>>=6,<7</code></td>
<td></td>
</tr>
<tr>
<td><code>apache-beam</code></td>
<td><code>>=2.40,<3</code></td>
<td><code>>=2.47,<3</code></td>
<td></td>
</tr>
<tr>
<td><code>scikit-learn</code></td>
<td><code>>=1.0,<2</code></td>
<td><code>>=0.23,<0.24</code></td>
<td></td>
</tr>
<tr>
<td><code>google-api-core</code></td>
<td><code><3</code></td>
<td><code><1.33</code></td>
<td></td>
</tr>
<tr>
<td><code>google-cloud-aiplatform</code></td>
<td><code>>=1.6.2,<2</code></td>
<td><code>>=1.6.2,<1.18</code></td>
<td></td>
</tr>
<tr>
<td><code>tflite-support</code></td>
<td><code>>=0.4.3,<0.4.5</code></td>
<td><code>>=0.4.2,<0.4.3</code></td>
<td></td>
</tr>
<tr>
<td><code>pyyaml</code></td>
<td><code>>=6,<7</code></td>
<td><code>>=3.12,<6</code></td>
<td>Issue with installation of PyYaml 5.4.1. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1808208624" data-permission-text="Title is private" data-url="https://github.com/yaml/pyyaml/issues/724" data-hovercard-type="issue" data-hovercard-url="/yaml/pyyaml/issues/724/hovercard" href="https://github.com/yaml/pyyaml/issues/724">yaml/pyyaml#724</a>)</td>
</tr>
<tr>
<td><code>tensorflow</code></td>
<td><code>>=2.13,<2.14</code></td>
<td><code>>=2.12,<2.13</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflowjs</code></td>
<td><code>>=4.5,<5</code></td>
<td><code>>=3.6.0,<4</code></td>
<td></td>
</tr>
</tbody>
</table>
<h2>Documentation Updates</h2>
<ul>
<li>N/A</li>
</ul>rtg0795tag:github.com,2008:Repository/169116405/v1.14.0-rc02023-08-28T18:11:49ZTFX 1.14.0-rc0 Release<h2>Major Features and Improvements</h2>
<ul>
<li>Added python 3.10 support.</li>
</ul>
<h2>Breaking Changes</h2>
<ul>
<li><code>Placeholder</code> (and <code>_PlaceholderOperator</code>) are no longer <code>Jsonable</code>.</li>
<li>Optimize MLMD register type to one call in most time instead of two calls.</li>
</ul>
<h3>For Pipeline Authors</h3>
<ul>
<li>N/A</li>
</ul>
<h3>For Component Authors</h3>
<ul>
<li>Replace "tf_estimator" with "tfma_eval" as the identifier for tfma<br>
EvalSavedModel. "tf_estimator" is now serves as the identifier for the normal<br>
estimator model with any signature (by default 'serving').</li>
</ul>
<h2>Deprecations</h2>
<ul>
<li>N/A</li>
</ul>
<h2>Bug Fixes and Other Changes</h2>
<ul>
<li>Apply latest TFX image vulnerability resolutions (base OS and software updates)</li>
</ul>
<h2>Dependency Updates</h2>
<table>
<thead>
<tr>
<th>Package Name</th>
<th>Version Constraints</th>
<th>Previously (in <code>v1.13.0</code>)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>tensorflow-hub</code></td>
<td><code>>=0.9.0,<0.14</code></td>
<td><code>>=0.9.0,<0.13</code></td>
<td></td>
</tr>
<tr>
<td><code>pyarrow</code></td>
<td><code>>=10,<11</code></td>
<td><code>>=6,<7</code></td>
<td></td>
</tr>
<tr>
<td><code>apache-beam</code></td>
<td><code>>=2.40,<3</code></td>
<td><code>>=2.47,<3</code></td>
<td></td>
</tr>
<tr>
<td><code>scikit-learn</code></td>
<td><code>>=1.0,<2</code></td>
<td><code>>=0.23,<0.24</code></td>
<td></td>
</tr>
<tr>
<td><code>google-api-core</code></td>
<td><code><3</code></td>
<td><code><1.33</code></td>
<td></td>
</tr>
<tr>
<td><code>google-cloud-aiplatform</code></td>
<td><code>>=1.6.2,<2</code></td>
<td><code>>=1.6.2,<1.18</code></td>
<td></td>
</tr>
<tr>
<td><code>tflite-support</code></td>
<td><code>>=0.4.3,<0.4.5</code></td>
<td><code>>=0.4.2,<0.4.3</code></td>
<td></td>
</tr>
<tr>
<td><code>pyyaml</code></td>
<td><code>>=6,<7</code></td>
<td><code>>=3.12,<6</code></td>
<td>Issue with installation of PyYaml 5.4.1. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1808208624" data-permission-text="Title is private" data-url="https://github.com/yaml/pyyaml/issues/724" data-hovercard-type="issue" data-hovercard-url="/yaml/pyyaml/issues/724/hovercard" href="https://github.com/yaml/pyyaml/issues/724">yaml/pyyaml#724</a>)</td>
</tr>
<tr>
<td><code>tensorflow</code></td>
<td><code>>=2.13,<2.14</code></td>
<td><code>>=2.12,<2.13</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflowjs</code></td>
<td><code>>=4.5,<5</code></td>
<td><code>>=3.6.0,<4</code></td>
<td></td>
</tr>
</tbody>
</table>
<h2>Documentation Updates</h2>
<ul>
<li>N/A</li>
</ul>rtg0795tag:github.com,2008:Repository/169116405/v1.13.02023-05-03T18:43:05ZTFX 1.13.0 Release<h2>Major Features and Improvements</h2>
<ul>
<li>Supported setting the container image at a component level for Kubeflow V2<br>
Dag Runner.</li>
</ul>
<h2>Breaking Changes</h2>
<h3>For Pipeline Authors</h3>
<ul>
<li>
<p>Conditional can be used from <code>tfx.dsl.Cond</code> (Given <code>from tfx import v1 as tfx</code>).</p>
</li>
<li>
<p>Dummy channel for testing can be constructed by<br>
<code>tfx.testing.Channel(artifact_type)</code>.</p>
</li>
<li>
<p><code>placeholder.Placeholder.placeholders_involved()</code> was replaced with<br>
<code>placeholder.Placeholder.traverse()</code>.</p>
</li>
<li>
<p><code>placeholder.Predicate.dependent_channels()</code> was replaced with<br>
<code>channel_utils.get_dependent_channels(Placeholder)</code>.</p>
</li>
<li>
<p><code>placeholder.Predicate.encode_with_keys(...)</code> was replaced with<br>
<code>channel_utils.encode_placeholder_with_channels(Placeholder, ...)</code>.</p>
</li>
<li>
<p><code>placeholder.Predicate.from_comparison()</code> removed (was deprecated)</p>
</li>
<li>
<p>enable <code>external_pipeline_artifact_query</code> for querying artifact within one pipeline</p>
</li>
<li>
<p>Support <code>InputArtifact[List[Artifact]]</code> annotation in Python function custom component</p>
</li>
</ul>
<h3>For Component Authors</h3>
<ul>
<li>N/A</li>
</ul>
<h2>Deprecations</h2>
<ul>
<li>Deprecate python 3.7 support</li>
</ul>
<h2>Bug Fixes and Other Changes</h2>
<ul>
<li>Support to task type "workerpool1" of CLUSTER_SPEC in Vertex AI training's<br>
service according to the changes of task type in Tuner component.</li>
<li>Propagates unexpected import failures in the public v1 module.</li>
</ul>
<h2>Dependency Updates</h2>
<table>
<thead>
<tr>
<th>Package Name</th>
<th>Version Constraints</th>
<th>Previously (in <code>v1.12.0</code>)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>click</code></td>
<td><code>>=7,<9</code></td>
<td><code>>=7,<8</code></td>
<td></td>
</tr>
<tr>
<td><code>ml-metadata</code></td>
<td><code>~=1.13.1</code></td>
<td><code>~=1.12.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>protobuf</code></td>
<td><code>>=3.13,<4</code></td>
<td><code>>=3.20.3,<5</code></td>
<td>To support TF 2.12</td>
</tr>
<tr>
<td><code>struct2tensor</code></td>
<td><code>~=0.44.0</code></td>
<td><code>~=0.43.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tensorflow</code></td>
<td><code>~=2.12.0</code></td>
<td><code>>=1.15.5,<2</code> or <code>~=2.11.0</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflow-data-validation</code></td>
<td><code>~=1.13.0</code></td>
<td><code>~=1.12.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tensorflow-model-analysis</code></td>
<td><code>~=0.44.0</code></td>
<td><code>~=0.43.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tensorflow-transform</code></td>
<td><code>~=1.13.0</code></td>
<td><code>~=1.12.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tfx-bsl</code></td>
<td><code>~=1.13.0</code></td>
<td><code>~=1.12.0</code></td>
<td>Synced release train</td>
</tr>
</tbody>
</table>
<h2>Documentation Updates</h2>
<ul>
<li>Added page for TFX-Addons</li>
</ul>rtg0795tag:github.com,2008:Repository/169116405/v1.13.0-rc02023-04-14T21:31:02ZTFX 1.13.0-rc0 Release<h2>Major Features and Improvements</h2>
<ul>
<li>Supported setting the container image at a component level for Kubeflow V2<br>
Dag Runner.</li>
</ul>
<h2>Breaking Changes</h2>
<h3>For Pipeline Authors</h3>
<ul>
<li>
<p>Conditional can be used from <code>tfx.dsl.Cond</code> (Given <code>from tfx import v1 as tfx</code>).</p>
</li>
<li>
<p>Dummy channel for testing can be constructed by<br>
<code>tfx.testing.Channel(artifact_type)</code>.</p>
</li>
<li>
<p><code>placeholder.Placeholder.placeholders_involved()</code> was replaced with<br>
<code>placeholder.Placeholder.traverse()</code>.</p>
</li>
<li>
<p><code>placeholder.Predicate.dependent_channels()</code> was replaced with<br>
<code>channel_utils.get_dependent_channels(Placeholder)</code>.</p>
</li>
<li>
<p><code>placeholder.Predicate.encode_with_keys(...)</code> was replaced with<br>
<code>channel_utils.encode_placeholder_with_channels(Placeholder, ...)</code>.</p>
</li>
<li>
<p><code>placeholder.Predicate.from_comparison()</code> removed (was deprecated)</p>
</li>
<li>
<p>enable <code>external_pipeline_artifact_query</code> for querying artifact within one pipeline</p>
</li>
</ul>
<h3>For Component Authors</h3>
<ul>
<li>N/A</li>
</ul>
<h2>Deprecations</h2>
<ul>
<li>Deprecate python 3.7 support</li>
</ul>
<h2>Bug Fixes and Other Changes</h2>
<ul>
<li>Support to task type "workerpool1" of CLUSTER_SPEC in Vertex AI training's<br>
service according to the changes of task type in Tuner component.</li>
<li>Propagates unexpected import failures in the public v1 module.</li>
</ul>
<h2>Dependency Updates</h2>
<table>
<thead>
<tr>
<th>Package Name</th>
<th>Version Constraints</th>
<th>Previously (in <code>v1.12.0</code>)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>click</code></td>
<td><code>>=7,<9</code></td>
<td><code>>=7,<8</code></td>
<td></td>
</tr>
<tr>
<td><code>ml-metadata</code></td>
<td><code>~=1.13.1</code></td>
<td><code>~=1.12.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>protobuf</code></td>
<td><code>>=3.13,<4</code></td>
<td><code>>=3.20.3,<5</code></td>
<td>To support TF 2.12</td>
</tr>
<tr>
<td><code>struct2tensor</code></td>
<td><code>~=0.44.0</code></td>
<td><code>~=0.43.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tensorflow</code></td>
<td><code>~=2.12.0</code></td>
<td><code>>=1.15.5,<2</code> or <code>~=2.11.0</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflow-data-validation</code></td>
<td><code>~=1.13.0</code></td>
<td><code>~=1.12.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tensorflow-model-analysis</code></td>
<td><code>~=0.44.0</code></td>
<td><code>~=0.43.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tensorflow-transform</code></td>
<td><code>~=1.13.0</code></td>
<td><code>~=1.12.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tfx-bsl</code></td>
<td><code>~=1.13.0</code></td>
<td><code>~=1.12.0</code></td>
<td>Synced release train</td>
</tr>
</tbody>
</table>
<h2>Documentation Updates</h2>
<ul>
<li>Added page for TFX-Addons</li>
</ul>rtg0795tag:github.com,2008:Repository/169116405/v1.12.02022-12-19T16:48:53ZTFX 1.12.0 Release <h2>Major Features and Improvements</h2>
<ul>
<li>N/A</li>
</ul>
<h2>Breaking Changes</h2>
<ul>
<li>N/A</li>
</ul>
<h3>For Pipeline Authors</h3>
<ul>
<li>N/A</li>
</ul>
<h3>For Component Authors</h3>
<ul>
<li>N/A</li>
</ul>
<h2>Deprecations</h2>
<ul>
<li>N/A</li>
</ul>
<h2>Bug Fixes and Other Changes</h2>
<ul>
<li>ExampleValidator and DistributionValidator now support custom validations.</li>
</ul>
<h2>Dependency Updates</h2>
<table>
<thead>
<tr>
<th>Package Name</th>
<th>Version Constraints</th>
<th>Previously (in <code>v1.11.0</code>)</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>tensorflow</code></td>
<td><code>~=2.11.0</code></td>
<td><code>>=1.15.5,<2</code> or <code>~=2.10.0</code></td>
<td></td>
</tr>
<tr>
<td><code>tensorflow-decision-forests</code></td>
<td><code>>=1.0.1,<2</code></td>
<td><code>==1.0.1</code></td>
<td>Make it compatible with more TF versions.</td>
</tr>
<tr>
<td><code>ml-metadata</code></td>
<td><code>~=1.12.0</code></td>
<td><code>~=1.11.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>struct2tensor</code></td>
<td><code>~=0.43.0</code></td>
<td><code>~=0.42.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tensorflow-data-validation</code></td>
<td><code>~=1.12.0</code></td>
<td><code>~=1.11.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tensorflow-model-analysis</code></td>
<td><code>~=0.43.0</code></td>
<td><code>~=0.42.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tensorflow-transform</code></td>
<td><code>~=1.12.0</code></td>
<td><code>~=1.11.0</code></td>
<td>Synced release train</td>
</tr>
<tr>
<td><code>tfx-bsl</code></td>
<td><code>~=1.12.0</code></td>
<td><code>~=1.11.0</code></td>
<td>Synced release train</td>
</tr>
</tbody>
</table>
<h2>Documentation Updates</h2>
<ul>
<li>N/A</li>
</ul>venkat2469