This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new c253183  Publishing website 2020/05/29 00:59:20 at commit 1e7d194
c253183 is described below

commit c2531831833b458197fdafae5f242640f81ad11b
Author: jenkins <bui...@apache.org>
AuthorDate: Fri May 29 00:59:20 2020 +0000

    Publishing website 2020/05/29 00:59:20 at commit 1e7d194
---
 website/generated-content/blog/index.html          |   8 +-
 website/generated-content/blog/index.xml           | 128 ++++++++++----
 .../blog/python-typing/index.html                  |  67 ++++++++
 .../generated-content/categories/blog/index.xml    | 100 ++++++++++-
 website/generated-content/categories/index.xml     |   2 +-
 .../generated-content/categories/python/index.xml  | 100 ++++++++++-
 .../generated-content/categories/typing/index.html |   7 +
 .../generated-content/categories/typing/index.xml  |  99 +++++++++++
 website/generated-content/feed.xml                 | 186 +++++++++++----------
 website/generated-content/index.html               |   2 +-
 .../roadmap/connectors-multi-sdk/index.html        |   4 +-
 website/generated-content/roadmap/index.xml        |  14 +-
 website/generated-content/sitemap.xml              |   2 +-
 13 files changed, 591 insertions(+), 128 deletions(-)

diff --git a/website/generated-content/blog/index.html 
b/website/generated-content/blog/index.html
index 6d8d3b9..5336b09 100644
--- a/website/generated-content/blog/index.html
+++ b/website/generated-content/blog/index.html
@@ -1,7 +1,13 @@
 <!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta 
http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport 
content="width=device-width,initial-scale=1"><title>Blogs</title><meta 
name=description content="Apache Beam is an open source, unified model and set 
of language-specific SDKs for defining and executing data processing workflows, 
and also data ingestion and integration flows, supporting Enterprise 
Integration Patterns (EIPs) and Domain Specific Languag [...]
 <span class=sr-only>Toggle navigation</span>
 <span class=icon-bar></span><span class=icon-bar></span><span 
