You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by mw...@apache.org on 2020/05/25 08:50:28 UTC

[beam] branch BEAM-9646-cloud-vision updated (0c439ff -> aa91ce7)

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

mwalenia pushed a change to branch BEAM-9646-cloud-vision
in repository https://gitbox.apache.org/repos/asf/beam.git.


 discard 0c439ff  Added changes to CHANGES.md
 discard 6089b1f  Add customizable number of keys to the transform
 discard 309db0b  Set the same key for each element so that grouping is done correctly by existing transforms
 discard fa9d10b  Fixes after code review
 discard d9c23d5  Add dependency to build.gradle
 discard 7d3d31b  Add @Experimental annotation, make parent class package-private
 discard 15820de  Fix spotbugs errors
 discard f5057d8  [BEAM-9646] Add Google Cloud vision integration transform
     add 401f213  [BEAM-6733] Add pipeline option to flush bundle data before checkpointing
     add 7c80ecb  Merge pull request #11678: [BEAM-6733] Add pipeline option to flush bundle data before checkpointing
     add 64414b8  Python3 fix - convert dict.keys() to list before indexing (#11733)
     add 1aa715c  Updates google-apitools and httplib2 (#11726)
     add fc5c981  [BEAM-10018] Fix timestamps in windowing kata
     add db5004c  [BEAM-10018] Kata failing due to failed parsing
     add f214352  Remove unused import
     add b18ea2a  Add missing dependency
     add 80bc613  Fix member variable name in Kata documentation
     add 45a0b85  Fix placeholder location
     add 1f21a4c  Merge pull request #11731 from [BEAM-10018] Fix timestamps in two windowing Python katas
     add f4a0f66  Remove all answer placeholder checks as they can be confusing at times for some learners
     add 849721f  Update course in Stepik
     add ddf2927  Merge pull request #11730 from henryken/katas-python-remove-answer-placeholder-check
     add de9177e  [BEAM-9964] Update CHANGES.md  (#11743)
     add dce14f8  Support ZetaSQL DATE type as a Beam LogicalType
     add 47c246b  Merge pull request #11272: [BEAM-9641] Support ZetaSQL DATE type as a Beam LogicalType
     add 76fbe45  [BEAM-9577] Artifact v2 support for uber jars. (#11708)
     add 7c81b93  Populate all SpannerIO batching parameters in display data.
     add 9ded9e2  Fix capitalization, clarify descriptions
     add 192e9ad  fix capitalization, clarify description Grouped
     add 30a68f5  Refactor to extract single method for popuplating displayData
     add decd50a  [BEAM-9821] Populate all SpannerIO batching parameters in display data. (#11528)
     add a70fde0  [BEAM-9339] Ensure that Dataflow's pipeline proto also contains the capabilities (#11748)
     add bd4523b  [BEAM-9363] TUMBLE as TVF (#10946)
     add 03b6052  [BEAM-2530] Sql precommit compile and run on java 11
     add 84fad7f  Merge pull request #11691: [BEAM-2530] Sql precommit compile and run on java 11
     add 629b8f5  Updated Flink runner version in NEXMark documentation
     add 6544fc3  Merge pull request #11751: Updated Flink runner version in NEXMark documentation
     add 92853fe  Upgrade Dataflow Python container versions.
     add ddeab8b  Merge pull request #11752 from ibzib/py-container-518
     add 84c12eb  [BEAM-9383] Staging Dataflow artifacts from environment (#11039)
     add 03d99df  [BEAM-1589] Added @OnWindowExpiration annotation. (#11350)
     add 9b93f1a  [BEAM-9958] Linkage Checker to use exclusion files as baseline (#11674)
     add d64df6a  Disable grouping by default when streaming.
     add 3f2d648  [BEAM-9822] Disable grouping when streaming (#11532)
     add 9d22950  [BEAM-9770] Add BigQueryIO deadletter pattern Decouple .java and .py snippits commit for purpose of PR. Add back changes for Snippets.java
     add abd7684  Merge pull request #11437 from rezarokni/BEAM-9770
     add d032818  [BEAM-9951] Using the builder pattern for Go synthetic config frontend
     add 2eaea23  Merge pull request #11747: [BEAM-9951] Using the builder pattern for Go synthetic config frontend
     add b4d17c1  Prevent Dataflow from starting multiple containers for the same image
     add 7ad4c4c  Merge pull request #11740: [BEAM-8019] Prevent Dataflow from starting multiple containers for the same image
     add 27656d7  [BEAM-9984] Support BIT_OR aggregation function in Beam SQL (#11737)
     add 2967e3a  Katas - Convert task description from HTML to Markdown (#11736)
     add 3719e6a  [BEAM-9900] Fix polling behavior in UnboundedSourceWrapper
     add 77ea885  [BEAM-9900] Add test case for polling idle readers
     add 5cc46df  Merge pull request #11750: [BEAM-9900] Fix polling behavior in UnboundedSourceWrapper
     add a9014b2  [BEAM-9633] Add namespace parameter to MetricReader
     add 7708c63  [BEAM-9633] Add more parameters to pubsub matcher
     add 7525bdf  [BEAM-9633] Add pubsubio performance tests
     add a355f6d  [BEAM-9633] Add jenkins job for python pubsubio tests
     add 836d0ad  Merge pull request #11274: [BEAM-9633] Add PubsubIO performance test
     add ef2136b  Merge pull request #11596 from [BEAM-9856] Optimization/hl7v2 io list messages
     add b2fefaf  [BEAM-9679] Add Core Transforms section / GroupByKey lesson to the Go SDK katas (#11734)
     add 3b50369  [BEAM-10038] Add script to mass-comment Jenkins triggers on PR
     add 5dda6a8  Add mass comment script to release guide.
     add cdc7821  Update test list.
     add 0a8d955  Update verify_release_build.sh to use mass_comment.py.
     add 84343b0  Run yapf on mass_comment.py.
     add d5d7c88  Remove irrelevant instruction.
     add e8d0bd5  Merge pull request #11755 from ibzib/BEAM-10038
     add 9818fa8  [BEAM-9699] Add test verifying we can use ZetaSQL in Python SqlTransform (#11575)
     add 758d821  [BEAM-10037] BeamSqlExample.java fails to build  (#11754)
     add cf03756  [BEAM-9899] Fix some issues around storing schema `id` on user types (#11701)
     add 9be5a29  Updated Videos and Podcasts page
     add e5345fb  Merge pull request #11724 from apache/aaltay-patch-1
     add 7bdd52e  Remove curly quotes from documentation code samples
     add 9e092f9  Merge pull request #11762 from [BEAM-10044] Remove curly quotes from documentation code samples
     add e1b148b  Implement GrowableOffsetRangeTracker
     add 87dbf84  Merge pull request #11715 from boyuanzz/grow
     add 3c1c757  Merge pull request #11339 from [BEAM-9468] Fhir io
     add b33ed49  [BEAM-9822] Simplify pipeline when batching is disabled. (#11529)
     add 9cf6f5f  Moving to 2.23.0-SNAPSHOT on master branch.
     add ffd74b0  [BEAM-10028] Add support for the state backed iterable coder to the Java SDK harness. (#11746)
     add 778e0f9  Upgrades gcsio to 2.1.3
     add 35db9f7  Add grpc-alts and grpc-netty-shaded explicitly
     add 5e132a1  Merge pull request #11651: [BEAM-8889] Upgrades gcsio to 2.1.3
     add 13568c8  Fix grammar / spelling
     add 799b4e1  Merge pull request #11760: [BEAM-10043] Fix grammar / spelling in language-switch.js
     add 22d604b  Update changes.md
     add ef811fe  Merge pull request #11774: [BEAM-1589] Added @OnWindowExpiration annotation.
     add 48c2c58  Clarifies Dataflow execution environment model
     add 696ebf2  Fixes typos.
     add 74a5340  Clarifies text.
     add e0ae226  Merge pull request #11757: [BEAM-8019] Clarifies Dataflow execution environment model
     add 3e70f16  Make GroupByKey a primitive
     add 986de56  Move ReifyWindows etc to DirectRunner, don't subclass from GBK
     add 0aa92fe  remove references to _GroupByKeyOnly
     add cc405fd  add back the ReifyWindows to the GBK, some internal tests depend on it.
     add e88362e  Skip checking input determinism for GBKs embedded in x-lang transforms. We can assume safely assume that the expansion service constructs transforms correctly.
     add 16ab595  [BEAM-9692] Make GroupByKey into a primitive (#11503)
     add 21da890  [BEAM-10048] Clean up release guide.
     add 1404c6a  Remove checklist from build_release_candidate.sh.
     add 79e84e9  Include additional instructions for staging repository.
     add 0c3780c  Clarify the usage of sign_hash_python_wheels.sh.
     add dfa1e47  Merge pull request #11764 from ibzib/release-guide
     add 105f265  Website build: Remove -u root (#11625)
     add 73fa135  [BEAM-9722] added SnowflakeIO with Read operation (#11360)
     add 393f1ba  [BEAM-10060] Upgrading Python containers to beam-master-20200521
     add 1560e02  Merge pull request #11783 from angoenka/beam-master-20200521
     add b8e582f  [BEAM-10052] check hash and avoid duplicated artifacts
     add 7cc1a7d  Merge pull request #11771: [BEAM-10052] check hash and avoid duplicated artifacts
     add 1095db0  [BEAM-9978] Adding functionality and tests to Go offset range tracker.
     add 93f605d  Merge pull request #11763: [BEAM-9978] Adding functionality and tests to Go offset range tracker.
     add e45623e  [BEAM-10051] Move closed reader check after sentinel. (#11768)
     add 455fca5  [BEAM-10056] Fix validation for struct CoGBKs (#11782)
     add e3b6a43  [BEAM-10050] Change labels checked in VideoIntelligenceIT (#11775)
     add 3911bba  [BEAM-9646] Add Google Cloud vision integration transform
     add f829148  Fix spotbugs errors
     add edad9c3  Add @Experimental annotation, make parent class package-private
     add bb70720  Add dependency to build.gradle
     add 20d82dd  Fixes after code review
     add 7b9a777  Set the same key for each element so that grouping is done correctly by existing transforms
     add 6f62ebd  Add customizable number of keys to the transform
     add aa91ce7  Added changes to CHANGES.md

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (0c439ff)
            \
             N -- N -- N   refs/heads/BEAM-9646-cloud-vision (aa91ce7)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .test-infra/jenkins/CommonTestProperties.groovy    |     2 +-
 .test-infra/jenkins/LoadTestsBuilder.groovy        |    13 +-
 .../job_PerformanceTests_PubsubIO_Python.groovy    |    72 +
 .../jenkins/job_PreCommit_SQL_Java11.groovy        |    55 +
 CHANGES.md                                         |     5 +-
 build.gradle                                       |    20 +-
 .../org/apache/beam/gradle/BeamModulePlugin.groovy |     6 +-
 .../apache/beam/examples/snippets/Snippets.java    |    59 +
 gradle.properties                                  |     4 +-
 .../GroupByKey/GroupByKey/cmd/main.go              |    43 +
 .../Core Transforms/GroupByKey/GroupByKey/go.mod   |    26 +
 .../Core Transforms/GroupByKey/GroupByKey/go.sum   |   315 +
 .../GroupByKey/GroupByKey/pkg/task/task.go         |    25 +
 .../GroupByKey/GroupByKey}/task-info.yaml          |    17 +-
 .../GroupByKey/GroupByKey/task-remote-info.yaml    |     2 +
 .../Core Transforms/GroupByKey/GroupByKey/task.md  |    54 +
 .../GroupByKey/GroupByKey/test/task_test.go        |    57 +
 .../Core Transforms/GroupByKey/lesson-info.yaml    |     0
 .../GroupByKey/lesson-remote-info.yaml             |     3 +
 .../Map/ParDo OneToMany/task-remote-info.yaml      |     2 +-
 .../Map/ParDo Struct/task-remote-info.yaml         |     2 +-
 .../Map/ParDo/task-remote-info.yaml                |     2 +-
 .../katas/go/Core Transforms/section-info.yaml     |     1 +
 .../Hello Beam/Hello Beam/task-remote-info.yaml    |     2 +-
 learning/katas/go/course-remote-info.yaml          |     2 +-
 .../Aggregation/Count/task-remote-info.yaml        |     2 +-
 .../Aggregation/Count/{task.html => task.md}       |    12 +-
 .../Aggregation/Max/task-remote-info.yaml          |     2 +-
 .../Aggregation/Max/{task.html => task.md}         |    12 +-
 .../Aggregation/Mean/task-remote-info.yaml         |     2 +-
 .../Aggregation/Mean/{task.html => task.md}        |    12 +-
 .../Aggregation/Min/task-remote-info.yaml          |     2 +-
 .../Aggregation/Min/{task.html => task.md}         |    12 +-
 .../Aggregation/Sum/task-remote-info.yaml          |     2 +-
 .../Aggregation/Sum/{task.html => task.md}         |    12 +-
 .../Filter/Filter/task-remote-info.yaml            |     2 +-
 .../Filter/Filter/{task.html => task.md}           |    20 +-
 .../Filter/ParDo/task-remote-info.yaml             |     2 +-
 .../Filter/ParDo/{task.html => task.md}            |    15 +-
 .../WithKeys/WithKeys/task-remote-info.yaml        |     2 +-
 .../WithKeys/WithKeys/{task.html => task.md}       |    15 +-
 .../Branching/Branching/task-remote-info.yaml      |     2 +-
 .../Branching/Branching/{task.html => task.md}     |    21 +-
 .../CoGroupByKey/task-remote-info.yaml             |     2 +-
 .../CoGroupByKey/{task.html => task.md}            |    26 +-
 .../BinaryCombineFn Lambda/task-remote-info.yaml   |     2 +-
 .../BinaryCombineFn Lambda/{task.html => task.md}  |    27 +-
 .../Combine/BinaryCombineFn/task-remote-info.yaml  |     2 +-
 .../Combine/BinaryCombineFn/{task.html => task.md} |    39 +-
 .../Combine/Combine PerKey/task-remote-info.yaml   |     2 +-
 .../Combine/Combine PerKey/{task.html => task.md}  |    30 +-
 .../Combine/CombineFn/task-remote-info.yaml        |     2 +-
 .../Combine/CombineFn/{task.html => task.md}       |    43 +-
 .../Combine/Simple Function/task-remote-info.yaml  |     2 +-
 .../Combine/Simple Function/{task.html => task.md} |    37 +-
 .../Composite Transform/task-remote-info.yaml      |     2 +-
 .../Composite Transform/task.html                  |    51 -
 .../Composite Transform/task.md                    |    47 +
 .../task-remote-info.yaml                          |     2 +-
 .../DoFn Additional Parameters/task.html           |    52 -
 .../DoFn Additional Parameters/task.md             |    38 +
 .../Flatten/Flatten/task-remote-info.yaml          |     2 +-
 .../Flatten/Flatten/{task.html => task.md}         |    24 +-
 .../GroupByKey/GroupByKey/task-remote-info.yaml    |     2 +-
 .../GroupByKey/GroupByKey/{task.html => task.md}   |    30 +-
 .../Map/FlatMapElements/task-remote-info.yaml      |     2 +-
 .../Map/FlatMapElements/{task.html => task.md}     |    29 +-
 .../Map/MapElements/task-remote-info.yaml          |     2 +-
 .../Map/MapElements/{task.html => task.md}         |    26 +-
 .../Map/ParDo OneToMany/task-remote-info.yaml      |     2 +-
 .../Map/ParDo OneToMany/{task.html => task.md}     |    15 +-
 .../Map/ParDo/task-remote-info.yaml                |     2 +-
 .../Map/ParDo/{task.html => task.md}               |    24 +-
 .../Partition/Partition/task-remote-info.yaml      |     2 +-
 .../Partition/Partition/{task.html => task.md}     |    36 +-
 .../Side Input/Side Input/task-remote-info.yaml    |     2 +-
 .../Side Input/Side Input/{task.html => task.md}   |    38 +-
 .../Side Output/Side Output/task-remote-info.yaml  |     2 +-
 .../Side Output/Side Output/{task.html => task.md} |    24 +-
 .../Word Count/Word Count/task-remote-info.yaml    |     2 +-
 .../Word Count/Word Count/{task.html => task.md}   |    27 +-
 .../Built-in IOs/task-remote-info.yaml             |     2 +-
 .../IO/Built-in IOs/Built-in IOs/task.md}          |    25 +-
 .../IO/TextIO/TextIO Read/task-remote-info.yaml    |     2 +-
 .../IO/TextIO/TextIO Read/{task.html => task.md}   |    33 +-
 .../Hello Beam/Hello Beam/task-remote-info.yaml    |     2 +-
 .../Hello Beam/Hello Beam/{task.html => task.md}   |    46 +-
 .../Early Triggers/task-remote-info.yaml           |     2 +-
 .../Early Triggers/{task.html => task.md}          |    29 +-
 .../Event Time Triggers/task-remote-info.yaml      |     2 +-
 .../Event Time Triggers/{task.html => task.md}     |    68 +-
 .../Window Accumulation Mode/task-remote-info.yaml |     2 +-
 .../{task.html => task.md}                         |    32 +-
 .../Adding Timestamp/ParDo/task-remote-info.yaml   |     2 +-
 .../Adding Timestamp/ParDo/{task.html => task.md}  |    28 +-
 .../WithTimestamps/task-remote-info.yaml           |     2 +-
 .../WithTimestamps/{task.html => task.md}          |    27 +-
 .../Fixed Time Window/task-remote-info.yaml        |     2 +-
 .../Fixed Time Window/Fixed Time Window/task.html  |    61 -
 .../Fixed Time Window/Fixed Time Window/task.md    |    53 +
 learning/katas/java/course-remote-info.yaml        |     2 +-
 .../Aggregation/Count/task-remote-info.yaml        |     2 +-
 .../Aggregation/Count/{task.html => task.md}       |    12 +-
 .../Common Transforms/Aggregation/Count/tests.py   |     4 +-
 .../Aggregation/Largest/task-remote-info.yaml      |     2 +-
 .../Aggregation/Largest/{task.html => task.md}     |    12 +-
 .../Common Transforms/Aggregation/Largest/tests.py |     4 +-
 .../Aggregation/Mean/task-remote-info.yaml         |     2 +-
 .../Aggregation/Mean/{task.html => task.md}        |    12 +-
 .../Common Transforms/Aggregation/Mean/tests.py    |     4 +-
 .../Aggregation/Smallest/task-remote-info.yaml     |     2 +-
 .../Aggregation/Smallest/{task.html => task.md}    |    12 +-
 .../Aggregation/Smallest/tests.py                  |     4 +-
 .../Aggregation/Sum/task-remote-info.yaml          |     2 +-
 .../Aggregation/Sum/{task.html => task.md}         |    12 +-
 .../Common Transforms/Aggregation/Sum/tests.py     |     4 +-
 .../Filter/Filter/task-remote-info.yaml            |     2 +-
 .../Filter/Filter/{task.html => task.md}           |    20 +-
 .../Common Transforms/Filter/Filter/tests.py       |    16 +-
 .../Filter/ParDo/task-remote-info.yaml             |     2 +-
 .../Filter/ParDo/{task.html => task.md}            |    15 +-
 .../python/Common Transforms/Filter/ParDo/tests.py |     4 +-
 .../WithKeys/WithKeys/task-remote-info.yaml        |     2 +-
 .../WithKeys/WithKeys/{task.html => task.md}       |    14 +-
 .../Common Transforms/WithKeys/WithKeys/tests.py   |    16 +-
 .../Branching/Branching/task-remote-info.yaml      |     2 +-
 .../Branching/Branching/{task.html => task.md}     |    20 +-
 .../Core Transforms/Branching/Branching/tests.py   |     4 +-
 .../CoGroupByKey/task-remote-info.yaml             |     2 +-
 .../CoGroupByKey/{task.html => task.md}            |    28 +-
 .../CoGroupByKey/CoGroupByKey/tests.py             |     4 +-
 .../Combine/Combine PerKey/task-remote-info.yaml   |     2 +-
 .../Combine/Combine PerKey/{task.html => task.md}  |    30 +-
 .../Combine/Combine PerKey/tests.py                |    16 +-
 .../Combine/CombineFn/task-remote-info.yaml        |     2 +-
 .../Combine/CombineFn/{task.html => task.md}       |    43 +-
 .../Core Transforms/Combine/CombineFn/tests.py     |    16 +-
 .../Combine/Simple Function/task-remote-info.yaml  |     2 +-
 .../Combine/Simple Function/{task.html => task.md} |    37 +-
 .../Combine/Simple Function/tests.py               |    16 +-
 .../Composite Transform/task-remote-info.yaml      |     2 +-
 .../Composite Transform/{task.html => task.md}     |    41 +-
 .../Composite Transform/tests.py                   |    16 +-
 .../Flatten/Flatten/task-remote-info.yaml          |     2 +-
 .../Flatten/Flatten/{task.html => task.md}         |    24 +-
 .../Core Transforms/Flatten/Flatten/tests.py       |    16 +-
 .../GroupByKey/GroupByKey/task-remote-info.yaml    |     2 +-
 .../GroupByKey/GroupByKey/{task.html => task.md}   |    30 +-
 .../Core Transforms/GroupByKey/GroupByKey/tests.py |     4 +-
 .../Map/FlatMap/task-remote-info.yaml              |     2 +-
 .../Map/FlatMap/{task.html => task.md}             |    28 +-
 .../python/Core Transforms/Map/FlatMap/tests.py    |    16 +-
 .../Core Transforms/Map/Map/task-remote-info.yaml  |     2 +-
 .../Core Transforms/Map/Map/{task.html => task.md} |    21 +-
 .../katas/python/Core Transforms/Map/Map/tests.py  |    16 +-
 .../Map/ParDo OneToMany/task-remote-info.yaml      |     2 +-
 .../Map/ParDo OneToMany/{task.html => task.md}     |    16 +-
 .../Core Transforms/Map/ParDo OneToMany/tests.py   |    27 +-
 .../Map/ParDo/task-remote-info.yaml                |     2 +-
 .../Map/ParDo/{task.html => task.md}               |    25 +-
 .../python/Core Transforms/Map/ParDo/tests.py      |    27 +-
 .../Partition/Partition/task-remote-info.yaml      |     2 +-
 .../Partition/Partition/{task.html => task.md}     |    36 +-
 .../Core Transforms/Partition/Partition/tests.py   |    16 +-
 .../Side Input/Side Input/task-remote-info.yaml    |     2 +-
 .../Side Input/Side Input/{task.html => task.md}   |    38 +-
 .../Core Transforms/Side Input/Side Input/tests.py |    27 +-
 .../Side Output/Side Output/task-remote-info.yaml  |     2 +-
 .../Side Output/Side Output/{task.html => task.md} |    24 +-
 .../Side Output/Side Output/tests.py               |    27 +-
 .../Word Count/Word Count/task-remote-info.yaml    |     2 +-
 .../Word Count/Word Count/{task.html => task.md}   |    22 +-
 .../python/Examples/Word Count/Word Count/tests.py |     4 +-
 .../Built-in IOs/task-remote-info.yaml             |     2 +-
 .../IO/Built-in IOs/Built-in IOs/task.md}          |    25 +-
 .../IO/TextIO/ReadFromText/task-remote-info.yaml   |     2 +-
 .../IO/TextIO/ReadFromText/{task.html => task.md}  |    33 +-
 .../katas/python/IO/TextIO/ReadFromText/tests.py   |    16 +-
 .../Hello Beam/Hello Beam/task-remote-info.yaml    |     2 +-
 .../Hello Beam/Hello Beam/{task.html => task.md}   |    46 +-
 .../Introduction/Hello Beam/Hello Beam/tests.py    |    15 +-
 .../Adding Timestamp/ParDo/task-info.yaml          |     6 +-
 .../Adding Timestamp/ParDo/task-remote-info.yaml   |     2 +-
 .../Adding Timestamp/ParDo/{task.html => task.md}  |    28 +-
 .../Windowing/Adding Timestamp/ParDo/task.py       |    20 +-
 .../Windowing/Adding Timestamp/ParDo/tests.py      |    37 +-
 .../Fixed Time Window/task-info.yaml               |     2 +-
 .../Fixed Time Window/task-remote-info.yaml        |     2 +-
 .../Fixed Time Window/Fixed Time Window/task.html  |    61 -
 .../Fixed Time Window/Fixed Time Window/task.md    |    54 +
 .../Fixed Time Window/Fixed Time Window/task.py    |    21 +-
 .../Fixed Time Window/Fixed Time Window/tests.py   |    16 +-
 learning/katas/python/course-remote-info.yaml      |     2 +-
 learning/katas/python/requirements.txt             |     2 +
 .../src/main/scripts/build_release_candidate.sh    |    21 +-
 release/src/main/scripts/mass_comment.py           |   147 +
 release/src/main/scripts/verify_release_build.sh   |    39 +-
 runners/apex/build.gradle                          |     1 +
 .../construction/AvroGenericCoderTranslator.java   |     4 +-
 .../core/construction/CoderTranslation.java        |    35 +-
 .../runners/core/construction/CoderTranslator.java |     8 +-
 .../core/construction/CoderTranslators.java        |     9 +-
 .../runners/core/construction/Environments.java    |    70 +-
 .../core/construction/ModelCoderRegistrar.java     |    11 +-
 .../runners/core/construction/ModelCoders.java     |    12 +-
 .../core/construction/RehydratedComponents.java    |     4 +-
 .../core/construction/CoderTranslationTest.java    |     5 +-
 .../runners/core/construction/CommonCoderTest.java |     3 +-
 .../core/construction/ParDoTranslationTest.java    |     4 +-
 .../core/construction/PipelineTranslationTest.java |     5 +-
 .../org/apache/beam/runners/core/DoFnRunner.java   |     6 +
 .../runners/core/LateDataDroppingDoFnRunner.java   |     5 +
 .../beam/runners/core/ReduceFnContextFactory.java  |     5 +
 .../apache/beam/runners/core/SimpleDoFnRunner.java |   210 +
 .../beam/runners/core/StatefulDoFnRunner.java      |     9 +-
 .../TriggerStateMachineContextFactory.java         |     5 +
 .../SimplePushbackSideInputDoFnRunnerTest.java     |     3 +
 .../core/triggers/TriggerStateMachineTester.java   |     5 +
 runners/flink/flink_runner.gradle                  |     1 +
 runners/flink/job-server/flink_job_server.gradle   |     1 +
 .../beam/runners/flink/FlinkPipelineOptions.java   |    11 +-
 .../flink/metrics/DoFnRunnerWithMetricsUpdate.java |     5 +
 .../wrappers/streaming/DoFnOperator.java           |    28 +-
 .../streaming/ExecutableStageDoFnOperator.java     |     3 +
 .../streaming/io/UnboundedSourceWrapper.java       |    14 +-
 .../streaming/stableinput/BufferingDoFnRunner.java |     3 +
 .../runners/flink/FlinkPipelineOptionsTest.java    |     1 +
 .../streaming/io/UnboundedSourceWrapperTest.java   |   246 +-
 .../website/PipelineOptionsTableGenerator.java     |     4 +-
 runners/gearpump/build.gradle                      |     1 +
 runners/google-cloud-dataflow-java/build.gradle    |     8 +-
 .../dataflow/DataflowPipelineTranslator.java       |    22 +-
 .../beam/runners/dataflow/DataflowRunner.java      |    99 +-
 .../beam/runners/dataflow/util/GcsStager.java      |    33 +-
 .../beam/runners/dataflow/util/PackageUtil.java    |   171 +-
 .../apache/beam/runners/dataflow/util/Stager.java  |    14 +-
 .../dataflow/DataflowPipelineTranslatorTest.java   |   260 +-
 .../beam/runners/dataflow/DataflowRunnerTest.java  |    30 +-
 .../beam/runners/dataflow/util/GCSUploadMain.java  |    20 +-
 .../runners/dataflow/util/PackageUtilTest.java     |    99 +-
 .../dataflow/worker/BatchModeExecutionContext.java |    48 +-
 .../dataflow/worker/DataflowExecutionContext.java  |     6 +-
 .../dataflow/worker/DataflowProcessFnRunner.java   |     5 +
 .../dataflow/worker/FnApiWindowMappingFn.java      |     9 +-
 .../dataflow/worker/GroupAlsoByWindowFnRunner.java |     3 +
 .../runners/dataflow/worker/SimpleParDoFn.java     |    13 +-
 .../StreamingKeyedWorkItemSideInputDoFnRunner.java |     5 +
 .../worker/StreamingModeExecutionContext.java      |    22 +-
 .../worker/StreamingSideInputDoFnRunner.java       |     5 +
 .../dataflow/worker/WindmillTimerInternals.java    |    15 +-
 .../dataflow/worker/UserParDoFnFactoryTest.java    |     2 +
 .../dataflow/worker/WorkerCustomSourcesTest.java   |    16 +-
 .../fn/control/BeamFnMapTaskExecutorTest.java      |     6 +-
 runners/jet/build.gradle                           |     1 +
 runners/samza/build.gradle                         |     1 +
 .../samza/metrics/DoFnRunnerWithMetrics.java       |     5 +
 .../runtime/DoFnRunnerWithKeyedInternals.java      |     5 +
 .../runners/samza/runtime/SamzaDoFnRunners.java    |     3 +
 runners/spark/build.gradle                         |     2 +
 runners/spark/job-server/build.gradle              |     1 +
 .../translation/batch/DoFnRunnerWithMetrics.java   |     5 +
 .../spark/translation/DoFnRunnerWithMetrics.java   |     5 +
 sdks/go/examples/stringsplit/stringsplit.go        |    16 +-
 sdks/go/pkg/beam/core/graph/fn.go                  |    24 +-
 sdks/go/pkg/beam/core/graph/fn_test.go             |    91 +-
 sdks/go/pkg/beam/core/runtime/harness/datamgr.go   |    24 +-
 .../beam/io/rtrackers/offsetrange/offsetrange.go   |    63 +-
 .../io/rtrackers/offsetrange/offsetrange_test.go   |   212 +
 sdks/go/pkg/beam/io/synthetic/source.go            |   158 +-
 sdks/go/pkg/beam/io/synthetic/source_test.go       |    16 +-
 sdks/go/pkg/beam/io/synthetic/step.go              |   202 +-
 sdks/go/pkg/beam/io/synthetic/step_test.go         |    33 +-
 sdks/go/pkg/beam/pardo.go                          |    11 +-
 sdks/java/build-tools/beam-linkage-check.sh        |    66 +-
 .../src/main/resources/beam/suppressions.xml       |     1 +
 .../apache/beam/sdk/coders/IterableLikeCoder.java  |    22 +-
 .../apache/beam/sdk/io/ClassLoaderFileSystem.java  |   161 +
 .../apache/beam/sdk/schemas/logicaltypes/Date.java |    65 +
 .../beam/sdk/schemas/logicaltypes/SqlTypes.java    |    23 +-
 .../java/org/apache/beam/sdk/state/Timers.java     |     3 +
 .../beam/sdk/testing/UsesOnWindowExpiration.java   |    22 +-
 .../java/org/apache/beam/sdk/transforms/DoFn.java  |     6 +
 .../beam/sdk/transforms/reflect/DoFnSignature.java |    17 +
 .../sdk/transforms/reflect/DoFnSignatures.java     |    25 +-
 .../splittabledofn/GrowableOffsetRangeTracker.java |   143 +
 .../splittabledofn/OffsetRangeTracker.java         |    58 +-
 .../util/BufferedElementCountingOutputStream.java  |    14 +-
 .../java/org/apache/beam/sdk/util/ZipFiles.java    |     2 +-
 .../beam/sdk/io/ClassLoaderFileSystemTest.java     |    76 +
 .../beam/sdk/transforms/GroupIntoBatchesTest.java  |    51 +-
 .../org/apache/beam/sdk/transforms/ParDoTest.java  |    95 +
 .../GrowableOffsetRangeTrackerTest.java            |   255 +
 .../splittabledofn/OffsetRangeTrackerTest.java     |    43 +
 .../BufferedElementCountingOutputStreamTest.java   |    16 +-
 .../sdk/expansion/service/ExpansionService.java    |     3 +-
 .../sdk/extensions/ml/VideoIntelligenceIT.java     |     6 +-
 .../sql/meta/provider/datacatalog/SchemaUtils.java |     3 +-
 .../extensions/sql/expansion-service/build.gradle  |     1 +
 .../expansion/ExternalSqlTransformRegistrar.java   |    82 +
 .../sdk/extensions/sql/expansion/package-info.java |    17 +-
 .../beam/sdk/extensions/sql/SqlTransform.java      |    39 +-
 .../sdk/extensions/sql/example/BeamSqlExample.java |    56 +-
 .../extensions/sql/impl/planner/BeamRuleSets.java  |     3 +-
 .../sdk/extensions/sql/impl/rel/BeamCalcRel.java   |    38 +-
 .../sql/impl/rel/BeamEnumerableConverter.java      |    16 +-
 .../sql/impl/rel/BeamTableFunctionScanRel.java     |   162 +
 .../sql/impl/rule/BeamTableFunctionScanRule.java   |    71 +
 .../extensions/sql/impl/schema/BeamTableUtils.java |    14 +-
 .../impl/transform/BeamBuiltinAggregations.java    |    44 +-
 .../extensions/sql/impl/utils/CalciteUtils.java    |    28 +-
 .../sql/impl/utils/TVFStreamingUtils.java          |    19 +-
 .../sdk/extensions/sql/BeamComplexTypeTest.java    |    75 +-
 .../beam/sdk/extensions/sql/BeamSqlCastTest.java   |    22 +-
 .../beam/sdk/extensions/sql/BeamSqlCliTest.java    |     3 +-
 .../extensions/sql/BeamSqlDslAggregationTest.java  |    27 +
 .../sql/BeamSqlDslSqlStdOperatorsTest.java         |    33 +-
 .../BeamSqlDateFunctionsIntegrationTest.java       |     9 +-
 .../sdk/extensions/sql/zetasql/SqlAnalyzer.java    |    47 +-
 .../sql/zetasql/SqlStdOperatorMappingTable.java    |    34 +-
 .../sql/zetasql/SqlWindowTableFunction.java        |   116 +
 .../beam/sdk/extensions/sql/zetasql/TestInput.java |    30 +-
 .../sdk/extensions/sql/zetasql/ZetaSqlUtils.java   |    77 +-
 .../zetasql/translation/ExpressionConverter.java   |    66 +-
 .../translation/QueryStatementConverter.java       |     2 +
 .../sql/zetasql/translation/TVFScanConverter.java  |    86 +
 .../sql/zetasql/ZetaSQLDialectSpecTest.java        |   345 +-
 .../beam/fn/harness/BeamFnDataReadRunner.java      |    18 +-
 .../beam/fn/harness/BeamFnDataWriteRunner.java     |    26 +-
 .../apache/beam/fn/harness/state/BagUserState.java |     2 +-
 .../beam/fn/harness/state/MultimapSideInput.java   |     6 +-
 .../beam/fn/harness/state/StateBackedIterable.java |   224 +
 .../fn/harness/state/StateFetchingIterators.java   |     2 +-
 .../beam/fn/harness/BeamFnDataReadRunnerTest.java  |     1 +
 .../beam/fn/harness/BeamFnDataWriteRunnerTest.java |     3 +-
 .../beam/fn/harness/FnApiDoFnRunnerTest.java       |     7 +-
 .../fn/harness/state/StateBackedIterableTest.java  |   184 +
 sdks/java/io/google-cloud-platform/build.gradle    |     6 +-
 .../apache/beam/sdk/io/gcp/healthcare/FhirIO.java  |  1176 +
 .../apache/beam/sdk/io/gcp/healthcare/HL7v2IO.java |   192 +-
 .../sdk/io/gcp/healthcare/HL7v2MessageCoder.java   |    10 +-
 .../sdk/io/gcp/healthcare/HealthcareApiClient.java |   102 +-
 .../sdk/io/gcp/healthcare/HealthcareIOError.java   |     9 +-
 .../io/gcp/healthcare/HealthcareIOErrorCoder.java  |     6 +-
 .../io/gcp/healthcare/HttpHealthcareApiClient.java |   400 +-
 .../apache/beam/sdk/io/gcp/pubsub/TestPubsub.java  |     4 +-
 .../apache/beam/sdk/io/gcp/spanner/SpannerIO.java  |   191 +-
 .../beam/sdk/io/gcp/healthcare/FhirIOReadIT.java   |   147 +
 .../beam/sdk/io/gcp/healthcare/FhirIOTest.java     |   112 +
 .../sdk/io/gcp/healthcare/FhirIOTestOptions.java   |    46 +
 .../beam/sdk/io/gcp/healthcare/FhirIOTestUtil.java |   127 +
 .../beam/sdk/io/gcp/healthcare/FhirIOWriteIT.java  |   129 +
 .../io/gcp/healthcare/HL7V2MessagePagesTest.java   |    21 +-
 .../beam/sdk/io/gcp/healthcare/HL7v2IOReadIT.java  |     5 +-
 .../sdk/io/gcp/healthcare/HL7v2IOReadWriteIT.java  |     2 +-
 .../sdk/io/gcp/healthcare/HL7v2IOTestUtil.java     |    24 +-
 .../beam/sdk/io/gcp/healthcare/HL7v2IOWriteIT.java |     2 +-
 .../sdk/io/gcp/spanner/SpannerIOWriteTest.java     |   127 +-
 ...ik437_ed7a9f5c-37ea-4767-95ba-a6783e9500b3.json | 14018 ++++
 ...pe518_1fd2683f-2a56-47c7-b674-98f2cc8319e7.json | 10877 +++
 ...ch576_4ecb4cbb-6df7-41e0-8e89-6e7a142721a5.json | 17399 ++++
 ...co882_8ed31d3e-7352-4055-89c4-f017db3f594e.json |  9279 +++
 ...tz995_f04ef974-6d6f-4e1c-804f-cd4d62aabb4f.json | 10047 +++
 .../DSTU2/hospitalInformation1586309771387.json    |   825 +
 .../practitionerInformation1586309771387.json      |   617 +
 ...ka837_d89e3bd8-4d0f-4735-8d16-d0f646a9dcd6.json | 16391 ++++
 ...in195_af0e4a42-a1ef-4c2f-ad31-9338a8b8fb7b.json | 31841 ++++++++
 ...le117_a5e08ef9-fd71-4273-a53a-d5f5df7926f4.json | 16971 ++++
 ...ue211_fcf2f472-77ac-47d7-9c9a-a6702bd2bb80.json | 80348 +++++++++++++++++++
 ...an202_55a5307d-5f23-49c1-9100-7d5c513abca3.json | 16018 ++++
 .../R4/hospitalInformation1586368892823.json       |  1182 +
 .../R4/practitionerInformation1586368892823.json   |   978 +
 ...era67_02a63c07-9fcc-42ba-aec0-9d5399ac4796.json | 16003 ++++
 ...ll264_88fb71f7-d445-4e5b-8af2-962e8f8e5fb6.json | 15372 ++++
 ...ng846_df27a976-5c5e-4b84-ad00-fe32972dce9c.json | 22688 ++++++
 ...ll178_136f997d-0a94-4573-97da-a53b5060a612.json | 28126 +++++++
 ...io310_74779846-85a4-4b26-9da4-414a5fec1aed.json | 18231 +++++
 ...ll811_3024090f-fe14-40a9-8fae-79952d3c95ce.json | 32061 ++++++++
 .../STU3/hospitalInformation1586298239556.json     |   880 +
 .../STU3/practitionerInformation1586298239556.json |   523 +
 sdks/java/io/snowflake/build.gradle                |    42 +
 .../beam/sdk/io/snowflake/CloudProvider.java       |    23 +-
 .../apache/beam/sdk/io/snowflake/SnowflakeIO.java  |   759 +
 .../sdk/io/snowflake/SnowflakePipelineOptions.java |   133 +
 .../beam/sdk/io/snowflake/SnowflakeService.java    |    29 +-
 .../sdk/io/snowflake/SnowflakeServiceImpl.java     |    90 +
 .../credentials/KeyPairSnowflakeCredentials.java   |    81 +
 .../OAuthTokenSnowflakeCredentials.java            |    22 +-
 .../credentials/SnowflakeCredentials.java          |    21 +-
 .../credentials/SnowflakeCredentialsFactory.java   |    55 +
 .../UsernamePasswordSnowflakeCredentials.java      |    28 +-
 .../sdk/io/snowflake/credentials/package-info.java |    17 +-
 .../apache/beam/sdk/io/snowflake/package-info.java |    17 +-
 .../test/FakeSnowflakeBasicDataSource.java         |   298 +
 .../io/snowflake/test/FakeSnowflakeDatabase.java   |    81 +
 .../snowflake/test/FakeSnowflakeServiceImpl.java   |    64 +
 .../beam/sdk/io/snowflake/test/TestUtils.java      |    31 +-
 .../beam/sdk/io/snowflake/test/package-info.java   |    17 +-
 .../test/unit/BatchTestPipelineOptions.java        |    21 +-
 .../test/unit/DataSourceConfigurationTest.java     |   159 +
 .../KeyPairSnowflakeCredentialsTest.java           |    29 +-
 .../OAuthTokenSnowflakeCredentialsTest.java        |    46 +
 .../SnowflakeCredentialsFactoryTest.java           |    77 +
 .../UsernamePasswordSnowflakeCredentialsTest.java  |    50 +
 .../test/unit/read/SnowflakeIOReadTest.java        |   278 +
 .../snowflake/src/test/resources/test_rsa_key.p8   |    29 +
 .../apache_beam/examples/snippets/snippets.py      |    28 +
 .../apache_beam/io/gcp/pubsub_io_perf_test.py      |   220 +
 .../apache_beam/io/gcp/tests/pubsub_matcher.py     |    25 +-
 sdks/python/apache_beam/pipeline_test.py           |    18 +-
 .../runners/dataflow/dataflow_runner.py            |    28 +-
 .../runners/dataflow/dataflow_runner_test.py       |   116 +-
 .../runners/dataflow/internal/apiclient.py         |    70 +-
 .../runners/dataflow/internal/apiclient_test.py    |    62 +
 .../apache_beam/runners/dataflow/internal/names.py |     4 +-
 .../apache_beam/runners/direct/direct_runner.py    |   130 +-
 .../runners/direct/transform_evaluator.py          |     5 +-
 .../runners/interactive/pipeline_analyzer_test.py  |     2 +-
 .../interactive/pipeline_instrument_test.py        |    12 +-
 .../runners/portability/abstract_job_service.py    |    85 +-
 .../portability/flink_uber_jar_job_server.py       |     7 -
 .../portability/fn_api_runner/fn_runner_test.py    |     4 +-
 .../runners/portability/local_job_service_test.py  |    15 -
 .../portability/spark_uber_jar_job_server.py       |     6 -
 .../portability/spark_uber_jar_job_server_test.py  |    23 +-
 .../testing/benchmarks/chicago_taxi/preprocess.py  |     1 +
 .../benchmarks/chicago_taxi/process_tfma.py        |     1 +
 .../chicago_taxi/tfdv_analyze_and_validate.py      |     1 +
 .../apache_beam/testing/load_tests/build.gradle    |     7 +
 .../apache_beam/testing/load_tests/load_test.py    |    11 +-
 .../testing/load_tests/load_test_metrics_utils.py  |     4 +-
 sdks/python/apache_beam/transforms/core.py         |    96 +-
 .../apache_beam/transforms/ptransform_test.py      |    11 +-
 sdks/python/apache_beam/transforms/sql.py          |     8 +-
 sdks/python/apache_beam/transforms/sql_test.py     |    24 +-
 sdks/python/apache_beam/typehints/schemas.py       |    11 +-
 sdks/python/apache_beam/typehints/schemas_test.py  |    11 +
 sdks/python/apache_beam/version.py                 |     2 +-
 sdks/python/setup.py                               |     4 +-
 settings.gradle                                    |     1 +
 website/build.gradle                               |     2 +-
 .../site/content/en/contribute/release-guide.md    |   218 +-
 .../content/en/documentation/programming-guide.md  |    88 +-
 .../documentation/resources/videos-and-podcasts.md |    20 +-
 .../en/documentation/sdks/java/testing/nexmark.md  |     4 +-
 .../shortcodes/flink_java_pipeline_options.html    |    20 +-
 .../shortcodes/flink_python_pipeline_options.html  |    38 +-
 website/www/site/static/js/language-switch.js      |     2 +-
 447 files changed, 373250 insertions(+), 3530 deletions(-)
 create mode 100644 .test-infra/jenkins/job_PerformanceTests_PubsubIO_Python.groovy
 create mode 100644 .test-infra/jenkins/job_PreCommit_SQL_Java11.groovy
 create mode 100644 learning/katas/go/Core Transforms/GroupByKey/GroupByKey/cmd/main.go
 create mode 100644 learning/katas/go/Core Transforms/GroupByKey/GroupByKey/go.mod
 create mode 100644 learning/katas/go/Core Transforms/GroupByKey/GroupByKey/go.sum
 create mode 100644 learning/katas/go/Core Transforms/GroupByKey/GroupByKey/pkg/task/task.go
 copy learning/katas/{python/Windowing/Adding Timestamp/ParDo => go/Core Transforms/GroupByKey/GroupByKey}/task-info.yaml (82%)
 create mode 100644 learning/katas/go/Core Transforms/GroupByKey/GroupByKey/task-remote-info.yaml
 create mode 100644 learning/katas/go/Core Transforms/GroupByKey/GroupByKey/task.md
 create mode 100644 learning/katas/go/Core Transforms/GroupByKey/GroupByKey/test/task_test.go
 copy learning/katas/{python => go}/Core Transforms/GroupByKey/lesson-info.yaml (100%)
 create mode 100644 learning/katas/go/Core Transforms/GroupByKey/lesson-remote-info.yaml
 rename learning/katas/java/Common Transforms/Aggregation/Count/{task.html => task.md} (89%)
 rename learning/katas/java/Common Transforms/Aggregation/Max/{task.html => task.md} (88%)
 rename learning/katas/java/Common Transforms/Aggregation/Mean/{task.html => task.md} (88%)
 rename learning/katas/java/Common Transforms/Aggregation/Min/{task.html => task.md} (88%)
 rename learning/katas/java/Common Transforms/Aggregation/Sum/{task.html => task.md} (89%)
 rename learning/katas/java/Common Transforms/Filter/Filter/{task.html => task.md} (73%)
 rename learning/katas/java/Common Transforms/Filter/ParDo/{task.html => task.md} (81%)
 rename learning/katas/java/Common Transforms/WithKeys/WithKeys/{task.html => task.md} (86%)
 rename learning/katas/java/Core Transforms/Branching/Branching/{task.html => task.md} (76%)
 rename learning/katas/java/Core Transforms/CoGroupByKey/CoGroupByKey/{task.html => task.md} (75%)
 rename learning/katas/java/Core Transforms/Combine/BinaryCombineFn Lambda/{task.html => task.md} (75%)
 rename learning/katas/java/Core Transforms/Combine/BinaryCombineFn/{task.html => task.md} (55%)
 rename learning/katas/java/Core Transforms/Combine/Combine PerKey/{task.html => task.md} (67%)
 rename learning/katas/java/Core Transforms/Combine/CombineFn/{task.html => task.md} (51%)
 rename learning/katas/java/Core Transforms/Combine/Simple Function/{task.html => task.md} (57%)
 delete mode 100644 learning/katas/java/Core Transforms/Composite Transform/Composite Transform/task.html
 create mode 100644 learning/katas/java/Core Transforms/Composite Transform/Composite Transform/task.md
 delete mode 100644 learning/katas/java/Core Transforms/DoFn Additional Parameters/DoFn Additional Parameters/task.html
 create mode 100644 learning/katas/java/Core Transforms/DoFn Additional Parameters/DoFn Additional Parameters/task.md
 rename learning/katas/java/Core Transforms/Flatten/Flatten/{task.html => task.md} (73%)
 rename learning/katas/java/Core Transforms/GroupByKey/GroupByKey/{task.html => task.md} (64%)
 rename learning/katas/java/Core Transforms/Map/FlatMapElements/{task.html => task.md} (69%)
 rename learning/katas/java/Core Transforms/Map/MapElements/{task.html => task.md} (71%)
 rename learning/katas/java/Core Transforms/Map/ParDo OneToMany/{task.html => task.md} (90%)
 rename learning/katas/java/Core Transforms/Map/ParDo/{task.html => task.md} (71%)
 rename learning/katas/java/Core Transforms/Partition/Partition/{task.html => task.md} (59%)
 rename learning/katas/java/Core Transforms/Side Input/Side Input/{task.html => task.md} (65%)
 rename learning/katas/java/Core Transforms/Side Output/Side Output/{task.html => task.md} (77%)
 rename learning/katas/java/Examples/Word Count/Word Count/{task.html => task.md} (78%)
 rename learning/katas/{python/IO/Built-in IOs/Built-in IOs/task.html => java/IO/Built-in IOs/Built-in IOs/task.md} (64%)
 rename learning/katas/java/IO/TextIO/TextIO Read/{task.html => task.md} (62%)
 rename learning/katas/java/Introduction/Hello Beam/Hello Beam/{task.html => task.md} (51%)
 rename learning/katas/java/Triggers/Early Triggers/Early Triggers/{task.html => task.md} (83%)
 rename learning/katas/java/Triggers/Event Time Triggers/Event Time Triggers/{task.html => task.md} (59%)
 rename learning/katas/java/Triggers/Window Accumulation Mode/Window Accumulation Mode/{task.html => task.md} (80%)
 rename learning/katas/java/Windowing/Adding Timestamp/ParDo/{task.html => task.md} (76%)
 rename learning/katas/java/Windowing/Adding Timestamp/WithTimestamps/{task.html => task.md} (71%)
 delete mode 100644 learning/katas/java/Windowing/Fixed Time Window/Fixed Time Window/task.html
 create mode 100644 learning/katas/java/Windowing/Fixed Time Window/Fixed Time Window/task.md
 rename learning/katas/python/Common Transforms/Aggregation/Count/{task.html => task.md} (89%)
 rename learning/katas/python/Common Transforms/Aggregation/Largest/{task.html => task.md} (89%)
 rename learning/katas/python/Common Transforms/Aggregation/Mean/{task.html => task.md} (88%)
 rename learning/katas/python/Common Transforms/Aggregation/Smallest/{task.html => task.md} (88%)
 rename learning/katas/python/Common Transforms/Aggregation/Sum/{task.html => task.md} (90%)
 rename learning/katas/python/Common Transforms/Filter/Filter/{task.html => task.md} (72%)
 rename learning/katas/python/Common Transforms/Filter/ParDo/{task.html => task.md} (79%)
 rename learning/katas/python/Common Transforms/WithKeys/WithKeys/{task.html => task.md} (85%)
 rename learning/katas/python/Core Transforms/Branching/Branching/{task.html => task.md} (76%)
 rename learning/katas/python/Core Transforms/CoGroupByKey/CoGroupByKey/{task.html => task.md} (69%)
 rename learning/katas/python/Core Transforms/Combine/Combine PerKey/{task.html => task.md} (67%)
 rename learning/katas/python/Core Transforms/Combine/CombineFn/{task.html => task.md} (51%)
 rename learning/katas/python/Core Transforms/Combine/Simple Function/{task.html => task.md} (54%)
 rename learning/katas/python/Core Transforms/Composite Transform/Composite Transform/{task.html => task.md} (51%)
 rename learning/katas/python/Core Transforms/Flatten/Flatten/{task.html => task.md} (72%)
 rename learning/katas/python/Core Transforms/GroupByKey/GroupByKey/{task.html => task.md} (61%)
 rename learning/katas/python/Core Transforms/Map/FlatMap/{task.html => task.md} (70%)
 rename learning/katas/python/Core Transforms/Map/Map/{task.html => task.md} (76%)
 rename learning/katas/python/Core Transforms/Map/ParDo OneToMany/{task.html => task.md} (90%)
 rename learning/katas/python/Core Transforms/Map/ParDo/{task.html => task.md} (74%)
 rename learning/katas/python/Core Transforms/Partition/Partition/{task.html => task.md} (58%)
 rename learning/katas/python/Core Transforms/Side Input/Side Input/{task.html => task.md} (64%)
 rename learning/katas/python/Core Transforms/Side Output/Side Output/{task.html => task.md} (77%)
 rename learning/katas/python/Examples/Word Count/Word Count/{task.html => task.md} (84%)
 rename learning/katas/{java/IO/Built-in IOs/Built-in IOs/task.html => python/IO/Built-in IOs/Built-in IOs/task.md} (63%)
 rename learning/katas/python/IO/TextIO/ReadFromText/{task.html => task.md} (60%)
 rename learning/katas/python/Introduction/Hello Beam/Hello Beam/{task.html => task.md} (51%)
 rename learning/katas/python/Windowing/Adding Timestamp/ParDo/{task.html => task.md} (76%)
 delete mode 100644 learning/katas/python/Windowing/Fixed Time Window/Fixed Time Window/task.html
 create mode 100644 learning/katas/python/Windowing/Fixed Time Window/Fixed Time Window/task.md
 create mode 100644 release/src/main/scripts/mass_comment.py
 create mode 100644 sdks/go/pkg/beam/io/rtrackers/offsetrange/offsetrange_test.go
 create mode 100644 sdks/java/core/src/main/java/org/apache/beam/sdk/io/ClassLoaderFileSystem.java
 create mode 100644 sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/logicaltypes/Date.java
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/logicaltypes/SqlTypes.java (55%)
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/core/src/main/java/org/apache/beam/sdk/testing/UsesOnWindowExpiration.java (55%)
 create mode 100644 sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/splittabledofn/GrowableOffsetRangeTracker.java
 create mode 100644 sdks/java/core/src/test/java/org/apache/beam/sdk/io/ClassLoaderFileSystemTest.java
 create mode 100644 sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/splittabledofn/GrowableOffsetRangeTrackerTest.java
 create mode 100644 sdks/java/extensions/sql/expansion-service/src/main/java/org/apache/beam/sdk/extensions/sql/expansion/ExternalSqlTransformRegistrar.java
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/extensions/sql/expansion-service/src/main/java/org/apache/beam/sdk/extensions/sql/expansion/package-info.java (55%)
 create mode 100644 sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/rel/BeamTableFunctionScanRel.java
 create mode 100644 sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/rule/BeamTableFunctionScanRule.java
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/utils/TVFStreamingUtils.java (55%)
 create mode 100644 sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/SqlWindowTableFunction.java
 create mode 100644 sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/translation/TVFScanConverter.java
 create mode 100644 sdks/java/harness/src/main/java/org/apache/beam/fn/harness/state/StateBackedIterable.java
 create mode 100644 sdks/java/harness/src/test/java/org/apache/beam/fn/harness/state/StateBackedIterableTest.java
 create mode 100644 sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIO.java
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIOReadIT.java
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIOTest.java
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIOTestOptions.java
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIOTestUtil.java
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIOWriteIT.java
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/DSTU2/Amelia635_Krajcik437_ed7a9f5c-37ea-4767-95ba-a6783e9500b3.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/DSTU2/Elma843_Hoppe518_1fd2683f-2a56-47c7-b674-98f2cc8319e7.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/DSTU2/Ernesto186_Dietrich576_4ecb4cbb-6df7-41e0-8e89-6e7a142721a5.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/DSTU2/Kortney212_Bosco882_8ed31d3e-7352-4055-89c4-f017db3f594e.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/DSTU2/Terry864_Hintz995_f04ef974-6d6f-4e1c-804f-cd4d62aabb4f.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/DSTU2/hospitalInformation1586309771387.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/DSTU2/practitionerInformation1586309771387.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/R4/Emerson869_Prohaska837_d89e3bd8-4d0f-4735-8d16-d0f646a9dcd6.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/R4/Lorette239_Marvin195_af0e4a42-a1ef-4c2f-ad31-9338a8b8fb7b.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/R4/Norberto865_Cole117_a5e08ef9-fd71-4273-a53a-d5f5df7926f4.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/R4/Robbyn526_DuBuque211_fcf2f472-77ac-47d7-9c9a-a6702bd2bb80.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/R4/Seymour882_Shanahan202_55a5307d-5f23-49c1-9100-7d5c513abca3.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/R4/hospitalInformation1586368892823.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/R4/practitionerInformation1586368892823.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/STU3/Alexander630_Romaguera67_02a63c07-9fcc-42ba-aec0-9d5399ac4796.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/STU3/Basil991_Pfannerstill264_88fb71f7-d445-4e5b-8af2-962e8f8e5fb6.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/STU3/Cris921_Lang846_df27a976-5c5e-4b84-ad00-fe32972dce9c.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/STU3/Damon455_Will178_136f997d-0a94-4573-97da-a53b5060a612.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/STU3/Dannette613_Maggio310_74779846-85a4-4b26-9da4-414a5fec1aed.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/STU3/Shavonne800_Hilll811_3024090f-fe14-40a9-8fae-79952d3c95ce.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/STU3/hospitalInformation1586298239556.json
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/resources/STU3/practitionerInformation1586298239556.json
 create mode 100644 sdks/java/io/snowflake/build.gradle
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/CloudProvider.java (55%)
 create mode 100644 sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/SnowflakeIO.java
 create mode 100644 sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/SnowflakePipelineOptions.java
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/SnowflakeService.java (55%)
 create mode 100644 sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/SnowflakeServiceImpl.java
 create mode 100644 sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/credentials/KeyPairSnowflakeCredentials.java
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/credentials/OAuthTokenSnowflakeCredentials.java (55%)
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/credentials/SnowflakeCredentials.java (55%)
 create mode 100644 sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/credentials/SnowflakeCredentialsFactory.java
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/credentials/UsernamePasswordSnowflakeCredentials.java (55%)
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/credentials/package-info.java (55%)
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/package-info.java (55%)
 create mode 100644 sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/FakeSnowflakeBasicDataSource.java
 create mode 100644 sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/FakeSnowflakeDatabase.java
 create mode 100644 sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/FakeSnowflakeServiceImpl.java
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/TestUtils.java (54%)
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/package-info.java (55%)
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/unit/BatchTestPipelineOptions.java (55%)
 create mode 100644 sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/unit/DataSourceConfigurationTest.java
 copy runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/util/GCSUploadMain.java => sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/unit/credentials/KeyPairSnowflakeCredentialsTest.java (52%)
 create mode 100644 sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/unit/credentials/OAuthTokenSnowflakeCredentialsTest.java
 create mode 100644 sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/unit/credentials/SnowflakeCredentialsFactoryTest.java
 create mode 100644 sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/unit/credentials/UsernamePasswordSnowflakeCredentialsTest.java
 create mode 100644 sdks/java/io/snowflake/src/test/java/org/apache/beam/sdk/io/snowflake/test/unit/read/SnowflakeIOReadTest.java
 create mode 100644 sdks/java/io/snowflake/src/test/resources/test_rsa_key.p8
 create mode 100644 sdks/python/apache_beam/io/gcp/pubsub_io_perf_test.py