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