You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by ja...@apache.org on 2018/10/03 06:06:31 UTC

samza git commit: docs: update contact and contributor corner

Repository: samza
Updated Branches:
  refs/heads/master 8e61a4567 -> 603bd8eac


docs: update contact and contributor corner

Also:
- added a new page for 'Samza Enhancement Proposal' (SEP).
- removed mailing-list.md and design-documents.md
- updated the layout page

Author: Peng Du <pd...@linkedin.com>

Reviewers: Jagadish<ja...@apache.org>

Closes #650 from pdu-mn1/docs-contact-contrib


Project: http://git-wip-us.apache.org/repos/asf/samza/repo
Commit: http://git-wip-us.apache.org/repos/asf/samza/commit/603bd8ea
Tree: http://git-wip-us.apache.org/repos/asf/samza/tree/603bd8ea
Diff: http://git-wip-us.apache.org/repos/asf/samza/diff/603bd8ea

Branch: refs/heads/master
Commit: 603bd8eac302046d9b876b716b2aea48b36df43c
Parents: 8e61a45
Author: Peng Du <pd...@linkedin.com>
Authored: Tue Oct 2 23:06:27 2018 -0700
Committer: Jagadish <jv...@linkedin.com>
Committed: Tue Oct 2 23:06:27 2018 -0700

----------------------------------------------------------------------
 docs/_includes/footer.html              |   4 +-
 docs/_includes/main-navigation.html     |   2 +-
 docs/_layouts/default.html              |   6 +-
 docs/_menu/index.html                   |   4 +-
 docs/community/contact-us.md            |  77 +++++++++++++++++
 docs/community/mailing-lists.md         |  28 ------
 docs/contribute/contributors-corner.md  | 123 +++++++++++++--------------
 docs/contribute/design-documents.md     |  58 -------------
 docs/contribute/enhancement-proposal.md |  96 +++++++++++++++++++++
 9 files changed, 240 insertions(+), 158 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/samza/blob/603bd8ea/docs/_includes/footer.html
----------------------------------------------------------------------
diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html
index 4ccf506..c0906ae 100644
--- a/docs/_includes/footer.html
+++ b/docs/_includes/footer.html
@@ -29,7 +29,7 @@
       <div>
         <div class="footer__heading">Community</div>
         <div class="footer__items">
-          <a class="footer__item" href="/community/mailing-lists.html">Contact Us</a>
+          <a class="footer__item" href="/community/contact-us.html">Contact Us</a>
           <a class="footer__item" href="/contribute/contributors-corner.html">Contributors' Corner</a>
           <a class="footer__item" href="/community/committers.html">PMC members and committers</a>
           <a class="footer__item" href="/powered-by/">Powered By</a>
@@ -72,7 +72,7 @@
     // do something with the status
     console.log(status);
   });
-</script> 
+</script>
 {% endif %}
 
 <!-- Google Analytics -->

http://git-wip-us.apache.org/repos/asf/samza/blob/603bd8ea/docs/_includes/main-navigation.html
----------------------------------------------------------------------
diff --git a/docs/_includes/main-navigation.html b/docs/_includes/main-navigation.html
index 626501e..827d18f 100644
--- a/docs/_includes/main-navigation.html
+++ b/docs/_includes/main-navigation.html
@@ -40,7 +40,7 @@
           <i class="icon ion-md-arrow-dropdown"></i>
         </div>
         <div class="main-navigation__item-group-list">
-          <a class="main-navigation__item" href="/community/mailing-lists.html">Contact Us</a>
+          <a class="main-navigation__item" href="/community/contact-us.html">Contact Us</a>
           <a class="main-navigation__item" href="/contribute/contributors-corner.html">Contributor's Corner</a>
           <a class="main-navigation__item" href="/community/committers.html">PMC Members and committers</a>
           <a class="main-navigation__item" href="/meetups/">Talks and Meetups</a>

