Repository: incubator-beam-site Updated Branches: refs/heads/asf-site db24abd9d -> 8615ea0c0
Add contribution guide Project: http://git-wip-us.apache.org/repos/asf/incubator-beam-site/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam-site/commit/8de7377a Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam-site/tree/8de7377a Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam-site/diff/8de7377a Branch: refs/heads/asf-site Commit: 8de7377ac6ca95e4628f120d8cfd05b3d944f6d8 Parents: db24abd Author: James Malone <[email protected]> Authored: Fri Mar 25 23:22:10 2016 -0700 Committer: Davor Bonaci <[email protected]> Committed: Wed Mar 30 09:32:55 2016 -0700 ---------------------------------------------------------------------- _config.yml | 3 + _includes/header.html | 1 + _pages/contribution-guide.md | 263 ++++++++++++ .../2016/03/17/capability-matrix.html | 1 + .../python/sdk/2016/02/25/beam-has-a-logo0.html | 1 + .../website/2016/02/22/beam-has-a-logo.html | 1 + content/blog/index.html | 1 + content/capability-matrix/index.html | 1 + content/contribution-guide/index.html | 430 +++++++++++++++++++ content/feed.xml | 4 +- content/getting_started/index.html | 1 + content/images/contribution-guide-1.png | Bin 0 -> 31400 bytes content/index.html | 1 + content/issue_tracking/index.html | 1 + content/mailing_lists/index.html | 1 + content/privacy_policy/index.html | 1 + content/source_repository/index.html | 1 + content/team/index.html | 17 +- images/contribution-guide-1.png | Bin 0 -> 31400 bytes 19 files changed, 719 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/_config.yml ---------------------------------------------------------------------- diff --git a/_config.yml b/_config.yml index c0964ef..168a31c 100644 --- a/_config.yml +++ b/_config.yml @@ -36,3 +36,6 @@ include: ['_pages'] collections: - beam_team + +# Things to ignore in the build +exclude: ['README.md', 'Gemfile.lock', 'Gemfile'] http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/_includes/header.html ---------------------------------------------------------------------- diff --git a/_includes/header.html b/_includes/header.html index f92f620..5121f74 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -26,6 +26,7 @@ <li><a href="{{ site.baseurl }}/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="{{ site.baseurl }}/contribution-guide/">Contribution Guide</a></li> <li><a href="{{ site.baseurl }}/source_repository/">Source Repository</a></li> <li><a href="{{ site.baseurl }}/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/_pages/contribution-guide.md ---------------------------------------------------------------------- diff --git a/_pages/contribution-guide.md b/_pages/contribution-guide.md new file mode 100644 index 0000000..abcbb1b --- /dev/null +++ b/_pages/contribution-guide.md @@ -0,0 +1,263 @@ +--- +layout: default +title: "Apache Beam Contribution Guide" +permalink: /contribution-guide/ +--- + +# How to Contribute + +* TOC +{:toc} + +The Apache Beam community welcomes contributions from anyone with a passion for data processing! Beam has many different opportunities for contributions -- write new examples, add new user-facing libraries (new statistical libraries, new IO connectors, etc), work on the core programming model, build specific runners (Apache Flink, Apache Spark, Google Cloud Dataflow, etc), or participate on the documentation effort. + +We use a review-then-commit workflow in Beam for all contributions. + + + +**For larger contributions or those that affect multiple components:** + +1. **Engage**: We encourage you to work with the Beam community on the [Apache JIRA issue tracker](https://issues.apache.org/jira/browse/BEAM) and [developerâs mailing list](http://beam.incubator.apache.org/mailing_lists/) to identify good areas for contribution. +1. **Design:** More complicated contributions will likely benefit from some early discussion in order to scope and design them well. + +**For all contributions:** + +1. **Code:** The best part ;-) +1. **Review:** Submit a pull request with your contribution to our [GitHub mirror](https://github.com/apache/incubator-beam/). Work with a committer to review and iterate on the code, if needed. +1. **Commit:** A Beam committer merges the pull request into our [Apache repository](https://git-wip-us.apache.org/repos/asf/incubator-beam.git). + +We look forward to working with you! + +## Engage + +### Mailing list(s) +We discuss design and implementation issues on [email protected] mailing list, which is archived [here](http://mail-archives.apache.org/mod_mbox/incubator-beam-dev/). Join by emailing [`[email protected]`](mailto:[email protected]). + +If interested, you can also join [`[email protected]`](http://mail-archives.apache.org/mod_mbox/incubator-beam-user/) and [`[email protected]`](http://mail-archives.apache.org/mod_mbox/incubator-beam-commits/) too. + +### Apache JIRA +We use [Apache JIRA](https://issues.apache.org/jira/browse/BEAM) as an issue tracking and project management tool, as well as a way to communicate among a very diverse and distributed set of contributors. To be able to gather feedback, avoid frustration, and avoid duplicated efforts all Beam-related work should be tracked there. + +If you do not already have an Apache JIRA account, sign up [here](https://issues.apache.org/jira/). + +If a quick [search](https://issues.apache.org/jira/issues/?jql=project%3DBEAM%20AND%20text%20~%20%22the%20thing%20I%20want%20to%20contribute%22) doesnât turn up an existing JIRA issue for the work you want to contribute, create it. Please discuss your proposal with a committer or the [component lead](https://issues.apache.org/jira/browse/BEAM/?selectedTab=com.atlassian.jira.jira-projects-plugin:components-panel) in JIRA or, alternatively, on the developer mailing list. + +If thereâs an existing JIRA issue for your intended contribution, please comment about your intended work. Once the work is understood, a committer will assign the issue to you. (If you donât have a JIRA role yet, youâll be added to the âcontributorâ role.) If an issue is currently assigned, please check with the current assignee before reassigning. + +For moderate or large contributions, you should not start coding or writing a design doc unless there is a corresponding JIRA issue assigned to you for that work. Simple changes, like fixing typos, do not require an associated issue. + +## Design +To avoid potential frustration during the code review cycle, we encourage you to clearly scope and design non-trivial contributions with the Beam community before you start coding. + +Generally, the JIRA issue is the best place to gather relevant design docs, comments, or references. Itâs great to explicitly include relevant stakeholders early in the conversation. For designs that may be generally interesting, we also encourage conversations on the developerâs mailing list. + +We suggest using [Google Docs](https://docs.google.com/) for sharing designs that may benefit from diagrams or comments. Please remember to make the document world-commentable and add a link to it from the relevant JIRA issue. We also track Beam-related documents in [this shared folder](https://drive.google.com/folderview?id=0B-IhJZh9Ab52OFBVZHpsNjc4eXc&usp=sharing). + +## Code +To contribute code to Apache Beam, youâll have to do a few administrative steps once, and then follow a few guidelines for each contribution. + +### One-time Setup + +#### [Potentially] Submit Contributor License Agreement +Apache Software Foundation (ASF) desires that all contributors of ideas, code, or documentation to the Apache projects complete, sign, and submit an [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt) (ICLA). The purpose of this agreement is to clearly define the terms under which intellectual property has been contributed to the ASF and thereby allow us to defend the project should there be a legal dispute regarding the software at some future time. + +We require you to have an ICLA on file with the Apache Secretary for larger contributions only. For smaller ones, however, we rely on [clause five](http://www.apache.org/licenses/LICENSE-2.0#contributions) of the Apache License, Version 2.0, describing licensing of intentionally submitted contributions and do not require an ICLA in that case. + +#### Obtain a GitHub account +We use GitHubâs pull request functionality to review proposed code changes. + +If you do not already have a personal GitHub account, sign up [here](https://github.com/join). + +#### Fork the repository on GitHub +Go to the [Beam GitHub mirror](https://github.com/apache/incubator-beam/) and fork the repository to your own private account. This will be your private workspace for staging changes. + +We recommend enabling Travis-CI continuous integration coverage on your private fork in order to easily test your changes before proposing a pull request. Go to [Travis-CI](https://travis-ci.org), log in with your GitHub account, and enable coverage for your repository. + +#### Clone the repository locally +You are now ready to create the development environment on your local machine. Feel free to repeat these steps on all machines that you want to use for development. + +We assume you are using SSH-based authentication with GitHub. If necessary, exchange SSH keys with GitHub by following [their instructions](https://help.github.com/articles/generating-an-ssh-key/). + +Clone Beamâs read-only GitHub mirror. + + $ git clone https://github.com/apache/incubator-beam.git + $ cd incubator-beam + +Add your forked repository as an additional Git remote, where youâll push your changes. + +<pre><code>$ git remote add <b><GitHub_user></b> [email protected]:<b><GitHub_user></b>/incubator-beam.git</code></pre> + +You are now ready to start developing! + +### Create a branch in your fork +Youâll work on your contribution in a branch in your own (forked) repository. Create a local branch, initialized with the state of the branch you expect your changes to be merged into. Keep in mind that we use several branches, including `master`, feature-specific, and release-specific branches. If you are unsure, initialize with the state of the `master` branch. + +<pre><code>$ git fetch --all +$ git checkout -b <b><my-branch></b> origin/master</code></pre> + +At this point, you can start making and committing changes to this branch in a standard way. + +### Syncing and pushing your branch +Periodically while you work, and certainly before submitting a pull request, you should update your branch with the most recent changes to the target branch. + + $ git pull --rebase + +Remember to always use `--rebase` parameter to avoid extraneous merge commits. + +To push your local, committed changes to your (forked) repository on GitHub, run: + +<pre><code>$ git push <b><GitHub_user> <my-branch></b></code></pre> + +### Testing +All code should have appropriate unit testing coverage. New code should have new tests in the same contribution. Bug fixes should include a regression test to prevent the issue from reoccurring. + +For contributions to the Java code, run unit tests locally via Maven. Alternatively, you can use Travis-CI. + + $ mvn clean verify + +## Review +Once the initial code is complete and the tests pass, itâs time to start the code review process. We review and discuss all code, no matter who authors it. Itâs a great way to build community, since you can learn from other developers, and they become familiar with your contribution. It also builds a strong project by encouraging a high quality bar and keeping code consistent throughout the project. + +### Create a pull request +Organize your commits to make your reviewerâs job easier. Use the following command to re-order, squash, edit, or change description of individual commits. + + $ git rebase -i origin/master + +Navigate to the [Beam GitHub mirror](https://github.com/apache/incubator-beam) to create a pull request. The title of the pull request should be strictly in the following format: + +<pre><code>[BEAM-<b><JIRA-issue-#></b>] Title of the pull request</code></pre> + +Please include a descriptive pull request message to help make the reviewerâs job easier. Itâs fine to refer to existing design docs or the contents of the associated JIRA as appropriate. + +If you know a good committer to review your pull request, please make a comment like the following. If not, donât worry -- a committer will pick it up. + +<pre><code>Hi @<b><GitHub-reviewer-username></b>, can you please take a look?</code></pre> + +When choosing a reviewer, think about who is the expert on the relevant code, who the stakeholders are for this change, and who else would benefit from becoming familiar with the code. If youâd appreciate comments from additional folks but already have a main reviewer, you can explicitly cc them using <code>@<b><GitHub-reviewer-username></b></code>. + +### Code Review and Revision +During the code review process, donât rebase your branch or otherwise modify published commits, since this can remove existing comment history and be confusing to the reviewer. When you make a revision, always push it in a new commit. + +Our GitHub mirror automatically provides pre-commit testing coverage using Jenkins and Travis-CI. Please make sure those tests pass; the contribution cannot be merged otherwise. + +### LGTM +Once the reviewer is happy with the change, theyâll respond with an LGTM (â*looks good to me!*â). At this point, the committer will take over, possibly make some additional touch ups, and merge your changes into the codebase. + +In the case both the author and the reviewer are committers, either can merge the pull request. Just be sure to communicate clearly whose responsibility it is in this particular case. + +Thank you for your contribution to Beam! + +### Deleting your branch +Once the pull request is merged into the Beam repository, you can safely delete the branch locally and purge it from your forked repository. + +From another local branch, run: + +<pre><code>$ git fetch --all +$ git branch -d <b><my-branch></b> +$ git push <b><GitHub_user></b> --delete <b><my-branch></b></code></pre> + +## Commit (committers only) +Once the code has been peer reviewed by a committer, the next step is for the committer to merge it into the [authoritative Apache repository](https://git-wip-us.apache.org/repos/asf/incubator-beam.git), not the read-only GitHub mirror. (In the case that the author is also a committer, it is acceptable for either the author or reviewer to do the merge. Just be explicit about whose job it is!) + +Pull requests should not be merged before the review has received an explicit LGTM from another committer. Exceptions to this rule may be made rarely, on a case-by-case basis only, in the committerâs discretion for situations such as build breakages. + +Committers should never commit anything without going through a pull request, since that would bypass test coverage and potentially cause the build to fail due to checkstyle, etc. In addition, pull requests ensure that changes are communicated properly and potential flaws or improvements can be spotted. **Always go through the pull request, even if you wonât wait for the code review.** Even then, comments can be provided in the pull requests after it has been merged to work on follow-ups. + +Committing is currently a manual process, but we are investigating tools to automate pieces of this process. + +### One-time Setup +Add the Apache Git remote in your local clone, by running: + + $ git remote add apache https://git-wip-us.apache.org/repos/asf/incubator-beam.git + +We recommend renaming the `origin` remote to `github`, to avoid confusion when dealing with this many remotes. + + $ git remote rename origin github + +For the `github` remote, add an additional fetch reference, which will cause every pull request to be made available as a remote branch in your workspace. + + $ git config --local --add remote.github.fetch \ + '+refs/pull/*/head:refs/remotes/github/pr/*' + +You can confirm your configuration by running the following command. + +<pre><code>$ git remote -v +apache https://git-wip-us.apache.org/repos/asf/incubator-beam.git (fetch) +apache https://git-wip-us.apache.org/repos/asf/incubator-beam.git (push) +github https://github.com/apache/incubator-beam.git (fetch) +github https://github.com/apache/incubator-beam.git (push) +<b><username></b> [email protected]:<b><username></b>/beam.git (fetch) +<b><username></b> [email protected]:<b><username></b>/beam.git (push)</code></pre> + +### Contributor License Agreement +If you are merging a larger contribution, please make sure that the contributor has an ICLA on file with the Apache Secretary. You can view the list of committers [here](http://home.apache.org/phonebook.html?unix=committers), as well as [ICLA-signers who arenât yet committers](http://home.apache.org/unlistedclas.html). + +For smaller contributions, however, this is not required. In this case, we rely on [clause five](http://www.apache.org/licenses/LICENSE-2.0#contributions) of the Apache License, Version 2.0, describing licensing of intentionally submitted contributions. + +### Tests +Before merging, please make sure both Travis-CI and Jenkins tests pass, as visible in the GitHub pull request. Do not merge the pull request otherwise. + +### Finishing touches +At some point in the review process, you should take the pull request over and complete any outstanding work that is either minor, stylistic, or otherwise outside the expertise of the contributor. + +Fetch references from all remote repositories, and checkout the specific pull request branch. + +<pre> +</code>$ git fetch --all +$ git checkout -b finish-pr-<b><pull-request-#></b> github/pr/<b><pull-request-#></b></code></pre> + +At this point, you can commit any final touches to the pull request. For example, you should: + +* Rebase on current state of the target branch. +* Fix typos. +* Reorganize commits that are part of the pull request, such as squash them into fewer commits that make sense for a historical perspective. + +You will often need the following command, assuming youâll be merging changes into the `master` branch: + + $ git rebase -i apache/master + +Please make sure to retain authorship of original commits to give proper credit to the contributor. You are welcome to change their commits slightly (e.g., fix a typo) and squash them, but more substantive changes should be a separate commit and review. + +### Merge process +Once you are ready to merge, fetch all remotes, checkout the destination branch and merge the changes. + +<pre><code>$ git fetch --all +$ git checkout apache/master +$ git merge --no-ff \ + -m $'[BEAM-<b><JIRA-issue-#></b>] <b><Title></b>\n\nThis closes #<b><pull-request-#></b>' \ + finish-pr-<b><pull-request-#></b></code></pre> + +Always use `--no-ff` option and the specific commit message "This closes #<b><pull request #></b>"" -- it ensures proper marking in the tooling. It would be nice to include additional information in the merge commit message, such as the title and summary of the pull request. + +At this point, you want to ensure everything is right. Test it with `mvn verify`. Run `gitk` or `git log --graph,` etc. When you are happy with how it looks, push it. This is the point of no return -- proceed with caution. + + $ git push apache HEAD:master + +Done. You can delete the local <code>finish-pr-<b><pull-request-#></b></code> branch if you like. + +## Additional Projects + +### Website +We use the same general review-then-commit process for changes to the Beam website, which uses [this GitHub Mirror](https://github.com/apache/incubator-beam-site). The website uses the [Jekyll](http://jekyllrb.com) framework to make website development easier. The [README file](https://github.com/apache/incubator-beam-site/blob/asf-site/README.md) in the website repository has more information on how to: + +* Install Jekyll +* Make changes to the website +* Test your changes + +#### Editing the website +You can checkout the website repository with the following commands. This will allow you to edit the website in a local environment provided you have installed [Jekyll](http://jekyllrb.com) and understand how to use it. + +<pre><code>git clone -b asf-site https://github.com/apache/incubator-beam-site.git +cd incubator-beam-site +git remote add <b><GitHub_user></b> [email protected]:<b><GitHub_user></b>/incubator-beam-site.git +git fetch --all +git checkout -b <b><my-branch></b> origin/asf-site</code></pre> + +#### Committing website changes + +Committers can commit website changes with the following commands. **Changes to the website must follow the same process outlined above** for changes to the Apache Beam code base. + +<pre><code>git remote add apache https://git-wip-us.apache.org/repos/asf/incubator-beam-site.git +git remote rename origin github +git config --local --add remote.github.fetch \ + '+refs/pull/*/head:refs/remotes/github/pr/*'</code></pre> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/beam/capability/2016/03/17/capability-matrix.html ---------------------------------------------------------------------- diff --git a/content/beam/capability/2016/03/17/capability-matrix.html b/content/beam/capability/2016/03/17/capability-matrix.html index 91d220f..be15c84 100644 --- a/content/beam/capability/2016/03/17/capability-matrix.html +++ b/content/beam/capability/2016/03/17/capability-matrix.html @@ -59,6 +59,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/beam/python/sdk/2016/02/25/beam-has-a-logo0.html ---------------------------------------------------------------------- diff --git a/content/beam/python/sdk/2016/02/25/beam-has-a-logo0.html b/content/beam/python/sdk/2016/02/25/beam-has-a-logo0.html index aa23635..2f833d7 100644 --- a/content/beam/python/sdk/2016/02/25/beam-has-a-logo0.html +++ b/content/beam/python/sdk/2016/02/25/beam-has-a-logo0.html @@ -59,6 +59,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/beam/update/website/2016/02/22/beam-has-a-logo.html ---------------------------------------------------------------------- diff --git a/content/beam/update/website/2016/02/22/beam-has-a-logo.html b/content/beam/update/website/2016/02/22/beam-has-a-logo.html index d2ce9bc..cf07959 100644 --- a/content/beam/update/website/2016/02/22/beam-has-a-logo.html +++ b/content/beam/update/website/2016/02/22/beam-has-a-logo.html @@ -59,6 +59,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/blog/index.html ---------------------------------------------------------------------- diff --git a/content/blog/index.html b/content/blog/index.html index 6d27438..7481714 100644 --- a/content/blog/index.html +++ b/content/blog/index.html @@ -60,6 +60,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/capability-matrix/index.html ---------------------------------------------------------------------- diff --git a/content/capability-matrix/index.html b/content/capability-matrix/index.html index 7047b1f..e8e1960 100644 --- a/content/capability-matrix/index.html +++ b/content/capability-matrix/index.html @@ -60,6 +60,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/contribution-guide/index.html ---------------------------------------------------------------------- diff --git a/content/contribution-guide/index.html b/content/contribution-guide/index.html new file mode 100644 index 0000000..aba93d8 --- /dev/null +++ b/content/contribution-guide/index.html @@ -0,0 +1,430 @@ +<!DOCTYPE html> +<html lang="en"> + + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Apache Beam Contribution Guide</title> + <meta name="description" content="Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific Languages (DSLs). Dataflow pipelines simplify the mechanics of large-scale batch and streaming data processing and can run on a number of runtimes like Apache Flink, Apache Spark, and Google Cloud Dataflow (a cloud service). Beam also brings DSL in different languages, allowing users to easily implement their data integration processes. +"> + + <link rel="stylesheet" href="/styles/site.css"> + <link rel="stylesheet" href="/css/theme.css"> + <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> + <script src="/js/bootstrap.min.js"></script> + <link rel="canonical" href="http://beam.incubator.apache.org/contribution-guide/"> + <link rel="alternate" type="application/rss+xml" title="Apache Beam (incubating)" href="http://beam.incubator.apache.org/feed.xml"> + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-73650088-1', 'auto'); + ga('send', 'pageview'); + + </script> + <link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico"> +</head> + + + <body role="document"> + + <nav class="navbar navbar-default navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <a href="/" class="navbar-brand" > + <img alt="Brand" src="/images/beam_logo_navbar.png"> + </a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="/getting_started/">Getting Started</a></li> + <li><a href="/capability-matrix/">Capability Matrix</a></li> + <li><a href="https://goo.gl/ps8twC">Technical Docs</a></li> + <li><a href="https://goo.gl/nk5OM0">Technical Vision</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Community <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li class="dropdown-header">Community</li> + <li><a href="/mailing_lists/">Mailing Lists</a></li> + <li><a href="https://goo.gl/ps8twC">Technical Docs</a></li> + <li><a href="https://goo.gl/nk5OM0">Technical Vision</a></li> + <li><a href="/team/">Apache Beam Team</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> + <li><a href="/source_repository/">Source Repository</a></li> + <li><a href="/issue_tracking/">Issue Tracking</a></li> + </ul> + </li> + <li><a href="/blog">Blog</a></li> + </ul> + </div><!--/.nav-collapse --> + </div> +</nav> + + +<link rel="stylesheet" href=""> + + + <div class="container" role="main"> + + <div class="container"> + <h1 id="how-to-contribute">How to Contribute</h1> + +<ul id="markdown-toc"> + <li><a href="#how-to-contribute" id="markdown-toc-how-to-contribute">How to Contribute</a> <ul> + <li><a href="#engage" id="markdown-toc-engage">Engage</a> <ul> + <li><a href="#mailing-lists" id="markdown-toc-mailing-lists">Mailing list(s)</a></li> + <li><a href="#apache-jira" id="markdown-toc-apache-jira">Apache JIRA</a></li> + </ul> + </li> + <li><a href="#design" id="markdown-toc-design">Design</a></li> + <li><a href="#code" id="markdown-toc-code">Code</a> <ul> + <li><a href="#one-time-setup" id="markdown-toc-one-time-setup">One-time Setup</a> <ul> + <li><a href="#potentially-submit-contributor-license-agreement" id="markdown-toc-potentially-submit-contributor-license-agreement">[Potentially] Submit Contributor License Agreement</a></li> + <li><a href="#obtain-a-github-account" id="markdown-toc-obtain-a-github-account">Obtain a GitHub account</a></li> + <li><a href="#fork-the-repository-on-github" id="markdown-toc-fork-the-repository-on-github">Fork the repository on GitHub</a></li> + <li><a href="#clone-the-repository-locally" id="markdown-toc-clone-the-repository-locally">Clone the repository locally</a></li> + </ul> + </li> + <li><a href="#create-a-branch-in-your-fork" id="markdown-toc-create-a-branch-in-your-fork">Create a branch in your fork</a></li> + <li><a href="#syncing-and-pushing-your-branch" id="markdown-toc-syncing-and-pushing-your-branch">Syncing and pushing your branch</a></li> + <li><a href="#testing" id="markdown-toc-testing">Testing</a></li> + </ul> + </li> + <li><a href="#review" id="markdown-toc-review">Review</a> <ul> + <li><a href="#create-a-pull-request" id="markdown-toc-create-a-pull-request">Create a pull request</a></li> + <li><a href="#code-review-and-revision" id="markdown-toc-code-review-and-revision">Code Review and Revision</a></li> + <li><a href="#lgtm" id="markdown-toc-lgtm">LGTM</a></li> + <li><a href="#deleting-your-branch" id="markdown-toc-deleting-your-branch">Deleting your branch</a></li> + </ul> + </li> + <li><a href="#commit-committers-only" id="markdown-toc-commit-committers-only">Commit (committers only)</a> <ul> + <li><a href="#one-time-setup-1" id="markdown-toc-one-time-setup-1">One-time Setup</a></li> + <li><a href="#contributor-license-agreement" id="markdown-toc-contributor-license-agreement">Contributor License Agreement</a></li> + <li><a href="#tests" id="markdown-toc-tests">Tests</a></li> + <li><a href="#finishing-touches" id="markdown-toc-finishing-touches">Finishing touches</a></li> + <li><a href="#merge-process" id="markdown-toc-merge-process">Merge process</a></li> + </ul> + </li> + <li><a href="#additional-projects" id="markdown-toc-additional-projects">Additional Projects</a> <ul> + <li><a href="#website" id="markdown-toc-website">Website</a> <ul> + <li><a href="#editing-the-website" id="markdown-toc-editing-the-website">Editing the website</a></li> + <li><a href="#committing-website-changes" id="markdown-toc-committing-website-changes">Committing website changes</a></li> + </ul> + </li> + </ul> + </li> + </ul> + </li> +</ul> + +<p>The Apache Beam community welcomes contributions from anyone with a passion for data processing! Beam has many different opportunities for contributions â write new examples, add new user-facing libraries (new statistical libraries, new IO connectors, etc), work on the core programming model, build specific runners (Apache Flink, Apache Spark, Google Cloud Dataflow, etc), or participate on the documentation effort.</p> + +<p>We use a review-then-commit workflow in Beam for all contributions.</p> + +<p><img src="/images/contribution-guide-1.png" alt="Alt text" title="Workflow image" /></p> + +<p><strong>For larger contributions or those that affect multiple components:</strong></p> + +<ol> + <li><strong>Engage</strong>: We encourage you to work with the Beam community on the <a href="https://issues.apache.org/jira/browse/BEAM">Apache JIRA issue tracker</a> and <a href="http://beam.incubator.apache.org/mailing_lists/">developerâs mailing list</a> to identify good areas for contribution.</li> + <li><strong>Design:</strong> More complicated contributions will likely benefit from some early discussion in order to scope and design them well.</li> +</ol> + +<p><strong>For all contributions:</strong></p> + +<ol> + <li><strong>Code:</strong> The best part ;-)</li> + <li><strong>Review:</strong> Submit a pull request with your contribution to our <a href="https://github.com/apache/incubator-beam/">GitHub mirror</a>. Work with a committer to review and iterate on the code, if needed.</li> + <li><strong>Commit:</strong> A Beam committer merges the pull request into our <a href="https://git-wip-us.apache.org/repos/asf/incubator-beam.git">Apache repository</a>.</li> +</ol> + +<p>We look forward to working with you!</p> + +<h2 id="engage">Engage</h2> + +<h3 id="mailing-lists">Mailing list(s)</h3> +<p>We discuss design and implementation issues on [email protected] mailing list, which is archived <a href="http://mail-archives.apache.org/mod_mbox/incubator-beam-dev/">here</a>. Join by emailing <a href="mailto:dev-subscribe@beam.incubator.apache.org"><code class="highlighter-rouge">[email protected]</code></a>.</p> + +<p>If interested, you can also join <a href="http://mail-archives.apache.org/mod_mbox/incubator-beam-user/"><code class="highlighter-rouge">[email protected]</code></a> and <a href="http://mail-archives.apache.org/mod_mbox/incubator-beam-commits/"><code class="highlighter-rouge">[email protected]</code></a> too.</p> + +<h3 id="apache-jira">Apache JIRA</h3> +<p>We use <a href="https://issues.apache.org/jira/browse/BEAM">Apache JIRA</a> as an issue tracking and project management tool, as well as a way to communicate among a very diverse and distributed set of contributors. To be able to gather feedback, avoid frustration, and avoid duplicated efforts all Beam-related work should be tracked there.</p> + +<p>If you do not already have an Apache JIRA account, sign up <a href="https://issues.apache.org/jira/">here</a>.</p> + +<p>If a quick <a href="https://issues.apache.org/jira/issues/?jql=project%3DBEAM%20AND%20text%20~%20%22the%20thing%20I%20want%20to%20contribute%22">search</a> doesnât turn up an existing JIRA issue for the work you want to contribute, create it. Please discuss your proposal with a committer or the <a href="https://issues.apache.org/jira/browse/BEAM/?selectedTab=com.atlassian.jira.jira-projects-plugin:components-panel">component lead</a> in JIRA or, alternatively, on the developer mailing list.</p> + +<p>If thereâs an existing JIRA issue for your intended contribution, please comment about your intended work. Once the work is understood, a committer will assign the issue to you. (If you donât have a JIRA role yet, youâll be added to the âcontributorâ role.) If an issue is currently assigned, please check with the current assignee before reassigning.</p> + +<p>For moderate or large contributions, you should not start coding or writing a design doc unless there is a corresponding JIRA issue assigned to you for that work. Simple changes, like fixing typos, do not require an associated issue.</p> + +<h2 id="design">Design</h2> +<p>To avoid potential frustration during the code review cycle, we encourage you to clearly scope and design non-trivial contributions with the Beam community before you start coding.</p> + +<p>Generally, the JIRA issue is the best place to gather relevant design docs, comments, or references. Itâs great to explicitly include relevant stakeholders early in the conversation. For designs that may be generally interesting, we also encourage conversations on the developerâs mailing list.</p> + +<p>We suggest using <a href="https://docs.google.com/">Google Docs</a> for sharing designs that may benefit from diagrams or comments. Please remember to make the document world-commentable and add a link to it from the relevant JIRA issue. We also track Beam-related documents in <a href="https://drive.google.com/folderview?id=0B-IhJZh9Ab52OFBVZHpsNjc4eXc&usp=sharing">this shared folder</a>.</p> + +<h2 id="code">Code</h2> +<p>To contribute code to Apache Beam, youâll have to do a few administrative steps once, and then follow a few guidelines for each contribution.</p> + +<h3 id="one-time-setup">One-time Setup</h3> + +<h4 id="potentially-submit-contributor-license-agreement">[Potentially] Submit Contributor License Agreement</h4> +<p>Apache Software Foundation (ASF) desires that all contributors of ideas, code, or documentation to the Apache projects complete, sign, and submit an <a href="https://www.apache.org/licenses/icla.txt">Individual Contributor License Agreement</a> (ICLA). The purpose of this agreement is to clearly define the terms under which intellectual property has been contributed to the ASF and thereby allow us to defend the project should there be a legal dispute regarding the software at some future time.</p> + +<p>We require you to have an ICLA on file with the Apache Secretary for larger contributions only. For smaller ones, however, we rely on <a href="http://www.apache.org/licenses/LICENSE-2.0#contributions">clause five</a> of the Apache License, Version 2.0, describing licensing of intentionally submitted contributions and do not require an ICLA in that case.</p> + +<h4 id="obtain-a-github-account">Obtain a GitHub account</h4> +<p>We use GitHubâs pull request functionality to review proposed code changes.</p> + +<p>If you do not already have a personal GitHub account, sign up <a href="https://github.com/join">here</a>.</p> + +<h4 id="fork-the-repository-on-github">Fork the repository on GitHub</h4> +<p>Go to the <a href="https://github.com/apache/incubator-beam/">Beam GitHub mirror</a> and fork the repository to your own private account. This will be your private workspace for staging changes.</p> + +<p>We recommend enabling Travis-CI continuous integration coverage on your private fork in order to easily test your changes before proposing a pull request. Go to <a href="https://travis-ci.org">Travis-CI</a>, log in with your GitHub account, and enable coverage for your repository.</p> + +<h4 id="clone-the-repository-locally">Clone the repository locally</h4> +<p>You are now ready to create the development environment on your local machine. Feel free to repeat these steps on all machines that you want to use for development.</p> + +<p>We assume you are using SSH-based authentication with GitHub. If necessary, exchange SSH keys with GitHub by following <a href="https://help.github.com/articles/generating-an-ssh-key/">their instructions</a>.</p> + +<p>Clone Beamâs read-only GitHub mirror.</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>$ git clone https://github.com/apache/incubator-beam.git +$ cd incubator-beam +</code></pre> +</div> + +<p>Add your forked repository as an additional Git remote, where youâll push your changes.</p> + +<pre><code>$ git remote add <b><GitHub_user></b> [email protected]:<b><GitHub_user></b>/incubator-beam.git</code></pre> + +<p>You are now ready to start developing!</p> + +<h3 id="create-a-branch-in-your-fork">Create a branch in your fork</h3> +<p>Youâll work on your contribution in a branch in your own (forked) repository. Create a local branch, initialized with the state of the branch you expect your changes to be merged into. Keep in mind that we use several branches, including <code class="highlighter-rouge">master</code>, feature-specific, and release-specific branches. If you are unsure, initialize with the state of the <code class="highlighter-rouge">master</code> branch.</p> + +<pre><code>$ git fetch --all +$ git checkout -b <b><my-branch></b> origin/master</code></pre> + +<p>At this point, you can start making and committing changes to this branch in a standard way.</p> + +<h3 id="syncing-and-pushing-your-branch">Syncing and pushing your branch</h3> +<p>Periodically while you work, and certainly before submitting a pull request, you should update your branch with the most recent changes to the target branch.</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>$ git pull --rebase +</code></pre> +</div> + +<p>Remember to always use <code class="highlighter-rouge">--rebase</code> parameter to avoid extraneous merge commits.</p> + +<p>To push your local, committed changes to your (forked) repository on GitHub, run:</p> + +<pre><code>$ git push <b><GitHub_user> <my-branch></b></code></pre> + +<h3 id="testing">Testing</h3> +<p>All code should have appropriate unit testing coverage. New code should have new tests in the same contribution. Bug fixes should include a regression test to prevent the issue from reoccurring.</p> + +<p>For contributions to the Java code, run unit tests locally via Maven. Alternatively, you can use Travis-CI.</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>$ mvn clean verify +</code></pre> +</div> + +<h2 id="review">Review</h2> +<p>Once the initial code is complete and the tests pass, itâs time to start the code review process. We review and discuss all code, no matter who authors it. Itâs a great way to build community, since you can learn from other developers, and they become familiar with your contribution. It also builds a strong project by encouraging a high quality bar and keeping code consistent throughout the project.</p> + +<h3 id="create-a-pull-request">Create a pull request</h3> +<p>Organize your commits to make your reviewerâs job easier. Use the following command to re-order, squash, edit, or change description of individual commits.</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>$ git rebase -i origin/master +</code></pre> +</div> + +<p>Navigate to the <a href="https://github.com/apache/incubator-beam">Beam GitHub mirror</a> to create a pull request. The title of the pull request should be strictly in the following format:</p> + +<pre><code>[BEAM-<b><JIRA-issue-#></b>] Title of the pull request</code></pre> + +<p>Please include a descriptive pull request message to help make the reviewerâs job easier. Itâs fine to refer to existing design docs or the contents of the associated JIRA as appropriate.</p> + +<p>If you know a good committer to review your pull request, please make a comment like the following. If not, donât worry â a committer will pick it up.</p> + +<pre><code>Hi @<b><GitHub-reviewer-username></b>, can you please take a look?</code></pre> + +<p>When choosing a reviewer, think about who is the expert on the relevant code, who the stakeholders are for this change, and who else would benefit from becoming familiar with the code. If youâd appreciate comments from additional folks but already have a main reviewer, you can explicitly cc them using <code>@<b><GitHub-reviewer-username></b></code>.</p> + +<h3 id="code-review-and-revision">Code Review and Revision</h3> +<p>During the code review process, donât rebase your branch or otherwise modify published commits, since this can remove existing comment history and be confusing to the reviewer. When you make a revision, always push it in a new commit.</p> + +<p>Our GitHub mirror automatically provides pre-commit testing coverage using Jenkins and Travis-CI. Please make sure those tests pass; the contribution cannot be merged otherwise.</p> + +<h3 id="lgtm">LGTM</h3> +<p>Once the reviewer is happy with the change, theyâll respond with an LGTM (â<em>looks good to me!</em>â). At this point, the committer will take over, possibly make some additional touch ups, and merge your changes into the codebase.</p> + +<p>In the case both the author and the reviewer are committers, either can merge the pull request. Just be sure to communicate clearly whose responsibility it is in this particular case.</p> + +<p>Thank you for your contribution to Beam!</p> + +<h3 id="deleting-your-branch">Deleting your branch</h3> +<p>Once the pull request is merged into the Beam repository, you can safely delete the branch locally and purge it from your forked repository.</p> + +<p>From another local branch, run:</p> + +<pre><code>$ git fetch --all +$ git branch -d <b><my-branch></b> +$ git push <b><GitHub_user></b> --delete <b><my-branch></b></code></pre> + +<h2 id="commit-committers-only">Commit (committers only)</h2> +<p>Once the code has been peer reviewed by a committer, the next step is for the committer to merge it into the <a href="https://git-wip-us.apache.org/repos/asf/incubator-beam.git">authoritative Apache repository</a>, not the read-only GitHub mirror. (In the case that the author is also a committer, it is acceptable for either the author or reviewer to do the merge. Just be explicit about whose job it is!)</p> + +<p>Pull requests should not be merged before the review has received an explicit LGTM from another committer. Exceptions to this rule may be made rarely, on a case-by-case basis only, in the committerâs discretion for situations such as build breakages.</p> + +<p>Committers should never commit anything without going through a pull request, since that would bypass test coverage and potentially cause the build to fail due to checkstyle, etc. In addition, pull requests ensure that changes are communicated properly and potential flaws or improvements can be spotted. <strong>Always go through the pull request, even if you wonât wait for the code review.</strong> Even then, comments can be provided in the pull requests after it has been merged to work on follow-ups.</p> + +<p>Committing is currently a manual process, but we are investigating tools to automate pieces of this process.</p> + +<h3 id="one-time-setup-1">One-time Setup</h3> +<p>Add the Apache Git remote in your local clone, by running:</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>$ git remote add apache https://git-wip-us.apache.org/repos/asf/incubator-beam.git +</code></pre> +</div> + +<p>We recommend renaming the <code class="highlighter-rouge">origin</code> remote to <code class="highlighter-rouge">github</code>, to avoid confusion when dealing with this many remotes.</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>$ git remote rename origin github +</code></pre> +</div> + +<p>For the <code class="highlighter-rouge">github</code> remote, add an additional fetch reference, which will cause every pull request to be made available as a remote branch in your workspace.</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>$ git config --local --add remote.github.fetch \ + '+refs/pull/*/head:refs/remotes/github/pr/*' +</code></pre> +</div> + +<p>You can confirm your configuration by running the following command.</p> + +<pre><code>$ git remote -v +apache https://git-wip-us.apache.org/repos/asf/incubator-beam.git (fetch) +apache https://git-wip-us.apache.org/repos/asf/incubator-beam.git (push) +github https://github.com/apache/incubator-beam.git (fetch) +github https://github.com/apache/incubator-beam.git (push) +<b><username></b> [email protected]:<b><username></b>/beam.git (fetch) +<b><username></b> [email protected]:<b><username></b>/beam.git (push)</code></pre> + +<h3 id="contributor-license-agreement">Contributor License Agreement</h3> +<p>If you are merging a larger contribution, please make sure that the contributor has an ICLA on file with the Apache Secretary. You can view the list of committers <a href="http://home.apache.org/phonebook.html?unix=committers">here</a>, as well as <a href="http://home.apache.org/unlistedclas.html">ICLA-signers who arenât yet committers</a>.</p> + +<p>For smaller contributions, however, this is not required. In this case, we rely on <a href="http://www.apache.org/licenses/LICENSE-2.0#contributions">clause five</a> of the Apache License, Version 2.0, describing licensing of intentionally submitted contributions.</p> + +<h3 id="tests">Tests</h3> +<p>Before merging, please make sure both Travis-CI and Jenkins tests pass, as visible in the GitHub pull request. Do not merge the pull request otherwise.</p> + +<h3 id="finishing-touches">Finishing touches</h3> +<p>At some point in the review process, you should take the pull request over and complete any outstanding work that is either minor, stylistic, or otherwise outside the expertise of the contributor.</p> + +<p>Fetch references from all remote repositories, and checkout the specific pull request branch.</p> + +<pre> +$ git fetch --all +$ git checkout -b finish-pr-<b><pull-request-#></b> github/pr/<b><pull-request-#></b></pre> + +<p>At this point, you can commit any final touches to the pull request. For example, you should:</p> + +<ul> + <li>Rebase on current state of the target branch.</li> + <li>Fix typos.</li> + <li>Reorganize commits that are part of the pull request, such as squash them into fewer commits that make sense for a historical perspective.</li> +</ul> + +<p>You will often need the following command, assuming youâll be merging changes into the <code class="highlighter-rouge">master</code> branch:</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>$ git rebase -i apache/master +</code></pre> +</div> + +<p>Please make sure to retain authorship of original commits to give proper credit to the contributor. You are welcome to change their commits slightly (e.g., fix a typo) and squash them, but more substantive changes should be a separate commit and review.</p> + +<h3 id="merge-process">Merge process</h3> +<p>Once you are ready to merge, fetch all remotes, checkout the destination branch and merge the changes.</p> + +<pre><code>$ git fetch --all +$ git checkout apache/master +$ git merge --no-ff \ + -m $'[BEAM-<b><JIRA-issue-#></b>] <b><Title></b>\n\nThis closes #<b><pull-request-#></b>' \ + finish-pr-<b><pull-request-#></b></code></pre> + +<p>Always use <code class="highlighter-rouge">--no-ff</code> option and the specific commit message âThis closes #<b><pull request #></b>ââ â it ensures proper marking in the tooling. It would be nice to include additional information in the merge commit message, such as the title and summary of the pull request.</p> + +<p>At this point, you want to ensure everything is right. Test it with <code class="highlighter-rouge">mvn verify</code>. Run <code class="highlighter-rouge">gitk</code> or <code class="highlighter-rouge">git log --graph,</code> etc. When you are happy with how it looks, push it. This is the point of no return â proceed with caution.</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>$ git push apache HEAD:master +</code></pre> +</div> + +<p>Done. You can delete the local <code>finish-pr-<b><pull-request-#></b></code> branch if you like.</p> + +<h2 id="additional-projects">Additional Projects</h2> + +<h3 id="website">Website</h3> +<p>We use the same general review-then-commit process for changes to the Beam website, which uses <a href="https://github.com/apache/incubator-beam-site">this GitHub Mirror</a>. The website uses the <a href="http://jekyllrb.com">Jekyll</a> framework to make website development easier. The <a href="https://github.com/apache/incubator-beam-site/blob/asf-site/README.md">README file</a> in the website repository has more information on how to:</p> + +<ul> + <li>Install Jekyll</li> + <li>Make changes to the website</li> + <li>Test your changes</li> +</ul> + +<h4 id="editing-the-website">Editing the website</h4> +<p>You can checkout the website repository with the following commands. This will allow you to edit the website in a local environment provided you have installed <a href="http://jekyllrb.com">Jekyll</a> and understand how to use it.</p> + +<pre><code>git clone -b asf-site https://github.com/apache/incubator-beam-site.git +cd incubator-beam-site +git remote add <b><GitHub_user></b> [email protected]:<b><GitHub_user></b>/incubator-beam-site.git +git fetch --all +git checkout -b <b><my-branch></b> origin/asf-site</code></pre> + +<h4 id="committing-website-changes">Committing website changes</h4> + +<p>Committers can commit website changes with the following commands. <strong>Changes to the website must follow the same process outlined above</strong> for changes to the Apache Beam code base.</p> + +<pre><code>git remote add apache https://git-wip-us.apache.org/repos/asf/incubator-beam-site.git +git remote rename origin github +git config --local --add remote.github.fetch \ + '+refs/pull/*/head:refs/remotes/github/pr/*'</code></pre> + + </div> + + + <hr> + <div class="row"> + <div class="col-xs-12"> + <footer> + <p class="text-center">© Copyright 2016 + <a href="http://www.apache.org">The Apache Software Foundation.</a> All Rights Reserved.</p> + <p class="text-center"><a href="/privacy_policy">Privacy Policy</a> | + <a href="/feed.xml">RSS Feed</a></p> + </footer> + </div> + </div> + <!-- container div end --> +</div> + + + </body> + +</html> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/feed.xml ---------------------------------------------------------------------- diff --git a/content/feed.xml b/content/feed.xml index 5052f13..d94900c 100644 --- a/content/feed.xml +++ b/content/feed.xml @@ -6,8 +6,8 @@ </description> <link>http://beam.incubator.apache.org/</link> <atom:link href="http://beam.incubator.apache.org/feed.xml" rel="self" type="application/rss+xml"/> - <pubDate>Wed, 23 Mar 2016 00:00:49 -0700</pubDate> - <lastBuildDate>Wed, 23 Mar 2016 00:00:49 -0700</lastBuildDate> + <pubDate>Wed, 30 Mar 2016 09:25:15 -0700</pubDate> + <lastBuildDate>Wed, 30 Mar 2016 09:25:15 -0700</lastBuildDate> <generator>Jekyll v3.1.2</generator> <item> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/getting_started/index.html ---------------------------------------------------------------------- diff --git a/content/getting_started/index.html b/content/getting_started/index.html index 6ee33ee..0fa03ea 100644 --- a/content/getting_started/index.html +++ b/content/getting_started/index.html @@ -60,6 +60,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/images/contribution-guide-1.png ---------------------------------------------------------------------- diff --git a/content/images/contribution-guide-1.png b/content/images/contribution-guide-1.png new file mode 100644 index 0000000..d390a79 Binary files /dev/null and b/content/images/contribution-guide-1.png differ http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/index.html ---------------------------------------------------------------------- diff --git a/content/index.html b/content/index.html index 09dda44..d99377d 100644 --- a/content/index.html +++ b/content/index.html @@ -60,6 +60,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/issue_tracking/index.html ---------------------------------------------------------------------- diff --git a/content/issue_tracking/index.html b/content/issue_tracking/index.html index 9c0cc03..c962ef2 100644 --- a/content/issue_tracking/index.html +++ b/content/issue_tracking/index.html @@ -60,6 +60,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/mailing_lists/index.html ---------------------------------------------------------------------- diff --git a/content/mailing_lists/index.html b/content/mailing_lists/index.html index d823e69..81f3005 100644 --- a/content/mailing_lists/index.html +++ b/content/mailing_lists/index.html @@ -60,6 +60,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/privacy_policy/index.html ---------------------------------------------------------------------- diff --git a/content/privacy_policy/index.html b/content/privacy_policy/index.html index 614f18a..0aded21 100644 --- a/content/privacy_policy/index.html +++ b/content/privacy_policy/index.html @@ -60,6 +60,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/source_repository/index.html ---------------------------------------------------------------------- diff --git a/content/source_repository/index.html b/content/source_repository/index.html index 35f9242..0300597 100644 --- a/content/source_repository/index.html +++ b/content/source_repository/index.html @@ -60,6 +60,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/content/team/index.html ---------------------------------------------------------------------- diff --git a/content/team/index.html b/content/team/index.html index 590dc68..d1fadf6 100644 --- a/content/team/index.html +++ b/content/team/index.html @@ -60,6 +60,7 @@ <li><a href="/team/">Apache Beam Team</a></li> <li role="separator" class="divider"></li> <li class="dropdown-header">Contribute</li> + <li><a href="/contribution-guide/">Contribution Guide</a></li> <li><a href="/source_repository/">Source Repository</a></li> <li><a href="/issue_tracking/">Issue Tracking</a></li> </ul> @@ -123,7 +124,7 @@ <tr> <th scope="row">Ben Chambers</th> - <td scope="row"></td> + <td scope="row">bchambers</td> <td scope="row">bchambers [at] google [dot] com</td> <td scope="row">Google</td> <td scope="row">committer, PPMC</td> @@ -141,7 +142,7 @@ <tr> <th scope="row">Dan Halperin</th> - <td scope="row"></td> + <td scope="row">dhalperi</td> <td scope="row">dhalperi [at] google [dot] com</td> <td scope="row">Google</td> <td scope="row">committer, PPMC</td> @@ -195,7 +196,7 @@ <tr> <th scope="row">Kostas Tzoumas</th> - <td scope="row"></td> + <td scope="row">ktzoumas</td> <td scope="row">kostas [at] data-artisans [dot] com</td> <td scope="row">data Artisans</td> <td scope="row">committer, PPMC</td> @@ -213,7 +214,7 @@ <tr> <th scope="row">Luke Cwik</th> - <td scope="row"></td> + <td scope="row">lcwik</td> <td scope="row">lcwik [at] google [dot] com</td> <td scope="row">Google</td> <td scope="row">committer, PPMC</td> @@ -231,7 +232,7 @@ <tr> <th scope="row">Stephan Ewen</th> - <td scope="row"></td> + <td scope="row">sewen</td> <td scope="row">stephan [at] data-artisans [dot] com</td> <td scope="row">data Artisans</td> <td scope="row">committer, PPMC</td> @@ -240,7 +241,7 @@ <tr> <th scope="row">Tom White</th> - <td scope="row"></td> + <td scope="row">tomwhite</td> <td scope="row">tom [at] cloudera [dot] com</td> <td scope="row">Cloudera</td> <td scope="row">committer, PPMC</td> @@ -249,7 +250,7 @@ <tr> <th scope="row">Tyler Akidau</th> - <td scope="row"></td> + <td scope="row">takidau</td> <td scope="row">takidau [at] google [dot] com</td> <td scope="row">Google</td> <td scope="row">committer, PPMC</td> @@ -258,7 +259,7 @@ <tr> <th scope="row">Robert Bradshaw</th> - <td scope="row"></td> + <td scope="row">robertwb</td> <td scope="row">robertwb [at] google [dot] com</td> <td scope="row">Google</td> <td scope="row">committer, PPMC</td> http://git-wip-us.apache.org/repos/asf/incubator-beam-site/blob/8de7377a/images/contribution-guide-1.png ---------------------------------------------------------------------- diff --git a/images/contribution-guide-1.png b/images/contribution-guide-1.png new file mode 100644 index 0000000..d390a79 Binary files /dev/null and b/images/contribution-guide-1.png differ
