tag:github.com,2008:https://github.com/tensorflow/tfx/releases Release notes from tfx 2024-12-11T18:12:20Z tag:github.com,2008:Repository/169116405/v1.16.0 2024-12-11T18:57:33Z TFX 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>&gt;=7,&lt;8</code></td> <td><code>&gt;=4.1,&lt;5</code></td> <td></td> </tr> </tbody> </table> <h2>Documentation Updates</h2> <ul> <li>N/A</li> </ul> vkarampudi tag:github.com,2008:Repository/169116405/v1.16.0-rc0 2024-12-06T20:07:55Z TFX 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>&gt;=7,&lt;8</code></td> <td><code>&gt;=4.1,&lt;5</code></td> <td></td> </tr> </tbody> </table> <h2>Documentation Updates</h2> <ul> <li>N/A</li> </ul> vkarampudi tag:github.com,2008:Repository/169116405/v1.15.1 2024-05-13T20:43:40Z TFX 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&gt;=0.1.10,&lt;0.2</code></td> <td><code>&gt;0.1.13,&lt;0.2</code></td> <td></td> </tr> </tbody> </table> <h2>Documentation Updates</h2> vkarampudi tag:github.com,2008:Repository/169116405/v1.15.0 2024-04-29T17:07:02Z TFX 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>&gt;=1.0.4,&lt;2,!=1.4.0,!=1.4.1</code></td> <td><code>&gt;=1.0.4,&lt;2</code></td> <td></td> </tr> <tr> <td><code>packaging</code></td> <td><code>&gt;=20,&lt;21</code></td> <td><code>&gt;=22</code></td> <td></td> </tr> <tr> <td><code>attrs</code></td> <td><code>19.3.0,&lt;22</code></td> <td><code>19.3.0,&lt;24</code></td> <td></td> </tr> <tr> <td><code>google-cloud-bigquery</code></td> <td><code>&gt;=2.26.0,&lt;3</code></td> <td><code>&gt;=3,&lt;4</code></td> <td></td> </tr> <tr> <td><code>tensorflow</code></td> <td><code>&gt;=2.15,&lt;2.16</code></td> <td><code>&gt;=2.13,&lt;2.14</code></td> <td></td> </tr> <tr> <td><code>tensorflow-decision-forests</code></td> <td><code>&gt;=1.0.1,&lt;1.9</code></td> <td><code>&gt;=1.0.1,&lt;2</code></td> <td></td> </tr> <tr> <td><code>tensorflow-hub</code></td> <td><code>&gt;=0.9.0,&lt;0.14</code></td> <td><code>&gt;=0.15.0,&lt;0.16</code></td> <td></td> </tr> <tr> <td><code>tensorflow-serving</code></td> <td><code>&gt;=1.15,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,&lt;3</code></td> <td><code>&gt;=2.15,&lt;2.16</code></td> <td></td> </tr> </tbody> </table> <h2>Documentation Updates</h2> vkarampudi tag:github.com,2008:Repository/169116405/v1.15.0-rc0 2024-04-25T18:22:07Z TFX 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>&gt;=1.0.4,&lt;2,!=1.4.0,!=1.4.1</code></td> <td><code>&gt;=1.0.4,&lt;2</code></td> <td></td> </tr> <tr> <td><code>packaging</code></td> <td><code>&gt;=20,&lt;21</code></td> <td><code>&gt;=22</code></td> <td></td> </tr> <tr> <td><code>attrs</code></td> <td><code>19.3.0,&lt;22</code></td> <td><code>19.3.0,&lt;24</code></td> <td></td> </tr> <tr> <td><code>google-cloud-bigquery</code></td> <td><code>&gt;=2.26.0,&lt;3</code></td> <td><code>&gt;=3,&lt;4</code></td> <td></td> </tr> <tr> <td><code>tensorflow</code></td> <td><code>&gt;=2.15,&lt;2.16</code></td> <td><code>&gt;=2.13,&lt;2.14</code></td> <td></td> </tr> <tr> <td><code>tensorflow-decision-forests</code></td> <td><code>&gt;=1.0.1,&lt;1.9</code></td> <td><code>&gt;=1.0.1,&lt;2</code></td> <td></td> </tr> <tr> <td><code>tensorflow-hub</code></td> <td><code>&gt;=0.9.0,&lt;0.14</code></td> <td><code>&gt;=0.15.0,&lt;0.16</code></td> <td></td> </tr> <tr> <td><code>tensorflow-serving</code></td> <td><code>&gt;=1.15,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,&lt;3</code></td> <td><code>&gt;=2.15,&lt;2.16</code></td> <td></td> </tr> </tbody> </table> <h2>Documentation Updates</h2> vkarampudi tag:github.com,2008:Repository/169116405/v1.14.0 2023-09-06T18:31:57Z TFX 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>&gt;=0.9.0,&lt;0.14</code></td> <td><code>&gt;=0.9.0,&lt;0.13</code></td> <td></td> </tr> <tr> <td><code>pyarrow</code></td> <td><code>&gt;=10,&lt;11</code></td> <td><code>&gt;=6,&lt;7</code></td> <td></td> </tr> <tr> <td><code>apache-beam</code></td> <td><code>&gt;=2.40,&lt;3</code></td> <td><code>&gt;=2.47,&lt;3</code></td> <td></td> </tr> <tr> <td><code>scikit-learn</code></td> <td><code>&gt;=1.0,&lt;2</code></td> <td><code>&gt;=0.23,&lt;0.24</code></td> <td></td> </tr> <tr> <td><code>google-api-core</code></td> <td><code>&lt;3</code></td> <td><code>&lt;1.33</code></td> <td></td> </tr> <tr> <td><code>google-cloud-aiplatform</code></td> <td><code>&gt;=1.6.2,&lt;2</code></td> <td><code>&gt;=1.6.2,&lt;1.18</code></td> <td></td> </tr> <tr> <td><code>tflite-support</code></td> <td><code>&gt;=0.4.3,&lt;0.4.5</code></td> <td><code>&gt;=0.4.2,&lt;0.4.3</code></td> <td></td> </tr> <tr> <td><code>pyyaml</code></td> <td><code>&gt;=6,&lt;7</code></td> <td><code>&gt;=3.12,&lt;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>&gt;=2.13,&lt;2.14</code></td> <td><code>&gt;=2.12,&lt;2.13</code></td> <td></td> </tr> <tr> <td><code>tensorflowjs</code></td> <td><code>&gt;=4.5,&lt;5</code></td> <td><code>&gt;=3.6.0,&lt;4</code></td> <td></td> </tr> </tbody> </table> <h2>Documentation Updates</h2> <ul> <li>N/A</li> </ul> rtg0795 tag:github.com,2008:Repository/169116405/v1.14.0-rc0 2023-08-28T18:11:49Z TFX 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>&gt;=0.9.0,&lt;0.14</code></td> <td><code>&gt;=0.9.0,&lt;0.13</code></td> <td></td> </tr> <tr> <td><code>pyarrow</code></td> <td><code>&gt;=10,&lt;11</code></td> <td><code>&gt;=6,&lt;7</code></td> <td></td> </tr> <tr> <td><code>apache-beam</code></td> <td><code>&gt;=2.40,&lt;3</code></td> <td><code>&gt;=2.47,&lt;3</code></td> <td></td> </tr> <tr> <td><code>scikit-learn</code></td> <td><code>&gt;=1.0,&lt;2</code></td> <td><code>&gt;=0.23,&lt;0.24</code></td> <td></td> </tr> <tr> <td><code>google-api-core</code></td> <td><code>&lt;3</code></td> <td><code>&lt;1.33</code></td> <td></td> </tr> <tr> <td><code>google-cloud-aiplatform</code></td> <td><code>&gt;=1.6.2,&lt;2</code></td> <td><code>&gt;=1.6.2,&lt;1.18</code></td> <td></td> </tr> <tr> <td><code>tflite-support</code></td> <td><code>&gt;=0.4.3,&lt;0.4.5</code></td> <td><code>&gt;=0.4.2,&lt;0.4.3</code></td> <td></td> </tr> <tr> <td><code>pyyaml</code></td> <td><code>&gt;=6,&lt;7</code></td> <td><code>&gt;=3.12,&lt;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>&gt;=2.13,&lt;2.14</code></td> <td><code>&gt;=2.12,&lt;2.13</code></td> <td></td> </tr> <tr> <td><code>tensorflowjs</code></td> <td><code>&gt;=4.5,&lt;5</code></td> <td><code>&gt;=3.6.0,&lt;4</code></td> <td></td> </tr> </tbody> </table> <h2>Documentation Updates</h2> <ul> <li>N/A</li> </ul> rtg0795 tag:github.com,2008:Repository/169116405/v1.13.0 2023-05-03T18:43:05Z TFX 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>&gt;=7,&lt;9</code></td> <td><code>&gt;=7,&lt;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>&gt;=3.13,&lt;4</code></td> <td><code>&gt;=3.20.3,&lt;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>&gt;=1.15.5,&lt;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> rtg0795 tag:github.com,2008:Repository/169116405/v1.13.0-rc0 2023-04-14T21:31:02Z TFX 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>&gt;=7,&lt;9</code></td> <td><code>&gt;=7,&lt;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>&gt;=3.13,&lt;4</code></td> <td><code>&gt;=3.20.3,&lt;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>&gt;=1.15.5,&lt;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> rtg0795 tag:github.com,2008:Repository/169116405/v1.12.0 2022-12-19T16:48:53Z TFX 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>&gt;=1.15.5,&lt;2</code> or <code>~=2.10.0</code></td> <td></td> </tr> <tr> <td><code>tensorflow-decision-forests</code></td> <td><code>&gt;=1.0.1,&lt;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