http://git-wip-us.apache.org/repos/asf/samza/blob/603bd8ea/docs/_layouts/default.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html
index bcc4a50..49f80a7 100644
--- a/docs/_layouts/default.html
+++ b/docs/_layouts/default.html
@@ -73,7 +73,7 @@
       <div class="hero-blog-posts">
         <h3>Latest from our blog</h3>
         <div class="blog-posts">
-        
+
             {% assign sortedBlogPost = site.blog | sort: 'date' | reverse %}
             {% assign maxCount = 3 %}
             {% assign latestCount = 1 %}
@@ -94,7 +94,7 @@
                   <div class="blog-post__title">{{ post.title }}</div>
                   <div class="blog-post__date">{{ post.date | date: "%B %-d, %Y" }}</div>
               </a>
-        
+
             {% endfor %}
 
         </div>
@@ -220,7 +220,7 @@
   {% include footer.html %}
 
   <script type="text/javascript" src="/js/flickity.js"></script>
-  
+
 </body>
 
 </html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/samza/blob/603bd8ea/docs/_menu/index.html
----------------------------------------------------------------------
diff --git a/docs/_menu/index.html b/docs/_menu/index.html
index 038fd8b..ecf40d6 100644
--- a/docs/_menu/index.html
+++ b/docs/_menu/index.html
@@ -19,9 +19,11 @@ items:
   - menu_title: Community
     items:
       - menu_title: Contact Us
-        url: '/community/mailing-lists.html'
+        url: '/community/contact-us.html'
       - menu_title: Contributor's Corner
         url: '/contribute/contributors-corner.html'
+      - menu_title: Enhancement Proposal
+        url: '/contribute/enhancement-proposal.html'
       - menu_title: PMC members and committers
         url: '/community/committers.html'
       - menu_title: Talks and Meetups