class=icon-bar></span></button>
-<a href=/ class=navbar-brand><img alt=Brand style=height:25px 
src=/images/beam_logo_navbar.png></a></div><div class="navbar-mask 
closed"></div><div id=navbar class="navbar-container closed"><ul class="nav 
navbar-nav"><li><a href=/get-started/beam-overview/>Get Started</a></li><li><a 
href=/documentation/>Documentation</a></li><li><a 
href=/documentation/sdks/java/>Languages</a></li><li><a 
href=/documentation/runners/capability-matrix/>RUNNERS</a></li><li><a 
href=/roadmap/>Roadmap</a></li>< [...]
+<a href=/ class=navbar-brand><img alt=Brand style=height:25px 
src=/images/beam_logo_navbar.png></a></div><div class="navbar-mask 
closed"></div><div id=navbar class="navbar-container closed"><ul class="nav 
navbar-nav"><li><a href=/get-started/beam-overview/>Get Started</a></li><li><a 
href=/documentation/>Documentation</a></li><li><a 
href=/documentation/sdks/java/>Languages</a></li><li><a 
href=/documentation/runners/capability-matrix/>RUNNERS</a></li><li><a 
href=/roadmap/>Roadmap</a></li>< [...]
+•
+Chad Dombrova
+&
+Udi Meiri [<a href=https://twitter.com/udim>@udim</a>]</i></p><p>Beam Python 
has recently increased its support and integration of Python 3 type
+annotations for improved code clarity and type correctness checks.
+Read on to find out what&rsquo;s new.<p><a class="btn btn-default btn-sm" 
href=/blog/python-typing/ role=button>Read more&nbsp;<span class="glyphicon 
glyphicon-menu-right" aria-hidden=true></span></a></p><hr><h3><a 
class=post-link href=/blog/beam-2.21.0/>Apache Beam 2.21.0</a></h3><p><i>May 
27, 2020
 •
 ibzib</i></p>We are happy to present the new 2.<p><a class="btn btn-default 
btn-sm" href=/blog/beam-2.21.0/ role=button>Read more&nbsp;<span 
class="glyphicon glyphicon-menu-right" 
aria-hidden=true></span></a></p><hr><h3><a class=post-link 
href=/blog/beam-summit-digital-2020/>Beam Summit Digital Is Coming - Register 
Now!</a></h3><p><i>May 8, 2020
 •
diff --git a/website/generated-content/blog/index.xml 
b/website/generated-content/blog/index.xml
index cd4f9dd..3b864c1 100644
--- a/website/generated-content/blog/index.xml
+++ b/website/generated-content/blog/index.xml
@@ -1,4 +1,102 @@
-<rss version="2.0" 
xmlns:atom="http://www.w3.org/2005/Atom";><channel><title>Apache Beam – 
Blogs</title><link>/blog/</link><description>Recent content in Blogs on Apache 
Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Wed, 
27 May 2020 00:00:01 -0800</lastBuildDate><atom:link href="/blog/index.xml" 
rel="self" type="application/rss+xml"/><item><title>Blog: Apache Beam 
2.21.0</title><link>/blog/beam-2.21.0/</link><pubDate>Wed, 27 May 2020 00:00:01 
-0800</pubDate><gui [...]
+<rss version="2.0" 
xmlns:atom="http://www.w3.org/2005/Atom";><channel><title>Apache Beam – 
Blogs</title><link>/blog/</link><description>Recent content in Blogs on Apache 
Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Thu, 
28 May 2020 00:00:01 -0800</lastBuildDate><atom:link href="/blog/index.xml" 
rel="self" type="application/rss+xml"/><item><title>Blog: Python SDK Typing 
Changes</title><link>/blog/python-typing/</link><pubDate>Thu, 28 May 2020 
00:00:01 -0800</pub [...]
+&lt;!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+&lt;p>Beam Python has recently increased its support and integration of Python 
3 type
+annotations for improved code clarity and type correctness checks.
+Read on to find out what&amp;rsquo;s new.&lt;/p>
+&lt;p>Python supports type annotations on functions (PEP 484). Static type 
checkers,
+such as mypy, are used to verify adherence to these types.
+For example:&lt;/p>
+&lt;pre>&lt;code>def f(v: int) -&amp;gt; int:
+return v[0]
+&lt;/code>&lt;/pre>&lt;p>Running mypy on the above code will give the error:
+&lt;code>Value of type &amp;quot;int&amp;quot; is not 
indexable&lt;/code>.&lt;/p>
+&lt;p>We&amp;rsquo;ve recently made changes to Beam in 2 areas:&lt;/p>
+&lt;p>Adding type annotations throughout Beam. Type annotations make a large 
and
+sophisticated codebase like Beam easier to comprehend and navigate in your
+favorite IDE.&lt;/p>
+&lt;p>Second, we&amp;rsquo;ve added support for Python 3 type annotations. 
This allows SDK
+users to specify a DoFn&amp;rsquo;s type hints in one place.
+We&amp;rsquo;ve also expanded Beam&amp;rsquo;s support of 
&lt;code>typing&lt;/code> module types.&lt;/p>
+&lt;p>For more background see:
+&lt;a 
href="https://beam.apache.org/documentation/sdks/python-type-safety/";>Ensuring 
Python Type Safety&lt;/a>.&lt;/p>
+&lt;h1 id="beam-is-typed">Beam Is Typed&lt;/h1>
+&lt;p>In tandem with the new type annotation support within DoFns, 
we&amp;rsquo;ve invested a
+great deal of time adding type annotations to the Beam python code itself.
+With this in place, we have begun using mypy, a static type
+checker, as part of Beam&amp;rsquo;s code review process, which ensures higher 
quality
+contributions and fewer bugs.
+The added context and insight that type annotations add throughout Beam is
+useful for all Beam developers, contributors and end users alike, but
+it is especially beneficial for developers who are new to the project.
+If you use an IDE that understands type annotations, it will provide richer
+type completions and warnings than before.
+You&amp;rsquo;ll also be able to use your IDE to inspect the types of Beam 
functions and
+transforms to better understand how they work, which will ease your own
+development.
+Finally, once Beam is fully annotated, end users will be able to benefit from
+the use of static type analysis on their own pipelines and custom 
transforms.&lt;/p>
+&lt;h1 id="new-ways-to-annotate">New Ways to Annotate&lt;/h1>
+&lt;h2 id="python-3-syntax-annotations">Python 3 Syntax Annotations&lt;/h2>
+&lt;p>Coming in Beam 2.21 (BEAM-8280), you will be able to use Python 
annotation
+syntax to specify input and output types.&lt;/p>
+&lt;p>For example, this new form:&lt;/p>
+&lt;pre>&lt;code>class MyDoFn(beam.DoFn):
+def process(self, element: int) -&amp;gt; typing.Text:
+yield str(element)
+&lt;/code>&lt;/pre>&lt;p>is equivalent to this:&lt;/p>
+&lt;pre>&lt;code>@apache_beam.typehints.with_input_types(int)
+@apache_beam.typehints.with_output_types(typing.Text)
+class MyDoFn(beam.DoFn):
+def process(self, element):
+yield str(element)
+&lt;/code>&lt;/pre>&lt;p>One of the advantages of the new form is that you may 
already be using it
+in tandem with a static type checker such as mypy, thus getting additional
+runtime type checking for free.&lt;/p>
+&lt;p>This feature will be enabled by default, and there will be 2 mechanisms 
in
+place to disable it:&lt;/p>
+&lt;ol>
+&lt;li>Calling 
&lt;code>apache_beam.typehints.disable_type_annotations()&lt;/code> before 
pipeline
+construction will disable the new feature completely.&lt;/li>
+&lt;li>Decorating a function with 
&lt;code>@apache_beam.typehints.no_annotations&lt;/code> will
+tell Beam to ignore annotations for it.&lt;/li>
+&lt;/ol>
+&lt;p>Uses of Beam&amp;rsquo;s &lt;code>with_input_type&lt;/code>, 
&lt;code>with_output_type&lt;/code> methods and decorators will
+still work and take precedence over annotations.&lt;/p>
+&lt;h3 id="sidebar">Sidebar&lt;/h3>
+&lt;p>You might ask: couldn&amp;rsquo;t we use mypy to type check Beam 
pipelines?
+There are several reasons why this is not the case.&lt;/p>
+&lt;ul>
+&lt;li>Pipelines are constructed at runtime and may depend on information that 
is
+only known at that time, such as a config file or database table 
schema.&lt;/li>
+&lt;li>PCollections don&amp;rsquo;t have the necessary type information, so 
mypy sees them as
+effectively containing any element type.
+This may change in in the future.&lt;/li>
+&lt;li>Transforms using lambdas (ex: &lt;code>beam.Map(lambda x: (1, 
x)&lt;/code>) cannot be
+annotated properly using PEP 484.
+However, Beam does a best-effort attempt to analyze the output type
+from the bytecode.&lt;/li>
+&lt;/ul>
+&lt;h2 id="typing-module-support">Typing Module Support&lt;/h2>
+&lt;p>Python&amp;rsquo;s &lt;a 
href="https://docs.python.org/3/library/typing.html";>typing&lt;/a> module 
defines
+types used in type annotations. This is what we call 
&amp;ldquo;native&amp;rdquo; types.
+While Beam has its own typing types, it also supports native types.
+While both Beam and native types are supported, for new code we encourage using
+native typing types. Native types have as these are supported by additional 
tools.&lt;/p>
+&lt;p>While working on Python 3 annotations syntax support, we&amp;rsquo;ve 
also discovered and
+fixed issues with native type support. There may still be bugs and unsupported
+native types. Please
+&lt;a href="https://beam.apache.org/community/contact-us/";>let us know&lt;/a> 
if you encounter
+issues.&lt;/p></description></item><item><title>Blog: Apache Beam 
2.21.0</title><link>/blog/beam-2.21.0/</link><pubDate>Wed, 27 May 2020 00:00:01 
-0800</pubDate><guid>/blog/beam-2.21.0/</guid><description>
 &lt;!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -5979,30 +6077,4 @@ included the &lt;a 
href="https://github.com/GoogleCloudPlatform/DataflowJavaSDK";
 &lt;p>Today, Google submitted the &lt;a 
href="http://github.com/GoogleCloudPlatform/DataflowPythonSDK";>Dataflow Python 
(2.x) SDK&lt;/a> on GitHub. Google is committed to including the in progress 
python SDK in Apache Beam and, in that spirit, we&amp;rsquo;ve moved 
development of the Python SDK to a public repository. While this SDK will not 
be included with the initial (incubating) releases of Apache Beam, our we plan 
on incorporating the Python SDK into beam during incubation. We want t [...]
 &lt;p>You can look for the Apache Beam Python SDK in the coming months once we 
finish forking and refactoring the Java SDK.&lt;/p>
 &lt;p>Best,&lt;/p>
-&lt;p>Apache Beam Team&lt;/p></description></item><item><title>Blog: Apache 
Beam has a logo!</title><link>/blog/beam-has-a-logo/</link><pubDate>Mon, 22 Feb 
2016 10:21:48 -0800</pubDate><guid>/blog/beam-has-a-logo/</guid><description>
-&lt;!--
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-&lt;p>One of the major benefits of Apache Beam is the fact that it unifies both
-both batch and stream processing into one powerful model. In fact, this 
unification
-is so important, the name Beam itself comes from the union of 
&lt;strong>B&lt;/strong>atch + str&lt;strong>EAM&lt;/strong> = Beam&lt;/p>
-&lt;p>When the project started, we wanted a logo which was both appealing and 
visually
-represented this unification.&lt;/p>
-&lt;p>Thanks to the &lt;strong>amazing&lt;/strong> work of Stephanie Smythies, 
the Apache Beam project
-now has a logo.&lt;/p>
-&lt;p>&lt;em>drum roll&lt;/em> - &lt;strong>Presenting, the Apache Beam 
Logo!&lt;/strong>&lt;/p>
-&lt;img src="/images/beam_logo_s.png" alt="Apache Beam Logo">
-&lt;p>We are excited about this logo because it is 
&lt;strong>simple&lt;/strong>, &lt;strong>bright&lt;/strong>, and shows the
-unification of bath and streaming, as beams of light, within the 
&amp;lsquo;B&amp;rsquo;. We will base
-our future website and documentation design around this logo and its coloring. 
We
-will also make various permutations and resolutions of this logo available in 
the
-coming weeks. For any questions or comments, send an email to the 
&lt;code>dev@&lt;/code> email list
-for Apache Beam.&lt;/p></description></item></channel></rss>
\ No newline at end of file
+&lt;p>Apache Beam Team&lt;/p></description></item></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/blog/python-typing/index.html 
b/website/generated-content/blog/python-typing/index.html
new file mode 100644
index 0000000..7b024bf
--- /dev/null
+++ b/website/generated-content/blog/python-typing/index.html
@@ -0,0 +1,67 @@
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta 
http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport 
content="width=device-width,initial-scale=1"><title>Python SDK Typing 
Changes</title><meta name=description content="Apache Beam is an open source, 
unified model and set of language-specific SDKs for defining and executing data 
processing workflows, and also data ingestion and integration flows, supporting 
Enterprise Integration Patterns (EIPs) and Dom [...]
+<span class=sr-only>Toggle navigation</span>
+<span class=icon-bar></span><span class=icon-bar></span><span 
class=icon-bar></span></button>
+<a href=/ class=navbar-brand><img alt=Brand style=height:25px 
src=/images/beam_logo_navbar.png></a></div><div class="navbar-mask 
closed"></div><div id=navbar class="navbar-container closed"><ul class="nav 
navbar-nav"><li><a href=/get-started/beam-overview/>Get Started</a></li><li><a 
href=/documentation/>Documentation</a></li><li><a 
href=/documentation/sdks/java/>Languages</a></li><li><a 
href=/documentation/runners/capability-matrix/>RUNNERS</a></li><li><a 
href=/roadmap/>Roadmap</a></li>< [...]
+•
+Chad Dombrova
+&
+Udi Meiri [<a href=https://twitter.com/udim>@udim</a>]</p></header><div 
class=post-content itemprop=articleBody><p>Beam Python has recently increased 
its support and integration of Python 3 type
+annotations for improved code clarity and type correctness checks.
+Read on to find out what&rsquo;s new.</p><p>Python supports type annotations 
on functions (PEP 484). Static type checkers,
+such as mypy, are used to verify adherence to these types.
+For example:</p><pre><code>def f(v: int) -&gt; int:
+  return v[0]
+</code></pre><p>Running mypy on the above code will give the error:
+<code>Value of type "int" is not indexable</code>.</p><p>We&rsquo;ve recently 
made changes to Beam in 2 areas:</p><p>Adding type annotations throughout Beam. 
Type annotations make a large and
+sophisticated codebase like Beam easier to comprehend and navigate in your
+favorite IDE.</p><p>Second, we&rsquo;ve added support for Python 3 type 
annotations. This allows SDK
+users to specify a DoFn&rsquo;s type hints in one place.
+We&rsquo;ve also expanded Beam&rsquo;s support of <code>typing</code> module 
types.</p><p>For more background see:
+<a 
href=https://beam.apache.org/documentation/sdks/python-type-safety/>Ensuring 
Python Type Safety</a>.</p><h1 id=beam-is-typed>Beam Is Typed</h1><p>In tandem 
with the new type annotation support within DoFns, we&rsquo;ve invested a
+great deal of time adding type annotations to the Beam python code itself.
+With this in place, we have begun using mypy, a static type
+checker, as part of Beam&rsquo;s code review process, which ensures higher 
quality
+contributions and fewer bugs.
+The added context and insight that type annotations add throughout Beam is
+useful for all Beam developers, contributors and end users alike, but
+it is especially beneficial for developers who are new to the project.
+If you use an IDE that understands type annotations, it will provide richer
+type completions and warnings than before.
+You&rsquo;ll also be able to use your IDE to inspect the types of Beam 
functions and
+transforms to better understand how they work, which will ease your own
+development.
+Finally, once Beam is fully annotated, end users will be able to benefit from
+the use of static type analysis on their own pipelines and custom 
transforms.</p><h1 id=new-ways-to-annotate>New Ways to Annotate</h1><h2 
id=python-3-syntax-annotations>Python 3 Syntax Annotations</h2><p>Coming in 
Beam 2.21 (BEAM-8280), you will be able to use Python annotation
+syntax to specify input and output types.</p><p>For example, this new 
form:</p><pre><code>class MyDoFn(beam.DoFn):
+  def process(self, element: int) -&gt; typing.Text:
+    yield str(element)
+</code></pre><p>is equivalent to 
this:</p><pre><code>@apache_beam.typehints.with_input_types(int)
+@apache_beam.typehints.with_output_types(typing.Text)
+class MyDoFn(beam.DoFn):
+  def process(self, element):
+    yield str(element)
+</code></pre><p>One of the advantages of the new form is that you may already 
be using it
+in tandem with a static type checker such as mypy, thus getting additional
+runtime type checking for free.</p><p>This feature will be enabled by default, 
and there will be 2 mechanisms in
+place to disable it:</p><ol><li>Calling 
<code>apache_beam.typehints.disable_type_annotations()</code> before pipeline
+construction will disable the new feature completely.</li><li>Decorating a 
function with <code>@apache_beam.typehints.no_annotations</code> will
+tell Beam to ignore annotations for it.</li></ol><p>Uses of Beam&rsquo;s 
<code>with_input_type</code>, <code>with_output_type</code> methods and 
decorators will
+still work and take precedence over annotations.</p><h3 
id=sidebar>Sidebar</h3><p>You might ask: couldn&rsquo;t we use mypy to type 
check Beam pipelines?
+There are several reasons why this is not the case.</p><ul><li>Pipelines are 
constructed at runtime and may depend on information that is
+only known at that time, such as a config file or database table 
schema.</li><li>PCollections don&rsquo;t have the necessary type information, 
so mypy sees them as
+effectively containing any element type.
+This may change in in the future.</li><li>Transforms using lambdas (ex: 
<code>beam.Map(lambda x: (1, x)</code>) cannot be
+annotated properly using PEP 484.
+However, Beam does a best-effort attempt to analyze the output type
+from the bytecode.</li></ul><h2 id=typing-module-support>Typing Module 
Support</h2><p>Python&rsquo;s <a 
href=https://docs.python.org/3/library/typing.html>typing</a> module defines
+types used in type annotations. This is what we call &ldquo;native&rdquo; 
types.
+While Beam has its own typing types, it also supports native types.
+While both Beam and native types are supported, for new code we encourage using
+native typing types. Native types have as these are supported by additional 
tools.</p><p>While working on Python 3 annotations syntax support, we&rsquo;ve 
also discovered and
+fixed issues with native type support. There may still be bugs and unsupported
+native types. Please
+<a href=https://beam.apache.org/community/contact-us/>let us know</a> if you 
encounter
+issues.</p></div></article></div><footer class=footer><div 
class=footer__contained><div class=footer__cols><div 
class=footer__cols__col><div class=footer__cols__col__logo><img 
src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div 
class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg 
class=footer__logo alt="Apache logo"></div></div><div class="footer__cols__col 
footer__cols__col--md"><div class=footer__cols__col__title>Start</div><div 
class=footer_ [...]
+<a href=http://www.apache.org>The Apache Software Foundation</a>
+| <a href=/privacy_policy>Privacy Policy</a>
+| <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam 
logo, and the Apache feather logo are either registered trademarks or 
trademarks of The Apache Software Foundation. All other products or name brands 
are trademarks of their respective holders, including The Apache Software 
Foundation.</div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/categories/blog/index.xml 
b/website/generated-content/categories/blog/index.xml
index 0e377d8..d7e480b 100644
--- a/website/generated-content/categories/blog/index.xml
+++ b/website/generated-content/categories/blog/index.xml
@@ -1,4 +1,102 @@
-<rss version="2.0" 
xmlns:atom="http://www.w3.org/2005/Atom";><channel><title>Apache Beam – 
blog</title><link>/categories/blog/</link><description>Recent content in blog 
on Apache Beam</description><generator>Hugo -- 
gohugo.io</generator><lastBuildDate>Wed, 27 May 2020 00:00:01 
-0800</lastBuildDate><atom:link href="/categories/blog/index.xml" rel="self" 
type="application/rss+xml"/><item><title>Blog: Apache Beam 
2.21.0</title><link>/blog/beam-2.21.0/</link><pubDate>Wed, 27 May 2020 00:00:01 
[...]
+<rss version="2.0" 
xmlns:atom="http://www.w3.org/2005/Atom";><channel><title>Apache Beam – 
blog</title><link>/categories/blog/</link><description>Recent content in blog 
on Apache Beam</description><generator>Hugo -- 
gohugo.io</generator><lastBuildDate>Thu, 28 May 2020 00:00:01 
-0800</lastBuildDate><atom:link href="/categories/blog/index.xml" rel="self" 
type="application/rss+xml"/><item><title>Blog: Python SDK Typing 
Changes</title><link>/blog/python-typing/</link><pubDate>Thu, 28 May 2020 [...]
+&lt;!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+&lt;p>Beam Python has recently increased its support and integration of Python 
3 type
+annotations for improved code clarity and type correctness checks.
+Read on to find out what&amp;rsquo;s new.&lt;/p>
+&lt;p>Python supports type annotations on functions (PEP 484). Static type 
checkers,
+such as mypy, are used to verify adherence to these types.
+For example:&lt;/p>
+&lt;pre>&lt;code>def f(v: int) -&amp;gt; int:
+return v[0]
+&lt;/code>&lt;/pre>&lt;p>Running mypy on the above code will give the error:
+&lt;code>Value of type &amp;quot;int&amp;quot; is not 
indexable&lt;/code>.&lt;/p>
+&lt;p>We&amp;rsquo;ve recently made changes to Beam in 2 areas:&lt;/p>
+&lt;p>Adding type annotations throughout Beam. Type annotations make a large 
and
+sophisticated codebase like Beam easier to comprehend and navigate in your
+favorite IDE.&lt;/p>
+&lt;p>Second, we&amp;rsquo;ve added support for Python 3 type annotations. 
This allows SDK
+users to specify a DoFn&amp;rsquo;s type hints in one place.
+We&amp;rsquo;ve also expanded Beam&amp;rsquo;s support of 
&lt;code>typing&lt;/code> module types.&lt;/p>
+&lt;p>For more background see:
+&lt;a 
href="https://beam.apache.org/documentation/sdks/python-type-safety/";>Ensuring 
Python Type Safety&lt;/a>.&lt;/p>
+&lt;h1 id="beam-is-typed">Beam Is Typed&lt;/h1>
+&lt;p>In tandem with the new type annotation support within DoFns, 
we&amp;rsquo;ve invested a
+great deal of time adding type annotations to the Beam python code itself.
+With this in place, we have begun using mypy, a static type
+checker, as part of Beam&amp;rsquo;s code review process, which ensures higher 
quality
+contributions and fewer bugs.
+The added context and insight that type annotations add throughout Beam is
+useful for all Beam developers, contributors and end users alike, but
+it is especially beneficial for developers who are new to the project.
+If you use an IDE that understands type annotations, it will provide richer
+type completions and warnings than before.
+You&amp;rsquo;ll also be able to use your IDE to inspect the types of Beam 
functions and
+transforms to better understand how they work, which will ease your own
+development.
+Finally, once Beam is fully annotated, end users will be able to benefit from
+the use of static type analysis on their own pipelines and custom 
transforms.&lt;/p>
+&lt;h1 id="new-ways-to-annotate">New Ways to Annotate&lt;/h1>
+&lt;h2 id="python-3-syntax-annotations">Python 3 Syntax Annotations&lt;/h2>
+&lt;p>Coming in Beam 2.21 (BEAM-8280), you will be able to use Python 
annotation
+syntax to specify input and output types.&lt;/p>
+&lt;p>For example, this new form:&lt;/p>
+&lt;pre>&lt;code>class MyDoFn(beam.DoFn):
+def process(self, element: int) -&amp;gt; typing.Text:
+yield str(element)
+&lt;/code>&lt;/pre>&lt;p>is equivalent to this:&lt;/p>
+&lt;pre>&lt;code>@apache_beam.typehints.with_input_types(int)
+@apache_beam.typehints.with_output_types(typing.Text)
+class MyDoFn(beam.DoFn):
+def process(self, element):
+yield str(element)
+&lt;/code>&lt;/pre>&lt;p>One of the advantages of the new form is that you may 
already be using it
+in tandem with a static type checker such as mypy, thus getting additional
+runtime type checking for free.&lt;/p>
+&lt;p>This feature will be enabled by default, and there will be 2 mechanisms 
in
+place to disable it:&lt;/p>
+&lt;ol>
+&lt;li>Calling 
&lt;code>apache_beam.typehints.disable_type_annotations()&lt;/code> before 
pipeline
+construction will disable the new feature completely.&lt;/li>
+&lt;li>Decorating a function with 
&lt;code>@apache_beam.typehints.no_annotations&lt;/code> will
+tell Beam to ignore annotations for it.&lt;/li>
+&lt;/ol>
+&lt;p>Uses of Beam&amp;rsquo;s &lt;code>with_input_type&lt;/code>, 
&lt;code>with_output_type&lt;/code> methods and decorators will
+still work and take precedence over annotations.&lt;/p>
+&lt;h3 id="sidebar">Sidebar&lt;/h3>
+&lt;p>You might ask: couldn&amp;rsquo;t we use mypy to type check Beam 
pipelines?
+There are several reasons why this is not the case.&lt;/p>
+&lt;ul>
+&lt;li>Pipelines are constructed at runtime and may depend on information that 
is
+only known at that time, such as a config file or database table 
schema.&lt;/li>
+&lt;li>PCollections don&amp;rsquo;t have the necessary type information, so 
mypy sees them as
+effectively containing any element type.
+This may change in in the future.&lt;/li>
+&lt;li>Transforms using lambdas (ex: &lt;code>beam.Map(lambda x: (1, 
x)&lt;/code>) cannot be
+annotated properly using PEP 484.
+However, Beam does a best-effort attempt to analyze the output type
+from the bytecode.&lt;/li>
+&lt;/ul>
+&lt;h2 id="typing-module-support">Typing Module Support&lt;/h2>
+&lt;p>Python&amp;rsquo;s &lt;a 
href="https://docs.python.org/3/library/typing.html";>typing&lt;/a> module 
defines
+types used in type annotations. This is what we call 
&amp;ldquo;native&amp;rdquo; types.
+While Beam has its own typing types, it also supports native types.
+While both Beam and native types are supported, for new code we encourage using
+native typing types. Native types have as these are supported by additional 
tools.&lt;/p>
+&lt;p>While working on Python 3 annotations syntax support, we&amp;rsquo;ve 
also discovered and
+fixed issues with native type support. There may still be bugs and unsupported
+native types. Please
+&lt;a href="https://beam.apache.org/community/contact-us/";>let us know&lt;/a> 
if you encounter
+issues.&lt;/p></description></item><item><title>Blog: Apache Beam 
2.21.0</title><link>/blog/beam-2.21.0/</link><pubDate>Wed, 27 May 2020 00:00:01 
-0800</pubDate><guid>/blog/beam-2.21.0/</guid><description>
 &lt;!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/website/generated-content/categories/index.xml 
b/website/generated-content/categories/index.xml
index e21a1d4..e315500 100644
--- a/website/generated-content/categories/index.xml
+++ b/website/generated-content/categories/index.xml
@@ -1 +1 @@
-<rss version="2.0" 
xmlns:atom="http://www.w3.org/2005/Atom";><channel><title>Apache Beam – 
Categories</title><link>/categories/</link><description>Recent content in 
Categories on Apache Beam</description><generator>Hugo -- 
gohugo.io</generator><lastBuildDate>Wed, 27 May 2020 00:00:01 
-0800</lastBuildDate><atom:link href="/categories/index.xml" rel="self" 
type="application/rss+xml"/></channel></rss>
\ No newline at end of file
+<rss version="2.0" 
xmlns:atom="http://www.w3.org/2005/Atom";><channel><title>Apache Beam – 
Categories</title><link>/categories/</link><description>Recent content in 
Categories on Apache Beam</description><generator>Hugo -- 
gohugo.io</generator><lastBuildDate>Thu, 28 May 2020 00:00:01 
-0800</lastBuildDate><atom:link href="/categories/index.xml" rel="self" 
type="application/rss+xml"/></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/categories/python/index.xml 
b/website/generated-content/categories/python/index.xml
index e3cc01e..30c645b 100644
--- a/website/generated-content/categories/python/index.xml
+++ b/website/generated-content/categories/python/index.xml
@@ -1,4 +1,102 @@
-<rss version="2.0" 
xmlns:atom="http://www.w3.org/2005/Atom";><channel><title>Apache Beam – 
python</title><link>/categories/python/</link><description>Recent content in 
python on Apache Beam</description><generator>Hugo -- 
gohugo.io</generator><lastBuildDate>Thu, 25 Feb 2016 13:00:00 
-0800</lastBuildDate><atom:link href="/categories/python/index.xml" rel="self" 
type="application/rss+xml"/><item><title>Blog: Dataflow Python SDK is now 
public!</title><link>/blog/python-sdk-now-public/</link> [...]
+<rss version="2.0" 
xmlns:atom="http://www.w3.org/2005/Atom";><channel><title>Apache Beam – 
python</title><link>/categories/python/</link><description>Recent content in 
python on Apache Beam</description><generator>Hugo -- 
gohugo.io</generator><lastBuildDate>Thu, 28 May 2020 00:00:01 
-0800</lastBuildDate><atom:link href="/categories/python/index.xml" rel="self" 
type="application/rss+xml"/><item><title>Blog: Python SDK Typing 
Changes</title><link>/blog/python-typing/</link><pubDate>Thu, 28  [...]
+&lt;!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+&lt;p>Beam Python has recently increased its support and integration of Python 
3 type
+annotations for improved code clarity and type correctness checks.
+Read on to find out what&amp;rsquo;s new.&lt;/p>
+&lt;p>Python supports type annotations on functions (PEP 484). Static type 
checkers,
+such as mypy, are used to verify adherence to these types.
+For example:&lt;/p>
+&lt;pre>&lt;code>def f(v: int) -&amp;gt; int:
+return v[0]
+&lt;/code>&lt;/pre>&lt;p>Running mypy on the above code will give the error:
+&lt;code>Value of type &amp;quot;int&amp;quot; is not 
indexable&lt;/code>.&lt;/p>
+&lt;p>We&amp;rsquo;ve recently made changes to Beam in 2 areas:&lt;/p>
+&lt;p>Adding type annotations throughout Beam. Type annotations make a large 
and
+sophisticated codebase like Beam easier to comprehend and navigate in your
+favorite IDE.&lt;/p>
+&lt;p>Second, we&amp;rsquo;ve added support for Python 3 type annotations. 
This allows SDK
+users to specify a DoFn&amp;rsquo;s type hints in one place.
+We&amp;rsquo;ve also expanded Beam&amp;rsquo;s support of 
&lt;code>typing&lt;/code> module types.&lt;/p>
+&lt;p>For more background see:
+&lt;a 
href="https://beam.apache.org/documentation/sdks/python-type-safety/";>Ensuring 
Python Type Safety&lt;/a>.&lt;/p>
+&lt;h1 id="beam-is-typed">Beam Is Typed&lt;/h1>
+&lt;p>In tandem with the new type annotation support within DoFns, 
we&amp;rsquo;ve invested a
+great deal of time adding type annotations to the Beam python code itself.
+With this in place, we have begun using mypy, a static type
+checker, as part of Beam&amp;rsquo;s code review process, which ensures higher 
quality
+contributions and fewer bugs.
+The added context and insight that type annotations add throughout Beam is
+useful for all Beam developers, contributors and end users alike, but
+it is especially beneficial for developers who are new to the project.
+If you use an IDE that understands type annotations, it will provide richer
+type completions and warnings than before.
+You&amp;rsquo;ll also be able to use your IDE to inspect the types of Beam 
functions and
+transforms to better understand how they work, which will ease your own
+development.
+Finally, once Beam is fully annotated, end users will be able to benefit from
+the use of static type analysis on their own pipelines and custom 
transforms.&lt;/p>
+&lt;h1 id="new-ways-to-annotate">New Ways to Annotate&lt;/h1>
+&lt;h2 id="python-3-syntax-annotations">Python 3 Syntax Annotations&lt;/h2>
+&lt;p>Coming in Beam 2.21 (BEAM-8280), you will be able to use Python 
annotation
+syntax to specify input and output types.&lt;/p>
+&lt;p>For example, this new form:&lt;/p>
+&lt;pre>&lt;code>class MyDoFn(beam.DoFn):
+def process(self, element: int) -&amp;gt; typing.Text:
+yield str(element)
+&lt;/code>&lt;/pre>&lt;p>is equivalent to this:&lt;/p>
+&lt;pre>&lt;code>@apache_beam.typehints.with_input_types(int)
+@apache_beam.typehints.with_output_types(typing.Text)
+class MyDoFn(beam.DoFn):
+def process(self, element):
+yield str(element)
+&lt;/code>&lt;/pre>&lt;p>One of the advantages of the new form is that you may 
already be using it
+in tandem with a static type checker such as mypy, thus getting additional
+runtime type checking for free.&lt;/p>
+&lt;p>This feature will be enabled by default, and there will be 2 mechanisms 
in
+place to disable it:&lt;/p>
+&lt;ol>
+&lt;li>Calling 
&lt;code>apache_beam.typehints.disable_type_annotations()&lt;/code> before 
pipeline
+construction will disable the new feature completely.&lt;/li>
+&lt;li>Decorating a function with 
&lt;code>@apache_beam.typehints.no_annotations&lt;/code> will
+tell Beam to ignore annotations for it.&lt;/li>
+&lt;/ol>
+&lt;p>Uses of Beam&amp;rsquo;s &lt;code>with_input_type&lt;/code>, 
&lt;code>with_output_type&lt;/code> methods and decorators will
+still work and take precedence over annotations.&lt;/p>
+&lt;h3 id="sidebar">Sidebar&lt;/h3>
+&lt;p>You might ask: couldn&amp;rsquo;t we use mypy to type check Beam 
pipelines?
+There are several reasons why this is not the case.&lt;/p>
+&lt;ul>
+&lt;li>Pipelines are constructed at runtime and may depend on information that 
is
+only known at that time, such as a config file or database table 
schema.&lt;/li>
+&lt;li>PCollections don&amp;rsquo;t have the necessary type information, so 
mypy sees them as
+effectively containing any element type.
+This may change in in the future.&lt;/li>
+&lt;li>Transforms using lambdas (ex: &lt;code>beam.Map(lambda x: (1, 
x)&lt;/code>) cannot be
+annotated properly using PEP 484.
+However, Beam does a best-effort attempt to analyze the output type
+from the bytecode.&lt;/li>
+&lt;/ul>
+&lt;h2 id="typing-module-support">Typing Module Support&lt;/h2>
+&lt;p>Python&amp;rsquo;s &lt;a 
href="https://docs.python.org/3/library/typing.html";>typing&lt;/a> module 
defines
+types used in type annotations. This is what we call 
&amp;ldquo;native&amp;rdquo; types.
+While Beam has its own typing types, it also supports native types.
+While both Beam and native types are supported, for new code we encourage using
+native typing types. Native types have as these are supported by additional 
tools.&lt;/p>
+&lt;p>While working on Python 3 annotations syntax support, we&amp;rsquo;ve 
also discovered and
+fixed issues with native type support. There may still be bugs and unsupported
+native types. Please
+&lt;a href="https://beam.apache.org/community/contact-us/";>let us know&lt;/a> 
if you encounter
+issues.&lt;/p></description></item><item><title>Blog: Dataflow Python SDK is 
now public!</title><link>/blog/python-sdk-now-public/</link><pubDate>Thu, 25 
Feb 2016 13:00:00 
-0800</pubDate><guid>/blog/python-sdk-now-public/</guid><description>
 &lt;!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/website/generated-content/categories/typing/index.html 
b/website/generated-content/categories/typing/index.html
new file mode 100644
index 0000000..9e2989b
--- /dev/null
+++ b/website/generated-content/categories/typing/index.html
@@ -0,0 +1,7 @@
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta 
http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport 
content="width=device-width,initial-scale=1"><title>typing</title><meta 
name=description content="Apache Beam is an open source, unified model and set 
of language-specific SDKs for defining and executing data processing workflows, 
and also data ingestion and integration flows, supporting Enterprise 
Integration Patterns (EIPs) and Domain Specific Langua [...]
+<span class=sr-only>Toggle navigation</span>
+<span class=icon-bar></span><span class=icon-bar></span><span 
class=icon-bar></span></button>
+<a href=/ class=navbar-brand><img alt=Brand style=height:25px 
src=/images/beam_logo_navbar.png></a></div><div class="navbar-mask 
closed"></div><div id=navbar class="navbar-container closed"><ul class="nav 
navbar-nav"><li><a href=/get-started/beam-overview/>Get Started</a></li><li><a 
href=/documentation/>Documentation</a></li><li><a 
href=/documentation/sdks/java/>Languages</a></li><li><a 
href=/documentation/runners/capability-matrix/>RUNNERS</a></li><li><a 
href=/roadmap/>Roadmap</a></li>< [...]
+<a href=http://www.apache.org>The Apache Software Foundation</a>
+| <a href=/privacy_policy>Privacy Policy</a>
+| <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam 
logo, and the Apache feather logo are either registered trademarks or 
trademarks of The Apache Software Foundation. All other products or name brands 
are trademarks of their respective holders, including The Apache Software 
Foundation.</div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/categories/typing/index.xml 
b/website/generated-content/categories/typing/index.xml
new file mode 100644
index 0000000..4e58f4e
--- /dev/null
+++ b/website/generated-content/categories/typing/index.xml
@@ -0,0 +1,99 @@
+<rss version="2.0" 
xmlns:atom="http://www.w3.org/2005/Atom";><channel><title>Apache Beam – 
typing</title><link>/categories/typing/</link><description>Recent content in 
typing on Apache Beam</description><generator>Hugo -- 
gohugo.io</generator><lastBuildDate>Thu, 28 May 2020 00:00:01 
-0800</lastBuildDate><atom:link href="/categories/typing/index.xml" rel="self" 
type="application/rss+xml"/><item><title>Blog: Python SDK Typing 
Changes</title><link>/blog/python-typing/</link><pubDate>Thu, 28  [...]
+&lt;!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+&lt;p>Beam Python has recently increased its support and integration of Python 
3 type
+annotations for improved code clarity and type correctness checks.
+Read on to find out what&amp;rsquo;s new.&lt;/p>
+&lt;p>Python supports type annotations on functions (PEP 484). Static type 
checkers,
+such as mypy, are used to verify adherence to these types.
+For example:&lt;/p>
+&lt;pre>&lt;code>def f(v: int) -&amp;gt; int:
+return v[0]
+&lt;/code>&lt;/pre>&lt;p>Running mypy on the above code will give the error:
+&lt;code>Value of type &amp;quot;int&amp;quot; is not 
indexable&lt;/code>.&lt;/p>
+&lt;p>We&amp;rsquo;ve recently made changes to Beam in 2 areas:&lt;/p>
+&lt;p>Adding type annotations throughout Beam. Type annotations make a large 
and
+sophisticated codebase like Beam easier to comprehend and navigate in your
+favorite IDE.&lt;/p>
+&lt;p>Second, we&amp;rsquo;ve added support for Python 3 type annotations. 
This allows SDK
+users to specify a DoFn&amp;rsquo;s type hints in one place.
+We&amp;rsquo;ve also expanded Beam&amp;rsquo;s support of 
&lt;code>typing&lt;/code> module types.&lt;/p>
+&lt;p>For more background see:
+&lt;a 
href="https://beam.apache.org/documentation/sdks/python-type-safety/";>Ensuring 
Python Type Safety&lt;/a>.&lt;/p>
+&lt;h1 id="beam-is-typed">Beam Is Typed&lt;/h1>
+&lt;p>In tandem with the new type annotation support within DoFns, 
we&amp;rsquo;ve invested a
+great deal of time adding type annotations to the Beam python code itself.
+With this in place, we have begun using mypy, a static type
+checker, as part of Beam&amp;rsquo;s code review process, which ensures higher 
quality
+contributions and fewer bugs.
+The added context and insight that type annotations add throughout Beam is
+useful for all Beam developers, contributors and end users alike, but
+it is especially beneficial for developers who are new to the project.
+If you use an IDE that understands type annotations, it will provide richer
+type completions and warnings than before.
+You&amp;rsquo;ll also be able to use your IDE to inspect the types of Beam 
functions and
+transforms to better understand how they work, which will ease your own
+development.
+Finally, once Beam is fully annotated, end users will be able to benefit from
+the use of static type analysis on their own pipelines and custom 
transforms.&lt;/p>
+&lt;h1 id="new-ways-to-annotate">New Ways to Annotate&lt;/h1>
+&lt;h2 id="python-3-syntax-annotations">Python 3 Syntax Annotations&lt;/h2>
+&lt;p>Coming in Beam 2.21 (BEAM-8280), you will be able to use Python 
annotation
+syntax to specify input and output types.&lt;/p>
+&lt;p>For example, this new form:&lt;/p>
+&lt;pre>&lt;code>class MyDoFn(beam.DoFn):
+def process(self, element: int) -&amp;gt; typing.Text:
+yield str(element)
+&lt;/code>&lt;/pre>&lt;p>is equivalent to this:&lt;/p>
+&lt;pre>&lt;code>@apache_beam.typehints.with_input_types(int)
+@apache_beam.typehints.with_output_types(typing.Text)
+class MyDoFn(beam.DoFn):
+def process(self, element):
+yield str(element)
+&lt;/code>&lt;/pre>&lt;p>One of the advantages of the new form is that you may 
already be using it
+in tandem with a static type checker such as mypy, thus getting additional
+runtime type checking for free.&lt;/p>
+&lt;p>This feature will be enabled by default, and there will be 2 mechanisms 
in
+place to disable it:&lt;/p>
+&lt;ol>
+&lt;li>Calling 
&lt;code>apache_beam.typehints.disable_type_annotations()&lt;/code> before 
pipeline
+construction will disable the new feature completely.&lt;/li>
+&lt;li>Decorating a function with 
&lt;code>@apache_beam.typehints.no_annotations&lt;/code> will
+tell Beam to ignore annotations for it.&lt;/li>
+&lt;/ol>
+&lt;p>Uses of Beam&amp;rsquo;s &lt;code>with_input_type&lt;/code>, 
&lt;code>with_output_type&lt;/code> methods and decorators will
+still work and take precedence over annotations.&lt;/p>
+&lt;h3 id="sidebar">Sidebar&lt;/h3>
+&lt;p>You might ask: couldn&amp;rsquo;t we use mypy to type check Beam 
pipelines?
+There are several reasons why this is not the case.&lt;/p>
+&lt;ul>
+&lt;li>Pipelines are constructed at runtime and may depend on information that 
is
+only known at that time, such as a config file or database table 
schema.&lt;/li>
+&lt;li>PCollections don&amp;rsquo;t have the necessary type information, so 
mypy sees them as
+effectively containing any element type.
+This may change in in the future.&lt;/li>
+&lt;li>Transforms using lambdas (ex: &lt;code>beam.Map(lambda x: (1, 
x)&lt;/code>) cannot be
+annotated properly using PEP 484.
+However, Beam does a best-effort attempt to analyze the output type
+from the bytecode.&lt;/li>
+&lt;/ul>
+&lt;h2 id="typing-module-support">Typing Module Support&lt;/h2>
+&lt;p>Python&amp;rsquo;s &lt;a 
href="https://docs.python.org/3/library/typing.html";>typing&lt;/a> module 
defines
+types used in type annotations. This is what we call 
&amp;ldquo;native&amp;rdquo; types.
+While Beam has its own typing types, it also supports native types.
+While both Beam and native types are supported, for new code we encourage using
+native typing types. Native types have as these are supported by additional 
tools.&lt;/p>
+&lt;p>While working on Python 3 annotations syntax support, we&amp;rsquo;ve 
also discovered and
+fixed issues with native type support. There may still be bugs and unsupported
+native types. Please
+&lt;a href="https://beam.apache.org/community/contact-us/";>let us know&lt;/a> 
if you encounter
+issues.&lt;/p></description></item></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/feed.xml 
b/website/generated-content/feed.xml
index d4b17c7..7675bbc 100644
--- a/website/generated-content/feed.xml
+++ b/website/generated-content/feed.xml
@@ -1,4 +1,102 @@
-<rss xmlns:atom="http://www.w3.org/2005/Atom"; 
version="2.0"><channel><title>Apache Beam</title><description>Apache Beam is an 
open source, unified model and set of language-specific SDKs for defining and 
executing data processing workflows, and also data ingestion and integration 
flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific 
Languages (DSLs). Dataflow pipelines simplify the mechanics of large-scale 
batch and streaming data processing and can run on a number [...]
+<rss xmlns:atom="http://www.w3.org/2005/Atom"; 
version="2.0"><channel><title>Apache Beam</title><description>Apache Beam is an 
open source, unified model and set of language-specific SDKs for defining and 
executing data processing workflows, and also data ingestion and integration 
flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific 
Languages (DSLs). Dataflow pipelines simplify the mechanics of large-scale 
batch and streaming data processing and can run on a number [...]
+&lt;!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+&lt;p>Beam Python has recently increased its support and integration of Python 
3 type
+annotations for improved code clarity and type correctness checks.
+Read on to find out what&amp;rsquo;s new.&lt;/p>
+&lt;p>Python supports type annotations on functions (PEP 484). Static type 
checkers,
+such as mypy, are used to verify adherence to these types.
+For example:&lt;/p>
+&lt;pre>&lt;code>def f(v: int) -&amp;gt; int:
+return v[0]
+&lt;/code>&lt;/pre>&lt;p>Running mypy on the above code will give the error:
+&lt;code>Value of type &amp;quot;int&amp;quot; is not 
indexable&lt;/code>.&lt;/p>
+&lt;p>We&amp;rsquo;ve recently made changes to Beam in 2 areas:&lt;/p>
+&lt;p>Adding type annotations throughout Beam. Type annotations make a large 
and
+sophisticated codebase like Beam easier to comprehend and navigate in your
+favorite IDE.&lt;/p>
+&lt;p>Second, we&amp;rsquo;ve added support for Python 3 type annotations. 
This allows SDK
+users to specify a DoFn&amp;rsquo;s type hints in one place.
+We&amp;rsquo;ve also expanded Beam&amp;rsquo;s support of 
&lt;code>typing&lt;/code> module types.&lt;/p>
+&lt;p>For more background see:
+&lt;a 
href="https://beam.apache.org/documentation/sdks/python-type-safety/";>Ensuring 
Python Type Safety&lt;/a>.&lt;/p>
+&lt;h1 id="beam-is-typed">Beam Is Typed&lt;/h1>
+&lt;p>In tandem with the new type annotation support within DoFns, 
we&amp;rsquo;ve invested a
+great deal of time adding type annotations to the Beam python code itself.
+With this in place, we have begun using mypy, a static type
+checker, as part of Beam&amp;rsquo;s code review process, which ensures higher 
quality
+contributions and fewer bugs.
+The added context and insight that type annotations add throughout Beam is
+useful for all Beam developers, contributors and end users alike, but
+it is especially beneficial for developers who are new to the project.
+If you use an IDE that understands type annotations, it will provide richer
+type completions and warnings than before.
+You&amp;rsquo;ll also be able to use your IDE to inspect the types of Beam 
functions and
+transforms to better understand how they work, which will ease your own
+development.
+Finally, once Beam is fully annotated, end users will be able to benefit from
+the use of static type analysis on their own pipelines and custom 
transforms.&lt;/p>
+&lt;h1 id="new-ways-to-annotate">New Ways to Annotate&lt;/h1>
+&lt;h2 id="python-3-syntax-annotations">Python 3 Syntax Annotations&lt;/h2>
+&lt;p>Coming in Beam 2.21 (BEAM-8280), you will be able to use Python 
annotation
+syntax to specify input and output types.&lt;/p>
+&lt;p>For example, this new form:&lt;/p>
+&lt;pre>&lt;code>class MyDoFn(beam.DoFn):
+def process(self, element: int) -&amp;gt; typing.Text:
+yield str(element)
+&lt;/code>&lt;/pre>&lt;p>is equivalent to this:&lt;/p>
+&lt;pre>&lt;code>@apache_beam.typehints.with_input_types(int)
+@apache_beam.typehints.with_output_types(typing.Text)
+class MyDoFn(beam.DoFn):
+def process(self, element):
+yield str(element)
+&lt;/code>&lt;/pre>&lt;p>One of the advantages of the new form is that you may 
already be using it
+in tandem with a static type checker such as mypy, thus getting additional
+runtime type checking for free.&lt;/p>
+&lt;p>This feature will be enabled by default, and there will be 2 mechanisms 
in
+place to disable it:&lt;/p>
+&lt;ol>
+&lt;li>Calling 
&lt;code>apache_beam.typehints.disable_type_annotations()&lt;/code> before 
pipeline
+construction will disable the new feature completely.&lt;/li>
+&lt;li>Decorating a function with 
&lt;code>@apache_beam.typehints.no_annotations&lt;/code> will
+tell Beam to ignore annotations for it.&lt;/li>
+&lt;/ol>
+&lt;p>Uses of Beam&amp;rsquo;s &lt;code>with_input_type&lt;/code>, 
&lt;code>with_output_type&lt;/code> methods and decorators will
+still work and take precedence over annotations.&lt;/p>
+&lt;h3 id="sidebar">Sidebar&lt;/h3>
+&lt;p>You might ask: couldn&amp;rsquo;t we use mypy to type check Beam 
pipelines?
+There are several reasons why this is not the case.&lt;/p>
+&lt;ul>
+&lt;li>Pipelines are constructed at runtime and may depend on information that 
is
+only known at that time, such as a config file or database table 
schema.&lt;/li>
+&lt;li>PCollections don&amp;rsquo;t have the necessary type information, so 
mypy sees them as
+effectively containing any element type.
+This may change in in the future.&lt;/li>
+&lt;li>Transforms using lambdas (ex: &lt;code>beam.Map(lambda x: (1, 
x)&lt;/code>) cannot be
+annotated properly using PEP 484.
+However, Beam does a best-effort attempt to analyze the output type
+from the bytecode.&lt;/li>
+&lt;/ul>
+&lt;h2 id="typing-module-support">Typing Module Support&lt;/h2>
+&lt;p>Python&amp;rsquo;s &lt;a 
href="https://docs.python.org/3/library/typing.html";>typing&lt;/a> module 
defines
+types used in type annotations. This is what we call 
&amp;ldquo;native&amp;rdquo; types.
+While Beam has its own typing types, it also supports native types.
+While both Beam and native types are supported, for new code we encourage using
+native typing types. Native types have as these are supported by additional 
tools.&lt;/p>
+&lt;p>While working on Python 3 annotations syntax support, we&amp;rsquo;ve 
also discovered and
+fixed issues with native type support. There may still be bugs and unsupported
+native types. Please
+&lt;a href="https://beam.apache.org/community/contact-us/";>let us know&lt;/a> 
if you encounter
+issues.&lt;/p></description><link>/blog/python-typing/</link><pubDate>Thu, 28 
May 2020 00:00:01 
-0800</pubDate><guid>/blog/python-typing/</guid><category>blog</category><category>python</category><category>typing</category></item><item><title>Apache
 Beam 2.21.0</title><description>
 &lt;!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -668,88 +766,4 @@ Pablo Estrada, Paul King, Paul Suganthan, Raheel Khan, 
Rakesh Kumar,
 Reza Rokni, Robert Bradshaw, Robert Burke, rosetn, Rui Wang, Ryan Skraba, 
RyanSkraba,
 Sahith Nallapareddy, Sam Rohde, Sam Whittle, Steve Niemitz, Tanay 
Tummalapalli, Thomas Weise,
 Tianyang Hu, ttanay, tvalentyn, Udi Meiri, Valentyn Tymofieiev, Wout Scheepers,
-yanzhi, Yekut, Yichi Zhang, Yifan Zou, yoshiki.obata, Yueyang Qiu, Yunqing 
Zhou&lt;/p></description><link>/blog/beam-2.15.0/</link><pubDate>Thu, 22 Aug 
2019 00:00:01 
-0800</pubDate><guid>/blog/beam-2.15.0/</guid><category>blog</category></item><item><title>Apache
 Beam 2.14.0</title><description>
-&lt;!--
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-&lt;p>We are happy to present the new 2.14.0 release of Beam. This release 
includes both improvements and new functionality.
-See the &lt;a href="/get-started/downloads/#2140-2019-08-01">download 
page&lt;/a> for this release.&lt;/p>
-&lt;p>For more information on changes in 2.14.0, check out the
-&lt;a 
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&amp;amp;version=12345431";>detailed
 release notes&lt;/a>.&lt;/p>
-&lt;h2 id="highlights">Highlights&lt;/h2>
-&lt;ul>
-&lt;li>Python 3 support is extended to Python 3.6 and 3.7; in addition to 
various other Python 3 &lt;a 
href="https://issues.apache.org/jira/browse/BEAM-1251?focusedCommentId=16890504&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16890504";>improvements&lt;/a>.&lt;/li>
-&lt;li>Spark portable runner (batch) now &lt;a 
href="https://lists.apache.org/thread.html/c43678fc24c9a1dc9f48c51c51950aedcb9bc0fd3b633df16c3d595a@%3Cuser.beam.apache.org%3E";>available&lt;/a>
 for Java, Python, Go.&lt;/li>
-&lt;li>Added new runner: Hazelcast Jet Runner. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7305";>BEAM-7305&lt;/a>)&lt;/li>
-&lt;/ul>
-&lt;h3 id="ios">I/Os&lt;/h3>
-&lt;ul>
-&lt;li>Schema support added to BigQuery reads. (Java) (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-6673";>BEAM-6673&lt;/a>)&lt;/li>
-&lt;li>Schema support added to JDBC source. (Java) (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-6674";>BEAM-6674&lt;/a>)&lt;/li>
-&lt;li>BigQuery support for &lt;code>bytes&lt;/code> is fixed. (Python 3) 
(&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-6769";>BEAM-6769&lt;/a>)&lt;/li>
-&lt;li>Added DynamoDB IO. (Java) (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7043";>BEAM-7043&lt;/a>)&lt;/li>
-&lt;li>Added support unbounded reads with HCatalogIO (Java) (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7450";>BEAM-7450&lt;/a>)&lt;/li>
-&lt;li>Added BoundedSource wrapper for SDF. (Python) (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7443";>BEAM-7443&lt;/a>)&lt;/li>
-&lt;li>Added support for INCRBY/DECRBY operations in RedisIO. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7286";>BEAM-7286&lt;/a>)&lt;/li>
-&lt;li>Added Support for ValueProvider defined GCS Location for 
WriteToBigQuery with File Loads. (Java) ((&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7603";>BEAM-7603&lt;/a>))&lt;/li>
-&lt;/ul>
-&lt;h3 id="new-features--improvements">New Features / Improvements&lt;/h3>
-&lt;ul>
-&lt;li>Python SDK add support for DoFn &lt;code>setup&lt;/code> and 
&lt;code>teardown&lt;/code> methods. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-562";>BEAM-562&lt;/a>)&lt;/li>
-&lt;li>Python SDK adds new transforms: &lt;a 
href="https://issues.apache.org/jira/browse/BEAM-6693";>ApproximateUnique&lt;/a>,
 &lt;a href="https://issues.apache.org/jira/browse/BEAM-6695";>Latest&lt;/a>, 
&lt;a href="https://issues.apache.org/jira/browse/BEAM-7019";>Reify&lt;/a>, 
&lt;a href="https://issues.apache.org/jira/browse/BEAM-7021";>ToString&lt;/a>, 
&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7023";>WithKeys&lt;/a>.&lt;/li>
-&lt;li>Added hook for user-defined JVM initialization in workers. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-6872";>BEAM-6872&lt;/a>)&lt;/li>
-&lt;li>Added support for SQL Row Estimation for BigQueryTable. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7513";>BEAM-7513&lt;/a>)&lt;/li>
-&lt;li>Auto sharding of streaming sinks in FlinkRunner. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-5865";>BEAM-5865&lt;/a>)&lt;/li>
-&lt;li>Removed the Hadoop dependency from the external sorter. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7268";>BEAM-7268&lt;/a>)&lt;/li>
-&lt;li>Added option to expire portable SDK worker environments. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7348";>BEAM-7348&lt;/a>)&lt;/li>
-&lt;li>Beam does not relocate Guava anymore and depends only on its own 
vendored version of Guava. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-6620";>BEAM-6620&lt;/a>)&lt;/li>
-&lt;/ul>
-&lt;h3 id="breaking-changes">Breaking Changes&lt;/h3>
-&lt;ul>
-&lt;li>Deprecated set/getClientConfiguration in Jdbc IO. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7263";>BEAM-7263&lt;/a>)&lt;/li>
-&lt;/ul>
-&lt;h3 id="bugfixes">Bugfixes&lt;/h3>
-&lt;ul>
-&lt;li>Fixed reading of concatenated compressed files. (Python) (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-6952";>BEAM-6952&lt;/a>)&lt;/li>
-&lt;li>Fixed re-scaling issues on Flink &amp;gt;= 1.6 versions. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7144";>BEAM-7144&lt;/a>)&lt;/li>
-&lt;li>Fixed SQL EXCEPT DISTINCT behavior. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7194";>BEAM-7194&lt;/a>)&lt;/li>
-&lt;li>Fixed OOM issues with bounded Reads for Flink Runner. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7442";>BEAM-7442&lt;/a>)&lt;/li>
-&lt;li>Fixed HdfsFileSystem to correctly match directories. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7561";>BEAM-7561&lt;/a>)&lt;/li>
-&lt;li>Upgraded Spark runner to use spark version 2.4.3. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7265";>BEAM-7265&lt;/a>)&lt;/li>
-&lt;li>Upgraded Jackson to version 2.9.9. (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7465";>BEAM-7465&lt;/a>)&lt;/li>
-&lt;li>Various other bug fixes and performance improvements.&lt;/li>
-&lt;/ul>
-&lt;h3 id="known-issues">Known Issues&lt;/h3>
-&lt;ul>
-&lt;li>Do &lt;strong>NOT&lt;/strong> use Python MongoDB source in this 
release. Python MongoDB source &lt;a 
href="https://issues.apache.org/jira/browse/BEAM-5148";>added&lt;/a> in this 
release has a known issue that can result in data loss. See (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7866";>BEAM-7866&lt;/a>) for 
details.&lt;/li>
-&lt;li>Can&amp;rsquo;t install the Python SDK on macOS 10.15. See (&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-8368";>BEAM-8368&lt;/a>) for 
details.&lt;/li>
-&lt;/ul>
-&lt;h2 id="list-of-contributors">List of Contributors&lt;/h2>
-&lt;p>According to git shortlog, the following people contributed to the 
2.14.0 release. Thank you to all contributors!&lt;/p>
-&lt;p>Ahmet Altay, Aizhamal Nurmamat kyzy, Ajo Thomas, Alex Amato, Alexey 
Romanenko,
-Alexey Strokach, Alex Van Boxel, Alireza Samadian, Andrew Pilloud,
-Ankit Jhalaria, Ankur Goenka, Anton Kedin, Aryan Naraghi, Bartok Jozsef,
-Bora Kaplan, Boyuan Zhang, Brian Hulette, Cam Mach, Chamikara Jayalath,
-Charith Ellawala, Charles Chen, Colm O hEigeartaigh, Cyrus Maden,
-Daniel Mills, Daniel Oliveira, David Cavazos, David Moravek, David Yan,
-Daniel Lescohier, Elwin Arens, Etienne Chauchot, Fábio Franco Uechi,
-Finch Keung, Frederik Bode, Gregory Kovelman, Graham Polley, Hai Lu, Hannah 
Jiang,
-Harshit Dwivedi, Harsh Vardhan, Heejong Lee, Henry Suryawirawan,
-Ismaël Mejía, Jan Lukavský, Jean-Baptiste Onofré, Jozef Vilcek, Juta, Kai 
Jiang,
-Kamil Wu, Kasia Kucharczyk, Kenneth Knowles, Kyle Weaver, Lara Schmidt,
-Łukasz Gajowy, Luke Cwik, Manu Zhang, Mark Liu, Matthias Baetens,
-Maximilian Michels, Melissa Pashniak, Michael Luckey, Michal Walenia,
-Mikhail Gryzykhin, Ming Liang, Neville Li, Pablo Estrada, Paul Suganthan,
-Peter Backx, Rakesh Kumar, Rasmi Elasmar, Reuven Lax, Reza Rokni, Robbe 
Sneyders,
-Robert Bradshaw, Robert Burke, Rose Nguyen, Rui Wang, Ruoyun Huang,
-Shoaib Zafar, Slava Chernyak, Steve Niemitz, Tanay Tummalapalli, Thomas Weise,
-Tim Robertson, Tim van der Lippe, Udi Meiri, Valentyn Tymofieiev, Varun Dhussa,
-Viktor Gerdin, Yichi Zhang, Yifan Mai, Yifan Zou, Yueyang 
Qiu.&lt;/p></description><link>/blog/beam-2.14.0/</link><pubDate>Wed, 31 Jul 
2019 00:00:01 
-0800</pubDate><guid>/blog/beam-2.14.0/</guid><category>blog</category></item></channel></rss>
\ No newline at end of file
+yanzhi, Yekut, Yichi Zhang, Yifan Zou, yoshiki.obata, Yueyang Qiu, Yunqing 
Zhou&lt;/p></description><link>/blog/beam-2.15.0/</link><pubDate>Thu, 22 Aug 
2019 00:00:01 
-0800</pubDate><guid>/blog/beam-2.15.0/</guid><category>blog</category></item></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/index.html 
b/website/generated-content/index.html
index 399bab5..28b1e4a 100644
--- a/website/generated-content/index.html
+++ b/website/generated-content/index.html
@@ -5,7 +5,7 @@
 <a class="button button--primary" href=/get-started/try-apache-beam/>Try 
Beam</a>
 <a class="button button--primary" href=/get-started/downloads/>Download Beam 
SDK 2.21.0</a></div><div class=hero__ctas><a class=button 
href=/get-started/quickstart-java/>Java Quickstart</a>
 <a class=button href=/get-started/quickstart-py/>Python Quickstart</a>
-<a class=button href=/get-started/quickstart-go/>Go 
Quickstart</a></div></div></div><div class=hero__cols__col><div 
class=hero__blog><div class=hero__blog__title>The latest from the 
blog</div><div class=hero__blog__cards><a class=hero__blog__cards__card 
href=/blog/beam-2.21.0/><div class=hero__blog__cards__card__title>Apache Beam 
2.21.0</div><div class=hero__blog__cards__card__date>May 27, 2020</div></a><a 
class=hero__blog__cards__card href=/blog/beam-summit-digital-2020/><div 
class=hero [...]
+<a class=button href=/get-started/quickstart-go/>Go 
Quickstart</a></div></div></div><div class=hero__cols__col><div 
class=hero__blog><div class=hero__blog__title>The latest from the 
blog</div><div class=hero__blog__cards><a class=hero__blog__cards__card 
href=/blog/python-typing/><div class=hero__blog__cards__card__title>Python SDK 
Typing Changes</div><div class=hero__blog__cards__card__date>May 28, 
2020</div></a><a class=hero__blog__cards__card href=/blog/beam-2.21.0/><div 
class=hero__bl [...]
 <a class="button button--primary" href=/get-started/downloads/>Download Beam 
SDK 2.21.0</a></div><div class=ctas__ctas><a class=button 
href=/get-started/quickstart-java/>Java Quickstart</a>
 <a class=button href=/get-started/quickstart-py/>Python Quickstart</a>
 <a class=button href=/get-started/quickstart-go/>Go 
Quickstart</a></div></div></div><footer class=footer><div 
class=footer__contained><div class=footer__cols><div 
class=footer__cols__col><div class=footer__cols__col__logo><img 
src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div 
class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg 
class=footer__logo alt="Apache logo"></div></div><div class="footer__cols__col 
footer__cols__col--md"><div class=foo [...]
diff --git a/website/generated-content/roadmap/connectors-multi-sdk/index.html 
b/website/generated-content/roadmap/connectors-multi-sdk/index.html
index 2156821..5d686b1 100644
--- a/website/generated-content/roadmap/connectors-multi-sdk/index.html
+++ b/website/generated-content/roadmap/connectors-multi-sdk/index.html
@@ -4,8 +4,8 @@
 <a href=/ class=navbar-brand><img alt=Brand style=height:25px 
src=/images/beam_logo_navbar.png></a></div><div class="navbar-mask 
closed"></div><div id=navbar class="navbar-container closed"><ul class="nav 
navbar-nav"><li><a href=/get-started/beam-overview/>Get Started</a></li><li><a 
href=/documentation/>Documentation</a></li><li><a 
href=/documentation/sdks/java/>Languages</a></li><li><a 
href=/documentation/runners/capability-matrix/>RUNNERS</a></li><li><a 
href=/roadmap/>Roadmap</a></li>< [...]
 replace current frameworks for developing bounded and unbounded sources.
 Splittable DoFn is being developed along side current Beam portability
-efforts. See <a href=https://beam.apache.org/roadmap/portability/>Beam 
portability framework roadmap</a> for more details.</p><h1 
id=cross-language-transforms>Cross-language transforms</h1><p><em>Last updated 
on November 2019.</em></p><p>As an added benefit of Beam portability effort, we 
are able to utilize Beam transforms across SDKs. This has many 
benefits.</p><ul><li>Connector sharing across SDKs. For example,<ul><li>Beam 
pipelines written using Python and Go SDKs will be able to util [...]
-language of choice and utilize these transforms from other languages reducing 
the maintenance and support overheads.</li><li><a 
href=https://beam.apache.org/documentation/dsls/sql/overview/>Beam SQL</a>, 
that is currently only available to Java SDK, will become available to Python 
and Go SDKs.</li><li><a 
href=https://www.tensorflow.org/tfx/transform/get_started>Beam TFX 
transforms</a>, that are currently only available to Beam Python SDK pipelines 
will become available to Java and Go SDK [...]
+efforts. See <a href=https://beam.apache.org/roadmap/portability/>Beam 
portability framework roadmap</a> for more details.</p><h1 
id=cross-language-transforms>Cross-language transforms</h1><p><em>Last updated 
on May 2020.</em></p><p>As an added benefit of Beam portability effort, we are 
able to utilize Beam transforms across SDKs. This has many 
benefits.</p><ul><li>Connector sharing across SDKs. For example,<ul><li>Beam 
pipelines written using Python and Go SDKs will be able to utilize t [...]
+language of choice and utilize these transforms from other languages reducing 
the maintenance and support overheads.</li><li><a 
href=https://beam.apache.org/documentation/dsls/sql/overview/>Beam SQL</a>, 
that is currently only available to Java SDK, will become available to Python 
and Go SDKs.</li><li><a 
href=https://www.tensorflow.org/tfx/transform/get_started>Beam TFX 
transforms</a>, that are currently only available to Beam Python SDK pipelines 
will become available to Java and Go SDK [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam 
logo, and the Apache feather logo are either registered trademarks or 
trademarks of The Apache Software Foundation. All other products or name brands 
are trademarks of their respective holders, including The Apache Software 
Foundation.</div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/roadmap/index.xml 
b/website/generated-content/roadmap/index.xml
index a8cb43f..dc4c083 100644
--- a/website/generated-content/roadmap/index.xml
+++ b/website/generated-content/roadmap/index.xml
@@ -252,7 +252,7 @@ replace current frameworks for developing bounded and 
unbounded sources.
 Splittable DoFn is being developed along side current Beam portability
 efforts. See &lt;a href="https://beam.apache.org/roadmap/portability/";>Beam 
portability framework roadmap&lt;/a> for more details.&lt;/p>
 &lt;h1 id="cross-language-transforms">Cross-language transforms&lt;/h1>
-&lt;p>&lt;em>Last updated on November 2019.&lt;/em>&lt;/p>
+&lt;p>&lt;em>Last updated on May 2020.&lt;/em>&lt;/p>
 &lt;p>As an added benefit of Beam portability effort, we are able to utilize 
Beam transforms across SDKs. This has many benefits.&lt;/p>
 &lt;ul>
 &lt;li>Connector sharing across SDKs. For example,
@@ -274,9 +274,9 @@ language of choice and utilize these transforms from other 
languages reducing th
 &lt;ul>
 &lt;li>Basic API for Java SDK - completed&lt;/li>
 &lt;li>Basic API for Python SDK - completed&lt;/li>
-&lt;li>Basic API for Go SDK - Not started&lt;/li>
+&lt;li>Basic API for Go SDK - In progress&lt;/li>
 &lt;li>Basic cross-language transform expansion service for Java and Python 
SDKs - completed&lt;/li>
-&lt;li>Artifact staging - In progress - &lt;a 
href="https://lists.apache.org/thread.html/6fcee7047f53cf1c0636fb65367ef70842016d57effe2e5795c4137d@%3Cdev.beam.apache.org%3E";>email
 thread&lt;/a>, &lt;a 
href="https://docs.google.com/document/d/1XaiNekAY2sptuQRIXpjGAyaYdSc-wlJ-VKjl04c8N48/edit#heading=h.900gc947qrw8";>doc&lt;/a>&lt;/li>
+&lt;li>Artifact staging - mostly completed - &lt;a 
href="https://lists.apache.org/thread.html/6fcee7047f53cf1c0636fb65367ef70842016d57effe2e5795c4137d@%3Cdev.beam.apache.org%3E";>email
 thread&lt;/a>, &lt;a 
href="https://docs.google.com/document/d/1XaiNekAY2sptuQRIXpjGAyaYdSc-wlJ-VKjl04c8N48/edit#heading=h.900gc947qrw8";>doc&lt;/a>&lt;/li>
 &lt;/ul>
 &lt;h3 id="support-for-flink-runner">Support for Flink runner&lt;/h3>
 &lt;p>Work related to making cross-language transforms available for Flink 
runner.&lt;/p>
@@ -295,18 +295,20 @@ language of choice and utilize these transforms from 
other languages reducing th
 &lt;h3 id="support-for-direct-runner">Support for Direct runner&lt;/h3>
 &lt;p>Work related to making cross-language transforms available on Direct 
runner&lt;/p>
 &lt;ul>
-&lt;li>Basic support for executing cross-language transforms on portable 
Direct runner - Not started&lt;/li>
+&lt;li>Basic support for executing cross-language transforms on Pyton Direct 
runner - completed&lt;/li>
+&lt;li>Basic support for executing cross-language transforms on Java Direct 
runner - Not started&lt;/li>
 &lt;/ul>
 &lt;h3 id="connectortransform-support">Connector/transform support&lt;/h3>
 &lt;p>Ongoing and planned work related to making existing 
connectors/transforms available to other SDKs through the cross-language 
transforms framework.&lt;/p>
 &lt;ul>
-&lt;li>Java KafkIO - In progress - &lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7029";>BEAM-7029&lt;/a>&lt;/li>
+&lt;li>Java KafkaIO - completed - &lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7029";>BEAM-7029&lt;/a>&lt;/li>
 &lt;li>Java PubSubIO - In progress - &lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7738";>BEAM-7738&lt;/a>&lt;/li>
+&lt;li>Java SQL - completed - &lt;a 
href="https://issues.apache.org/jira/browse/BEAM-8603";>BEAM-8603&lt;/a>&lt;/li>
 &lt;/ul>
 &lt;h3 id="portable-beam-schema">Portable Beam schema&lt;/h3>
 &lt;p>Portable Beam schema support will provide a generalized mechanism for 
serializing and transferring data across language boundaries which will be 
extremely useful for pipelines that employ cross-language transforms.&lt;/p>
 &lt;ul>
-&lt;li>Make row coder a standard coder and implement in python - In progress - 
&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7886";>BEAM-7886&lt;/a>&lt;/li>
+&lt;li>Make row coder a standard coder and implement in python - completed - 
&lt;a 
href="https://issues.apache.org/jira/browse/BEAM-7886";>BEAM-7886&lt;/a>&lt;/li>
 &lt;/ul>
 &lt;h3 id="integrationperformance-testing">Integration/Performance 
testing&lt;/h3>
 &lt;ul>
diff --git a/website/generated-content/sitemap.xml 
b/website/generated-content/sitemap.xml
index 45b8968..080cb6b 100644
--- a/website/generated-content/sitemap.xml
+++ b/website/generated-content/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>/blog/beam-2.21.0/</loc><lastmod>2020-05-27T11:36:29-04:00</lastmod></url><url><loc>/categories/blog/</loc><lastmod>2020-05-27T11:36:29-04:00</lastmod></url><url><loc>/blog/</loc><lastmod>2020-05-27T11:36:29-04:00</lastmod></url><url><loc>/categories/</loc><lastmod>2020-05-27T11:36:29-04:00</lastmod></url><url><loc>/blog/b
 [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>/categories/blog/</loc><lastmod>2020-05-28T15:14:36-07:00</lastmod></url><url><loc>/blog/</loc><lastmod>2020-05-28T15:14:36-07:00</lastmod></url><url><loc>/categories/</loc><lastmod>2020-05-28T15:14:36-07:00</lastmod></url><url><loc>/categories/python/</loc><lastmod>2020-05-28T15:14:36-07:00</lastmod></url><url><loc>/blog/
 [...]
\ No newline at end of file

Reply via email to