You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by gi...@apache.org on 2022/10/18 17:59:07 UTC

[beam] branch dependabot/pip/sdks/python/mypy-protobuf-2.10 updated (d57c356403b -> 99e097c2866)

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

github-bot pushed a change to branch dependabot/pip/sdks/python/mypy-protobuf-2.10
in repository https://gitbox.apache.org/repos/asf/beam.git


 discard d57c356403b Bump mypy-protobuf from 1.18 to 2.10 in /sdks/python
     add 065f3c3ed86 Fix outdated code in python sdk install (#23231)
     add 94405e6c491 Bump up dataflow python container version to beam-master-20220914 (#23238)
     add 30a48f05cf2 Improve the performance of TextSource by reducing how many byte[]s are copied (fixes #23193) (#23196)
     add b03dd608765 Issue#21430 Avoid pruning DataframeTransforms (#23069)
     add f95ce831336 Bump cloud.google.com/go/bigquery from 1.40.0 to 1.41.0 in /sdks (#23247)
     add 8b2676782a6 [Website] Correct spelling of structural (#23225)
     add a8ca3057c0b TensorRT Initial commit (#22131)
     add 9287b92c52a Fix Kafka performance test sourceOption to match expected hash (#23274)
     add 8754cc09048 updated the pydoc for running a custom model on Beam (#23218)
     add f477b85f230 Add drop_example flag to the RunInference and Model Handler (#23266)
     add 5520fe064fc Enable verbose output for RAT Precommit (#23279)
     add 5d6bb493357 Bump google.golang.org/api from 0.95.0 to 0.96.0 in /sdks (#23246)
     add 118454dded3 [Go SDK] Add timer coder support (#23222)
     add 485b94356fd Fix wrong comment (#23272)
     add 2a34d0cfa23 Revert "Trying out property-based tests for Beam python coders (#22233)"
     add cb5230ac147 Merge pull request #23265 from pabloem/rv-pbt
     add 83e8c328339 [Playground] [Backend] Cache component for playground examples (#22869)
     add 98589f259d4 [BEAM-13416] Introduce Schema provider for AWS models and deprecate low level coders (#16947)
     add d578e3df7c9 [BEAM-14378] [CdapIO] SparkReceiverIO Read via SDF (#17828)
     add 0510d88c4d0 [Java SDK core] emit watermark from PeriodicSequence (#23301) (#23302)
     add c51e1c278bc Extend protocol in windmill.proto used by google-cloud-dataflow-java runner. (#23256)
     add 3fe0867cd67 Allow longer Class-Path entries (#23269)
     add cf790b50cc5 Do not use .get() on ValueProvider during pipeline creation
     add 6b7d8b19299 Merge pull request #23294: SpannerIO - Do not use .get() on ValueProvider during pipeline creation
     add 762edd7f3a6 Improved pipeline translation in SparkStructuredStreamingRunner (#22446)
     add a6cda1370b3 use avro DataFileReader to read avro container files
     add 483a0c95734 Merge pull request #23214: Use avro DataFileReader to read avro container files
     add 5af5a1fb201 Change google_cloud_bigdataoss_version to 2.2.8. (#23300)
     add 0cefd123ca9 Fix Nexmark default log level
     add 19f5e62c61d Merge pull request #23337: Fix Nexmark default log level
     add 90739533a8c Bump cloud.google.com/go/storage from 1.26.0 to 1.27.0 in /sdks (#23336)
     add 3c08a78b748 lint fixes to go (#23351)
     add 2f1f1a76419 Bump cloud.google.com/go/bigquery from 1.41.0 to 1.42.0 in /sdks (#23329)
     add c4fe823b4f9 Extract playground components (#23253)
     add a0fe7879aad Bump Java FnApi Container version to beam-master-20220923 (#23352)
     add 3a4d57eb897 Bump org.nosphere.apache.rat from 0.7.0 to 0.8.0 (#23330)
     add 9b77cf79625 GA Migration PreCommit and PostCommit Tables in CI.md (#23372)
     add a47daf893c7 Upgraded Flink on Dataproc support from Interacitve Beam
     add f86f9e3dfd2 Upgraded Flink on Dataproc support from Interacitve Beam
     add 6851e6bd2ce Stack Trace Decoration for Beam Samza Runner (#23221)
     add 3c2459c0dfa [#22478]: Add read_time support to Google Firestore connector (#22966)
     add 44992427a18 Changes CoGroupByKey typehint from List to Iterable (#22984)
     add 7dd1c6bc4a4 Fix TextSource incorrect handling in channels that return short reads. (#23376)
     add c36077a96a4 Add a tensorflow example to the run_inference_basic notebook (#23173)
     add 5550be51964 RunInference Benchmarks UI (#23371)
     add 8dea86bc9d5 set upper bound on google-cloud-profiler (#23354)
     add ca4dcbb52eb make identifier of Date&DateTime to be a public static field
     add 8b05f9e13f9 make identifier of Time to be a public static field
     add a99eb3df06b Merge pull request #23370: Make identifier of Date/Time/DateTime to be a public static field
     add 5cc47cdf56d Add ISSUE#23071 to CHANGES.md (#23297)
     add 91d79d973a3 Pin objsize version to avoid regression in 0.6.0 (#23396)
     add a393efa61d4 [Tour Of Beam] API adjustments (#23349)
     add 406da4ae224 Adds support in Samza Runner to run DoFn.processElement in parallel inside Samza tasks (#23313)
     add e53466f8c4f Regenerate Go Protos (#23408)
     add 1427b7dd93f Support google-cloud-spanner v3 and fixes broken unit tests (#23365)
     add b7fe0f965c2 Add relevant docs to Cloud Profiler exceptions. (#23404)
     add b59df6c7614 Update state cache to not fail when measuring object sizes. (#23391)
     add 17453e71a81 Fix Small pytorch notebook bug fix (#23407)
     add 1daaafcd008 PubsubIO - Improve limit validations to consider attributes (#23023)
     add 7b8aa28e34a Example of Online Clustering  (#23289)
     add 5d6e9cd0f5f Add documentation link to the interactive environment
     add 978c2f9c0f5 Merge pull request #23409 from rohdesamuel/interactive_env
     add 8699d32aa38 Bump google.golang.org/api from 0.97.0 to 0.98.0 in /sdks (#23394)
     add 028c564b8ae Increase Go Dataflow Postcommit timeout to 5h (#23423)
     add 0297c85b863 [Playground] [Backend] Updating endpoints for playground examples (#22870)
     add 577953c5ac9 Send JavaScript messages to Playground iframes when switching the language in docs (#22361) (#22960)
     add a404cbe8a99 [Playground] [Backend] Adding SDK to the example response (#22871)
     add 5669ef43822 [Playground] [Backend] Removing the code related to the Cloud Storage (#22872)
     add fc5467675c0 Python cross language docs.
     add cc623db075c Merge pull request #23047 Expand Python cross language docs.
     add 31dab8179d8 [BEAM-10785] Change RowAsDictJsonCoder to not ensure ASCII while encoding (#22312)
     add e6a7c505f60 Update Python katas to latest version of EduTools and Beam 2.41 (#23180)
     add f2d426d2d2c RunInference Benchmarks UI (#23426)
     add cefd47ce61d Relax `pip` check in setup.py to allow installation via other package managers (e.g. `poetry`) (#23326)
     add de661fcb1a0 replaced tabs with spaces in readme file (#23446)
     add 0f2f0ad7629 [Playground] [Backend] Adding the tags field to the example response (#22882)
     add fa33c702977 [Playground] [Backend] Edited the function for getting executable name (#22957)
     add 0f420937b65 Batch encoding and decoding of schema data.
     add 1b8963c16b6 Add microbenchmark for batch row encoding.
     add 39272917d32 Add batch testing for standard row coders.
     add aa362e9cc4a Merge pull request #23194 Batch encoding and decoding of schema data.
     add 12785495923 Fix type inference for set/delete attr. (#23242)
     add 3c7a4e0f44d Support VR test including TestStream for Spark runner in streaming mode (#22620)
     add 30dbe098721 Add cron job to trigger Java JMH micro-benchmarks weekly  (#23388)
     add 3c7a3d40ce1 JdbcIO fetchSize can be set to Integer.MIN_VALUE (#23444)
     add 9d118bde5fe [Tour Of Beam] return taskSnippetId/solutionSnippedId (#23419)
     add 8ac77a99ba5 Beam 21465 add requires stable input (#23230)
     add d28a93e07f1 [Website] Add new Java quickstart (#22747)
     add dc58a460f2f Fix JdbcIOIT, which seems to have never worked (#21796)
     add 9d278bc5b2b Require time-bound flag for non-UW streaming Python jobs for new SDKs.
     add 9e47f470ed4 Merge pull request #23468 Require time-bound flag for non-UW streaming Python jobs for new SDKs.
     add 2955954402f Support DECIMAL logical type in python SDK (#23014)
     add 9811eeec4ea [Website] fix navbar footer overlap #22698
     add 9c2fb3e6c8f Merge pull request #23369: [Website] fix navbar footer overlap
     add 53377832323 AI/ML pipelines master page documentation (#23443)
     add b5ed5488cfe Fix go fmt error (#23474)
     add 72237d61baf Revert "Add drop_example flag to the RunInference and Model Handler (#23266)" (#23392)
     add 12bfcac50af Prep sidepanel 3.0.0 release
     add e679b49e755 Prep sidepanel 3.0.0 release
     add 8f25dd4d8e7 Documented supported PyTorch versions (#22974)
     add fd45479ad7f [Go SDK] Add fake impulse for inputs in Xlang Transform (#23383)
     add d9ae1183b50 Write permissions for issue closer/assigner
     add 610ccba65b5 GA Migration Adding Removal of /.m2/settings.xml (#23481)
     add b9aa159a265 Bump google-cloud-spanner version for py containers (#23480)
     add d5364016f64 Fix validation of measurement name in InfluxDBPublisher (addresses #22238)
     add 412fbdc36e4 Merge pull request #23496: Fix validation of measurement name in InfluxDBPublisher
     add d38f356d56b Ensure Java JMH benchmark tasks run sequentially to prevent failure when acquiring lock (addresses #22238)
     add a2cc6edd30a Merge pull request #23495: Ensure Java JMH benchmark tasks run sequentially
     add 48f962e2cc4 group_id (#23445)
     add a53d9902164 Give issue tagger permission to write issues (#23485)
     add 0bbfb4abe25 Update UID (#23486)
     add b7b71361590 Improve error message in GcsUtil (#23482)
     add c68e368a32d Add more typescript examples to the programming guide. (#23058)
     add 7980cb9a35c Merge pull request #23505: opt in for schema update. addresses #23504
     add 0448f2ea3dc fix: only report backlog bytes on data records (#23493)
     add e568e52b62b Fix broken link in online clustering documentation (#23516)
     add 342c8d476e2 Grant actions using GITHUB_TOKEN the appropriate permission set (#23521)
     add c8075de3799 Fix failing Py37 BQ file loads test (#23334)
     add b175becf358 [Website] update links to https (#23523)
     add 8bdf3579150 Support custom avro DatumReader when reading from BigQuery (#22718)
     add 6c6d6fae35c Rename 'clean' Gradle task that required Flutter and has been breaking nightly build (#23515)
     add 8b718b25ae9 Model handler unit test (#23506)
     add 9b2f87d0201 Content/multi model pipelines (#23498)
     add 41ddc4a4bb2 [Tour of Beam][Frontend] Content Tree and SDK models (#23316) (#23417)
     add 4bde9715c96 Fix bug where `astype(CategoricalDtype)` is rejected (#23513)
     add 98fdae031d8 fix typo - s/befrehand/beforehand
     add ef85e6b948c Merge pull request #23519: fix typo - s/befrehand/beforehand
     add fc6f400f9ab Bump actions/stale from 5 to 6 (#23331)
     add c39ad07b91d Correctly detect retryable TransientKinesisExceptions (fixes #23517)
     add 903407bb33b Merge pull request #23518: Correctly detect retryable TransientKinesisExceptions
     add 5173e8434ad Fixing right nav on Get Started page (#23543)
     add c707e230cbc Bump google.golang.org/grpc from 1.49.0 to 1.50.0 in /sdks (#23533)
     add c1fb3ab1ffd Fix small error message typo
     add 8216cba5f75 Merge pull request #23544: Fix small error message typo
     add b94cff209cc Merge pull request #23547: update bom to the latest one.
     add 2f75d8942ce [Website] add version.html to shortcodes, update jet.md 22985
     add 7e9876435d1 Merge pull request #23040: [Website] Update Hazelcast Jet runner
     add 49bf0792666 [Website] update styles of iframe with video #23499
     add 30add036892 Merge pull request #23500: [Website] fix right nav-menu and videos overlap
     add b035cd56802 [Website] update python-dependencies.md link #23478
     add 9192cb9b685 Merge pull request #23479: [Website] update python-dependencies.md link
     add 8de8179089f Support named databases in Firestore connector. Fix and enable Firestore IT test (#23322)
     add 0e61b026ea7 [fixes #23000] Update the Python SDK harness state cache to be a loading cache (#23046)
     add 51bcda973cf Fix permission for Build python wheel branch_repo_nightly step (#23563)
     add d28fde68aff [Playground] complexity indicator (#23477)
     add c39438164a8 Reolling forward property-based tests for coders (#23425)
     add baf2a140f37 Updated README for jupyterlab-sidepanel
     add 08b8f87634f Updated README for jupyterlab-sidepanel
     add 7b5713a625b Downgrade Scala version in Spark job-server to prevent Scala serialization bug (fixes #21092)
     add d2b0a26503c Merge pull request #23522: Downgrade Scala version in Spark job-server to prevent Scala serialization bug
     add ea920c52487 fix distribution example in golang guide (#23567)
     add 03de550a095 BEAM-13592 Add getOrderingKey in org.apache.beam.sdk.io.gcp.pubsub.PubsubMessage
     add d6f5ae47180 Add CHANGES entry
     add 267cd10980f Rename transform name according to review comment
     add bc97c6b9086 Update  to pass ordering key
     add 7be63b94f4d Add CHANGES entry
     add bd1050a7704 Adds ordering key to OutgoingMessage builder, adds new coders to pubsub registrar
     add e2a7c445ef7 Fixes pubsub bounded writer allowing for orderingKey
     add bc60b746a7c Alters order of pubsub message support in registrar
     add 46497d1a2f1 Removed publishTime and messageId in grpc pubsub client publish
     add c3ea5633d71 Attempts to allow different pubsub root url for PubsubIO.Write
     add 92e4d39d4f8 Fixes pubsub tests root url
     add 0d622d9605e Puts PubsubMessageCoder last in registrar
     add 8d502294e91 Uses MoreObjects over Objects
     add fd7deddcbaf Renames PubsubMessageCoder to PubsubMessageWithAttributesAndMessageIdAndOrderingKeyCoder
     add 9ec1429b08f Merge remote-tracking branch 'upstream/master' into egalpin/gemelen-beam-13592-fork
     add 1d573e2f880 Merge pull request #22216 from gemelen/beam-13592-pubsub-java-orderingkey
     add c22a335adf6 Add database role to SpannerConfig for role-based access control. (#23377)
     add 4e88cf9d856 Add a multi-process shared utility.
     add 0f7eedf5ff5 Add fastener dependency.
     add 93d8715cd76 Refactor to have an explicit acquire/release API.
     add 4692ccf2fd8 Drop a TODO about deferred construction parameterization.
     add 715e42dad7a Fix unused import/var.
     add 36d52b7baa3 Merge pull request #23473 Add a multi-process shared utility.
     add da9d686c0f4 Replace website references to deprecated aws / kinesis modules with more recent aws2 module.
     add 5595f403684 Merge pull request #23571: Replace website references to deprecated aws / kinesis modules with more recent aws2 module.
     add 3ffdf8dce61 Remove obsolete and deprecated bigquery native read. (#23557)
     add 98eeac75159 Feature/name all java threads (#23387)
     add 0a1e7443c48 [Go SDK] Don't construct plans in lock section. (#23583)
     add 6adecd43879 Remove obsolete and deprecated bigquery native write. #23557 (#23558)
     add 786ba8b54c0 Increase Python PostCommit timeout. (#23595)
     add e6e4d047e0f [website][adhoc] Fix spellcheck errors and typos
     add 1c1ecb2a36d Merge pull request #23575: [website][adhoc] Fix spellcheck errors and typos
     add 3cb512ee289 Migrate GcsOptions#getExecutorService to an unbounded ScheduledExecutorService (#23545)
     add d22185c4f8d (BQ Java) Explicitly set coder for multi-partition batch load writes  (#23602)
     add 7f540359b73 Fix typo in bootstrap_beam_venv.py (#23574)
     add 98cebe7b125 Bump github.com/spf13/cobra from 1.5.0 to 1.6.0 in /sdks (#23591)
     add 46a7d00cee5 [Playground][Tour Of Beam] Datastore entities split by origin (#23088)
     add 8e52d8721b7 use write schema only for read api (#23594)
     add af6a04ca87d [Go SDK]: SingleFlight bundle descriptor requests (#23589)
     add 0e99c1efd98 Extend a timeout to create a bt cluster. (#23617)
     add d9e77277059 Use new github output format (#23624)
     add cc82c320129 Tour of Beam frontend state management (#23420) (#23572)
     add 68d6cc0efac Added content: The direct runner is not suited to production pipelines
     add 97d69beb9aa Merge pull request #23512: Added content: The direct runner is not suited to production pipelines
     add ddaf6c739f0 Merge pull request #23524: Adding beam blog info to the Community page
     add b100560ac3b Add agent to open modules
     add c047c998b22 check for empty
     add 744bd49f1f2 limit to jamm and update comments
     add 0c627ac0b8f reuse options, pr comments
     add f47d9343077 Update sdks/java/container/agent/src/main/java/org/apache/beam/agent/OpenModuleAgent.java
     add 117aa34bcef Merge pull request #23165 from kileys/jamm
     add d30ecdaf51a Update publish_release_notes to generate PR list (#23630)
     add b681a63674b Remove artificial timeout in FirestoreV1IT, Dataflow runner is very slow
     add 2d84233009f Merge pull request #23578: Remove artificial timeout in FirestoreV1IT, Dataflow runner is very slow
     add 775d371762d Bump Legacy dataflow container image tag (#23625)
     add 5440bae895f Align translation logging for Spark dataset runner with rdd runner for better comparison
     add 7e7cbd6cfd3 Merge pull request #23623: Align translation logging for Spark dataset runner with rdd runner
     add 5ecfeabcd7d Fix SparkSessionFactory to not fail when using Spark master local[*]
     add c96e8cd5f31 Merge pull request #23622: Fix SparkSessionFactory to not fail when using Spark master local[*]
     add a079fd1eee7 Minor improvements to the tpcds gradle build for Spark
     add b784c988643 Merge pull request #23621: Minor improvements to the tpcds gradle build for Spark
     add 92587e8d301 [Spark dataset runner] Add direct translation of Reshuffle and Reshuffle.ViaRandomKey transforms.
     add 45cc0854be5 Merge pull request #23638: [Spark dataset runner] Add direct translation of Reshuffle and Reshuffle.ViaRandomKey transforms.
     add fdb12230556 Make GCP OAuth scopes configurable via pipeline options. (#23644)
     add 8e2431c0e55 Update BQIO to a single scheduled executor service reduce threads (#23234)
     add e1596578e0f [GitHub Actions] - Verify Release Build Workflow  (#23390)
     add 948d9e2d558 Blog post for Hop web in Google Cloud (#23652)
     add 1920b881975 [Playground] Examples CI (#23476)
     add 143dc6fd6f0 [Tour Of Beam] README update (#23318)
     add c2aa2286642 [Jenkins,Spark] Stop running Nexmark suite for deprecated Spark 2 runner and ensure consistent version of Spark is used for Nexmark tests (fixes #23634)
     add 690f3517def Merge pull request #23639: [Jenkins,Spark] Stop running Nexmark suite for deprecated Spark 2 runners
     add c5a2f5fbdfa Bump google.golang.org/api from 0.98.0 to 0.99.0 in /sdks (#23655)
     add 0bed47b288b Fix  beam_PerformanceTests_PubsubIOIT_Python_Streaming (#23607)
     add 2f4ea0f37a6 2.42.0 Release Blog Post  (#23406)
     add 3b6cd835903 Docs for state in go (#22965)
     add 02b6a3e04a3 Fix typo in 2.42.0 blog.
     add 693725d6017 Adjust 2.42.0 publishing time.
     add 10e15a96383 Adds a Java RunInference example (#23619)
     add 34003c6cb7f Fixes #23627: Speed up website checks (#23673)
     add a6e25ae421c Suppress a FloatingPointLiteralPrecision error (#23667)
     add c66e5f2c982 Improved test coverage and fix the implementation of Inject and CoGBK (#23307)
     add 061337b2f43 Fix python log_level_overrides cannot be used on flink and other portable runners (#23668)
     add 00e55256922 Better error for disabling runner v2 with cross language pipelines. (#23669)
     add 2b4bb6b683f Update scopes to match the existing set and update test to clear credentials during failure (#23677)
     add df80a0599c4 [TPC-DS] Use "nonpartitioned" input for Jenkins jobs
     add fe41855c322 Merge pull request #23665: [TPC-DS] Use "nonpartitioned" input for Jenkins jobs
     add 5d735aef207 [GitHub Actions] - Run RC Validations Workflow  (#23531)
     add 5cd7dd74c84 Add workflow to update milestone on issue close (#23629)
     add 107a43d27ea add website page about data processing for ML (#23552)
     add 78e1c0a0184 [Go SDK] Dataframe API wrapper  (#23450)
     add fac0d03fd56 [Go SDK]: Adds Automated Python Expansion Service (#23582)
     add 116327c52a7 Include CombineFn's in __all__ (#23685)
     add bd8110c765d Bump google.golang.org/grpc from 1.50.0 to 1.50.1 in /sdks (#23654)
     add 2e2bb66f82a [Playground][Frontend] Tags filter for Examples Catalog (#22074) (#23532)
     add 2ad17b0dd20 [Go SDK] Extract output coders in expandCrossLanguage (#23641)
     add 61f7bfe38ee Python 3.10 support (#23587)
     add 99e097c2866 Bump mypy-protobuf from 1.18 to 2.10 in /sdks/python

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   (d57c356403b)
            \
             N -- N -- N   refs/heads/dependabot/pip/sdks/python/mypy-protobuf-2.10 (99e097c2866)

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:
 .github/actions/common-rc-validation/action.yaml   |   54 +
 .../gradle-command-self-hosted-action/action.yml   |    4 +
 .../setup-default-test-properties/action.yml       |    2 +-
 .../test-properties.json                           |   14 +-
 .github/actions/setup-gh-cli-linux/action.yml      |   31 +
 .../actions/setup-self-hosted-action/action.yml    |    7 -
 .github/workflows/assign_milestone.yml             |   84 +
 .github/workflows/build_playground_frontend.yml    |    6 +-
 .github/workflows/build_wheels.yml                 |   22 +-
 .github/workflows/cancel.yml                       |    6 +
 .github/workflows/issue-tagger.yml                 |    6 +-
 .github/workflows/playground_deploy_examples.yml   |  121 +-
 .github/workflows/playground_examples_ci.yml       |   49 +
 .github/workflows/playground_examples_reusable.yml |  166 ++
 .github/workflows/pr-bot-new-prs.yml               |    6 +
 .github/workflows/pr-bot-prs-needing-attention.yml |    6 +
 .github/workflows/pr-bot-update-reviewers.yml      |    6 +
 .github/workflows/python_tests.yml                 |    5 +-
 .github/workflows/run_rc_validation.yml            |  559 +++++
 .github/workflows/self-assign.yml                  |    2 +
 .github/workflows/stale.yml                        |    2 +-
 .github/workflows/tour_of_beam_backend.yml         |    1 +
 .../workflows/tour_of_beam_backend_integration.yml |    5 +-
 .github/workflows/tour_of_beam_examples_ci.yml     |   47 +
 .github/workflows/triaged-on-assign.yml            |    2 +
 .github/workflows/verify_release_build.yml         |   82 +
 .gitignore                                         |    9 +-
 .test-infra/jenkins/CommonTestProperties.groovy    |    8 +-
 .test-infra/jenkins/PythonTestProperties.groovy    |    3 +-
 .test-infra/jenkins/README.md                      |    3 +-
 .test-infra/jenkins/job_Java_Jmh.groovy            |   49 +
 .../jenkins/job_PerformanceTests_KafkaIO_IT.groovy |    2 +-
 .../job_PerformanceTests_PubsubIO_Python.groovy    |    2 +-
 .test-infra/jenkins/job_PostCommit_Go.groovy       |    2 +-
 .../job_PostCommit_Java_Nexmark_Spark.groovy       |  106 +-
 .../job_PostCommit_Java_Tpcds_Dataflow.groovy      |    4 +-
 .../jenkins/job_PostCommit_Java_Tpcds_Flink.groovy |    4 +-
 .../jenkins/job_PostCommit_Java_Tpcds_Spark.groovy |    8 +-
 .test-infra/jenkins/job_PostCommit_Python.groovy   |    2 +-
 ...stCommit_Python_ValidatesRunner_Dataflow.groovy |    1 +
 .../jenkins/job_PreCommit_Portable_Python.groovy   |    2 +-
 .../jenkins/job_Release_NightlySnapshot.groovy     |    2 +-
 .../Python_ML_RunInference_Benchmark_Tests.json    | 1073 +++++++++
 CHANGES.md                                         |   20 +-
 CI.md                                              |   40 +
 build.gradle.kts                                   |   19 +-
 .../org/apache/beam/gradle/BeamModulePlugin.groovy |   59 +-
 examples/java/build.gradle                         |    1 +
 .../apache/beam/examples/DebuggingWordCount.java   |    4 +
 .../org/apache/beam/examples/MinimalWordCount.java |    5 +
 .../apache/beam/examples/WindowedWordCount.java    |    4 +
 .../java/org/apache/beam/examples/WordCount.java   |    4 +
 .../org/apache/beam/examples/complete/TfIdf.java   |    5 +
 .../examples/complete/TopWikipediaSessions.java    |    4 +
 .../beam/examples/complete/TrafficMaxLaneFlow.java |    6 +
 .../beam/examples/complete/TrafficRoutes.java      |    6 +
 .../beam/examples/cookbook/DistinctExample.java    |    4 +
 .../multilanguage/SklearnMnistClassification.java  |  161 ++
 .../apache/beam/examples/complete/TfIdfTest.java   |    4 +
 .../beam/examples/complete/game/GameStatsTest.java |    4 +
 .../examples/cookbook/DistinctExampleTest.java     |    4 +
 examples/multi-language/README.md                  |  126 +-
 examples/multi-language/build.gradle               |   10 +-
 .../multilanguage/PythonDataframeWordCount.java    |    1 -
 examples/notebooks/beam-ml/README.md               |   44 +
 .../notebooks/beam-ml/run_custom_inference.ipynb   |    7 +-
 .../notebooks/beam-ml/run_inference_basic.ipynb    | 1367 ------------
 .../beam-ml/run_inference_multi_model.ipynb        |  994 +++++++++
 .../notebooks/beam-ml/run_inference_pytorch.ipynb  | 1007 +++++++++
 .../notebooks/beam-ml/run_inference_sklearn.ipynb  |  533 +++++
 .../beam-ml/run_inference_tensorflow.ipynb         |  572 +++++
 .../commontransforms/aggregation/count/Task.java   |    4 +
 .../commontransforms/aggregation/max/Task.java     |    4 +
 .../commontransforms/aggregation/mean/Task.java    |    4 +
 .../commontransforms/aggregation/min/Task.java     |    4 +
 .../commontransforms/aggregation/sum/Task.java     |    4 +
 .../katas/commontransforms/filter/filter/Task.java |    4 +
 .../katas/commontransforms/filter/pardo/Task.java  |    4 +
 .../katas/commontransforms/withkeys/Task.java      |    4 +
 .../katas/coretransforms/branching/Task.java       |    5 +
 .../katas/coretransforms/cogroupbykey/Task.java    |    4 +
 .../combine/binarycombinefnlambda/Task.java        |    4 +
 .../combine/binarycombinefn/Task.java              |    4 +
 .../coretransforms/combine/combineperkey/Task.java |    5 +
 .../coretransforms/combine/combinefn/Task.java     |    5 +
 .../katas/coretransforms/combine/simple/Task.java  |    5 +
 .../katas/coretransforms/composite/Task.java       |    6 +
 .../katas/coretransforms/flatten/Task.java         |    5 +
 .../katas/coretransforms/groupbykey/Task.java      |    5 +
 .../katas/coretransforms/map/mapelements/Task.java |    5 +
 .../coretransforms/map/pardoonetomany/Task.java    |    4 +
 .../katas/coretransforms/map/pardo/Task.java       |    4 +
 .../katas/coretransforms/partition/Task.java       |    5 +
 .../katas/coretransforms/sideinput/Task.java       |    4 +
 .../katas/coretransforms/sideoutput/Task.java      |    5 +
 .../learning/katas/examples/wordcount/Task.java    |    5 +
 .../beam/learning/katas/intro/hello/Task.java      |    4 +
 .../katas/triggers/earlytriggers/Task.java         |    6 +
 .../katas/triggers/eventtimetriggers/Task.java     |    6 +
 .../katas/triggers/windowaccummode/Task.java       |    7 +
 .../windowing/addingtimestamp/pardo/Task.java      |    5 +
 .../addingtimestamp/withtimestamps/Task.java       |    5 +
 .../learning/katas/windowing/fixedwindow/Task.java |    6 +
 .../Aggregation/Count/__init__.py                  |   18 +
 .../Aggregation/Count/task-info.yaml               |    6 +-
 .../Aggregation/Count/task-remote-info.yaml        |    2 -
 .../Common Transforms/Aggregation/Count/task.py    |    5 +-
 .../Common Transforms/Aggregation/Count/tests.py   |   33 -
 .../Aggregation/Count/tests/__init__.py            |   18 +
 .../Aggregation/Count/tests/test_task.py           |   34 +
 .../Aggregation/Largest/__init__.py                |   18 +
 .../Aggregation/Largest/task-info.yaml             |    6 +-
 .../Aggregation/Largest/task-remote-info.yaml      |    2 -
 .../Common Transforms/Aggregation/Largest/task.py  |    5 +-
 .../Common Transforms/Aggregation/Largest/tests.py |   33 -
 .../Aggregation/Largest/tests/__init__.py          |   18 +
 .../Aggregation/Largest/tests/test_task.py         |   34 +
 .../Common Transforms/Aggregation/Mean/__init__.py |   18 +
 .../Aggregation/Mean/task-info.yaml                |    6 +-
 .../Aggregation/Mean/task-remote-info.yaml         |    2 -
 .../Common Transforms/Aggregation/Mean/task.py     |    5 +-
 .../Common Transforms/Aggregation/Mean/tests.py    |   33 -
 .../Aggregation/Mean/tests/__init__.py             |   18 +
 .../Aggregation/Mean/tests/test_task.py            |   34 +
 .../Aggregation/Smallest/__init__.py               |   18 +
 .../Aggregation/Smallest/task-info.yaml            |    6 +-
 .../Aggregation/Smallest/task-remote-info.yaml     |    2 -
 .../Common Transforms/Aggregation/Smallest/task.py |    5 +-
 .../Aggregation/Smallest/tests.py                  |   33 -
 .../Aggregation/Smallest/tests/__init__.py         |   18 +
 .../Aggregation/Smallest/tests/test_task.py        |   34 +
 .../Common Transforms/Aggregation/Sum/__init__.py  |   18 +
 .../Aggregation/Sum/task-info.yaml                 |    6 +-
 .../Aggregation/Sum/task-remote-info.yaml          |    2 -
 .../Common Transforms/Aggregation/Sum/task.py      |    5 +-
 .../Common Transforms/Aggregation/Sum/tests.py     |   33 -
 .../Aggregation/Sum/tests/__init__.py              |   18 +
 .../Aggregation/Sum/tests/test_task.py             |   34 +
 .../Aggregation/lesson-remote-info.yaml            |    3 -
 .../Common Transforms/Filter/Filter/__init__.py    |   18 +
 .../Common Transforms/Filter/Filter/task-info.yaml |    6 +-
 .../Filter/Filter/task-remote-info.yaml            |    2 -
 .../python/Common Transforms/Filter/Filter/task.py |    5 +-
 .../Common Transforms/Filter/Filter/tests.py       |   33 -
 .../Filter/Filter/tests/__init__.py                |   18 +
 .../Filter/Filter/tests/test_task.py               |   35 +
 .../Common Transforms/Filter/ParDo/__init__.py     |   18 +
 .../Common Transforms/Filter/ParDo/task-info.yaml  |   12 +-
 .../Filter/ParDo/task-remote-info.yaml             |    2 -
 .../python/Common Transforms/Filter/ParDo/task.py  |    5 +-
 .../python/Common Transforms/Filter/ParDo/tests.py |   33 -
 .../Filter/ParDo/tests/__init__.py                 |   18 +
 .../Filter/ParDo/tests/test_task.py                |   35 +
 .../Filter/lesson-remote-info.yaml                 |    3 -
 .../WithKeys/WithKeys/__init__.py                  |   18 +
 .../WithKeys/WithKeys/task-info.yaml               |    6 +-
 .../WithKeys/WithKeys/task-remote-info.yaml        |    2 -
 .../Common Transforms/WithKeys/WithKeys/task.py    |    5 +-
 .../Common Transforms/WithKeys/WithKeys/tests.py   |   35 -
 .../WithKeys/WithKeys/tests/__init__.py            |   18 +
 .../WithKeys/WithKeys/tests/test_task.py           |   36 +
 .../WithKeys/lesson-remote-info.yaml               |    3 -
 .../Common Transforms/section-remote-info.yaml     |    2 -
 .../Branching/Branching/__init__.py                |   18 +
 .../Branching/Branching/task-info.yaml             |    6 +-
 .../Branching/Branching/task-remote-info.yaml      |    2 -
 .../Core Transforms/Branching/Branching/task.py    |    5 +-
 .../Core Transforms/Branching/Branching/tests.py   |   43 -
 .../Branching/Branching/tests/__init__.py          |   18 +
 .../Branching/Branching/tests/test_task.py         |   44 +
 .../Branching/lesson-remote-info.yaml              |    3 -
 .../CoGroupByKey/CoGroupByKey/__init__.py          |   18 +
 .../CoGroupByKey/CoGroupByKey/task-info.yaml       |    8 +-
 .../CoGroupByKey/task-remote-info.yaml             |    2 -
 .../CoGroupByKey/CoGroupByKey/task.py              |    7 +-
 .../CoGroupByKey/CoGroupByKey/tests.py             |   37 -
 .../CoGroupByKey/CoGroupByKey/tests/__init__.py    |   18 +
 .../CoGroupByKey/CoGroupByKey/tests/test_task.py   |   39 +
 .../CoGroupByKey/lesson-remote-info.yaml           |    3 -
 .../Combine/Combine PerKey/__init__.py             |   18 +
 .../Combine/Combine PerKey/task-info.yaml          |    6 +-
 .../Combine/Combine PerKey/task-remote-info.yaml   |    2 -
 .../Core Transforms/Combine/Combine PerKey/task.py |    7 +-
 .../Combine/Combine PerKey/tests.py                |   38 -
 .../Combine/Combine PerKey/tests/__init__.py       |   18 +
 .../Combine/Combine PerKey/tests/test_task.py      |   39 +
 .../Core Transforms/Combine/CombineFn/__init__.py  |   18 +
 .../Combine/CombineFn/task-info.yaml               |    6 +-
 .../Combine/CombineFn/task-remote-info.yaml        |    2 -
 .../Core Transforms/Combine/CombineFn/task.py      |    5 +-
 .../Core Transforms/Combine/CombineFn/tests.py     |   33 -
 .../Combine/CombineFn/tests/__init__.py            |   18 +
 .../Combine/CombineFn/tests/test_task.py           |   33 +
 .../Combine/Simple Function/__init__.py            |   18 +
 .../Combine/Simple Function/task-info.yaml         |    6 +-
 .../Combine/Simple Function/task-remote-info.yaml  |    2 -
 .../Combine/Simple Function/task.py                |    6 +-
 .../Combine/Simple Function/tests.py               |   33 -
 .../Combine/Simple Function/tests/__init__.py      |   18 +
 .../Combine/Simple Function/tests/test_task.py     |   33 +
 .../Combine/lesson-remote-info.yaml                |    3 -
 .../Composite Transform/__init__.py                |   18 +
 .../Composite Transform/task-info.yaml             |    6 +-
 .../Composite Transform/task-remote-info.yaml      |    2 -
 .../Composite Transform/task.py                    |    6 +-
 .../Composite Transform/tests.py                   |   33 -
 .../Composite Transform/tests/__init__.py          |   18 +
 .../Composite Transform/tests/test_task.py         |   35 +
 .../Composite Transform/lesson-remote-info.yaml    |    3 -
 .../Core Transforms/Flatten/Flatten/__init__.py    |   18 +
 .../Core Transforms/Flatten/Flatten/task-info.yaml |    6 +-
 .../Flatten/Flatten/task-remote-info.yaml          |    2 -
 .../python/Core Transforms/Flatten/Flatten/task.py |    5 +-
 .../Core Transforms/Flatten/Flatten/tests.py       |   33 -
 .../Flatten/Flatten/tests/__init__.py              |   18 +
 .../Flatten/Flatten/tests/test_task.py             |   35 +
 .../Flatten/lesson-remote-info.yaml                |    3 -
 .../GroupByKey/GroupByKey/__init__.py              |   18 +
 .../GroupByKey/GroupByKey/task-info.yaml           |    8 +-
 .../GroupByKey/GroupByKey/task-remote-info.yaml    |    2 -
 .../Core Transforms/GroupByKey/GroupByKey/task.py  |    6 +-
 .../Core Transforms/GroupByKey/GroupByKey/tests.py |   35 -
 .../GroupByKey/GroupByKey/tests/__init__.py        |   18 +
 .../GroupByKey/GroupByKey/tests/test_task.py       |   37 +
 .../GroupByKey/lesson-remote-info.yaml             |    3 -
 .../python/Core Transforms/Map/FlatMap/__init__.py |   18 +
 .../Core Transforms/Map/FlatMap/task-info.yaml     |    6 +-
 .../Map/FlatMap/task-remote-info.yaml              |    2 -
 .../python/Core Transforms/Map/FlatMap/task.py     |    5 +-
 .../python/Core Transforms/Map/FlatMap/tests.py    |   33 -
 .../Core Transforms/Map/FlatMap/tests/__init__.py  |   18 +
 .../Core Transforms/Map/FlatMap/tests/test_task.py |   35 +
 .../python/Core Transforms/Map/Map/__init__.py     |   18 +
 .../python/Core Transforms/Map/Map/task-info.yaml  |    6 +-
 .../Core Transforms/Map/Map/task-remote-info.yaml  |    2 -
 .../katas/python/Core Transforms/Map/Map/task.py   |    5 +-
 .../katas/python/Core Transforms/Map/Map/tests.py  |   33 -
 .../Core Transforms/Map/Map/tests/__init__.py      |   18 +
 .../Core Transforms/Map/Map/tests/test_task.py     |   35 +
 .../Map/ParDo OneToMany/__init__.py                |   18 +
 .../Map/ParDo OneToMany/task-info.yaml             |   10 +-
 .../Map/ParDo OneToMany/task-remote-info.yaml      |    2 -
 .../Core Transforms/Map/ParDo OneToMany/task.py    |    7 +-
 .../Core Transforms/Map/ParDo OneToMany/tests.py   |   33 -
 .../Map/ParDo OneToMany/tests/__init__.py          |   18 +
 .../Map/ParDo OneToMany/tests/test_task.py         |   35 +
 .../python/Core Transforms/Map/ParDo/__init__.py   |   18 +
 .../Core Transforms/Map/ParDo/task-info.yaml       |    6 +-
 .../Map/ParDo/task-remote-info.yaml                |    2 -
 .../katas/python/Core Transforms/Map/ParDo/task.py |    4 +
 .../python/Core Transforms/Map/ParDo/tests.py      |   33 -
 .../Core Transforms/Map/ParDo/tests/__init__.py    |   18 +
 .../Core Transforms/Map/ParDo/tests/test_task.py   |   32 +
 .../Core Transforms/Map/lesson-remote-info.yaml    |    3 -
 .../Partition/Partition/__init__.py                |   18 +
 .../Partition/Partition/task-info.yaml             |    6 +-
 .../Partition/Partition/task-remote-info.yaml      |    2 -
 .../Core Transforms/Partition/Partition/task.py    |    5 +-
 .../Core Transforms/Partition/Partition/tests.py   |   42 -
 .../Partition/Partition/tests/__init__.py          |   18 +
 .../Partition/Partition/tests/test_task.py         |   44 +
 .../Partition/lesson-remote-info.yaml              |    3 -
 .../Side Input/Side Input/__init__.py              |   18 +
 .../Side Input/Side Input/task-info.yaml           |   14 +-
 .../Side Input/Side Input/task-remote-info.yaml    |    2 -
 .../Core Transforms/Side Input/Side Input/task.py  |   31 +-
 .../Core Transforms/Side Input/Side Input/tests.py |   47 -
 .../Side Input/Side Input/tests/__init__.py        |   18 +
 .../Side Input/Side Input/tests/test_task.py       |   41 +
 .../Side Input/lesson-remote-info.yaml             |    3 -
 .../Side Output/Side Output/__init__.py            |   18 +
 .../Side Output/Side Output/task-info.yaml         |    8 +-
 .../Side Output/Side Output/task-remote-info.yaml  |    2 -
 .../Side Output/Side Output/task.py                |    7 +-
 .../Side Output/Side Output/tests.py               |   42 -
 .../Side Output/Side Output/tests/__init__.py      |   18 +
 .../Side Output/Side Output/tests/test_task.py     |   44 +
 .../Side Output/lesson-remote-info.yaml            |    3 -
 .../Core Transforms/section-remote-info.yaml       |    2 -
 .../Examples/Word Count/Word Count/__init__.py     |   18 +
 .../Examples/Word Count/Word Count/task-info.yaml  |   10 +-
 .../Word Count/Word Count/task-remote-info.yaml    |    2 -
 .../python/Examples/Word Count/Word Count/task.py  |   10 +-
 .../python/Examples/Word Count/Word Count/tests.py |   39 -
 .../Word Count/Word Count/tests/__init__.py        |   18 +
 .../Word Count/Word Count/tests/test_task.py       |   41 +
 .../Examples/Word Count/lesson-remote-info.yaml    |    3 -
 .../katas/python/Examples/section-remote-info.yaml |    2 -
 .../IO/Built-in IOs/Built-in IOs/task-info.yaml    |   25 -
 .../Built-in IOs/task-remote-info.yaml             |    2 -
 .../python/IO/Built-in IOs/Built-in IOs/task.md    |   28 -
 .../python/IO/Built-in IOs/Built-in IOs/task.py    |   21 -
 .../python/IO/Built-in IOs/Built-in IOs/tests.py   |   16 -
 .../katas/python/IO/Built-in IOs/lesson-info.yaml  |   21 -
 .../python/IO/Built-in IOs/lesson-remote-info.yaml |    3 -
 .../python/IO/TextIO/ReadFromText/__init__.py      |   18 +
 .../python/IO/TextIO/ReadFromText/task-info.yaml   |   15 +-
 .../IO/TextIO/ReadFromText/task-remote-info.yaml   |    2 -
 .../katas/python/IO/TextIO/ReadFromText/task.md    |    9 +
 .../katas/python/IO/TextIO/ReadFromText/task.py    |   10 +-
 .../katas/python/IO/TextIO/ReadFromText/tests.py   |   44 -
 .../IO/TextIO/ReadFromText/tests/__init__.py       |   18 +
 .../IO/TextIO/ReadFromText/tests/test_task.py      |   46 +
 .../katas/python/IO/TextIO/lesson-remote-info.yaml |    3 -
 learning/katas/python/IO/section-info.yaml         |    1 -
 learning/katas/python/IO/section-remote-info.yaml  |    2 -
 .../Introduction/Hello Beam/Hello Beam/__init__.py |   18 +
 .../Hello Beam/Hello Beam/task-info.yaml           |    6 +-
 .../Hello Beam/Hello Beam/task-remote-info.yaml    |    2 -
 .../Introduction/Hello Beam/Hello Beam/task.md     |    2 +-
 .../Introduction/Hello Beam/Hello Beam/task.py     |    3 +
 .../Introduction/Hello Beam/Hello Beam/tests.py    |   34 -
 .../Hello Beam/Hello Beam/tests/__init__.py        |   18 +
 .../Hello Beam/Hello Beam/tests/test_task.py       |   34 +
 .../Hello Beam/lesson-remote-info.yaml             |    3 -
 .../python/Introduction/section-remote-info.yaml   |    2 -
 .../Timestamps/Add Timestamps/__init__.py          |   18 +
 .../Timestamps/Add Timestamps/task-info.yaml       |   36 +
 .../Timestamps/Add Timestamps}/task.md             |    0
 .../Streaming/Timestamps/Add Timestamps/task.py    |   64 +
 .../Timestamps/Add Timestamps/tests/__init__.py    |   18 +
 .../Timestamps/Add Timestamps/tests/test_task.py   |   41 +
 .../python/Streaming/Timestamps/lesson-info.yaml   |   21 +
 .../Streaming/Triggers/Early Triggers/__init__.py  |   18 +
 .../Triggers}/Early Triggers/generate_event.py     |    0
 .../Triggers/Early Triggers/task-info.yaml         |   35 +
 .../Streaming/Triggers/Early Triggers/task.md      |   59 +
 .../Streaming/Triggers/Early Triggers/task.py      |   63 +
 .../Triggers/Early Triggers/tests/__init__.py      |   18 +
 .../Triggers/Early Triggers/tests/test_task.py     |   55 +
 .../Triggers/Event Time Triggers/__init__.py       |   18 +
 .../Event Time Triggers/generate_event.py          |    0
 .../Triggers/Event Time Triggers/task-info.yaml    |   37 +
 .../Triggers}/Event Time Triggers/task.md          |    0
 .../Streaming/Triggers/Event Time Triggers/task.py |   55 +
 .../Triggers/Event Time Triggers/tests/__init__.py |   18 +
 .../Event Time Triggers/tests/test_task.py         |   41 +
 .../Triggers/Window Accumulation Modes/__init__.py |   18 +
 .../Window Accumulation Modes}/generate_event.py   |    0
 .../Window Accumulation Modes/task-info.yaml       |   37 +
 .../Triggers/Window Accumulation Modes/task.md     |   64 +
 .../Triggers/Window Accumulation Modes/task.py     |   61 +
 .../Window Accumulation Modes/tests/__init__.py    |   18 +
 .../Window Accumulation Modes/tests/test_task.py   |   54 +
 .../python/Streaming/Triggers/lesson-info.yaml     |   23 +
 .../Streaming/Windows/Fixed Windows/__init__.py    |   18 +
 .../Streaming/Windows/Fixed Windows/task-info.yaml |   33 +
 .../Windows/Fixed Windows}/task.md                 |    0
 .../python/Streaming/Windows/Fixed Windows/task.py |   57 +
 .../Windows/Fixed Windows/tests/__init__.py        |   18 +
 .../Windows/Fixed Windows/tests/test_task.py       |   40 +
 .../python/Streaming/Windows/lesson-info.yaml      |   21 +
 learning/katas/python/Streaming/section-info.yaml  |   23 +
 .../Early Triggers/Early Triggers/task-info.yaml   |   31 -
 .../Early Triggers/task-remote-info.yaml           |    2 -
 .../Triggers/Early Triggers/Early Triggers/task.md |   59 -
 .../Triggers/Early Triggers/Early Triggers/task.py |   57 -
 .../Early Triggers/Early Triggers/tests.py         |   54 -
 .../Triggers/Early Triggers/lesson-info.yaml       |   21 -
 .../Early Triggers/lesson-remote-info.yaml         |    3 -
 .../Event Time Triggers/task-info.yaml             |   31 -
 .../Event Time Triggers/task-remote-info.yaml      |    2 -
 .../Event Time Triggers/task.py                    |   49 -
 .../Event Time Triggers/tests.py                   |   39 -
 .../Triggers/Event Time Triggers/lesson-info.yaml  |   21 -
 .../Event Time Triggers/lesson-remote-info.yaml    |    3 -
 .../Window Accumulation Mode/task-info.yaml        |   31 -
 .../Window Accumulation Mode/task-remote-info.yaml |    2 -
 .../Window Accumulation Mode/task.md               |   64 -
 .../Window Accumulation Mode/task.py               |   54 -
 .../Window Accumulation Mode/tests.py              |   52 -
 .../Window Accumulation Mode/lesson-info.yaml      |   21 -
 .../lesson-remote-info.yaml                        |    3 -
 learning/katas/python/Triggers/section-info.yaml   |   23 -
 .../katas/python/Triggers/section-remote-info.yaml |    2 -
 .../Adding Timestamp/ParDo/task-info.yaml          |   32 -
 .../Adding Timestamp/ParDo/task-remote-info.yaml   |    2 -
 .../Windowing/Adding Timestamp/ParDo/task.py       |   62 -
 .../Windowing/Adding Timestamp/ParDo/tests.py      |   39 -
 .../Windowing/Adding Timestamp/lesson-info.yaml    |   21 -
 .../Adding Timestamp/lesson-remote-info.yaml       |    3 -
 .../Fixed Time Window/task-info.yaml               |   29 -
 .../Fixed Time Window/task-remote-info.yaml        |    2 -
 .../Fixed Time Window/Fixed Time Window/task.py    |   52 -
 .../Fixed Time Window/Fixed Time Window/tests.py   |   38 -
 .../Windowing/Fixed Time Window/lesson-info.yaml   |   21 -
 .../Fixed Time Window/lesson-remote-info.yaml      |    3 -
 learning/katas/python/Windowing/section-info.yaml  |   22 -
 .../python/Windowing/section-remote-info.yaml      |    2 -
 learning/katas/python/course-info.yaml             |   15 +-
 learning/katas/python/course-remote-info.yaml      |    2 -
 learning/katas/python/requirements.txt             |    6 +-
 learning/katas/python/test_helper.py               |  207 +-
 learning/tour-of-beam/backend/README.md            |   64 +-
 learning/tour-of-beam/backend/docker-compose.yml   |    2 +-
 learning/tour-of-beam/backend/function.go          |   71 +-
 .../tour-of-beam/backend/integration_tests/api.go  |   21 +-
 .../backend/integration_tests/client.go            |   28 +-
 .../backend/integration_tests/function_test.go     |   19 +-
 .../backend/integration_tests/local.sh             |    4 +-
 learning/tour-of-beam/backend/internal/entity.go   |   24 +-
 .../backend/internal/fs_content/builders.go        |   27 +-
 .../backend/internal/fs_content/load.go            |   66 +-
 .../backend/internal/fs_content/load_test.go       |   39 +-
 .../backend/internal/fs_content/sdk_context.go     |   48 +
 learning/tour-of-beam/backend/internal/sdk.go      |   58 +-
 learning/tour-of-beam/backend/internal/sdk_test.go |   57 +-
 .../backend/internal/storage/adapter.go            |   55 +-
 .../backend/internal/storage/datastore.go          |   14 +-
 .../backend/internal/storage/index.yaml            |    2 +-
 .../backend/internal/storage/schema.go             |   17 +-
 learning/tour-of-beam/backend/middleware.go        |   79 +
 .../backend/samples/api/get_content_tree.json      |   21 +-
 .../backend/samples/api/get_sdk_list.json          |    8 +
 .../backend/samples/api/get_unit_content.json      |    8 +-
 .../backend/samples/api/get_unit_content_full.json |    4 +-
 .../python/module 1/group/group-info.yaml          |    2 +-
 .../python/module 1/intro-unit/unit-info.yaml      |    4 +-
 learning/tour-of-beam/frontend/README.md           |   22 +-
 .../frontend/assets/png/profile-website.png        |  Bin 0 -> 614 bytes
 .../frontend/assets/svg/github-logo.svg            |   19 +
 .../frontend/assets/svg/google-logo.svg            |   22 +
 .../frontend/assets/svg/profile-about.svg          |   21 +
 .../frontend/assets/svg/profile-delete.svg         |   19 +
 .../frontend/assets/svg/profile-logout.svg         |   19 +
 .../frontend/assets/svg/unit-progress-0.svg        |   19 +
 .../frontend/assets/svg/unit-progress-100.svg      |   19 +
 .../frontend/assets/svg/welcome-progress-0.svg     |    2 +-
 .../frontend/assets/translations/en.yaml           |   39 +-
 .../frontend/integration_test/app_test.dart        |    2 +-
 .../frontend/lib/cache/content_tree.dart           |   55 +
 learning/tour-of-beam/frontend/lib/cache/sdk.dart  |   53 +
 .../frontend/lib/cache/unit_content.dart           |   61 +
 .../lib/components/builders/content_tree.dart      |   47 +
 .../frontend/lib/components/builders/sdks.dart     |   41 +
 .../frontend/lib/components/complexity.dart        |   65 -
 .../lib/components/expansion_tile_wrapper.dart     |   42 +
 .../frontend/lib/components/filler_text.dart       |   29 +
 .../frontend/lib/components/footer.dart            |   43 +-
 .../lib/components/login/login_button.dart         |   54 +
 .../lib/components/login/login_content.dart        |  140 ++
 .../tour-of-beam/frontend/lib/components/logo.dart |   13 +-
 .../frontend/lib/components/page_container.dart    |   54 -
 .../frontend/lib/components/profile/avatar.dart    |   57 +
 .../lib/components/profile/profile_content.dart    |  160 ++
 .../frontend/lib/components/scaffold.dart          |   77 +
 .../frontend/lib/components/sdk_dropdown.dart      |   74 +
 .../lib/components/sign_in/sign_in_button.dart     |   58 -
 .../sign_in/sign_in_overlay_content.dart           |   89 -
 .../lib/components/toggle_theme_button.dart        |   54 -
 learning/tour-of-beam/frontend/lib/config.dart     |   39 +
 .../frontend/lib/config/theme/colors_provider.dart |   86 -
 .../frontend/lib/config/theme/switch_notifier.dart |   84 -
 .../frontend/lib/config/theme/theme.dart           |  160 --
 .../frontend/lib/constants/assets.dart             |   34 -
 .../frontend/lib/constants/colors.dart             |   48 -
 .../tour-of-beam/frontend/lib/constants/links.dart |   22 -
 .../tour-of-beam/frontend/lib/constants/sizes.dart |   32 +-
 learning/tour-of-beam/frontend/lib/locator.dart    |   33 +-
 learning/tour-of-beam/frontend/lib/main.dart       |   40 +-
 .../frontend/lib/models/content_tree.dart          |   38 +
 .../tour-of-beam/frontend/lib/models/group.dart    |   37 +
 .../tour-of-beam/frontend/lib/models/module.dart   |   44 +
 .../tour-of-beam/frontend/lib/models/node.dart     |   55 +
 .../frontend/lib/models/parent_node.dart           |   29 +
 .../tour-of-beam/frontend/lib/models/unit.dart     |   25 +
 .../frontend/lib/models/unit_content.dart          |   41 +
 .../lib/pages/tour/controllers/content_tree.dart   |   49 +
 .../tour-of-beam/frontend/lib/pages/tour/page.dart |   50 +
 .../tour-of-beam/frontend/lib/pages/tour/path.dart |   63 +
 .../frontend/lib/pages/tour/screen.dart            |  108 +
 .../frontend/lib/pages/tour/state.dart             |  155 ++
 .../frontend/lib/pages/tour/widgets/content.dart   |  115 +
 .../lib/pages/tour/widgets/content_tree.dart       |   66 +
 .../lib/pages/tour/widgets/content_tree_title.dart |   41 +
 .../frontend/lib/pages/tour/widgets/group.dart     |   58 +
 .../lib/pages/tour/widgets/group_nodes.dart        |   47 +
 .../lib/pages/tour/widgets/group_title.dart        |   50 +
 .../frontend/lib/pages/tour/widgets/module.dart    |   58 +
 .../lib/pages/tour/widgets/module_title.dart       |   55 +
 .../frontend/lib/pages/tour/widgets/node.dart      |   57 +
 .../lib/pages/tour/widgets/playground_demo.dart    |   70 +
 .../tour/widgets/tour_progress_indicator.dart      |   38 +
 .../frontend/lib/pages/tour/widgets/unit.dart      |   51 +
 .../lib/pages/tour/widgets/unit_content.dart       |   35 +
 .../frontend/lib/pages/welcome/page.dart           |   39 +
 .../frontend/lib/pages/welcome/path.dart           |   30 +
 .../frontend/lib/pages/welcome/screen.dart         |  251 ++-
 .../frontend/lib/pages/welcome/state.dart          |   49 +
 .../frontend/lib/repositories/client/client.dart   |   29 +
 .../client/cloud_functions_client.dart             |   67 +
 .../models/get_content_tree_response.dart          |   37 +
 .../lib/repositories/models/get_sdks_response.dart |   32 +
 .../frontend/lib/repositories/models/group.dart    |   40 +
 .../frontend/lib/repositories/models/module.dart   |   42 +
 .../frontend/lib/repositories/models/node.dart     |   41 +
 .../lib/repositories/models/node_type_enum.dart    |   22 +
 .../frontend/lib/repositories/models/unit.dart     |   35 +
 .../frontend/lib/router/page_factory.dart          |   38 +
 .../lib/router/route_information_parser.dart       |   32 +
 learning/tour-of-beam/frontend/pubspec.lock        |  442 +++-
 learning/tour-of-beam/frontend/pubspec.yaml        |   25 +-
 .../frontend/test/common/test_screen_wrapper.dart  |   40 +
 .../test/config/theme/switch_notifier_test.dart    |   28 -
 .../tour-of-beam/frontend/test/overflow_test.dart  |   38 +
 .../beam/model/fnexecution/v1/standard_coders.yaml |   12 +
 .../org/apache/beam/model/pipeline/v1/schema.proto |    8 +
 playground/README.md                               |    7 +
 playground/api/v1/api.proto                        |   16 +-
 playground/backend/CONTRIBUTE.md                   |   12 +-
 playground/backend/build.gradle.kts                |   21 +-
 playground/backend/cmd/server/controller.go        |  119 +-
 playground/backend/cmd/server/controller_test.go   |  321 ++-
 playground/backend/cmd/server/server.go            |   81 +-
 playground/backend/containers/go/Dockerfile        |    1 -
 playground/backend/containers/java/Dockerfile      |    1 -
 playground/backend/containers/python/Dockerfile    |    1 -
 playground/backend/containers/router/Dockerfile    |    2 +-
 playground/backend/containers/router/build.gradle  |    6 +-
 .../backend/containers/router/datastore/Dockerfile |    2 +-
 .../containers/router/docker-compose.local.yml     |   12 +-
 playground/backend/containers/scio/Dockerfile      |    1 -
 playground/backend/go.mod                          |    5 +-
 playground/backend/go.sum                          |    9 +-
 playground/backend/internal/api/v1/api.pb.go       |  811 ++++---
 playground/backend/internal/api/v1/api_grpc.pb.go  |    8 +-
 playground/backend/internal/cache/cache.go         |   16 +-
 .../backend/internal/cache/local/local_cache.go    |   84 +-
 .../internal/cache/local/local_cache_test.go       |   96 +-
 .../backend/internal/cache/redis/redis_cache.go    |   40 +-
 .../internal/cache/redis/redis_cache_test.go       |  104 +-
 .../internal/cloud_bucket/precompiled_objects.go   |  433 ----
 .../cloud_bucket/precompiled_objects_test.go       |  264 ---
 .../internal/code_processing/code_processing.go    |    6 +-
 .../backend/internal/components/cache_component.go |  109 +
 .../internal/components/cache_component_test.go    |  333 +++
 .../backend/internal/db/datastore/datastore_db.go  |    2 +-
 .../internal/db/datastore/datastore_db_test.go     |   54 +-
 .../backend/internal/db/dto/precompiled_object.go  |   27 +-
 playground/backend/internal/db/entity/example.go   |   19 +-
 playground/backend/internal/db/entity/snippet.go   |   47 +-
 .../backend/internal/db/entity/snippet_test.go     |   11 +-
 .../backend/internal/db/mapper/datastore_mapper.go |    1 +
 .../internal/db/mapper/datastore_mapper_test.go    |    8 +-
 .../db/mapper/precompiled_object_mapper.go         |   12 +
 .../db/mapper/precompiled_object_mapper_test.go    |   51 +-
 .../db/schema/migration/migration_v001_test.go     |   94 -
 .../internal/db/schema/migration/migration_v002.go |   40 +
 .../db/schema/migration/migrations_test.go         |  124 ++
 .../backend/internal/environment/application.go    |   11 +-
 .../internal/environment/environment_service.go    |   10 +-
 .../environment/environment_service_test.go        |   17 +-
 playground/backend/internal/fs_tool/java_fs.go     |   34 +-
 .../backend/internal/fs_tool/java_fs_test.go       |   29 +-
 .../backend/internal/tests/test_data/test_data.go  |  210 ++
 .../internal/tests/test_utils/test_utils.go        |   29 +
 .../internal/tests/test_utils/test_utils_test.go   |   43 +
 .../backend/internal/utils/datastore_utils.go      |   21 -
 .../backend/internal/utils/datastore_utils_test.go |   36 -
 playground/backend/internal/utils/file_utils.go    |   16 +
 .../backend/internal/utils/file_utils_test.go      |   43 +
 .../internal/utils/precompiled_objects_utils.go    |   87 -
 .../utils/precompiled_objects_utils_test.go        |  125 +-
 playground/backend/internal/utils/test_utils.go    |   29 -
 .../backend/internal/utils/test_utils_test.go      |   41 -
 playground/buf.gen.yaml                            |    4 +-
 playground/frontend/Dockerfile                     |   19 +-
 playground/frontend/README.md                      |   12 +
 playground/frontend/assets/theme.svg               |   27 -
 playground/frontend/assets/translations/en.yaml    |   21 +
 playground/frontend/build.gradle                   |   63 +-
 .../frontend/lib/api/iis_workaround_channel.dart   |   55 -
 playground/frontend/lib/api/v1/api.pb.dart         | 2229 -------------------
 playground/frontend/lib/api/v1/api.pbenum.dart     |  106 -
 playground/frontend/lib/api/v1/api.pbjson.dart     |  512 -----
 .../lib/components/banner/banner_description.dart  |    7 +-
 .../dropdown_button/dropdown_button.dart           |    8 +-
 .../horizontal_divider/horizontal_divider.dart     |   41 -
 .../loading_indicator/loading_indicator.dart       |   39 -
 .../playground_run_or_cancel_button.dart           |   57 +
 .../lib/components/split_view/split_view.dart      |  177 --
 .../toggle_theme_button/toggle_theme_button.dart   |   55 -
 .../toggle_theme_icon_button.dart                  |   40 -
 playground/frontend/lib/config/theme.dart          |  305 ---
 playground/frontend/lib/configure_nonweb.dart      |   21 -
 playground/frontend/lib/configure_web.dart         |   23 -
 playground/frontend/lib/constants/sizes.dart       |   14 -
 playground/frontend/lib/l10n/app_en.arb            |   16 -
 playground/frontend/lib/l10n/l10n.dart             |    6 +-
 playground/frontend/lib/main.dart                  |   31 +-
 .../actions/components/header_icon_button.dart     |   45 -
 .../actions/components/new_example_action.dart     |   10 +-
 .../modules/actions/components/reset_action.dart   |   30 +-
 .../lib/modules/analytics/analytics_service.dart   |    7 +-
 .../analytics/google_analytics_service.dart        |    9 +-
 .../modules/editor/components/editor_textarea.dart |  179 --
 .../modules/editor/components/editor_themes.dart   |   64 -
 .../pipeline_options_dropdown_body.dart            |    2 +-
 .../pipeline_options_dropdown_separator.dart       |    4 +-
 .../pipeline_options_form.dart                     |    5 +-
 .../pipeline_options_text_field.dart               |   12 +-
 .../lib/modules/editor/components/run_button.dart  |   88 -
 .../components/share_dropdown/link_text_field.dart |    8 +-
 .../components/share_dropdown/share_button.dart    |   18 +-
 .../share_dropdown/share_dropdown_body.dart        |    2 +-
 .../share_dropdown/share_tabs/share_tabs.dart      |   12 +-
 .../share_tabs/snippet_save_and_share_tabs.dart    |   12 +-
 .../share_dropdown/share_tabs_headers.dart         |   28 +-
 .../controllers/snippet_editing_controller.dart    |   87 -
 .../code_client/check_status_response.dart         |   25 -
 .../code_repository/code_client/code_client.dart   |   68 -
 .../code_client/grpc_code_client.dart              |  234 --
 .../code_client/output_response.dart               |   23 -
 .../code_client/run_code_response.dart             |   23 -
 .../code_repository/code_repository.dart           |  218 --
 .../repository/code_repository/run_code_error.dart |   23 -
 .../code_repository/run_code_request.dart          |   31 -
 .../code_repository/run_code_result.dart           |   86 -
 .../description_popover/description_popover.dart   |    4 +-
 .../description_popover_button.dart                |    9 +-
 .../example_list/category_expansion_panel.dart     |    4 +-
 .../example_list/example_item_actions.dart         |    9 +-
 .../components/example_list/example_list.dart      |    6 +-
 .../example_list/expansion_panel_item.dart         |   25 +-
 .../examples/components/examples_components.dart   |    5 +-
 .../components/filter/category_bubble.dart         |   80 -
 .../modules/examples/components/filter/filter.dart |   97 +
 .../examples/components/filter/tag_bubble.dart     |   53 +
 .../examples/components/filter/type_bubble.dart    |   53 +
 .../examples/components/filter/type_filter.dart    |   59 -
 .../multifile_popover/multifile_popover.dart       |    4 +-
 .../multifile_popover_button.dart                  |    6 +-
 .../components/search_field/search_field.dart      |   17 +-
 .../lib/modules/examples/example_selector.dart     |   48 +-
 .../modules/examples/models/category_model.dart    |   38 -
 ...catalog_default_example_loading_descriptor.dart |   44 -
 .../content_example_loading_descriptor.dart        |   95 -
 .../empty_example_loading_descriptor.dart          |   44 -
 .../example_loading_descriptor.dart                |   30 -
 .../examples_loading_descriptor.dart               |   77 -
 .../examples_loading_descriptor_factory.dart       |   29 +-
 .../standard_example_loading_descriptor.dart       |   46 -
 .../user_shared_example_loading_descriptor.dart    |   47 -
 .../lib/modules/examples/models/example_model.dart |  110 -
 .../modules/examples/models/example_origin.dart    |   41 -
 .../examples/models/example_token_type.dart        |    4 +-
 .../lib/modules/examples/models/outputs_model.dart |   32 -
 .../example_client/example_client.dart             |   66 -
 .../example_client/grpc_example_client.dart        |  366 ----
 .../examples/repositories/example_repository.dart  |   98 -
 .../models/get_example_code_response.dart          |   23 -
 .../repositories/models/get_example_request.dart   |   37 -
 .../repositories/models/get_example_response.dart  |   25 -
 .../models/get_list_of_examples_request.dart       |   37 -
 .../models/get_list_of_examples_response.dart      |   26 -
 .../repositories/models/get_snippet_request.dart   |   25 -
 .../repositories/models/get_snippet_response.dart  |   32 -
 .../repositories/models/save_snippet_request.dart  |   32 -
 .../modules/graph/graph_builder/canvas_drawer.dart |  137 --
 .../graph_builder/extractors/edge_extractor.dart   |   61 -
 .../extractors/element_extractor.dart              |   63 -
 .../graph_builder/extractors/label_extractor.dart  |   36 -
 .../modules/graph/graph_builder/graph_builder.dart |  253 ---
 .../graph/graph_builder/painters/edge_painter.dart |  195 --
 .../graph_builder/painters/graph_painter.dart      |  100 -
 .../graph/graph_builder/painters/node_painter.dart |   91 -
 .../messages/handlers/messages_handler.dart        |    8 +-
 .../handlers/set_content_message_handler.dart      |    8 +-
 .../messages/handlers/set_sdk_message_handler.dart |    8 +-
 .../messages/models/set_content_message.dart       |    2 +-
 .../modules/messages/models/set_sdk_message.dart   |    8 +-
 .../components/base_notification.dart              |  101 -
 .../notifications/components/notification.dart     |  110 -
 .../lib/modules/output/components/graph.dart       |  106 -
 .../lib/modules/output/components/output.dart      |   97 -
 .../lib/modules/output/components/output_area.dart |   74 -
 .../components/output_header/output_tab.dart       |  102 -
 .../components/output_header/output_tabs.dart      |   61 -
 .../output_header/result_filter_bubble.dart        |   80 -
 .../output_header/result_filter_popover.dart       |   75 -
 .../components/output_header/tab_header.dart       |   47 -
 .../modules/output/components/output_result.dart   |   64 -
 .../modules/output/models/output_placement.dart    |    7 +
 .../lib/modules/sdk/components/sdk_selector.dart   |   41 +-
 .../modules/sdk/components/sdk_selector_row.dart   |    6 +-
 .../frontend/lib/modules/sdk/models/sdk.dart       |  117 -
 .../modules/shortcuts/components/shortcut_row.dart |    7 +-
 .../shortcuts/components/shortcut_tooltip.dart     |   41 -
 .../shortcuts/components/shortcuts_manager.dart    |    4 +-
 .../shortcuts/components/shortcuts_modal.dart      |   32 +-
 .../shortcuts/constants/global_shortcuts.dart      |   67 +-
 .../lib/modules/shortcuts/models/shortcut.dart     |   33 -
 .../shortcuts/utils/shortcuts_display_name.dart    |   36 -
 .../components/embedded_actions.dart               |   14 +-
 .../components/embedded_appbar_title.dart          |   48 +-
 .../components/embedded_editor.dart                |   23 +-
 .../embedded_playground_page.dart                  |   13 +-
 .../playground/components/close_listener.dart      |    4 +-
 .../components/editor_textarea_wrapper.dart        |   77 +-
 .../feedback/feedback_dropdown_content.dart        |   13 +-
 .../pages/playground/components/more_actions.dart  |   18 +-
 .../components/playground_page_body.dart           |   35 +-
 .../components/playground_page_footer.dart         |    6 +-
 .../components/playground_page_providers.dart      |   54 +-
 .../lib/pages/playground/playground_page.dart      |   76 +-
 .../catalog_default_example_loader.dart            |   48 -
 .../example_loaders/content_example_loader.dart    |   39 -
 .../example_loaders/empty_example_loader.dart      |   38 -
 .../states/example_loaders/example_loader.dart     |   25 -
 .../states/example_loaders/examples_loader.dart    |  110 -
 .../example_loaders/standard_example_loader.dart   |   74 -
 .../user_shared_example_loader.dart                |   36 -
 .../playground/states/example_selector_state.dart  |  125 +-
 .../pages/playground/states/examples_state.dart    |  218 --
 .../pages/playground/states/playground_state.dart  |  380 ----
 playground/frontend/lib/playground_app.dart        |   54 +-
 playground/frontend/lib/utils/analytics_utils.dart |   11 +-
 .../lib/utils/replace_incorrect_symbols.dart       |   26 -
 .../assets/buttons}/reset.svg                      |    0
 .../assets/buttons}/theme-mode.svg                 |    0
 .../assets/notification_icons/error.svg}           |    0
 .../assets/notification_icons/info.svg}            |    0
 .../assets/notification_icons/success.svg}         |    0
 .../assets/notification_icons/warning.svg}         |    0
 .../assets/png/beam-logo.png                       |  Bin
 .../assets/svg/drag-horizontal.svg}                |    0
 .../assets/svg/drag-vertical.svg}                  |    0
 .../assets/translations/en.yaml                    |   52 +
 .../playground_components/build.gradle.kts         |   90 +
 .../lib/playground_components.dart                 |   74 +
 .../lib/src/api/iis_workaround_channel.dart        |   20 +
 .../src/api/iis_workaround_channel_non_web.dart    |   30 +
 .../lib/src/api/iis_workaround_channel_web.dart    |   56 +
 .../lib/src/api/v1/api.pb.dart                     | 2293 ++++++++++++++++++++
 .../lib/src/api/v1/api.pbenum.dart                 |  125 ++
 .../lib/src}/api/v1/api.pbgrpc.dart                |    0
 .../lib/src/api/v1/api.pbjson.dart                 |  530 +++++
 .../lib/src/cache/example_cache.dart               |  240 ++
 .../lib/src/constants/colors.dart                  |   78 +
 .../lib/src/constants/links.dart                   |   22 +
 .../lib/src/constants/playground_components.dart   |   29 +
 .../lib/src/constants/sizes.dart                   |   57 +
 .../catalog_default_example_loader.dart            |   48 +
 .../example_loaders/content_example_loader.dart    |   46 +
 .../example_loaders/empty_example_loader.dart      |   47 +
 .../example_loaders/example_loader.dart            |   25 +
 .../example_loaders/example_loader_factory.dart    |   53 +
 .../example_loaders/examples_loader.dart           |  103 +
 .../example_loaders/standard_example_loader.dart   |   75 +
 .../user_shared_example_loader.dart                |   36 +
 .../lib/src/controllers/playground_controller.dart |  399 ++++
 .../controllers/snippet_editing_controller.dart    |   91 +
 .../lib/src/enums/complexity.dart                  |   45 +
 .../lib/src/models/category_with_examples.dart     |   46 +
 .../lib/src/models/example.dart                    |   65 +
 .../lib/src/models/example_base.dart               |   84 +
 ...catalog_default_example_loading_descriptor.dart |   31 +
 .../content_example_loading_descriptor.dart        |   87 +
 .../empty_example_loading_descriptor.dart          |   31 +
 .../example_loading_descriptor.dart                |   25 +
 .../examples_loading_descriptor.dart               |   80 +
 .../standard_example_loading_descriptor.dart       |   30 +
 .../user_shared_example_loading_descriptor.dart    |   30 +
 .../lib/src/models/intents.dart                    |   35 +
 .../lib/src/models/outputs.dart                    |   36 +
 .../playground_components/lib/src/models/sdk.dart  |  107 +
 .../lib/src/models/shortcut.dart                   |   50 +
 .../lib/src/notifications/base_notification.dart   |  100 +
 .../lib/src/notifications/notification.dart        |  111 +
 .../src/repositories/code_client/code_client.dart  |   60 +
 .../repositories/code_client/grpc_code_client.dart |  256 +++
 .../lib/src/repositories/code_repository.dart      |  220 ++
 .../repositories/complexity_grpc_extension.dart    |   36 +
 .../example_client/example_client.dart             |   67 +
 .../example_client/grpc_example_client.dart        |  380 ++++
 .../lib/src/repositories/example_repository.dart   |   99 +
 .../repositories/models/check_status_response.dart |   27 +
 .../get_default_precompiled_object_request.dart    |   34 +
 .../get_precompiled_object_code_response.dart      |   25 +
 .../models/get_precompiled_object_request.dart     |   39 +
 .../models/get_precompiled_object_response.dart    |   27 +
 .../models/get_precompiled_objects_request.dart    |   37 +
 .../models/get_precompiled_objects_response.dart   |   28 +
 .../repositories/models/get_snippet_request.dart   |   25 +
 .../repositories/models/get_snippet_response.dart  |   35 +
 .../src/repositories/models/output_response.dart   |   26 +
 .../src/repositories/models/run_code_error.dart    |   25 +
 .../src/repositories/models/run_code_request.dart  |   31 +
 .../src/repositories/models/run_code_response.dart |   25 +
 .../src/repositories/models/run_code_result.dart   |   80 +
 .../repositories/models/save_snippet_request.dart  |   32 +
 .../repositories/models/save_snippet_response.dart |    0
 .../lib/src/repositories/models/shared_file.dart}  |    0
 .../lib/src/repositories/sdk_grpc_extension.dart   |   51 +
 .../lib/src/theme/switch_notifier.dart             |   67 +
 .../playground_components/lib/src/theme/theme.dart |  367 ++++
 .../lib/src/util/pipeline_options.dart}            |    0
 .../lib/src/util/replace_incorrect_symbols.dart    |   24 +
 .../lib/src/util}/run_with_retry.dart              |    0
 .../lib/src/widgets/bubble.dart                    |   69 +
 .../lib/src/widgets/clickable.dart                 |   43 +
 .../lib/src/widgets/complexity.dart                |   64 +
 .../lib/{ => src/widgets}/dismissible_overlay.dart |    0
 .../lib/src/widgets/divider.dart                   |   36 +
 .../lib/src/widgets/drag_handle.dart               |   43 +
 .../lib/src/widgets/editor_textarea.dart           |  177 ++
 .../lib/src/widgets/header_icon_button.dart        |   46 +
 .../lib/src/widgets/loading_indicator.dart         |   43 +
 .../lib/src/widgets/logo.dart                      |   36 +
 .../lib/src/widgets/output/graph/graph.dart        |  105 +
 .../output/graph/graph_builder/canvas_drawer.dart  |  137 ++
 .../graph_builder/extractors/edge_extractor.dart   |   61 +
 .../extractors/element_extractor.dart              |   63 +
 .../graph_builder/extractors/extractor_utils.dart  |    0
 .../graph/graph_builder/extractors/extractors.dart |    0
 .../graph_builder/extractors/label_extractor.dart  |   36 +
 .../output/graph/graph_builder/graph_builder.dart  |  258 +++
 .../graph/graph_builder/painters/edge_painter.dart |  196 ++
 .../graph_builder/painters/graph_painter.dart      |   99 +
 .../graph/graph_builder/painters/node_painter.dart |   93 +
 .../src/widgets/output}/graph/models/graph.dart    |    0
 .../widgets/output}/graph/models/table_cell.dart   |    0
 .../lib/src/widgets/output/output.dart             |  102 +
 .../lib/src/widgets/output/output_area.dart        |   63 +
 .../lib/src/widgets/output/output_result.dart      |   69 +
 .../lib/src/widgets/output/output_tab.dart         |  109 +
 .../lib/src/widgets/output/output_tabs.dart        |   60 +
 .../src/widgets/output/result_filter_bubble.dart   |   52 +
 .../src/widgets/output/result_filter_popover.dart  |   84 +
 .../lib/src/widgets/reset_button.dart              |   57 +
 .../lib/src/widgets/run_button.dart                |   91 +
 .../lib/src/widgets/run_or_cancel_button.dart      |   63 +
 .../lib/src/widgets/shortcut_tooltip.dart          |   41 +
 .../lib/src/widgets/snippet_editor.dart            |   46 +
 .../lib/src/widgets/split_view.dart                |  170 ++
 .../lib/src/widgets/tab_header.dart                |   47 +
 .../lib/src/widgets/toggle_theme_button.dart       |   51 +
 .../lib/src/widgets/toggle_theme_icon_button.dart  |   45 +
 .../frontend/playground_components/pubspec.yaml    |   41 +-
 .../test/src/cache/example_cache_test.dart         |  212 ++
 .../test/src/common/categories.dart                |   52 +
 .../test/src/common/example_repository_mock.dart   |   51 +
 .../test/src/common/examples.dart                  |   84 +
 .../test/src/common/requests.dart                  |   66 +
 .../controllers/playground_controller_test.dart    |  178 ++
 .../src/repositories/code_repository_test.dart     |  360 +++
 .../src/repositories/example_repository_test.dart  |  130 ++
 .../test/src/util/pipeline_options_test.dart       |   64 +
 .../test/src/util/run_with_retry_test.dart         |   95 +
 .../test/theme/switch_notifier_test.dart           |   28 +
 playground/frontend/pubspec.lock                   |  102 +-
 playground/frontend/pubspec.yaml                   |   19 +-
 .../editor/parsers/run_options_parser_test.dart    |   64 -
 .../code_repository/code_repository_test.dart      |  360 ---
 .../code_repository_test.mocks.dart                |  138 --
 .../example_repository_test.dart                   |  130 --
 .../example_repository_test.mocks.dart             |  147 --
 .../messages/handlers/messages_debouncer_test.dart |   10 +-
 .../messages/models/set_content_message_test.dart  |   23 +-
 .../messages/models/set_sdk_message_test.dart      |    6 +-
 .../messages/parsers/message_parser_test.dart      |   10 +-
 .../states/example_selector_state_test.dart        |   92 +-
 .../states/example_selector_state_test.mocks.dart  |   69 -
 .../playground/states/examples_state_test.dart     |  198 --
 .../playground/states/mocks/categories_mock.dart   |   45 -
 .../playground/states/mocks/example_mock.dart      |   67 -
 .../states/mocks/example_repository_mock.dart      |   51 -
 .../mocks/example_repository_mock.mocks.dart       |  113 -
 .../playground/states/mocks/request_mock.dart      |   45 -
 .../playground/states/playground_state_test.dart   |  165 --
 .../states/playground_state_test.mocks.dart        |  216 --
 .../frontend/test/utils/run_with_retry_test.dart   |   95 -
 playground/infrastructure/cd_helper.py             |   18 +-
 playground/infrastructure/checker.py               |  102 +-
 playground/infrastructure/ci_cd.py                 |   42 +-
 playground/infrastructure/ci_helper.py             |   35 +-
 playground/infrastructure/config.py                |   12 +-
 playground/infrastructure/datastore_client.py      |  187 +-
 playground/infrastructure/grpc_client.py           |   18 +-
 playground/infrastructure/helper.py                |  109 +-
 playground/infrastructure/proxy/allow_list.py      |    1 -
 playground/infrastructure/test_cd_helper.py        |    7 +-
 playground/infrastructure/test_checker.py          |   47 +
 playground/infrastructure/test_ci_cd.py            |    9 +-
 playground/infrastructure/test_ci_helper.py        |   22 +-
 playground/infrastructure/test_datastore_client.py |  110 +-
 playground/infrastructure/test_helper.py           |  158 +-
 playground/infrastructure/test_utils.py            |    1 +
 playground/sdks-emulator.yaml                      |    1 -
 .../src/main/scripts/build_release_candidate.sh    |   13 +-
 .../main/scripts/publish_github_release_notes.sh   |    5 +-
 runners/google-cloud-dataflow-java/build.gradle    |    6 +-
 .../runners/dataflow/DataflowPipelineJobTest.java  |   21 +-
 .../runners/dataflow/util/PackageUtilTest.java     |    8 +-
 .../dataflow/worker/DataflowRunnerHarness.java     |    8 +-
 ...FetchAndFilterStreamingSideInputsOperation.java |    8 +-
 .../runners/dataflow/worker/util/JfrInterop.java   |    5 +-
 .../worker/windmill/GrpcWindmillServer.java        |    8 +-
 .../dataflow/worker/BatchDataflowWorkerTest.java   |    2 +-
 .../worker/DataflowBatchWorkerHarnessTest.java     |    2 +-
 .../worker/DataflowWorkUnitClientTest.java         |    2 +-
 .../worker/windmill/src/main/proto/windmill.proto  |   13 +
 .../control/BundleCheckpointHandlers.java          |    2 +-
 ...renceCountingExecutableStageContextFactory.java |    7 +-
 .../environment/EmbeddedEnvironmentFactory.java    |    8 +-
 .../runners/fnexecution/wire/CommonCoderTest.java  |    5 +-
 .../samza/SamzaPipelineExceptionContext.java       |   37 +
 .../beam/runners/samza/SamzaPipelineOptions.java   |   31 +
 .../samza/SamzaPipelineOptionsValidator.java       |    7 +-
 .../runners/samza/runtime/AsyncDoFnRunner.java     |  118 +
 .../apache/beam/runners/samza/runtime/DoFnOp.java  |   51 +-
 .../runners/samza/runtime/FutureCollector.java     |    7 +
 .../beam/runners/samza/runtime/OpAdapter.java      |  118 +-
 .../beam/runners/samza/runtime/OpEmitter.java      |    6 +
 .../runners/samza/runtime/SamzaDoFnRunners.java    |   13 +-
 .../runners/samza/translation/ConfigBuilder.java   |   19 +
 .../translation/FlattenPCollectionsTranslator.java |    3 +-
 .../samza/translation/GroupByKeyTranslator.java    |   20 +-
 .../translation/ParDoBoundMultiTranslator.java     |    8 +-
 .../translation/SplittableParDoTranslators.java    |    7 +-
 .../samza/translation/WindowAssignTranslator.java  |    4 +-
 .../beam/runners/samza/util/FutureUtils.java       |   17 +
 .../samza/util/SamzaPipelineExceptionListener.java |   33 +
 .../runners/samza/runtime/AsyncDoFnRunnerTest.java |  171 ++
 .../SparkStructuredStreamingRunner.java            |    5 +-
 .../translation/helpers/EncoderFactory.java        |   12 +-
 .../translation/utils/ScalaInterop.java            |   40 +
 runners/spark/3/job-server/build.gradle            |    9 +
 .../spark/structuredstreaming/Constants.java       |   25 -
 .../SparkStructuredStreamingRunner.java            |   56 +-
 .../io/BoundedDatasetFactory.java                  |  324 +++
 .../spark/structuredstreaming/io/package-info.java |   20 +
 .../metrics/WithMetricsSupport.java                |    2 +-
 .../translation/AbstractTranslationContext.java    |  235 --
 .../translation/PipelineTranslator.java            |   86 +-
 .../translation/SparkSessionFactory.java           |    1 +
 .../translation/TransformTranslator.java           |  198 +-
 .../translation/TranslationContext.java            |  124 +-
 .../translation/batch/AggregatorCombiner.java      |  270 ---
 .../translation/batch/Aggregators.java             |  591 +++++
 .../batch/CombineGloballyTranslatorBatch.java      |  121 ++
 .../batch/CombinePerKeyTranslatorBatch.java        |  181 +-
 .../CreatePCollectionViewTranslatorBatch.java      |   24 +-
 .../translation/batch/DatasetSourceBatch.java      |  240 --
 .../translation/batch/DoFnFunction.java            |  164 --
 .../batch/DoFnMapPartitionsFactory.java            |  224 ++
 .../translation/batch/FlattenTranslatorBatch.java  |   60 +-
 .../translation/batch/GroupByKeyHelpers.java       |  106 +
 .../batch/GroupByKeyTranslatorBatch.java           |  298 ++-
 .../translation/batch/ImpulseTranslatorBatch.java  |   26 +-
 .../translation/batch/ParDoTranslatorBatch.java    |  315 ++-
 .../translation/batch/PipelineTranslatorBatch.java |   34 +-
 .../translation/batch/ProcessContext.java          |  138 --
 .../batch/ReadSourceTranslatorBatch.java           |   76 +-
 .../batch/ReshuffleTranslatorBatch.java            |   30 +-
 .../batch/WindowAssignTranslatorBatch.java         |   90 +-
 .../translation/helpers/CoderHelpers.java          |   10 +-
 .../translation/helpers/EncoderFactory.java        |   71 +-
 .../translation/helpers/EncoderHelpers.java        |  546 ++++-
 .../translation/helpers/KVHelpers.java             |   31 -
 .../translation/helpers/MultiOutputCoder.java      |   84 -
 .../translation/helpers/RowHelpers.java            |   75 -
 .../translation/helpers/SchemaHelpers.java         |   39 -
 .../translation/helpers/WindowingHelpers.java      |   82 -
 .../streaming/DatasetSourceStreaming.java          |   25 -
 .../streaming/PipelineTranslatorStreaming.java     |   93 -
 .../streaming/ReadSourceTranslatorStreaming.java   |   87 -
 .../translation/streaming/package-info.java        |   20 -
 .../translation/utils/ScalaInterop.java            |  114 +
 .../aggregators/metrics/sink/InMemoryMetrics.java  |    2 +-
 .../translation/batch/AggregatorsTest.java         |  370 ++++
 .../translation/batch/CombineGloballyTest.java     |  155 ++
 .../translation/batch/CombinePerKeyTest.java       |  180 ++
 .../translation/batch/CombineTest.java             |  186 --
 .../translation/batch/ComplexSourceTest.java       |   15 +-
 .../translation/batch/FlattenTest.java             |   12 +-
 .../translation/batch/GroupByKeyTest.java          |  152 +-
 .../translation/batch/ParDoTest.java               |   54 +-
 .../translation/batch/SimpleSourceTest.java        |   12 +-
 .../translation/batch/WindowAssignTest.java        |   12 +-
 .../translation/helpers/EncoderHelpersTest.java    |  210 +-
 runners/spark/spark_runner.gradle                  |   60 +-
 .../runners/spark/SparkCommonPipelineOptions.java  |    6 +
 .../beam/runners/spark/SparkPipelineOptions.java   |    6 -
 .../beam/runners/spark/SparkPipelineRunner.java    |    8 +-
 .../org/apache/beam/runners/spark/SparkRunner.java |    6 +-
 .../apache/beam/runners/spark/TestSparkRunner.java |    6 +-
 .../streaming/StreamingTransformTranslator.java    |   26 +-
 .../spark/translation/streaming/TestDStream.java   |  142 ++
 .../runners/spark/SparkRunnerDebuggerTest.java     |    2 +-
 .../metrics/sink/SparkMetricsSinkTest.java         |    2 +-
 .../spark/metrics/SparkMetricsPusherTest.java      |    2 +-
 .../translation/streaming/CreateStreamTest.java    |    2 +-
 .../ResumeFromCheckpointStreamingTest.java         |    2 +-
 .../streaming/SparkCoGroupByKeyStreamingTest.java  |    2 +-
 .../streaming/StreamingSourceMetricsTest.java      |    2 +-
 scripts/ci/ci_check_are_gcp_variables_set.sh       |    4 +-
 scripts/ci/ci_check_git_branch.sh                  |   33 +
 scripts/ci/release/comment_pr_trigger_phrases.sh   |   26 +
 .../test/resources/jenkins_trigger_phrases.txt     |   19 +
 scripts/ci/release/test/resources/mass_comment.txt |  103 +
 sdks/go.mod                                        |   28 +-
 sdks/go.sum                                        |   63 +-
 sdks/go/examples/contains/contains.go              |    5 +
 .../debugging_wordcount/debugging_wordcount.go     |    5 +
 sdks/go/examples/forest/forest.go                  |    4 +
 sdks/go/examples/grades/grades.go                  |    6 +
 .../minimal_wordcount/minimal_wordcount.go         |    5 +
 sdks/go/examples/multiout/multiout.go              |    5 +
 sdks/go/examples/snippets/04transforms.go          |  157 ++
 sdks/go/examples/stringsplit/stringsplit.go        |    5 +
 .../windowed_wordcount/windowed_wordcount.go       |    7 +
 sdks/go/examples/wordcount/wordcount.go            |    5 +
 sdks/go/examples/yatzy/yatzy.go                    |    5 +
 sdks/go/pkg/beam/combine_test.go                   |    4 +
 sdks/go/pkg/beam/core/graph/coder/coder.go         |   12 +-
 sdks/go/pkg/beam/core/runtime/exec/coder.go        |  101 +-
 sdks/go/pkg/beam/core/runtime/exec/coder_test.go   |   20 -
 sdks/go/pkg/beam/core/runtime/exec/timers_test.go  |   96 +
 sdks/go/pkg/beam/core/runtime/graphx/coder.go      |   16 +-
 sdks/go/pkg/beam/core/runtime/graphx/translate.go  |   14 +
 sdks/go/pkg/beam/core/runtime/harness/harness.go   |   43 +-
 sdks/go/pkg/beam/core/runtime/xlangx/expand.go     |   96 +-
 .../go/pkg/beam/core/runtime/xlangx/expand_test.go |   39 +
 .../core/runtime/xlangx/expansionx/download.go     |   72 +-
 .../beam/core/runtime/xlangx/expansionx/process.go |   21 +-
 .../core/runtime/xlangx/expansionx/process_test.go |    4 +-
 sdks/go/pkg/beam/core/runtime/xlangx/registry.go   |   17 +-
 sdks/go/pkg/beam/core/typex/class.go               |    2 +-
 sdks/go/pkg/beam/core/typex/fulltype.go            |    2 +
 sdks/go/pkg/beam/core/typex/special.go             |   20 +
 .../beam/model/fnexecution_v1/beam_fn_api.pb.go    |  107 +-
 .../model/fnexecution_v1/beam_fn_api_grpc.pb.go    |    2 +-
 .../model/fnexecution_v1/beam_provision_api.pb.go  |    2 +-
 .../fnexecution_v1/beam_provision_api_grpc.pb.go   |    2 +-
 .../model/jobmanagement_v1/beam_artifact_api.pb.go |    2 +-
 .../jobmanagement_v1/beam_artifact_api_grpc.pb.go  |    2 +-
 .../jobmanagement_v1/beam_expansion_api.pb.go      |  129 +-
 .../jobmanagement_v1/beam_expansion_api_grpc.pb.go |    2 +-
 .../beam/model/jobmanagement_v1/beam_job_api.pb.go |    2 +-
 .../model/jobmanagement_v1/beam_job_api_grpc.pb.go |    2 +-
 .../beam/model/pipeline_v1/beam_runner_api.pb.go   | 2242 +++++++++----------
 .../model/pipeline_v1/beam_runner_api_grpc.pb.go   |    2 +-
 sdks/go/pkg/beam/model/pipeline_v1/endpoints.pb.go |    2 +-
 .../model/pipeline_v1/external_transforms.pb.go    |    2 +-
 sdks/go/pkg/beam/model/pipeline_v1/metrics.pb.go   |    2 +-
 sdks/go/pkg/beam/model/pipeline_v1/schema.pb.go    |  732 ++++---
 .../model/pipeline_v1/standard_window_fns.pb.go    |    2 +-
 sdks/go/pkg/beam/partition_test.go                 |    4 +
 sdks/go/pkg/beam/runners/direct/direct_test.go     |   59 +
 sdks/go/pkg/beam/runners/direct/gbk.go             |   43 +-
 sdks/go/pkg/beam/schema.go                         |   17 +
 .../go/pkg/beam/transforms/filter/distinct_test.go |    6 +
 sdks/go/pkg/beam/transforms/filter/filter_test.go  |    4 +
 .../beam/transforms/xlang/dataframe/dataframe.go   |   87 +
 .../pkg/beam/transforms/xlang/python/external.go   |  129 ++
 sdks/go/test/integration/integration.go            |    1 +
 .../transforms/xlang/dataframe/dataframe.go        |   48 +
 .../transforms/xlang/dataframe/dataframe_test.go   |   60 +
 .../go/test/regression/coders/fromyaml/fromyaml.go |   84 +-
 sdks/go/test/regression/lperror.go                 |    2 +-
 sdks/go/test/run_validatesrunner_tests.sh          |    7 +-
 sdks/java/container/Dockerfile                     |    4 +-
 sdks/java/container/agent/build.gradle             |   64 +
 .../org/apache/beam/agent/OpenModuleAgent.java     |   64 +
 sdks/java/container/boot.go                        |    5 +
 sdks/java/container/common.gradle                  |   14 +
 sdks/java/container/java11/build.gradle            |    4 +
 sdks/java/container/java11/option-jamm.json        |    5 +-
 sdks/java/container/java17/build.gradle            |    6 +-
 sdks/java/container/java17/option-jamm.json        |    5 +-
 .../container/license_scripts/dep_urls_java.yaml   |    2 +-
 sdks/java/core/jmh/build.gradle                    |    2 +
 .../beam/sdk/jmh/io/TextSourceBenchmark.java       |  117 +
 .../org/apache/beam/sdk/jmh/io/package-info.java   |   20 +
 .../java/org/apache/beam/sdk/io/AvroSource.java    |  343 +--
 .../java/org/apache/beam/sdk/io/TextSource.java    |  373 +++-
 .../apache/beam/sdk/options/ExecutorOptions.java   |   59 +
 .../apache/beam/sdk/options/SdkHarnessOptions.java |   27 +-
 .../apache/beam/sdk/schemas/SchemaTranslation.java |  119 +-
 .../apache/beam/sdk/schemas/logicaltypes/Date.java |    3 +-
 .../beam/sdk/schemas/logicaltypes/DateTime.java    |    3 +-
 .../logicaltypes/FixedPrecisionNumeric.java        |  116 +
 .../apache/beam/sdk/schemas/logicaltypes/Time.java |    3 +-
 .../beam/sdk/transforms/PeriodicSequence.java      |   20 +
 .../java/org/apache/beam/sdk/util/NanoClock.java   |   39 +
 .../util/UnboundedScheduledExecutorService.java    |  504 +++++
 .../org/apache/beam/sdk/io/AvroSourceTest.java     |  166 --
 .../org/apache/beam/sdk/io/TextIOReadTest.java     |  180 +-
 .../sdk/schemas/logicaltypes/LogicalTypesTest.java |   48 +
 .../apache/beam/sdk/testing/TestStreamTest.java    |    7 +
 .../apache/beam/sdk/transforms/CombineFnsTest.java |    4 +
 .../org/apache/beam/sdk/transforms/FilterTest.java |    4 +
 .../beam/sdk/transforms/PeriodicSequenceTest.java  |   85 +-
 .../beam/sdk/util/FastNanoClockAndSleeper.java     |   46 +
 .../beam/sdk/util/FastNanoClockAndSleeperTest.java |   47 +
 .../UnboundedScheduledExecutorServiceTest.java     |  505 +++++
 .../extensions/gcp/auth/GcpCredentialFactory.java  |   35 +-
 .../sdk/extensions/gcp/options/GcpOptions.java     |   41 +-
 .../sdk/extensions/gcp/options/GcsOptions.java     |   43 +-
 .../beam/sdk/extensions/gcp/util/GcsUtil.java      |    4 +-
 .../sdk/extensions/gcp/GcpCoreApiSurfaceTest.java  |    3 +-
 .../gcp/util/FastNanoClockAndSleeper.java          |   47 -
 .../gcp/util/FastNanoClockAndSleeperTest.java      |   47 -
 .../beam/sdk/extensions/gcp/util/GcsUtilTest.java  |   23 +-
 .../gcp/util/RetryHttpRequestInitializerTest.java  |    6 +-
 .../beam/sdk/extensions/python/PythonService.java  |    2 +-
 .../sdk/extensions/python/bootstrap_beam_venv.py   |    6 +-
 .../fn/harness/jmh/ProcessBundleBenchmark.java     |    6 +-
 .../fn/harness/logging/BeamFnLoggingClient.java    |   17 +-
 sdks/java/io/amazon-web-services2/build.gradle     |    1 +
 .../apache/beam/sdk/io/aws2/coders/AwsCoders.java  |    9 +-
 .../io/aws2/kinesis/SimplifiedKinesisClient.java   |   13 +-
 .../sdk/io/aws2/schemas/AwsBuilderFactory.java     |   35 +
 .../sdk/io/aws2/schemas/AwsSchemaProvider.java     |  219 ++
 .../sdk/io/aws2/schemas/AwsSchemaRegistrar.java    |   32 +
 .../beam/sdk/io/aws2/schemas/AwsSchemaUtils.java   |  130 ++
 .../apache/beam/sdk/io/aws2/schemas/AwsTypes.java  |  297 +++
 .../beam/sdk/io/aws2/schemas/package-info.java     |   24 +
 .../sdk/io/aws2/sns/PublishResponseCoders.java     |    7 +-
 .../sdk/io/aws2/sns/SnsCoderProviderRegistrar.java |   39 -
 .../org/apache/beam/sdk/io/aws2/sns/SnsIO.java     |   19 +-
 .../beam/sdk/io/aws2/sns/SnsResponseCoder.java     |    7 +-
 .../apache/beam/sdk/io/aws2/sqs/MessageCoder.java  |   50 -
 .../sdk/io/aws2/sqs/MessageCoderRegistrar.java     |   37 -
 .../sdk/io/aws2/sqs/SendMessageRequestCoder.java   |   51 -
 .../aws2/sqs/SendMessageRequestCoderRegistrar.java |   38 -
 .../aws2/kinesis/SimplifiedKinesisClientTest.java  |   36 +-
 .../sdk/io/aws2/schemas/AwsSchemaProviderTest.java |  361 +++
 .../sdk/io/aws2/schemas/AwsSchemaUtilsTest.java    |   36 +
 .../apache/beam/sdk/io/aws2/schemas/Sample.java    |  341 +++
 .../org/apache/beam/sdk/io/aws2/sns/SnsIOTest.java |    2 +
 .../beam/sdk/io/common/DatabaseTestHelper.java     |    2 +-
 sdks/java/io/google-cloud-platform/build.gradle    |    4 +
 .../beam/sdk/io/gcp/bigquery/BatchLoads.java       |   11 +-
 .../beam/sdk/io/gcp/bigquery/BigQueryIO.java       |  143 +-
 .../sdk/io/gcp/bigquery/BigQueryQuerySource.java   |   10 +-
 .../io/gcp/bigquery/BigQueryQuerySourceDef.java    |    5 +-
 .../sdk/io/gcp/bigquery/BigQueryServicesImpl.java  |   35 +-
 .../sdk/io/gcp/bigquery/BigQuerySourceBase.java    |   44 +-
 .../sdk/io/gcp/bigquery/BigQuerySourceDef.java     |    6 +-
 .../sdk/io/gcp/bigquery/BigQueryTableSource.java   |   10 +-
 .../io/gcp/bigquery/BigQueryTableSourceDef.java    |    5 +-
 .../StorageApiDynamicDestinationsTableRow.java     |    7 +-
 .../gcp/common/GcpIoPipelineOptionsRegistrar.java  |    2 +
 .../sdk/io/gcp/firestore/FirestoreOptions.java     |   12 +
 .../beam/sdk/io/gcp/firestore/FirestoreV1.java     |  226 +-
 .../sdk/io/gcp/firestore/FirestoreV1ReadFn.java    |  121 +-
 .../sdk/io/gcp/firestore/FirestoreV1WriteFn.java   |    5 +-
 .../beam/sdk/io/gcp/pubsub/PubsubClient.java       |   10 +
 .../gcp/pubsub/PubsubCoderProviderRegistrar.java   |    5 +-
 .../beam/sdk/io/gcp/pubsub/PubsubGrpcClient.java   |   26 +-
 .../apache/beam/sdk/io/gcp/pubsub/PubsubIO.java    |  148 +-
 .../beam/sdk/io/gcp/pubsub/PubsubJsonClient.java   |   16 +-
 .../beam/sdk/io/gcp/pubsub/PubsubMessage.java      |   28 +-
 ...hAttributesAndMessageIdAndOrderingKeyCoder.java |   79 +
 .../beam/sdk/io/gcp/pubsub/PubsubMessages.java     |   10 +-
 .../beam/sdk/io/gcp/pubsub/PubsubTestClient.java   |   40 +
 .../sdk/io/gcp/pubsub/PubsubUnboundedSink.java     |   82 +-
 .../sdk/io/gcp/pubsub/PubsubUnboundedSource.java   |   38 +-
 .../beam/sdk/io/gcp/spanner/BatchSpannerRead.java  |    6 +-
 .../beam/sdk/io/gcp/spanner/SpannerAccessor.java   |    4 +
 .../beam/sdk/io/gcp/spanner/SpannerConfig.java     |   22 +-
 .../action/DataChangeRecordAction.java             |   12 +-
 .../action/QueryChangeStreamAction.java            |   10 +-
 .../sdk/io/gcp/bigquery/BigQueryIOReadTest.java    |  132 +-
 .../sdk/io/gcp/bigquery/BigQueryIOWriteTest.java   |    1 +
 .../io/gcp/bigquery/BigQueryServicesImplTest.java  |    8 +-
 .../gcp/bigquery/TableRowToStorageApiProtoIT.java  |    3 +
 .../sdk/io/gcp/firestore/BaseFirestoreFnTest.java  |   21 +-
 .../FirestoreV1FnBatchGetDocumentsTest.java        |   43 +-
 .../FirestoreV1FnListCollectionIdsTest.java        |   39 +-
 .../firestore/FirestoreV1FnListDocumentsTest.java  |   37 +-
 .../firestore/FirestoreV1FnPartitionQueryTest.java |   41 +-
 .../gcp/firestore/FirestoreV1FnRunQueryTest.java   |   42 +-
 ...artitionQueryResponseToRunQueryRequestTest.java |   83 +-
 .../sdk/io/gcp/firestore/it/BaseFirestoreIT.java   |  306 ++-
 .../gcp/firestore/it/FirestoreTestingHelper.java   |   56 +-
 .../sdk/io/gcp/firestore/it/FirestoreV1IT.java     |    3 +-
 .../pubsub/PubSubWritePayloadTranslationTest.java  |   12 +-
 .../beam/sdk/io/gcp/pubsub/PubsubIOTest.java       |   88 +
 ...ributesAndMessageIdAndOrderingKeyCoderTest.java |   64 +
 .../sdk/io/gcp/pubsub/PubsubUnboundedSinkTest.java |   12 +-
 .../sdk/io/gcp/spanner/SpannerAccessorTest.java    |   42 +
 .../action/DataChangeRecordActionTest.java         |   12 +-
 .../action/QueryChangeStreamActionTest.java        |   45 +-
 .../dofn/ReadChangeStreamPartitionDoFnTest.java    |    2 +-
 .../java/org/apache/beam/sdk/io/jdbc/JdbcIO.java   |   24 +-
 .../java/org/apache/beam/sdk/io/jdbc/JdbcUtil.java |    7 +
 .../org/apache/beam/sdk/io/jdbc/LogicalTypes.java  |   44 +-
 .../org/apache/beam/sdk/io/jdbc/SchemaUtil.java    |   23 +-
 .../java/org/apache/beam/sdk/io/jdbc/JdbcIOIT.java |   34 +-
 .../org/apache/beam/sdk/io/jdbc/JdbcIOTest.java    |   11 +-
 .../beam/sdk/io/kafka/KafkaCommitOffset.java       |    1 +
 .../beam/sdk/io/kafka/KafkaUnboundedReader.java    |    8 +-
 sdks/java/io/sparkreceiver/build.gradle            |    8 +
 .../ReadFromSparkReceiverWithOffsetDoFn.java       |  223 ++
 .../beam/sdk/io/sparkreceiver/SparkConsumer.java   |   38 +
 .../beam/sdk/io/sparkreceiver/SparkReceiverIO.java |  166 ++
 .../sdk/io/sparkreceiver/WrappedSupervisor.java    |   15 +-
 .../io/sparkreceiver/CustomReceiverWithOffset.java |   91 +
 .../sdk/io/sparkreceiver/SparkReceiverIOTest.java  |  156 ++
 .../maven-archetypes/examples/generate-sources.sh  |   10 +
 .../src/main/resources/archetype-resources/pom.xml |    7 +
 .../nexmark/src/main/resources/log4j.properties    |    2 +-
 .../testutils/publishing/InfluxDBPublisher.java    |   20 +-
 sdks/java/testing/tpcds/build.gradle               |   29 +-
 sdks/python/apache_beam/__init__.py                |    2 +-
 sdks/python/apache_beam/coders/coder_impl.pxd      |   37 +-
 sdks/python/apache_beam/coders/coder_impl.py       |  194 +-
 .../apache_beam/coders/coder_impl_row_encoders.pyx |  168 ++
 sdks/python/apache_beam/coders/coders.py           |   41 +-
 .../coders/coders_property_based_test.py           |    3 +-
 .../apache_beam/coders/coders_test_common.py       |   23 +
 sdks/python/apache_beam/coders/row_coder.py        |    3 +
 sdks/python/apache_beam/coders/row_coder_test.py   |   38 +
 .../apache_beam/coders/standard_coders_test.py     |   36 +
 sdks/python/apache_beam/dataframe/frames.py        |    8 +-
 sdks/python/apache_beam/dataframe/frames_test.py   |   69 +
 .../examples/complete/game/user_score.py           |    7 +
 .../examples/cookbook/bigtableio_it_test.py        |    2 +-
 .../examples/cookbook/combiners_test.py            |    4 +
 .../apache_beam/examples/cookbook/filters_test.py  |    4 +
 .../examples/cookbook/multiple_output_pardo.py     |    5 +
 .../apache_beam/examples/inference/README.md       |   63 +-
 .../clustering_pipeline}/__init__.py               |    0
 .../clustering_pipeline/config.py                  |   28 +
 .../online_clustering/clustering_pipeline/main.py  |  122 ++
 .../clustering_pipeline/pipeline}/__init__.py      |    0
 .../clustering_pipeline/pipeline/options.py        |   63 +
 .../pipeline/transformations.py                    |  197 ++
 .../online_clustering/clustering_pipeline/setup.py |   44 +
 .../write_data_to_pubsub_pipeline}/__init__.py     |    0
 .../write_data_to_pubsub_pipeline/config.py        |   23 +
 .../write_data_to_pubsub_pipeline/main.py          |   89 +
 .../pipeline}/__init__.py                          |    0
 .../pipeline/options.py                            |   62 +
 .../pipeline/utils.py                              |   67 +
 .../write_data_to_pubsub_pipeline/setup.py         |   42 +
 .../inference/tensorrt_object_detection.py         |  257 +++
 .../examples/streaming_wordcount_it_test.py        |    5 +
 sdks/python/apache_beam/examples/wordcount.py      |    6 +
 .../apache_beam/examples/wordcount_debugging.py    |    5 +
 .../apache_beam/examples/wordcount_it_test.py      |   41 +-
 .../apache_beam/examples/wordcount_minimal.py      |    5 +
 .../apache_beam/examples/wordcount_minimal_test.py |    4 +
 sdks/python/apache_beam/examples/wordcount_test.py |    4 +
 .../apache_beam/examples/wordcount_with_metrics.py |    5 +
 sdks/python/apache_beam/internal/gcp/auth.py       |   28 +-
 .../io/external/xlang_jdbcio_it_test.py            |   26 +-
 .../io/gcp/big_query_query_to_table_it_test.py     |   65 -
 sdks/python/apache_beam/io/gcp/bigquery.py         |  349 +--
 .../apache_beam/io/gcp/bigquery_file_loads_test.py |   15 +-
 sdks/python/apache_beam/io/gcp/bigquery_test.py    |  166 +-
 sdks/python/apache_beam/io/gcp/bigquery_tools.py   |  195 +-
 .../apache_beam/io/gcp/bigquery_tools_test.py      |  463 +---
 .../apache_beam/io/gcp/experimental/spannerio.py   |    7 +-
 .../io/gcp/experimental/spannerio_test.py          |  422 ++--
 .../apache_beam/io/gcp/pubsub_io_perf_test.py      |    8 +-
 sdks/python/apache_beam/metrics/cells.py           |    5 +-
 sdks/python/apache_beam/metrics/execution.py       |    5 +
 sdks/python/apache_beam/metrics/metric_test.py     |    4 +
 sdks/python/apache_beam/ml/inference/base_test.py  |   57 +
 .../apache_beam/ml/inference/pytorch_inference.py  |   10 +-
 .../apache_beam/ml/inference/tensorrt_inference.py |  290 +++
 .../ml/inference/tensorrt_inference_test.py        |  292 +++
 .../python/apache_beam/options/pipeline_options.py |   48 +-
 sdks/python/apache_beam/portability/common_urns.py |    1 +
 ...low_exercise_streaming_metrics_pipeline_test.py |    4 +
 .../runners/dataflow/dataflow_runner.py            |   74 +-
 .../runners/dataflow/dataflow_runner_test.py       |  112 +-
 .../runners/dataflow/internal/apiclient.py         |    2 +-
 .../runners/dataflow/internal/apiclient_test.py    |    2 +-
 .../apache_beam/runners/dataflow/internal/names.py |    4 +-
 .../runners/dataflow/ptransform_overrides.py       |  135 --
 .../dataproc/dataproc_cluster_manager.py           |   70 +-
 .../dataproc/dataproc_cluster_manager_test.py      |    7 +-
 .../runners/interactive/dataproc/types.py          |    2 +-
 .../apache-beam-jupyterlab-sidepanel/README.md     |    2 +-
 .../apache-beam-jupyterlab-sidepanel/package.json  |    2 +-
 .../src/__tests__/clusters/Clusters.test.tsx       |   23 +-
 .../src/clusters/Clusters.tsx                      |   28 +-
 .../runners/interactive/interactive_beam_test.py   |    4 +
 .../runners/interactive/interactive_environment.py |    6 +-
 .../runners/interactive/interactive_runner.py      |   13 +-
 .../runners/interactive/interactive_runner_test.py |   27 +
 .../interactive_environment_inspector_test.py      |    2 +
 .../runners/interactive/pipeline_fragment.py       |    9 +-
 .../apache_beam/runners/interactive/sql/utils.py   |    3 +-
 .../runners/interactive/sql/utils_test.py          |    2 +-
 .../runners/interactive/testing/mock_env.py        |    3 +-
 .../apache_beam/runners/interactive/utils.py       |    3 +-
 .../portability/fn_api_runner/fn_runner_test.py    |    3 +-
 .../apache_beam/runners/worker/sdk_worker.py       |   47 +-
 .../apache_beam/runners/worker/sdk_worker_main.py  |   28 +-
 .../runners/worker/sdk_worker_main_test.py         |   35 +-
 .../apache_beam/runners/worker/sdk_worker_test.py  |    2 +-
 .../apache_beam/runners/worker/statecache.py       |  283 ++-
 .../apache_beam/runners/worker/statecache_test.py  |  321 ++-
 .../apache_beam/testing/load_tests/build.gradle    |    1 +
 .../testing/load_tests/load_test_metrics_utils.py  |    2 +-
 .../apache_beam/tools/coders_microbenchmark.py     |   54 +
 .../apache_beam/transforms/batch_dofn_test.py      |    3 +-
 sdks/python/apache_beam/transforms/combiners.py    |   17 +-
 .../apache_beam/transforms/ptransform_test.py      |   34 +-
 sdks/python/apache_beam/transforms/util.py         |    3 +-
 .../typehints/native_type_compatibility.py         |    6 +
 sdks/python/apache_beam/typehints/opcodes.py       |   10 +-
 sdks/python/apache_beam/typehints/row_type.py      |    3 +-
 sdks/python/apache_beam/typehints/schemas.py       |  112 +-
 .../apache_beam/typehints/sharded_key_type.py      |    8 +-
 .../apache_beam/typehints/sharded_key_type_test.py |    8 +-
 .../apache_beam/typehints/trivial_inference.py     |   18 +-
 .../typehints/trivial_inference_test.py            |   34 +
 .../python/apache_beam/typehints/typecheck_test.py |    6 +-
 .../apache_beam/typehints/typed_pipeline_test.py   |   20 +-
 sdks/python/apache_beam/typehints/typehints.py     |   66 +-
 .../python/apache_beam/typehints/typehints_test.py |  111 +-
 .../apache_beam/utils/multi_process_shared.py      |  242 +++
 .../apache_beam/utils/multi_process_shared_test.py |  113 +
 sdks/python/apache_beam/utils/subprocess_server.py |    2 +-
 sdks/python/build-requirements.txt                 |    4 +
 .../container/base_image_requirements_manual.txt   |    7 +-
 sdks/python/container/build.gradle                 |    3 +
 .../container/py310/base_image_requirements.txt    |  158 ++
 sdks/python/container/py310/build.gradle           |   28 +
 .../container/py37/base_image_requirements.txt     |  117 +-
 .../container/py38/base_image_requirements.txt     |  123 +-
 .../container/py39/base_image_requirements.txt     |  123 +-
 sdks/python/container/run_generate_requirements.sh |    2 +-
 sdks/python/findSupportedPython.groovy             |   80 -
 sdks/python/gen_protos.py                          |    4 +-
 sdks/python/scripts/generate_pydoc.sh              |    2 +
 sdks/python/scripts/run_integration_test.sh        |   10 +
 sdks/python/setup.py                               |   64 +-
 .../containers/tensorrt_runinference/README.md     |   24 +
 .../tensorrt_runinference/tensor_rt.dockerfile     |   35 +
 sdks/python/test-suites/dataflow/common.gradle     |   39 +
 .../python/test-suites/dataflow/py310/build.gradle |   24 +
 sdks/python/test-suites/direct/common.gradle       |    2 +
 sdks/python/test-suites/direct/py310/build.gradle  |   24 +
 sdks/python/test-suites/gradle.properties          |   32 +-
 .../python/test-suites/portable/py310/build.gradle |   26 +
 sdks/python/test-suites/tox/py310/build.gradle     |   32 +
 sdks/python/tox.ini                                |   16 +-
 .../typescript/src/apache_beam/coders/row_coder.ts |  100 +-
 .../src/apache_beam/internal/environments.ts       |    3 +-
 .../src/apache_beam/transforms/external.ts         |   28 +-
 .../src/apache_beam/transforms/python.ts           |   22 +-
 .../src/apache_beam/transforms/window.ts           |    1 +
 .../src/apache_beam/transforms/windowings.ts       |   49 +
 sdks/typescript/test/docs/programming_guide.ts     |  306 ++-
 settings.gradle.kts                                |    8 +
 website/www/check-links.sh                         |    4 +-
 website/www/site/assets/js/language-switch-v2.js   |  268 ++-
 .../www/site/assets/scss/_capability-matrix.scss   |    4 +-
 website/www/site/assets/scss/_global.sass          |   15 +-
 website/www/site/assets/scss/_lists.scss           |    4 +
 website/www/site/assets/scss/_local.scss           |   22 +
 website/www/site/assets/scss/_playground.sass      |   11 +
 website/www/site/assets/scss/_section-nav.scss     |    1 -
 .../www/site/assets/scss/_syntax-highlighting.scss |    7 -
 website/www/site/assets/scss/main.scss             |    1 +
 website/www/site/config.toml                       |    2 +-
 .../content/en/blog/adding-data-sources-to-sql.md  |    2 +-
 website/www/site/content/en/blog/beam-2.42.0.md    |  127 ++
 .../en/blog/dataframe-api-preview-available.md     |    2 +-
 .../site/content/en/blog/graduation-media-recap.md |    4 +-
 website/www/site/content/en/blog/hop-web-cloud.md  |  304 +++
 .../site/content/en/blog/python-sdk-now-public.md  |    4 +-
 .../en/blog/review-input-streaming-connectors.md   |    2 +-
 website/www/site/content/en/blog/six-months.md     |    2 +-
 .../www/site/content/en/community/case-study.md    |    2 +-
 .../site/content/en/community/youtube-channel.md   |    2 +-
 .../site/content/en/contribute/committer-guide.md  |    2 +-
 .../site/content/en/contribute/release-guide.md    |    7 +-
 .../www/site/content/en/documentation/basics.md    |    4 +-
 .../en/documentation/dsls/sql/extensions/joins.md  |    2 +-
 .../site/content/en/documentation/io/built-in.md   |    2 +-
 .../documentation/io/built-in/google-bigquery.md   |    2 +-
 .../content/en/documentation/io/built-in/hadoop.md |    4 +-
 .../en/documentation/io/built-in/hcatalog.md       |    2 +-
 .../en/documentation/io/built-in/snowflake.md      |   16 +-
 .../site/content/en/documentation/io/connectors.md |    4 +-
 .../en/documentation/io/developing-io-overview.md  |    2 +-
 .../site/content/en/documentation/io/testing.md    |    2 +-
 .../content/en/documentation/ml/data-processing.md |  116 +
 .../en/documentation/ml/multi-model-pipelines.md   |  101 +
 .../en/documentation/ml/online-clustering.md       |  219 ++
 .../site/content/en/documentation/ml/overview.md   |   65 +
 .../en/documentation/patterns/custom-windows.md    |    2 +-
 ...lements-for-efficient-external-service-calls.md |    2 +-
 .../en/documentation/patterns/side-inputs.md       |    2 +-
 .../documentation/pipelines/test-your-pipeline.md  |    2 +-
 .../content/en/documentation/programming-guide.md  |  251 ++-
 .../runners/capability-matrix/_index.md            |    2 +-
 .../content/en/documentation/runners/direct.md     |    2 +
 .../site/content/en/documentation/runners/flink.md |   10 +-
 .../site/content/en/documentation/runners/jet.md   |   30 +-
 .../content/en/documentation/runners/jstorm.md     |    2 +-
 .../site/content/en/documentation/runners/samza.md |    2 +-
 .../site/content/en/documentation/runners/spark.md |    4 +-
 .../content/en/documentation/runners/twister2.md   |    2 +-
 .../en/documentation/runtime/environments.md       |    2 +
 .../sdks/java-multi-language-pipelines.md          |    4 +-
 .../en/documentation/sdks/java-thirdparty.md       |    2 +-
 .../content/en/documentation/sdks/java/euphoria.md |   12 +-
 .../en/documentation/sdks/java/testing/nexmark.md  |    2 +-
 .../en/documentation/sdks/java/testing/tpcds.md    |    6 +-
 .../en/documentation/sdks/python-dependencies.md   |    2 +-
 .../documentation/sdks/python-machine-learning.md  |   15 +-
 .../en/documentation/sdks/python-streaming.md      |    2 +-
 .../transforms/java/elementwise/pardo.md           |    2 +-
 website/www/site/content/en/get-started/_index.md  |    6 +-
 .../site/content/en/get-started/beam-overview.md   |    6 +-
 .../www/site/content/en/get-started/downloads.md   |   10 +-
 .../www/site/content/en/get-started/from-spark.md  |    2 +-
 .../en/get-started/mobile-gaming-example.md        |    2 +-
 .../site/content/en/get-started/quickstart-java.md |    4 +-
 .../site/content/en/get-started/quickstart/java.md |  195 ++
 .../en/get-started/resources/learning-resources.md |    2 +-
 .../get-started/resources/videos-and-podcasts.md   |   22 +-
 .../content/en/get-started/wordcount-example.md    |    2 +-
 website/www/site/data/en/join_beam.yaml            |    1 +
 website/www/site/data/io_matrix.yaml               |   53 +-
 .../site/layouts/contribute/arrow_template.html    |    2 +-
 website/www/site/layouts/documentation/baseof.html |    2 +-
 website/www/site/layouts/languages/baseof.html     |    1 -
 website/www/site/layouts/partials/footer.html      |    2 +-
 website/www/site/layouts/partials/header.html      |   20 +-
 .../partials/section-menu/en/documentation.html    |   10 +
 .../partials/section-menu/en/get-started.html      |    4 +-
 .../www/site/layouts/runners/arrow_template.html   |    2 +-
 .../site/layouts/shortcodes/language-switcher.html |    8 +-
 .../www/site/layouts/shortcodes/playground.html    |   49 +
 .../layouts/shortcodes/playground_snippet.html     |   12 +
 website/www/site/layouts/shortcodes/version.html   |   25 +
 .../blog/hop-web-cloud/hop-web-cloud-image1.png    |  Bin 0 -> 3617 bytes
 .../blog/hop-web-cloud/hop-web-cloud-image2.png    |  Bin 0 -> 35106 bytes
 .../blog/hop-web-cloud/hop-web-cloud-image3.png    |  Bin 0 -> 35049 bytes
 .../blog/hop-web-cloud/hop-web-cloud-image4.png    |  Bin 0 -> 17595 bytes
 .../blog/hop-web-cloud/hop-web-cloud-image5.png    |  Bin 0 -> 27628 bytes
 .../blog/hop-web-cloud/hop-web-cloud-image6.png    |  Bin 0 -> 32022 bytes
 website/www/site/static/images/ml-workflows.svg    |   17 +
 1444 files changed, 52235 insertions(+), 27843 deletions(-)
 create mode 100644 .github/actions/common-rc-validation/action.yaml
 create mode 100644 .github/actions/setup-gh-cli-linux/action.yml
 create mode 100644 .github/workflows/assign_milestone.yml
 create mode 100644 .github/workflows/playground_examples_ci.yml
 create mode 100644 .github/workflows/playground_examples_reusable.yml
 create mode 100644 .github/workflows/run_rc_validation.yml
 create mode 100644 .github/workflows/tour_of_beam_examples_ci.yml
 create mode 100644 .github/workflows/verify_release_build.yml
 create mode 100644 .test-infra/jenkins/job_Java_Jmh.groovy
 create mode 100644 .test-infra/metrics/grafana/dashboards/perftests_metrics/Python_ML_RunInference_Benchmark_Tests.json
 create mode 100644 examples/java/src/main/java/org/apache/beam/examples/multilanguage/SklearnMnistClassification.java
 create mode 100644 examples/notebooks/beam-ml/README.md
 delete mode 100644 examples/notebooks/beam-ml/run_inference_basic.ipynb
 create mode 100644 examples/notebooks/beam-ml/run_inference_multi_model.ipynb
 create mode 100644 examples/notebooks/beam-ml/run_inference_pytorch.ipynb
 create mode 100644 examples/notebooks/beam-ml/run_inference_sklearn.ipynb
 create mode 100644 examples/notebooks/beam-ml/run_inference_tensorflow.ipynb
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Count/__init__.py
 delete mode 100644 learning/katas/python/Common Transforms/Aggregation/Count/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Common Transforms/Aggregation/Count/tests.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Count/tests/__init__.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Count/tests/test_task.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Largest/__init__.py
 delete mode 100644 learning/katas/python/Common Transforms/Aggregation/Largest/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Common Transforms/Aggregation/Largest/tests.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Largest/tests/__init__.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Largest/tests/test_task.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Mean/__init__.py
 delete mode 100644 learning/katas/python/Common Transforms/Aggregation/Mean/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Common Transforms/Aggregation/Mean/tests.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Mean/tests/__init__.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Mean/tests/test_task.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Smallest/__init__.py
 delete mode 100644 learning/katas/python/Common Transforms/Aggregation/Smallest/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Common Transforms/Aggregation/Smallest/tests.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Smallest/tests/__init__.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Smallest/tests/test_task.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Sum/__init__.py
 delete mode 100644 learning/katas/python/Common Transforms/Aggregation/Sum/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Common Transforms/Aggregation/Sum/tests.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Sum/tests/__init__.py
 create mode 100644 learning/katas/python/Common Transforms/Aggregation/Sum/tests/test_task.py
 delete mode 100644 learning/katas/python/Common Transforms/Aggregation/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/Common Transforms/Filter/Filter/__init__.py
 delete mode 100644 learning/katas/python/Common Transforms/Filter/Filter/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Common Transforms/Filter/Filter/tests.py
 create mode 100644 learning/katas/python/Common Transforms/Filter/Filter/tests/__init__.py
 create mode 100644 learning/katas/python/Common Transforms/Filter/Filter/tests/test_task.py
 create mode 100644 learning/katas/python/Common Transforms/Filter/ParDo/__init__.py
 delete mode 100644 learning/katas/python/Common Transforms/Filter/ParDo/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Common Transforms/Filter/ParDo/tests.py
 create mode 100644 learning/katas/python/Common Transforms/Filter/ParDo/tests/__init__.py
 create mode 100644 learning/katas/python/Common Transforms/Filter/ParDo/tests/test_task.py
 delete mode 100644 learning/katas/python/Common Transforms/Filter/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/Common Transforms/WithKeys/WithKeys/__init__.py
 delete mode 100644 learning/katas/python/Common Transforms/WithKeys/WithKeys/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Common Transforms/WithKeys/WithKeys/tests.py
 create mode 100644 learning/katas/python/Common Transforms/WithKeys/WithKeys/tests/__init__.py
 create mode 100644 learning/katas/python/Common Transforms/WithKeys/WithKeys/tests/test_task.py
 delete mode 100644 learning/katas/python/Common Transforms/WithKeys/lesson-remote-info.yaml
 delete mode 100644 learning/katas/python/Common Transforms/section-remote-info.yaml
 create mode 100644 learning/katas/python/Core Transforms/Branching/Branching/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Branching/Branching/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Branching/Branching/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Branching/Branching/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Branching/Branching/tests/test_task.py
 delete mode 100644 learning/katas/python/Core Transforms/Branching/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/Core Transforms/CoGroupByKey/CoGroupByKey/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/CoGroupByKey/CoGroupByKey/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/CoGroupByKey/CoGroupByKey/tests.py
 create mode 100644 learning/katas/python/Core Transforms/CoGroupByKey/CoGroupByKey/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/CoGroupByKey/CoGroupByKey/tests/test_task.py
 delete mode 100644 learning/katas/python/Core Transforms/CoGroupByKey/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/Core Transforms/Combine/Combine PerKey/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Combine/Combine PerKey/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Combine/Combine PerKey/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Combine/Combine PerKey/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Combine/Combine PerKey/tests/test_task.py
 create mode 100644 learning/katas/python/Core Transforms/Combine/CombineFn/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Combine/CombineFn/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Combine/CombineFn/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Combine/CombineFn/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Combine/CombineFn/tests/test_task.py
 create mode 100644 learning/katas/python/Core Transforms/Combine/Simple Function/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Combine/Simple Function/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Combine/Simple Function/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Combine/Simple Function/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Combine/Simple Function/tests/test_task.py
 delete mode 100644 learning/katas/python/Core Transforms/Combine/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/Core Transforms/Composite Transform/Composite Transform/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Composite Transform/Composite Transform/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Composite Transform/Composite Transform/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Composite Transform/Composite Transform/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Composite Transform/Composite Transform/tests/test_task.py
 delete mode 100644 learning/katas/python/Core Transforms/Composite Transform/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/Core Transforms/Flatten/Flatten/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Flatten/Flatten/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Flatten/Flatten/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Flatten/Flatten/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Flatten/Flatten/tests/test_task.py
 delete mode 100644 learning/katas/python/Core Transforms/Flatten/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/Core Transforms/GroupByKey/GroupByKey/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/GroupByKey/GroupByKey/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/GroupByKey/GroupByKey/tests.py
 create mode 100644 learning/katas/python/Core Transforms/GroupByKey/GroupByKey/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/GroupByKey/GroupByKey/tests/test_task.py
 delete mode 100644 learning/katas/python/Core Transforms/GroupByKey/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/Core Transforms/Map/FlatMap/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Map/FlatMap/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Map/FlatMap/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Map/FlatMap/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Map/FlatMap/tests/test_task.py
 create mode 100644 learning/katas/python/Core Transforms/Map/Map/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Map/Map/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Map/Map/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Map/Map/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Map/Map/tests/test_task.py
 create mode 100644 learning/katas/python/Core Transforms/Map/ParDo OneToMany/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Map/ParDo OneToMany/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Map/ParDo OneToMany/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Map/ParDo OneToMany/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Map/ParDo OneToMany/tests/test_task.py
 create mode 100644 learning/katas/python/Core Transforms/Map/ParDo/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Map/ParDo/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Map/ParDo/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Map/ParDo/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Map/ParDo/tests/test_task.py
 delete mode 100644 learning/katas/python/Core Transforms/Map/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/Core Transforms/Partition/Partition/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Partition/Partition/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Partition/Partition/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Partition/Partition/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Partition/Partition/tests/test_task.py
 delete mode 100644 learning/katas/python/Core Transforms/Partition/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/Core Transforms/Side Input/Side Input/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Side Input/Side Input/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Side Input/Side Input/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Side Input/Side Input/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Side Input/Side Input/tests/test_task.py
 delete mode 100644 learning/katas/python/Core Transforms/Side Input/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/Core Transforms/Side Output/Side Output/__init__.py
 delete mode 100644 learning/katas/python/Core Transforms/Side Output/Side Output/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/Side Output/Side Output/tests.py
 create mode 100644 learning/katas/python/Core Transforms/Side Output/Side Output/tests/__init__.py
 create mode 100644 learning/katas/python/Core Transforms/Side Output/Side Output/tests/test_task.py
 delete mode 100644 learning/katas/python/Core Transforms/Side Output/lesson-remote-info.yaml
 delete mode 100644 learning/katas/python/Core Transforms/section-remote-info.yaml
 create mode 100644 learning/katas/python/Examples/Word Count/Word Count/__init__.py
 delete mode 100644 learning/katas/python/Examples/Word Count/Word Count/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Examples/Word Count/Word Count/tests.py
 create mode 100644 learning/katas/python/Examples/Word Count/Word Count/tests/__init__.py
 create mode 100644 learning/katas/python/Examples/Word Count/Word Count/tests/test_task.py
 delete mode 100644 learning/katas/python/Examples/Word Count/lesson-remote-info.yaml
 delete mode 100644 learning/katas/python/Examples/section-remote-info.yaml
 delete mode 100644 learning/katas/python/IO/Built-in IOs/Built-in IOs/task-info.yaml
 delete mode 100644 learning/katas/python/IO/Built-in IOs/Built-in IOs/task-remote-info.yaml
 delete mode 100644 learning/katas/python/IO/Built-in IOs/Built-in IOs/task.md
 delete mode 100644 learning/katas/python/IO/Built-in IOs/Built-in IOs/task.py
 delete mode 100644 learning/katas/python/IO/Built-in IOs/Built-in IOs/tests.py
 delete mode 100644 learning/katas/python/IO/Built-in IOs/lesson-info.yaml
 delete mode 100644 learning/katas/python/IO/Built-in IOs/lesson-remote-info.yaml
 create mode 100644 learning/katas/python/IO/TextIO/ReadFromText/__init__.py
 delete mode 100644 learning/katas/python/IO/TextIO/ReadFromText/task-remote-info.yaml
 delete mode 100644 learning/katas/python/IO/TextIO/ReadFromText/tests.py
 create mode 100644 learning/katas/python/IO/TextIO/ReadFromText/tests/__init__.py
 create mode 100644 learning/katas/python/IO/TextIO/ReadFromText/tests/test_task.py
 delete mode 100644 learning/katas/python/IO/TextIO/lesson-remote-info.yaml
 delete mode 100644 learning/katas/python/IO/section-remote-info.yaml
 create mode 100644 learning/katas/python/Introduction/Hello Beam/Hello Beam/__init__.py
 delete mode 100644 learning/katas/python/Introduction/Hello Beam/Hello Beam/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Introduction/Hello Beam/Hello Beam/tests.py
 create mode 100644 learning/katas/python/Introduction/Hello Beam/Hello Beam/tests/__init__.py
 create mode 100644 learning/katas/python/Introduction/Hello Beam/Hello Beam/tests/test_task.py
 delete mode 100644 learning/katas/python/Introduction/Hello Beam/lesson-remote-info.yaml
 delete mode 100644 learning/katas/python/Introduction/section-remote-info.yaml
 create mode 100644 learning/katas/python/Streaming/Timestamps/Add Timestamps/__init__.py
 create mode 100644 learning/katas/python/Streaming/Timestamps/Add Timestamps/task-info.yaml
 rename learning/katas/python/{Windowing/Adding Timestamp/ParDo => Streaming/Timestamps/Add Timestamps}/task.md (100%)
 create mode 100644 learning/katas/python/Streaming/Timestamps/Add Timestamps/task.py
 create mode 100644 learning/katas/python/Streaming/Timestamps/Add Timestamps/tests/__init__.py
 create mode 100644 learning/katas/python/Streaming/Timestamps/Add Timestamps/tests/test_task.py
 create mode 100644 learning/katas/python/Streaming/Timestamps/lesson-info.yaml
 create mode 100644 learning/katas/python/Streaming/Triggers/Early Triggers/__init__.py
 rename learning/katas/python/{Triggers/Early Triggers => Streaming/Triggers}/Early Triggers/generate_event.py (100%)
 create mode 100644 learning/katas/python/Streaming/Triggers/Early Triggers/task-info.yaml
 create mode 100644 learning/katas/python/Streaming/Triggers/Early Triggers/task.md
 create mode 100644 learning/katas/python/Streaming/Triggers/Early Triggers/task.py
 create mode 100644 learning/katas/python/Streaming/Triggers/Early Triggers/tests/__init__.py
 create mode 100644 learning/katas/python/Streaming/Triggers/Early Triggers/tests/test_task.py
 create mode 100644 learning/katas/python/Streaming/Triggers/Event Time Triggers/__init__.py
 rename learning/katas/python/{Triggers/Event Time Triggers => Streaming/Triggers}/Event Time Triggers/generate_event.py (100%)
 create mode 100644 learning/katas/python/Streaming/Triggers/Event Time Triggers/task-info.yaml
 rename learning/katas/python/{Triggers/Event Time Triggers => Streaming/Triggers}/Event Time Triggers/task.md (100%)
 create mode 100644 learning/katas/python/Streaming/Triggers/Event Time Triggers/task.py
 create mode 100644 learning/katas/python/Streaming/Triggers/Event Time Triggers/tests/__init__.py
 create mode 100644 learning/katas/python/Streaming/Triggers/Event Time Triggers/tests/test_task.py
 create mode 100644 learning/katas/python/Streaming/Triggers/Window Accumulation Modes/__init__.py
 rename learning/katas/python/{Triggers/Window Accumulation Mode/Window Accumulation Mode => Streaming/Triggers/Window Accumulation Modes}/generate_event.py (100%)
 create mode 100644 learning/katas/python/Streaming/Triggers/Window Accumulation Modes/task-info.yaml
 create mode 100644 learning/katas/python/Streaming/Triggers/Window Accumulation Modes/task.md
 create mode 100644 learning/katas/python/Streaming/Triggers/Window Accumulation Modes/task.py
 create mode 100644 learning/katas/python/Streaming/Triggers/Window Accumulation Modes/tests/__init__.py
 create mode 100644 learning/katas/python/Streaming/Triggers/Window Accumulation Modes/tests/test_task.py
 create mode 100644 learning/katas/python/Streaming/Triggers/lesson-info.yaml
 create mode 100644 learning/katas/python/Streaming/Windows/Fixed Windows/__init__.py
 create mode 100644 learning/katas/python/Streaming/Windows/Fixed Windows/task-info.yaml
 rename learning/katas/python/{Windowing/Fixed Time Window/Fixed Time Window => Streaming/Windows/Fixed Windows}/task.md (100%)
 create mode 100644 learning/katas/python/Streaming/Windows/Fixed Windows/task.py
 create mode 100644 learning/katas/python/Streaming/Windows/Fixed Windows/tests/__init__.py
 create mode 100644 learning/katas/python/Streaming/Windows/Fixed Windows/tests/test_task.py
 create mode 100644 learning/katas/python/Streaming/Windows/lesson-info.yaml
 create mode 100644 learning/katas/python/Streaming/section-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Early Triggers/Early Triggers/task-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Early Triggers/Early Triggers/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Early Triggers/Early Triggers/task.md
 delete mode 100644 learning/katas/python/Triggers/Early Triggers/Early Triggers/task.py
 delete mode 100644 learning/katas/python/Triggers/Early Triggers/Early Triggers/tests.py
 delete mode 100644 learning/katas/python/Triggers/Early Triggers/lesson-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Early Triggers/lesson-remote-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Event Time Triggers/Event Time Triggers/task-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Event Time Triggers/Event Time Triggers/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Event Time Triggers/Event Time Triggers/task.py
 delete mode 100644 learning/katas/python/Triggers/Event Time Triggers/Event Time Triggers/tests.py
 delete mode 100644 learning/katas/python/Triggers/Event Time Triggers/lesson-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Event Time Triggers/lesson-remote-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Window Accumulation Mode/Window Accumulation Mode/task-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Window Accumulation Mode/Window Accumulation Mode/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Window Accumulation Mode/Window Accumulation Mode/task.md
 delete mode 100644 learning/katas/python/Triggers/Window Accumulation Mode/Window Accumulation Mode/task.py
 delete mode 100644 learning/katas/python/Triggers/Window Accumulation Mode/Window Accumulation Mode/tests.py
 delete mode 100644 learning/katas/python/Triggers/Window Accumulation Mode/lesson-info.yaml
 delete mode 100644 learning/katas/python/Triggers/Window Accumulation Mode/lesson-remote-info.yaml
 delete mode 100644 learning/katas/python/Triggers/section-info.yaml
 delete mode 100644 learning/katas/python/Triggers/section-remote-info.yaml
 delete mode 100644 learning/katas/python/Windowing/Adding Timestamp/ParDo/task-info.yaml
 delete mode 100644 learning/katas/python/Windowing/Adding Timestamp/ParDo/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Windowing/Adding Timestamp/ParDo/task.py
 delete mode 100644 learning/katas/python/Windowing/Adding Timestamp/ParDo/tests.py
 delete mode 100644 learning/katas/python/Windowing/Adding Timestamp/lesson-info.yaml
 delete mode 100644 learning/katas/python/Windowing/Adding Timestamp/lesson-remote-info.yaml
 delete mode 100644 learning/katas/python/Windowing/Fixed Time Window/Fixed Time Window/task-info.yaml
 delete mode 100644 learning/katas/python/Windowing/Fixed Time Window/Fixed Time Window/task-remote-info.yaml
 delete mode 100644 learning/katas/python/Windowing/Fixed Time Window/Fixed Time Window/task.py
 delete mode 100644 learning/katas/python/Windowing/Fixed Time Window/Fixed Time Window/tests.py
 delete mode 100644 learning/katas/python/Windowing/Fixed Time Window/lesson-info.yaml
 delete mode 100644 learning/katas/python/Windowing/Fixed Time Window/lesson-remote-info.yaml
 delete mode 100644 learning/katas/python/Windowing/section-info.yaml
 delete mode 100644 learning/katas/python/Windowing/section-remote-info.yaml
 delete mode 100644 learning/katas/python/course-remote-info.yaml
 create mode 100644 learning/tour-of-beam/backend/internal/fs_content/sdk_context.go
 create mode 100644 learning/tour-of-beam/backend/middleware.go
 create mode 100644 learning/tour-of-beam/backend/samples/api/get_sdk_list.json
 create mode 100644 learning/tour-of-beam/frontend/assets/png/profile-website.png
 create mode 100644 learning/tour-of-beam/frontend/assets/svg/github-logo.svg
 create mode 100644 learning/tour-of-beam/frontend/assets/svg/google-logo.svg
 create mode 100644 learning/tour-of-beam/frontend/assets/svg/profile-about.svg
 create mode 100644 learning/tour-of-beam/frontend/assets/svg/profile-delete.svg
 create mode 100644 learning/tour-of-beam/frontend/assets/svg/profile-logout.svg
 create mode 100644 learning/tour-of-beam/frontend/assets/svg/unit-progress-0.svg
 create mode 100644 learning/tour-of-beam/frontend/assets/svg/unit-progress-100.svg
 create mode 100644 learning/tour-of-beam/frontend/lib/cache/content_tree.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/cache/sdk.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/cache/unit_content.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/components/builders/content_tree.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/components/builders/sdks.dart
 delete mode 100644 learning/tour-of-beam/frontend/lib/components/complexity.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/components/expansion_tile_wrapper.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/components/filler_text.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/components/login/login_button.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/components/login/login_content.dart
 delete mode 100644 learning/tour-of-beam/frontend/lib/components/page_container.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/components/profile/avatar.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/components/profile/profile_content.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/components/scaffold.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/components/sdk_dropdown.dart
 delete mode 100644 learning/tour-of-beam/frontend/lib/components/sign_in/sign_in_button.dart
 delete mode 100644 learning/tour-of-beam/frontend/lib/components/sign_in/sign_in_overlay_content.dart
 delete mode 100644 learning/tour-of-beam/frontend/lib/components/toggle_theme_button.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/config.dart
 delete mode 100644 learning/tour-of-beam/frontend/lib/config/theme/colors_provider.dart
 delete mode 100644 learning/tour-of-beam/frontend/lib/config/theme/switch_notifier.dart
 delete mode 100644 learning/tour-of-beam/frontend/lib/config/theme/theme.dart
 delete mode 100644 learning/tour-of-beam/frontend/lib/constants/assets.dart
 delete mode 100644 learning/tour-of-beam/frontend/lib/constants/colors.dart
 delete mode 100644 learning/tour-of-beam/frontend/lib/constants/links.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/models/content_tree.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/models/group.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/models/module.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/models/node.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/models/parent_node.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/models/unit.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/models/unit_content.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/controllers/content_tree.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/page.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/path.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/screen.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/state.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/content.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/content_tree.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/content_tree_title.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/group.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/group_nodes.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/group_title.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/module.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/module_title.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/node.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/playground_demo.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/tour_progress_indicator.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/unit.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/tour/widgets/unit_content.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/welcome/page.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/welcome/path.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/pages/welcome/state.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/repositories/client/client.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/repositories/client/cloud_functions_client.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/repositories/models/get_content_tree_response.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/repositories/models/get_sdks_response.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/repositories/models/group.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/repositories/models/module.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/repositories/models/node.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/repositories/models/node_type_enum.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/repositories/models/unit.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/router/page_factory.dart
 create mode 100644 learning/tour-of-beam/frontend/lib/router/route_information_parser.dart
 create mode 100644 learning/tour-of-beam/frontend/test/common/test_screen_wrapper.dart
 delete mode 100644 learning/tour-of-beam/frontend/test/config/theme/switch_notifier_test.dart
 create mode 100644 learning/tour-of-beam/frontend/test/overflow_test.dart
 delete mode 100644 playground/backend/internal/cloud_bucket/precompiled_objects.go
 delete mode 100644 playground/backend/internal/cloud_bucket/precompiled_objects_test.go
 create mode 100644 playground/backend/internal/components/cache_component.go
 create mode 100644 playground/backend/internal/components/cache_component_test.go
 delete mode 100644 playground/backend/internal/db/schema/migration/migration_v001_test.go
 create mode 100644 playground/backend/internal/db/schema/migration/migration_v002.go
 create mode 100644 playground/backend/internal/db/schema/migration/migrations_test.go
 create mode 100644 playground/backend/internal/tests/test_data/test_data.go
 create mode 100644 playground/backend/internal/tests/test_utils/test_utils.go
 create mode 100644 playground/backend/internal/tests/test_utils/test_utils_test.go
 delete mode 100644 playground/backend/internal/utils/test_utils.go
 delete mode 100644 playground/backend/internal/utils/test_utils_test.go
 delete mode 100644 playground/frontend/assets/theme.svg
 create mode 100644 playground/frontend/assets/translations/en.yaml
 delete mode 100644 playground/frontend/lib/api/iis_workaround_channel.dart
 delete mode 100644 playground/frontend/lib/api/v1/api.pb.dart
 delete mode 100644 playground/frontend/lib/api/v1/api.pbenum.dart
 delete mode 100644 playground/frontend/lib/api/v1/api.pbjson.dart
 delete mode 100644 playground/frontend/lib/components/horizontal_divider/horizontal_divider.dart
 delete mode 100644 playground/frontend/lib/components/loading_indicator/loading_indicator.dart
 create mode 100644 playground/frontend/lib/components/playground_run_or_cancel_button.dart
 delete mode 100644 playground/frontend/lib/components/split_view/split_view.dart
 delete mode 100644 playground/frontend/lib/components/toggle_theme_button/toggle_theme_button.dart
 delete mode 100644 playground/frontend/lib/components/toggle_theme_button/toggle_theme_icon_button.dart
 delete mode 100644 playground/frontend/lib/config/theme.dart
 delete mode 100644 playground/frontend/lib/configure_nonweb.dart
 delete mode 100644 playground/frontend/lib/configure_web.dart
 delete mode 100644 playground/frontend/lib/modules/actions/components/header_icon_button.dart
 delete mode 100644 playground/frontend/lib/modules/editor/components/editor_textarea.dart
 delete mode 100644 playground/frontend/lib/modules/editor/components/editor_themes.dart
 delete mode 100644 playground/frontend/lib/modules/editor/components/run_button.dart
 delete mode 100644 playground/frontend/lib/modules/editor/controllers/snippet_editing_controller.dart
 delete mode 100644 playground/frontend/lib/modules/editor/repository/code_repository/code_client/check_status_response.dart
 delete mode 100644 playground/frontend/lib/modules/editor/repository/code_repository/code_client/code_client.dart
 delete mode 100644 playground/frontend/lib/modules/editor/repository/code_repository/code_client/grpc_code_client.dart
 delete mode 100644 playground/frontend/lib/modules/editor/repository/code_repository/code_client/output_response.dart
 delete mode 100644 playground/frontend/lib/modules/editor/repository/code_repository/code_client/run_code_response.dart
 delete mode 100644 playground/frontend/lib/modules/editor/repository/code_repository/code_repository.dart
 delete mode 100644 playground/frontend/lib/modules/editor/repository/code_repository/run_code_error.dart
 delete mode 100644 playground/frontend/lib/modules/editor/repository/code_repository/run_code_request.dart
 delete mode 100644 playground/frontend/lib/modules/editor/repository/code_repository/run_code_result.dart
 delete mode 100644 playground/frontend/lib/modules/examples/components/filter/category_bubble.dart
 create mode 100644 playground/frontend/lib/modules/examples/components/filter/filter.dart
 create mode 100644 playground/frontend/lib/modules/examples/components/filter/tag_bubble.dart
 create mode 100644 playground/frontend/lib/modules/examples/components/filter/type_bubble.dart
 delete mode 100644 playground/frontend/lib/modules/examples/components/filter/type_filter.dart
 delete mode 100644 playground/frontend/lib/modules/examples/models/category_model.dart
 delete mode 100644 playground/frontend/lib/modules/examples/models/example_loading_descriptors/catalog_default_example_loading_descriptor.dart
 delete mode 100644 playground/frontend/lib/modules/examples/models/example_loading_descriptors/content_example_loading_descriptor.dart
 delete mode 100644 playground/frontend/lib/modules/examples/models/example_loading_descriptors/empty_example_loading_descriptor.dart
 delete mode 100644 playground/frontend/lib/modules/examples/models/example_loading_descriptors/example_loading_descriptor.dart
 delete mode 100644 playground/frontend/lib/modules/examples/models/example_loading_descriptors/examples_loading_descriptor.dart
 delete mode 100644 playground/frontend/lib/modules/examples/models/example_loading_descriptors/standard_example_loading_descriptor.dart
 delete mode 100644 playground/frontend/lib/modules/examples/models/example_loading_descriptors/user_shared_example_loading_descriptor.dart
 delete mode 100644 playground/frontend/lib/modules/examples/models/example_model.dart
 delete mode 100644 playground/frontend/lib/modules/examples/models/example_origin.dart
 delete mode 100644 playground/frontend/lib/modules/examples/models/outputs_model.dart
 delete mode 100644 playground/frontend/lib/modules/examples/repositories/example_client/example_client.dart
 delete mode 100644 playground/frontend/lib/modules/examples/repositories/example_client/grpc_example_client.dart
 delete mode 100644 playground/frontend/lib/modules/examples/repositories/example_repository.dart
 delete mode 100644 playground/frontend/lib/modules/examples/repositories/models/get_example_code_response.dart
 delete mode 100644 playground/frontend/lib/modules/examples/repositories/models/get_example_request.dart
 delete mode 100644 playground/frontend/lib/modules/examples/repositories/models/get_example_response.dart
 delete mode 100644 playground/frontend/lib/modules/examples/repositories/models/get_list_of_examples_request.dart
 delete mode 100644 playground/frontend/lib/modules/examples/repositories/models/get_list_of_examples_response.dart
 delete mode 100644 playground/frontend/lib/modules/examples/repositories/models/get_snippet_request.dart
 delete mode 100644 playground/frontend/lib/modules/examples/repositories/models/get_snippet_response.dart
 delete mode 100644 playground/frontend/lib/modules/examples/repositories/models/save_snippet_request.dart
 delete mode 100644 playground/frontend/lib/modules/graph/graph_builder/canvas_drawer.dart
 delete mode 100644 playground/frontend/lib/modules/graph/graph_builder/extractors/edge_extractor.dart
 delete mode 100644 playground/frontend/lib/modules/graph/graph_builder/extractors/element_extractor.dart
 delete mode 100644 playground/frontend/lib/modules/graph/graph_builder/extractors/label_extractor.dart
 delete mode 100644 playground/frontend/lib/modules/graph/graph_builder/graph_builder.dart
 delete mode 100644 playground/frontend/lib/modules/graph/graph_builder/painters/edge_painter.dart
 delete mode 100644 playground/frontend/lib/modules/graph/graph_builder/painters/graph_painter.dart
 delete mode 100644 playground/frontend/lib/modules/graph/graph_builder/painters/node_painter.dart
 delete mode 100644 playground/frontend/lib/modules/notifications/components/base_notification.dart
 delete mode 100644 playground/frontend/lib/modules/notifications/components/notification.dart
 delete mode 100644 playground/frontend/lib/modules/output/components/graph.dart
 delete mode 100644 playground/frontend/lib/modules/output/components/output.dart
 delete mode 100644 playground/frontend/lib/modules/output/components/output_area.dart
 delete mode 100644 playground/frontend/lib/modules/output/components/output_header/output_tab.dart
 delete mode 100644 playground/frontend/lib/modules/output/components/output_header/output_tabs.dart
 delete mode 100644 playground/frontend/lib/modules/output/components/output_header/result_filter_bubble.dart
 delete mode 100644 playground/frontend/lib/modules/output/components/output_header/result_filter_popover.dart
 delete mode 100644 playground/frontend/lib/modules/output/components/output_header/tab_header.dart
 delete mode 100644 playground/frontend/lib/modules/output/components/output_result.dart
 delete mode 100644 playground/frontend/lib/modules/sdk/models/sdk.dart
 delete mode 100644 playground/frontend/lib/modules/shortcuts/components/shortcut_tooltip.dart
 delete mode 100644 playground/frontend/lib/modules/shortcuts/models/shortcut.dart
 delete mode 100644 playground/frontend/lib/modules/shortcuts/utils/shortcuts_display_name.dart
 delete mode 100644 playground/frontend/lib/pages/playground/states/example_loaders/catalog_default_example_loader.dart
 delete mode 100644 playground/frontend/lib/pages/playground/states/example_loaders/content_example_loader.dart
 delete mode 100644 playground/frontend/lib/pages/playground/states/example_loaders/empty_example_loader.dart
 delete mode 100644 playground/frontend/lib/pages/playground/states/example_loaders/example_loader.dart
 delete mode 100644 playground/frontend/lib/pages/playground/states/example_loaders/examples_loader.dart
 delete mode 100644 playground/frontend/lib/pages/playground/states/example_loaders/standard_example_loader.dart
 delete mode 100644 playground/frontend/lib/pages/playground/states/example_loaders/user_shared_example_loader.dart
 delete mode 100644 playground/frontend/lib/pages/playground/states/examples_state.dart
 delete mode 100644 playground/frontend/lib/pages/playground/states/playground_state.dart
 delete mode 100644 playground/frontend/lib/utils/replace_incorrect_symbols.dart
 rename playground/frontend/{assets => playground_components/assets/buttons}/reset.svg (100%)
 rename {learning/tour-of-beam/frontend/assets/svg => playground/frontend/playground_components/assets/buttons}/theme-mode.svg (100%)
 rename playground/frontend/{assets/error_notification.svg => playground_components/assets/notification_icons/error.svg} (100%)
 rename playground/frontend/{assets/info_notification.svg => playground_components/assets/notification_icons/info.svg} (100%)
 rename playground/frontend/{assets/success_notification.svg => playground_components/assets/notification_icons/success.svg} (100%)
 rename playground/frontend/{assets/warning_notification.svg => playground_components/assets/notification_icons/warning.svg} (100%)
 rename {learning/tour-of-beam/frontend => playground/frontend/playground_components}/assets/png/beam-logo.png (100%)
 copy playground/frontend/{assets/drag_horizontal.svg => playground_components/assets/svg/drag-horizontal.svg} (100%)
 copy playground/frontend/{assets/drag_vertical.svg => playground_components/assets/svg/drag-vertical.svg} (100%)
 create mode 100644 playground/frontend/playground_components/assets/translations/en.yaml
 create mode 100644 playground/frontend/playground_components/build.gradle.kts
 create mode 100644 playground/frontend/playground_components/lib/playground_components.dart
 create mode 100644 playground/frontend/playground_components/lib/src/api/iis_workaround_channel.dart
 create mode 100644 playground/frontend/playground_components/lib/src/api/iis_workaround_channel_non_web.dart
 create mode 100644 playground/frontend/playground_components/lib/src/api/iis_workaround_channel_web.dart
 create mode 100644 playground/frontend/playground_components/lib/src/api/v1/api.pb.dart
 create mode 100644 playground/frontend/playground_components/lib/src/api/v1/api.pbenum.dart
 rename playground/frontend/{lib => playground_components/lib/src}/api/v1/api.pbgrpc.dart (100%)
 create mode 100644 playground/frontend/playground_components/lib/src/api/v1/api.pbjson.dart
 create mode 100644 playground/frontend/playground_components/lib/src/cache/example_cache.dart
 create mode 100644 playground/frontend/playground_components/lib/src/constants/colors.dart
 create mode 100644 playground/frontend/playground_components/lib/src/constants/links.dart
 create mode 100644 playground/frontend/playground_components/lib/src/constants/playground_components.dart
 create mode 100644 playground/frontend/playground_components/lib/src/constants/sizes.dart
 create mode 100644 playground/frontend/playground_components/lib/src/controllers/example_loaders/catalog_default_example_loader.dart
 create mode 100644 playground/frontend/playground_components/lib/src/controllers/example_loaders/content_example_loader.dart
 create mode 100644 playground/frontend/playground_components/lib/src/controllers/example_loaders/empty_example_loader.dart
 create mode 100644 playground/frontend/playground_components/lib/src/controllers/example_loaders/example_loader.dart
 create mode 100644 playground/frontend/playground_components/lib/src/controllers/example_loaders/example_loader_factory.dart
 create mode 100644 playground/frontend/playground_components/lib/src/controllers/example_loaders/examples_loader.dart
 create mode 100644 playground/frontend/playground_components/lib/src/controllers/example_loaders/standard_example_loader.dart
 create mode 100644 playground/frontend/playground_components/lib/src/controllers/example_loaders/user_shared_example_loader.dart
 create mode 100644 playground/frontend/playground_components/lib/src/controllers/playground_controller.dart
 create mode 100644 playground/frontend/playground_components/lib/src/controllers/snippet_editing_controller.dart
 create mode 100644 playground/frontend/playground_components/lib/src/enums/complexity.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/category_with_examples.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/example.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/example_base.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/example_loading_descriptors/catalog_default_example_loading_descriptor.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/example_loading_descriptors/content_example_loading_descriptor.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/example_loading_descriptors/empty_example_loading_descriptor.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/example_loading_descriptors/example_loading_descriptor.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/example_loading_descriptors/examples_loading_descriptor.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/example_loading_descriptors/standard_example_loading_descriptor.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/example_loading_descriptors/user_shared_example_loading_descriptor.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/intents.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/outputs.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/sdk.dart
 create mode 100644 playground/frontend/playground_components/lib/src/models/shortcut.dart
 create mode 100644 playground/frontend/playground_components/lib/src/notifications/base_notification.dart
 create mode 100644 playground/frontend/playground_components/lib/src/notifications/notification.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/code_client/code_client.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/code_client/grpc_code_client.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/code_repository.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/complexity_grpc_extension.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/example_client/example_client.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/example_client/grpc_example_client.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/example_repository.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/check_status_response.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/get_default_precompiled_object_request.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/get_precompiled_object_code_response.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/get_precompiled_object_request.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/get_precompiled_object_response.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/get_precompiled_objects_request.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/get_precompiled_objects_response.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/get_snippet_request.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/get_snippet_response.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/output_response.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/run_code_error.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/run_code_request.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/run_code_response.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/run_code_result.dart
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/models/save_snippet_request.dart
 rename playground/frontend/{lib/modules/examples => playground_components/lib/src}/repositories/models/save_snippet_response.dart (100%)
 rename playground/frontend/{lib/modules/examples/repositories/models/shared_file_model.dart => playground_components/lib/src/repositories/models/shared_file.dart} (100%)
 create mode 100644 playground/frontend/playground_components/lib/src/repositories/sdk_grpc_extension.dart
 create mode 100644 playground/frontend/playground_components/lib/src/theme/switch_notifier.dart
 create mode 100644 playground/frontend/playground_components/lib/src/theme/theme.dart
 rename playground/frontend/{lib/modules/editor/parsers/run_options_parser.dart => playground_components/lib/src/util/pipeline_options.dart} (100%)
 create mode 100644 playground/frontend/playground_components/lib/src/util/replace_incorrect_symbols.dart
 rename playground/frontend/{lib/utils => playground_components/lib/src/util}/run_with_retry.dart (100%)
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/bubble.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/clickable.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/complexity.dart
 rename playground/frontend/playground_components/lib/{ => src/widgets}/dismissible_overlay.dart (100%)
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/divider.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/drag_handle.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/editor_textarea.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/header_icon_button.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/loading_indicator.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/logo.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/graph/graph.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/graph/graph_builder/canvas_drawer.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/graph/graph_builder/extractors/edge_extractor.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/graph/graph_builder/extractors/element_extractor.dart
 rename playground/frontend/{lib/modules => playground_components/lib/src/widgets/output}/graph/graph_builder/extractors/extractor_utils.dart (100%)
 rename playground/frontend/{lib/modules => playground_components/lib/src/widgets/output}/graph/graph_builder/extractors/extractors.dart (100%)
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/graph/graph_builder/extractors/label_extractor.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/graph/graph_builder/graph_builder.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/graph/graph_builder/painters/edge_painter.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/graph/graph_builder/painters/graph_painter.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/graph/graph_builder/painters/node_painter.dart
 rename playground/frontend/{lib/modules => playground_components/lib/src/widgets/output}/graph/models/graph.dart (100%)
 rename playground/frontend/{lib/modules => playground_components/lib/src/widgets/output}/graph/models/table_cell.dart (100%)
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/output.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/output_area.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/output_result.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/output_tab.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/output_tabs.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/result_filter_bubble.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/output/result_filter_popover.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/reset_button.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/run_button.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/run_or_cancel_button.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/shortcut_tooltip.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/snippet_editor.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/split_view.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/tab_header.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/toggle_theme_button.dart
 create mode 100644 playground/frontend/playground_components/lib/src/widgets/toggle_theme_icon_button.dart
 create mode 100644 playground/frontend/playground_components/test/src/cache/example_cache_test.dart
 create mode 100644 playground/frontend/playground_components/test/src/common/categories.dart
 create mode 100644 playground/frontend/playground_components/test/src/common/example_repository_mock.dart
 create mode 100644 playground/frontend/playground_components/test/src/common/examples.dart
 create mode 100644 playground/frontend/playground_components/test/src/common/requests.dart
 create mode 100644 playground/frontend/playground_components/test/src/controllers/playground_controller_test.dart
 create mode 100644 playground/frontend/playground_components/test/src/repositories/code_repository_test.dart
 create mode 100644 playground/frontend/playground_components/test/src/repositories/example_repository_test.dart
 create mode 100644 playground/frontend/playground_components/test/src/util/pipeline_options_test.dart
 create mode 100644 playground/frontend/playground_components/test/src/util/run_with_retry_test.dart
 create mode 100644 playground/frontend/playground_components/test/theme/switch_notifier_test.dart
 delete mode 100644 playground/frontend/test/modules/editor/parsers/run_options_parser_test.dart
 delete mode 100644 playground/frontend/test/modules/editor/repository/code_repository/code_repository_test.dart
 delete mode 100644 playground/frontend/test/modules/editor/repository/code_repository/code_repository_test.mocks.dart
 delete mode 100644 playground/frontend/test/modules/editor/repository/example_repository/example_repository_test.dart
 delete mode 100644 playground/frontend/test/modules/editor/repository/example_repository/example_repository_test.mocks.dart
 delete mode 100644 playground/frontend/test/pages/playground/states/example_selector_state_test.mocks.dart
 delete mode 100644 playground/frontend/test/pages/playground/states/examples_state_test.dart
 delete mode 100644 playground/frontend/test/pages/playground/states/mocks/categories_mock.dart
 delete mode 100644 playground/frontend/test/pages/playground/states/mocks/example_mock.dart
 delete mode 100644 playground/frontend/test/pages/playground/states/mocks/example_repository_mock.dart
 delete mode 100644 playground/frontend/test/pages/playground/states/mocks/example_repository_mock.mocks.dart
 delete mode 100644 playground/frontend/test/pages/playground/states/mocks/request_mock.dart
 delete mode 100644 playground/frontend/test/pages/playground/states/playground_state_test.dart
 delete mode 100644 playground/frontend/test/pages/playground/states/playground_state_test.mocks.dart
 delete mode 100644 playground/frontend/test/utils/run_with_retry_test.dart
 create mode 100644 playground/infrastructure/test_checker.py
 create mode 100644 runners/samza/src/main/java/org/apache/beam/runners/samza/SamzaPipelineExceptionContext.java
 create mode 100644 runners/samza/src/main/java/org/apache/beam/runners/samza/runtime/AsyncDoFnRunner.java
 create mode 100644 runners/samza/src/main/java/org/apache/beam/runners/samza/util/SamzaPipelineExceptionListener.java
 create mode 100644 runners/samza/src/test/java/org/apache/beam/runners/samza/runtime/AsyncDoFnRunnerTest.java
 create mode 100644 runners/spark/2/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/utils/ScalaInterop.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/Constants.java
 create mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/io/BoundedDatasetFactory.java
 create mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/io/package-info.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/AbstractTranslationContext.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/AggregatorCombiner.java
 create mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/Aggregators.java
 create mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/CombineGloballyTranslatorBatch.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/DatasetSourceBatch.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/DoFnFunction.java
 create mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/DoFnMapPartitionsFactory.java
 create mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/GroupByKeyHelpers.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/ProcessContext.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/helpers/KVHelpers.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/helpers/MultiOutputCoder.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/helpers/RowHelpers.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/helpers/SchemaHelpers.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/helpers/WindowingHelpers.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/streaming/DatasetSourceStreaming.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/streaming/PipelineTranslatorStreaming.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/streaming/ReadSourceTranslatorStreaming.java
 delete mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/streaming/package-info.java
 create mode 100644 runners/spark/3/src/main/java/org/apache/beam/runners/spark/structuredstreaming/translation/utils/ScalaInterop.java
 create mode 100644 runners/spark/3/src/test/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/AggregatorsTest.java
 create mode 100644 runners/spark/3/src/test/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/CombineGloballyTest.java
 create mode 100644 runners/spark/3/src/test/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/CombinePerKeyTest.java
 delete mode 100644 runners/spark/3/src/test/java/org/apache/beam/runners/spark/structuredstreaming/translation/batch/CombineTest.java
 create mode 100644 runners/spark/src/main/java/org/apache/beam/runners/spark/translation/streaming/TestDStream.java
 create mode 100644 scripts/ci/ci_check_git_branch.sh
 create mode 100755 scripts/ci/release/comment_pr_trigger_phrases.sh
 create mode 100644 scripts/ci/release/test/resources/jenkins_trigger_phrases.txt
 create mode 100644 scripts/ci/release/test/resources/mass_comment.txt
 create mode 100644 sdks/go/pkg/beam/core/runtime/exec/timers_test.go
 create mode 100644 sdks/go/pkg/beam/core/runtime/xlangx/expand_test.go
 create mode 100644 sdks/go/pkg/beam/transforms/xlang/dataframe/dataframe.go
 create mode 100644 sdks/go/pkg/beam/transforms/xlang/python/external.go
 create mode 100644 sdks/go/test/integration/transforms/xlang/dataframe/dataframe.go
 create mode 100644 sdks/go/test/integration/transforms/xlang/dataframe/dataframe_test.go
 create mode 100644 sdks/java/container/agent/build.gradle
 create mode 100644 sdks/java/container/agent/src/main/java/org/apache/beam/agent/OpenModuleAgent.java
 create mode 100644 sdks/java/core/jmh/src/main/java/org/apache/beam/sdk/jmh/io/TextSourceBenchmark.java
 create mode 100644 sdks/java/core/jmh/src/main/java/org/apache/beam/sdk/jmh/io/package-info.java
 create mode 100644 sdks/java/core/src/main/java/org/apache/beam/sdk/options/ExecutorOptions.java
 create mode 100644 sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/logicaltypes/FixedPrecisionNumeric.java
 create mode 100644 sdks/java/core/src/main/java/org/apache/beam/sdk/util/NanoClock.java
 create mode 100644 sdks/java/core/src/main/java/org/apache/beam/sdk/util/UnboundedScheduledExecutorService.java
 create mode 100644 sdks/java/core/src/test/java/org/apache/beam/sdk/util/FastNanoClockAndSleeper.java
 create mode 100644 sdks/java/core/src/test/java/org/apache/beam/sdk/util/FastNanoClockAndSleeperTest.java
 create mode 100644 sdks/java/core/src/test/java/org/apache/beam/sdk/util/UnboundedScheduledExecutorServiceTest.java
 delete mode 100644 sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/util/FastNanoClockAndSleeper.java
 delete mode 100644 sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/util/FastNanoClockAndSleeperTest.java
 create mode 100644 sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/schemas/AwsBuilderFactory.java
 create mode 100644 sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/schemas/AwsSchemaProvider.java
 create mode 100644 sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/schemas/AwsSchemaRegistrar.java
 create mode 100644 sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/schemas/AwsSchemaUtils.java
 create mode 100644 sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/schemas/AwsTypes.java
 create mode 100644 sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/schemas/package-info.java
 delete mode 100644 sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/sns/SnsCoderProviderRegistrar.java
 delete mode 100644 sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/sqs/MessageCoder.java
 delete mode 100644 sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/sqs/MessageCoderRegistrar.java
 delete mode 100644 sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/sqs/SendMessageRequestCoder.java
 delete mode 100644 sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/sqs/SendMessageRequestCoderRegistrar.java
 create mode 100644 sdks/java/io/amazon-web-services2/src/test/java/org/apache/beam/sdk/io/aws2/schemas/AwsSchemaProviderTest.java
 create mode 100644 sdks/java/io/amazon-web-services2/src/test/java/org/apache/beam/sdk/io/aws2/schemas/AwsSchemaUtilsTest.java
 create mode 100644 sdks/java/io/amazon-web-services2/src/test/java/org/apache/beam/sdk/io/aws2/schemas/Sample.java
 create mode 100644 sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/pubsub/PubsubMessageWithAttributesAndMessageIdAndOrderingKeyCoder.java
 create mode 100644 sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/pubsub/PubsubMessageWithAttributesAndMessageIdAndOrderingKeyCoderTest.java
 create mode 100644 sdks/java/io/sparkreceiver/src/main/java/org/apache/beam/sdk/io/sparkreceiver/ReadFromSparkReceiverWithOffsetDoFn.java
 create mode 100644 sdks/java/io/sparkreceiver/src/main/java/org/apache/beam/sdk/io/sparkreceiver/SparkConsumer.java
 create mode 100644 sdks/java/io/sparkreceiver/src/main/java/org/apache/beam/sdk/io/sparkreceiver/SparkReceiverIO.java
 create mode 100644 sdks/java/io/sparkreceiver/src/test/java/org/apache/beam/sdk/io/sparkreceiver/CustomReceiverWithOffset.java
 create mode 100644 sdks/java/io/sparkreceiver/src/test/java/org/apache/beam/sdk/io/sparkreceiver/SparkReceiverIOTest.java
 create mode 100644 sdks/python/apache_beam/coders/coder_impl_row_encoders.pyx
 copy {.test-infra/jenkins/dependency_check => sdks/python/apache_beam/examples/inference/online_clustering/clustering_pipeline}/__init__.py (100%)
 create mode 100644 sdks/python/apache_beam/examples/inference/online_clustering/clustering_pipeline/config.py
 create mode 100644 sdks/python/apache_beam/examples/inference/online_clustering/clustering_pipeline/main.py
 copy {.test-infra/jenkins/dependency_check => sdks/python/apache_beam/examples/inference/online_clustering/clustering_pipeline/pipeline}/__init__.py (100%)
 create mode 100644 sdks/python/apache_beam/examples/inference/online_clustering/clustering_pipeline/pipeline/options.py
 create mode 100644 sdks/python/apache_beam/examples/inference/online_clustering/clustering_pipeline/pipeline/transformations.py
 create mode 100644 sdks/python/apache_beam/examples/inference/online_clustering/clustering_pipeline/setup.py
 copy {.test-infra/jenkins/dependency_check => sdks/python/apache_beam/examples/inference/online_clustering/write_data_to_pubsub_pipeline}/__init__.py (100%)
 create mode 100644 sdks/python/apache_beam/examples/inference/online_clustering/write_data_to_pubsub_pipeline/config.py
 create mode 100644 sdks/python/apache_beam/examples/inference/online_clustering/write_data_to_pubsub_pipeline/main.py
 copy {.test-infra/jenkins/dependency_check => sdks/python/apache_beam/examples/inference/online_clustering/write_data_to_pubsub_pipeline/pipeline}/__init__.py (100%)
 create mode 100644 sdks/python/apache_beam/examples/inference/online_clustering/write_data_to_pubsub_pipeline/pipeline/options.py
 create mode 100644 sdks/python/apache_beam/examples/inference/online_clustering/write_data_to_pubsub_pipeline/pipeline/utils.py
 create mode 100644 sdks/python/apache_beam/examples/inference/online_clustering/write_data_to_pubsub_pipeline/setup.py
 create mode 100644 sdks/python/apache_beam/examples/inference/tensorrt_object_detection.py
 create mode 100644 sdks/python/apache_beam/ml/inference/tensorrt_inference.py
 create mode 100644 sdks/python/apache_beam/ml/inference/tensorrt_inference_test.py
 create mode 100644 sdks/python/apache_beam/utils/multi_process_shared.py
 create mode 100644 sdks/python/apache_beam/utils/multi_process_shared_test.py
 create mode 100644 sdks/python/container/py310/base_image_requirements.txt
 create mode 100644 sdks/python/container/py310/build.gradle
 delete mode 100644 sdks/python/findSupportedPython.groovy
 create mode 100644 sdks/python/test-suites/containers/tensorrt_runinference/README.md
 create mode 100644 sdks/python/test-suites/containers/tensorrt_runinference/tensor_rt.dockerfile
 create mode 100644 sdks/python/test-suites/dataflow/py310/build.gradle
 create mode 100644 sdks/python/test-suites/direct/py310/build.gradle
 create mode 100644 sdks/python/test-suites/portable/py310/build.gradle
 create mode 100644 sdks/python/test-suites/tox/py310/build.gradle
 create mode 100644 website/www/site/assets/scss/_local.scss
 create mode 100644 website/www/site/content/en/blog/beam-2.42.0.md
 create mode 100644 website/www/site/content/en/blog/hop-web-cloud.md
 create mode 100755 website/www/site/content/en/documentation/ml/data-processing.md
 create mode 100644 website/www/site/content/en/documentation/ml/multi-model-pipelines.md
 create mode 100644 website/www/site/content/en/documentation/ml/online-clustering.md
 create mode 100755 website/www/site/content/en/documentation/ml/overview.md
 create mode 100644 website/www/site/content/en/get-started/quickstart/java.md
 create mode 100644 website/www/site/layouts/shortcodes/playground.html
 create mode 100644 website/www/site/layouts/shortcodes/playground_snippet.html
 create mode 100644 website/www/site/layouts/shortcodes/version.html
 create mode 100644 website/www/site/static/images/blog/hop-web-cloud/hop-web-cloud-image1.png
 create mode 100644 website/www/site/static/images/blog/hop-web-cloud/hop-web-cloud-image2.png
 create mode 100644 website/www/site/static/images/blog/hop-web-cloud/hop-web-cloud-image3.png
 create mode 100644 website/www/site/static/images/blog/hop-web-cloud/hop-web-cloud-image4.png
 create mode 100644 website/www/site/static/images/blog/hop-web-cloud/hop-web-cloud-image5.png
 create mode 100644 website/www/site/static/images/blog/hop-web-cloud/hop-web-cloud-image6.png
 create mode 100755 website/www/site/static/images/ml-workflows.svg