http://git-wip-us.apache.org/repos/asf/samza/blob/603bd8ea/docs/community/contact-us.md
----------------------------------------------------------------------
diff --git a/docs/community/contact-us.md b/docs/community/contact-us.md
new file mode 100644
index 0000000..854e812
--- /dev/null
+++ b/docs/community/contact-us.md
@@ -0,0 +1,77 @@
+---
+layout: page
+title: Contact Us
+---
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You 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.
+-->
+
+There are many ways to reach the Samza user and developer communities - use whichever one seems best! 
+
+Please make sure you are subscribed to the mailing list you are posting to! If you are not subscribed to the mailing list, your message will be rejected.
+
+<table class="table table-condensed table-bordered table-striped">
+  <thead>
+    <tr>
+        <th> How to contact us</th>
+        <th> When to use it </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+        <td> <a href="https://lists.apache.org/list.html?dev@samza.apache.org">dev@</a> mailing list </td>
+        <td> General and Development discussions (<a href="mailto:dev-subscribe@samza.apache.org">Subscribe</a>, <a href="mailto:dev-unsubscribe@samza.apache.org">Unsubscribe</a>) </td>
+    </tr>
+    <tr>
+        <td> <a href="https://lists.apache.org/list.html?commits@samza.apache.org"> commits@ </a> mailing list </td>
+        <td> Commits, bugs, pull requests, etc. (<a href="mailto:commits-subscribe@samza.apache.org">Subscribe</a>, <a href="mailto:commits-unsubscribe@samza.apache.org">Unsubscribe</a>) </td>
+    </tr>
+    <tr>
+        <td> <a href="https://issues.apache.org/jira/projects/SAMZA/issues/SAMZA-1371?filter=allopenissues">JIRA</a> bug tracker </td>
+        <td> Report bugs / discover known issues </td>
+    </tr>
+  </tbody>  
+</table>
+
+If you would like to post to these mailing lists, please
+
+1. subscribe by sending an email using the **subscribe** links above; and
+2. confirm the subscription by replying to the confirmation email; and
+3. send your email to the mailing list.
+
+Please note that you won’t receive any responses to your email if you are not subscribed.
+
+### Having a Question?
+
+The Apache Samza community answers many user questions every day. You can search for answers and advices in the archives or reach out to the community for help and guidance.
+
+#### User Mailing List
+
+Many Samza users, contributors, and committers are subscribed to Samza’s user mailing list. The user mailing list is a great place to get help.
+
+Some quick tips when using the mailing lists:
+
+* Prior to submitting questions, you can search the archive to find if the same questions have been asked before in [dev@samza.apache.org mail archives](http://mail-archives.apache.org/mod_mbox/samza-dev/). 
+* For error logs or long code examples, please use [GitHub gist](https://gist.github.com/) and include only a few lines of the pertinent code / log within the email.
+* No jobs, sales, or solicitation is permitted on the Apache Samza mailing lists.
+
+### Found a Bug?
+
+If you observe an unexpected behavior that might be caused by a bug, you can search for reported bugs or file a bug report in [Samza’s JIRA](https://issues.apache.org/jira/projects/SAMZA/issues/SAMZA-1371?filter=allopenissues). More instructions are available in [contribors corner](/contribute/contributors-corner.html).
+
+If you are unsure whether the unexpected behavior was a bug or not, please post a question to the [user mailing list](mailto:dev@samza.apache.org).
+
+

http://git-wip-us.apache.org/repos/asf/samza/blob/603bd8ea/docs/community/mailing-lists.md
----------------------------------------------------------------------
diff --git a/docs/community/mailing-lists.md b/docs/community/mailing-lists.md
deleted file mode 100644
index ebf041c..0000000
--- a/docs/community/mailing-lists.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-layout: page
-title: Mailing Lists
----
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You 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.
--->
-
-We have a few mailing lists hosted by Apache:
-
-* **dev@samza.apache.org**  <small>([subscribe](mailto:dev-subscribe@samza.apache.org), [unsubscribe](mailto:dev-unsubscribe@samza.apache.org), [archive](http://mail-archives.apache.org/mod_mbox/samza-dev/))</small><br/>
-  A list for discussion on Samza development. Email here for help.
-
-* **commits@samza.apache.org** <small>([subscribe](mailto:commits-subscribe@samza.apache.org), [unsubscribe](mailto:commits-unsubscribe@samza.apache.org), [archive](http://mail-archives.apache.org/mod_mbox/samza-commits/))</small><br/>
-  A list to track Samza commits.

http://git-wip-us.apache.org/repos/asf/samza/blob/603bd8ea/docs/contribute/contributors-corner.md
----------------------------------------------------------------------
diff --git a/docs/contribute/contributors-corner.md b/docs/contribute/contributors-corner.md
index 454ce59..c3ad9ce 100644
--- a/docs/contribute/contributors-corner.md
+++ b/docs/contribute/contributors-corner.md
@@ -21,17 +21,30 @@ title: Contributor's Corner
 - [Ask Questions](#ask-questions)
 - [File Bug Reports](#file-bug-reports)
 - [Find A Project to Work On](#find-a-project-to-work-on)
+- [Contributing Documentation](#contributing-documentation)
 - [Contributing to Apache Samza](#contributing-to-apache-samza)
-- [For Committers](#for-committers)
-  * [Prepare to merge a Pull Request (PR) by setting up the following:](#prepare-to-merge-a-pull-request--pr--by-setting-up-the-following-)
-  * [Merging a Pull Request](#merging-a-pull-request)
-
-Apache Samza is developed by an open and friendly community. Everybody is welcome to contribute and engage with the community. We are happy to accept contributions, be it trivial cleanups or bug-fixes or new features. There are many ways to engage with the community and contribute to Apache Samza, including filing bugs, asking questions and joining discussions in our mailing lists, contributing code or documentation, or testing.
+  * [Building and Testing](#building-and-testing)
+  * [Developing with an IDE](#developing-with-an-ide)
+- [Pull Requests](#pull-requests)  
+
+Apache Samza is developed by an open and friendly community. Everybody is welcome to contribute and engage with the community. There are many such opportunities:
+
+* ask or answer questions
+* review proposed design ideas 
+* improve the documentation
+* contribute bug reports
+* write new sample applications
+* add new or improve existing test cases
+* add new libraries (new IO systems, etc)
+* work on the core Samza stream processing framework
+* review design proposals and documents
 
 ## Ask Questions
-Apache Samza community is happy to answer any questions related to the project. We use our [mailing list](/community/mailing-lists.html) for all communications and discussions. You can also interact in StackOverflow under the tag - [#apache-samza](http://stackoverflow.com/questions/tagged/apache-samza)
+
+Apache Samza community is happy to answer any questions related to the project with any communication channels listed in [mailing list](/community/contact-us.html). 
 
 ## File Bug Reports
+
 Apache Samza uses [JIRA](https://issues.apache.org/jira/browse/SAMZA) to file bug reports. In order to file a bug report, please open Samza JIRA and include the following details:
 
 * A descriptive title
@@ -39,78 +52,58 @@ Apache Samza uses [JIRA](https://issues.apache.org/jira/browse/SAMZA) to file bu
 * Version of Apache Samza in which this issue is seen - You can add the version(s) by updating "Affects Version/s" field in the JIRA
 * Environment details (such as OS, JDK version etc) whenever applicable
  
-If you need someone to immediately take a look at your JIRA, please don't hesitate to send an email to the dev mailing list.
+If you need someone to immediately take a look at your JIRA, please don’t hesitate to send an email to the [dev mailing list](mailto:dev@samza.apache.org).
 
 ## Find A Project to Work On
 
-We tag bugs in [JIRA](https://issues.apache.org/jira/browse/SAMZA) with "[newbie](https://issues.apache.org/jira/issues/?jql=project%20%3D%20SAMZA%20AND%20labels%20%3D%20newbie%20AND%20status%20%3D%20Open)" label that are good for people getting started with the code base. When you feel confident, you can pick-up "[newbie++](https://issues.apache.org/jira/issues/?jql=project%20%3D%20SAMZA%20AND%20labels%20%3D%20%22newbie%2B%2B%22%20AND%20status%20%3D%20Open)" JIRAs. Picking up these JIRAs are the best way to familiarize yourself with the codebase. 
+We tag tickets in [JIRA](https://issues.apache.org/jira/browse/SAMZA) with “[newbie](https://issues.apache.org/jira/issues/?jql=project%20%3D%20SAMZA%20AND%20labels%20%3D%20newbie%20AND%20status%20%3D%20Open)” label that are good for people getting started with the code base. When you feel confident, you can pick-up “[newbie++](https://issues.apache.org/jira/issues/?jql=project%20%3D%20SAMZA%20AND%20labels%20%3D%20%22newbie%2B%2B%22%20AND%20status%20%3D%20Open)” JIRAs. Picking up these JIRAs are the best way to familiarize yourself with the codebase.
 
-More meaty projects are [here](https://issues.apache.org/jira/issues/?jql=project%20%3D%20SAMZA%20AND%20labels%20%3D%20project%20AND%20status%20%3D%20Open). The process for working on a large project is:
+More meaty projects are [here](https://issues.apache.org/jira/issues/?jql=project%20%3D%20SAMZA%20AND%20labels%20%3D%20project%20AND%20status%20%3D%20Open). The process for working on a large project is documented in details in [samza enhancement proposal](/contribute/enhancement-proposal.html). 
+If you are unclear whether a change you are proposing requires a design document, ask us through our [mailing list](mailto:dev@samza.apache.org).
 
-1. Instigate a discussion on the [JIRA](https://issues.apache.org/jira/browse/SAMZA)
-2. Write a [design document](design-documents.html)
-3. Request feedback for the [design document](design-documents.html) on the Jira and the samza-dev mailing list
-4. Come to an agreement on design
-5. Implement design
+## Contributing Documentation
 
-*If you are unclear whether a change you are proposing requires a design document, feel free ask us through our mailing list!*
+The Samza documentation is based on markdown files, which are built using Jekyll. To propose a change to documentation, edit their corresponding markdown source files in Samza’s [docs/](https://github.com/apache/samza/tree/master/docs) directory. The [README.md](https://github.com/apache/samza/blob/master/docs/README.md) in the same directory shows how to build the documentation locally and test your changes. The process to propose a doc change is otherwise the same as the process for proposing code changes below.
 
 ## Contributing to Apache Samza
 
-Samza's code is in an Apache Git repository located [here](https://git-wip-us.apache.org/repos/asf?p=samza.git;a=tree).
+The official Samza codebase is hosted on the Apache Git repository located [here](https://github.com/apache/samza) and we use [Pull Requests](https://help.github.com/articles/about-pull-requests/) on [GitHub](https://github.com/apache/samza) for code reviews. If you are unfamiliar with this workflow, [Git Handbook](https://guides.github.com/introduction/git-handbook/) has many useful introductions and instructions.
+
+You should [fork](https://guides.github.com/activities/forking/) the [Samza’s Github repository](https://github.com/apache/samza) to create your own repository.
+
+### Building and Testing
 
-You can check out Samza's code by running:
+We use [Gradle](https://gradle.org/) to build and test Samza. You do not need to install gradle, but you do need a Java SDK installed. You can develop on Linux and macOS. 
+
+The entire set of unit tests can be run with this command at the root of the git repository.
 
 ```
-git clone http://git-wip-us.apache.org/repos/asf/samza.git
+./gradlew test
 ```
 
-The Samza website is built by Jekyll from the markdown files found in the `docs` subdirectory.
-
-We use Pull Requests to review and discuss your contributions. In order to contribute code, please do the following:
-
-* If you are working on a big new feature, follow the steps outlined above regarding [design documents](/contribute/design-documents.html) page
-* If there is no JIRA for your work, please open a [JIRA](https://issues.apache.org/jira/browse/SAMZA) before creating a Pull Request. If it is a trivial fix (such as typo, doc fix etc), you may skip the JIRA creation.
-* Creating Pull Request
-    1. Fork the Github repository at [http://github.com/apache/samza](http://github.com/apache/samza) if you haven't already 
-    2. Create a new branch in your repository and push your changes to that branch
-        * Make sure you have observed the recommendations in the [coding guide](/contribute/coding-guide.html) and [testing](/contribute/tests.html)
-    3. [Open a Pull Request](https://help.github.com/articles/about-pull-requests/) against the "master" branch of apache/samza
-        * Make sure that the Pull Request title is of the format "SAMZA-&lt;JiraNumber&gt; : &lt;JiraTitle&gt;"
-        * Make sure that your patch cleanly applies against the master branch. If not, rebase before creating the Pull Request
-    4. Change the status of the JIRA to "Patch Available" so that it notifies the committers of the patch being available
-* Nag us if we don't follow up on your JIRA in a timely fashion.
-* If your Pull Request is approved, it will automatically be closed, with any associated JIRA when a committer merges your changes. 
-* If your Pull Request is not approved and requires changes based on reviews, please make changes to your patch. 
-    * While making the changes, kindly update the JIRA status from "Patch Available" to "In Progress". 
-    * Make sure that you have rebased your branch to latest in the master branch before updating the Pull Request. This will help avoid conflicts during the merge. We cannot commit patches that have merge conflicts!
-* If your Pull Request is rejected for whatever reason, please close it promptly because committers cannot close your Pull Requests!  
-
-## For Committers
-
-If you are a committer you need to use https instead of http to check in, otherwise you will get an error regarding an inability to acquire a lock. Note that older versions of git may also give this error even when the repo was cloned with https; if you experience this try a newer version of git. 
-
-### Prepare to merge a Pull Request (PR) by setting up the following:
-
-1. Setup JIRA on your host
-    * Install Jira packages - ```sudo pip install jira```
-    * Set the `JIRA_USERNAME` and `JIRA_PASSWORD` environment variables with the appropriate credentials for interacting with Jira. This is required to correctly close the JIRA associated with the PR
-2. Setup aliases for the remote repositories:​(Samza Github repo and Apache Samza Repo)
-    * Add ASF git repo for committing the PR
-    ```git remote add samza-apache https://git-wip-us.apache.org/repos/asf/samza.git```
-    * Add Github repo for fetching the patch from the PR
-    ```git remote add samza-github https://github.com/apache/samza.git```
-3. Set up API tokens for Git
-    * Create an OAuth key for making requests to the GitHub API. If this is not defined, then requests will be unauthenticated and you can't access the API. An OAuth key for the API can be created at [https://github.com/settings/tokens](https://github.com/settings/tokens)        
-    * Set the created OAuth key as `GITHUB_OAUTH_KEY` environment variable.
-
-### Merging a Pull Request
-
-* Committers can use the `bin/merge-pull-request.py` script to merge an approved PR. The script is interactive and will walk you through the steps for merging the patch, closing the PR and the associated JIRA.
+### Developing with an IDE
+
+Generate an IDEA project .ipr file with:
+
 ```
-cd samza
-./bin/merge-pull-request.py 
+./gradlew idea
 ```
-* Whenever possible, make sure that the commit title includes the JIRA number and title.
-* Merging changes that don't cleanly apply on the master should be avoided.  
-* For committers wishing to update the webpage, please see `docs/README.md` for instructions.
+
+## Pull Requests
+
+If there is no [JIRA](https://issues.apache.org/jira/browse/SAMZA) ticket for your work, please open one before creating a Pull Request. If it is a trivial fix (such as a typo, doc fix etc), you may skip ticket creation. Here’s the development workflow:
+
+* Create a new branch in your repository and push your changes to that branch
+  * Make sure you have observed the recommendations in the [coding guide](/contribute/coding-guide.html) and [testing](/contribute/tests.html)
+* [Open a Pull Request](https://help.github.com/articles/about-pull-requests/) against the “master” branch of apache/samza
+  * Make sure that the Pull Request title is of the format "SAMZA-&lt;JiraNumber&gt; : &lt;JiraTitle&gt;"
+  * Make sure that your patch cleanly applies against the master branch. If not, rebase before creating the Pull Request
+  * Optional: add a reviewer by @ the username
+* [Ping us](mailto:dev@samza.apache.org) if we don’t follow up on your JIRA in a timely fashion.  
+* If your Pull Request is approved, it will automatically be closed, along with any associated JIRA ticket when a committer merges your changes.
+* If your Pull Request is not approved and requires changes based on reviews, please make changes and update the Pull Request.
+  * Fixes can simply be pushed to the same branch from which you opened your pull request.
+  * Please address feedback via additional commits instead of amending existing commits. This makes it easier for the reviewers to know what has changed since the last review.
+  * Jenkins will automatically re-test when new commits are pushed.
+  * Despite our efforts, Samza may have flaky tests at any given point, if the failure is unrelated to your pull request and you have been able to run the tests locally successfully, please mention it in the pull request.
+* If your Pull Request is rejected or discarded for whatever reason, please close it promptly because committers cannot close your Pull Requests since committers cannot close them.   
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/samza/blob/603bd8ea/docs/contribute/design-documents.md
----------------------------------------------------------------------
diff --git a/docs/contribute/design-documents.md b/docs/contribute/design-documents.md
deleted file mode 100644
index 5729aa8..0000000
--- a/docs/contribute/design-documents.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-layout: page
-title: Design Documents
----
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You 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.
--->
-
-When making larger changes to Samza, or working on a [project](/contribute/projects.html), please write a design document. All of Samza's existing design documents can be found [here](https://issues.apache.org/jira/issues/?jql=project%20%3D%20SAMZA%20AND%20labels%20%3D%20design%20ORDER%20BY%20priority%20DESC).
-
-### Why Write a Design Document?
-
-The goal of the design document is to:
-
-1. Define the problem you're trying to solve.
-2. Propose a solution, and explore alternatives.
-3. Instigate discussion on the issue.
-4. Arrive at a final conclusion on design.
-5. Archive design documents for future use.
-
-It may be necessary to iterate on the design document several times before a final conclusion is reached.
-
-### How to Write a Design Document
-
-Design documents should be attached to the [JIRA](https://issues.apache.org/jira/browse/SAMZA) for the feature that the design is for. The [JIRA](https://issues.apache.org/jira/browse/SAMZA) should be labeled with the "design" label.
-
-There is no single format for a design document, but it's common to include:
-
-1. Introduction
-2. Definition of problem
-3. Possible solutions
-4. Opinion on best solution
-5. Details on how the solution should be implemented.
-
-An example of a design document can be seen on [SAMZA-402](https://issues.apache.org/jira/browse/SAMZA-402), which contains several versions of both the raw [Markdown](http://daringfireball.net/projects/markdown/syntax) file and the PDF for the design document.
-
-### Tools
-
-Some useful tools for writing design documents are:
-
-* [Markdown](http://daringfireball.net/projects/markdown/syntax): A syntax for writing well-formatted text-based documents.
-* [asciiflow.com](http://asciiflow.com): A webpage to draw flow charts using ASCII. This is useful for design docs written in text formats such as markdown.
-* [Markdown Reader](https://chrome.google.com/webstore/detail/markdown-reader/gpoigdifkoadgajcincpilkjmejcaanc): A Chrome extension that lets you view markdown (.md) files in Chrome. Once viewed in Chrome, the markdown file can be printed on a Mac simply by printing the page, and selecting "Save as PDF" as the printer.
-* [TLA/TLA+](http://research.microsoft.com/en-us/um/people/lamport/tla/tla.html): A formal specification language for writing high-level specifications of concurrent and distributed systems.
-* [Pandoc](http://johnmacfarlane.net/pandoc/): A tool for converting various text formats into one another. Pandoc supports converting [Markdown](http://daringfireball.net/projects/markdown/syntax) to PDF, among others.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/samza/blob/603bd8ea/docs/contribute/enhancement-proposal.md
----------------------------------------------------------------------
diff --git a/docs/contribute/enhancement-proposal.md b/docs/contribute/enhancement-proposal.md
new file mode 100644
index 0000000..d2cc23f
--- /dev/null
+++ b/docs/contribute/enhancement-proposal.md
@@ -0,0 +1,96 @@
+---
+layout: page
+title: Samza Enhancement Proposal
+---
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You 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.
+-->
+
+- [When is a SEP needed](#when-is-a-sep-needed)
+- [What is the SEP Process](#what-is-the-sep-process)
+- [What should be included in SEP](#what-should-be-included-in-sep)
+- [What are the criteria to accept or reject a SEP](#what-are-the-criteria-to-accept-or-reject-a-sep)
+
+*Samza Enhancement Proposal* (SEP) is the official process for proposing major changes to Apache Samza. All technical decisions in Samza have pros and cons - Having a SEP helps us capture the thought process that lead to a decision.
+
+We want to make Samza a core architectural component for users. Samza also supports a large number of integrations with other tools, systems, and clients. Keeping these kinds of usages healthy requires a high level of compatibility across releases. As a result each new major feature or public API has to be done in a way that we can stick with it going forward. 
+
+Note that this process isn't meant to discourage incompatible changes. Rather it is intended to avoid accidentally introducing half thought-out interfaces and protocols that cause needless heartburn when changed.
+
+## When is a SEP needed
+
+Any major **functional** change to Samza's core functionality, that is changes to the behavior of the classes in samza-core package requires a SEP.
+
+Any of the following should be considered a major change:
+
+* major new feature, subsystem, or piece of functionality
+* change that impacts the public interfaces of the project
+
+The following are treated as public interfaces:
+
+* Classes in the public package - samza-api
+* Configurations in Samza
+* Metrics reported by Samza
+* Command line tools and their arguments
+
+## What is the SEP Process
+
+1. Create a page which is a child of [this one](https://cwiki.apache.org/confluence/display/SAMZA/Samza+Enhancement+Proposal). Take the next available SEP number and give your proposal a descriptive heading. e.g. "SEP 73: Samza Standalone with ZK Coordination". If you don't have the necessary permissions for creating a new page, please ask on the [dev mailing list](mailto:dev@samza.apache.org).
+2. Fill in the sections as described in [What should be included in SEP](#what-should-be-included-in-sep).
+3. Start a [DISCUSS] thread on the Apache mailing list. Please ensure that the subject of the thread is of the format [DISCUSS] SEP-{your SEP number} {your SEP heading}. The discussion should happen on the mailing list and **NOT** on the wiki since the wiki comment system doesn't work well for larger discussions. In the process of the discussion you may update the proposal. You should let people know the changes you are making.
+4. Once the proposal is finalized call a [VOTE] to have the proposal adopted. These proposals are more serious than code changes and more serious even than release votes. The criterion for acceptance is lazy majority.
+5. Please update the SEP wiki page to reflect the current stage of the SEP after a vote. This acts as the permanent record indicating the result of the SEP (e.g., Accepted or Rejected). Also report the result of the SEP vote to the voting thread on the mailing list so the conclusion is clear.
+
+## What should be included in SEP
+
+A typical SEP should include the following sections:
+
+* **Problem**: Describe the problem to be solved
+* **Motivation**: Why the problem should be solved
+* **Proposed Changes**: Describe the changes you want to do. This may be fairly extensive and have large subsections of its own. Or it may be a few sentences, depending on the scope of the change.
+* **New or changed public interfaces, if any**: Impact to any of the "compatibility commitments" described above. We want to call these out in particular, so everyone thinks about them.
+* **Implementation / Test Plan (if applicable)**: Some large projects may consist of multiple sub-projects and requires more planning for implementation and testing. It may be prudent to call them out in the proposal.
+* **Migration Plan and Compatibility**: If this feature requires additional support for a no-downtime upgrade describe how that will work. If a no-downtime upgrade for users cannot be support, describe the migration plan for the users.
+* **Rejected Alternatives**: What are the other alternatives you considered and why are they worse? The goal of this section is to help people understand why this is the best solution now, and also to prevent churn in the future when old alternatives are reconsidered.
+
+## What are the criteria to accept or reject a SEP
+
+We will be following the [Apache voting guideline](https://www.apache.org/foundation/voting.html) to drive our decisions regarding an SEP. Decisions will be made on the [VOTE] mailing thread for a particular SEP. All community members are encouraged to participate by replying to the VOTE mailing thread. The votes can have the following meaning:
+
+<table class="table table-condensed table-bordered table-striped">
+  <thead>
+    <tr>
+      <th align="center">Vote</th>
+      <th align="center">Meaning</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td align="center">+1</td>
+      <td>'Yes,' 'Agree,' or 'the action should be performed.'</td>
+    </tr>
+    <tr>
+      <td align="center">0</td>
+      <td>Neutral about the proposed action (or mildly negative but not enough so to want to block it.</td>
+    </tr>
+    <tr>
+      <td align="center">-1</td>
+      <td>This is a negative vote. On issues where consensus is required, this vote counts as a **veto**. All vetoes must contain an explanation of why the veto is appropriate. Vetoes with no explanation are void. It may also be appropriate for a -1 vote to include an alternative course of action. </td>
+    </tr>
+  </tbody>
+</table>
+
+The criteria for acceptance of a SEP is [lazy majority](https://cwiki.apache.org/confluence/display/KAFKA/Bylaws#Bylaws-Approvals).