You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by GitBox <gi...@apache.org> on 2022/04/01 01:37:46 UTC

[GitHub] [beam] pcoet commented on a change in pull request #17136: Beam 13991 update contribute to beam page

pcoet commented on a change in pull request #17136:
URL: https://github.com/apache/beam/pull/17136#discussion_r840151942



##########
File path: website/www/site/content/en/contribute/get-started-contributing.md
##########
@@ -0,0 +1,383 @@
+---
+title: "Beam Contribution Guide"
+type: "contribute"
+layout: "arrow_template"
+---
+
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Contribution guide
+
+<a class="arrow-list-header" data-toggle="collapse" href="#collapseOverview" role="button" aria-expanded="false"        aria-controls="collapseOverview">
+   {{< figure src="/images/arrow-icon_list.svg">}}
+
+## Overview
+
+</a>
+
+<div class="collapse dont-collapse-sm" id="collapseOverview">
+
+There are lots of opportunities to contribute. You can for example:
+
+- ask or answer questions on [user@beam.apache.org](https://beam.apache.org/community/contact-us/) or
+  [stackoverflow](https://stackoverflow.com/questions/tagged/apache-beam)
+- review proposed design ideas on [dev@beam.apache.org](https://beam.apache.org/community/contact-us/)
+- improve the documentation
+- file [bug reports](https://issues.apache.org/jira/projects/BEAM/issues)
+- test releases
+- review [changes](https://github.com/apache/beam/pulls)
+- write new examples
+- improve your favorite language SDK (Java, Python, Go, etc)
+- improve specific runners (Apache Flink, Apache Spark, Google
+  Cloud Dataflow, etc)
+- improve or add IO connectors
+- add new transform libraries (statistics, ML, image processing, etc)
+- work on the core programming model (what is a Beam pipeline and how does it
+  run?)
+- improve the developer experience (for example, Windows guides)
+- add answers to the [contribution FAQ](
+  https://cwiki.apache.org/confluence/display/BEAM/Contributor+FAQ)
+- organize local meetups of users or contributors to Apache Beam
+
+</div>
+
+<a class="arrow-list-header" data-toggle="collapse" href="#collapseContributing" role="button" aria-expanded="false" aria-controls="collapseContributing">
+   {{< figure src="/images/arrow-icon_list.svg">}}
+
+## Contributing code
+
+  </a>
+
+<div class="collapse dont-collapse-sm" id="collapseContributing">
+
+Below is a tutorial for contributing code to Beam, covering our tools and typical process in
+detail.
+
+### Prerequisites
+
+- A GitHub account.
+- A Linux, macOS, or Microsoft Windows development environment
+- Java JDK 8 installed
+- [Docker](https://www.docker.com/) installed for some tasks including building worker containers and testing this website
+  changes locally.
+- For SDK Development:
+  - [Go](https://golang.org) 1.12 or later installed for Go SDK development
+  - Python 3.x interpreters. You will need Python interpreters for all Python versions supported by Beam.
+    Interpreters should be installed and available in shell via `python3.x` commands. For more information, see:
+    Python installation tips in [Developer Wiki](https://cwiki.apache.org/confluence/display/BEAM/Python+Tips#PythonTips-InstallingPythoninterpreters).
+- For large contributions, a signed [Individual Contributor License
+  Agreement](https://www.apache.org/licenses/icla.pdf) (ICLA) to the Apache
+  Software Foundation (ASF).
+
+
+### Configuration options
+You have two options for configuring your development environment:
+- Local:
+  - Manually installing the prerequisites listed above.
+  - Using the automated script for Linux and macOS.
+- Container: using a Docker image.
+
+#### Local: Debian-based Distribution
+##### Manual steps
+To install these in a Debian-based distribution:
+1. Execute:
+
+```
+sudo apt-get install \
+   openjdk-8-jdk \
+   python-setuptools \
+   python-pip \
+   virtualenv \
+   tox \
+   docker-ce
+```
+
+2. On some systems, like Ubuntu 20.04, install these:
+
+```
+pip3 install grpcio-tools mypy-protobuf
+```
+
+3. If you you develop in GO:
+  1. Install [Go](https://golang.org/doc/install).
+  1. Check BEAM repo is in: `$GOPATH/src/github.com/apache/`
+  1. At the end, it should look like this: `$GOPATH/src/github.com/apache/beam`
+4. Once Go is installed, install goavro:
+
+```
+$ export GOPATH=`pwd`/sdks/go/examples/.gogradle/project_gopath
+$ go get github.com/linkedin/goavro
+```
+
+**Important**: gLinux users should configure their machines for sudoless Docker.
+
+##### Automated script for Linux and macOS
+
+You can install these in a Debian-based distribution for Linux or macOs using the [local-env-setup.sh](https://github.com/apache/beam/blob/master/local-env-setup.sh) script, which is part of the Beam repo. It contains:
+
+* pip3 packages
+* go packages
+* goavro
+* JDK 8
+* Python
+* Docker
+
+To install:
+
+1. Execute:
+```
+./local-env-setup.sh
+```
+
+#### Container: Docker-based
+
+Alternatively, you can use the Docker based local development environment to wrap your clone of the Beam repo
+into a container meeting the requirements above.
+
+You can start this container using the [start-build-env.sh](https://github.com/apache/beam/blob/master/start-build-env.sh)
+script which is part of the Beam repo:
+
+1. Execute:
+```
+./start-build-env.sh
+```
+
+### Connect With the Beam community
+
+1. Consider subscribing to the [dev@ mailing list](/community/contact-us/), especially
+   if you plan to make more than one change or the change will be large. All decisions happen on the
+   public dev list.
+1. (Optionally) Join the [#beam channel of the ASF slack](/community/contact-us/).
+1. Create an account on [Beam issue tracker (JIRA)](https://issues.apache.org/jira/projects/BEAM/issues)
+   (anyone can do this).
+
+### Share your intent
+
+1. Find or create an issue in the [Beam issue tracker (JIRA)](https://issues.apache.org/jira/projects/BEAM/issues).
+   Tracking your work in an issue will avoid duplicated or conflicting work, and provide
+   a place for notes. Later, your pull request will be linked to the issue as well.
+1. If you want to get involved but don't have a project in mind, check our list of open starter tasks,
+   [https://s.apache.org/beam-starter-tasks](https://s.apache.org/beam-starter-tasks).
+1. Assign the issue to yourself. To get the permission to do so, email
+   the [dev@ mailing list](/community/contact-us)
+   to introduce yourself and to be added as a contributor in the Beam issue tracker including your
+   ASF Jira Username. For example [this welcome email](https://lists.apache.org/thread.html/e6018c2aaf7dc7895091434295e5b0fafe192b975e3e3761fcf0cda7@%3Cdev.beam.apache.org%3E).
+1. If your change is large or it is your first change, it is a good idea to
+   [discuss it on the dev@ mailing list](/community/contact-us/).
+1. For large changes create a design doc
+   ([template](https://s.apache.org/beam-design-doc-template),
+   [examples](https://s.apache.org/beam-design-docs)) and email it to the [dev@ mailing list](/community/contact-us).
+
+### Development Setup {#development-setup}
+
+1. Check [Git workflow tips](https://cwiki.apache.org/confluence/display/BEAM/Git+Tips) if you need help with git forking, cloning, branching, committing, pull requests, and squashing commits.
+1. Clone the git repository. You can download it anywhere you like.
+
+       $ mkdir -p ~/go/src/github.com/apache
+       $ cd ~/go/src/github.com/apache

Review comment:
       I think this should only be necessary if you're doing Go development. Also, it doesn't mention forking the repo first. I think the steps are fixed in the other PR, but please make sure...




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org