Repository: mesos
Updated Branches:
  refs/heads/master b3d5857b8 -> b71478750


Reorganized and updated the contribution guidelines.

This patch splits the contribution guidelines into two parts:
a beginner contribution guide, and an advanced guide. Some files
are also renamed, and links updated.

Review: https://reviews.apache.org/r/62548/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/3eed405d
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/3eed405d
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/3eed405d

Branch: refs/heads/master
Commit: 3eed405d41eabfea0da6ce9f7c346020bd3091ed
Parents: b3d5857
Author: Greg Mann <g...@mesosphere.io>
Authored: Fri Oct 20 10:37:23 2017 -0700
Committer: Greg Mann <gregorywm...@gmail.com>
Committed: Fri Oct 20 10:37:23 2017 -0700

----------------------------------------------------------------------
 docs/advanced-contribution.md | 131 +++++++++++++++++++++++++++++++++++++
 docs/beginner-contribution.md |  65 ++++++++++++++++++
 docs/home.md                  |   5 +-
 docs/newbie-guide.md          | 131 -------------------------------------
 docs/reopening-reviews.md     |   2 +-
 docs/reporting-a-bug.md       |  12 ----
 docs/reporting-an-issue.md    |  12 ++++
 docs/submitting-a-patch.md    |  91 --------------------------
 site/source/community.html.md |   8 ++-
 9 files changed, 217 insertions(+), 240 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/3eed405d/docs/advanced-contribution.md
----------------------------------------------------------------------
diff --git a/docs/advanced-contribution.md b/docs/advanced-contribution.md
new file mode 100644
index 0000000..5a89227
--- /dev/null
+++ b/docs/advanced-contribution.md
@@ -0,0 +1,131 @@
+---
+title: Apache Mesos - Advanced Contribution Guidelines
+layout: documentation
+---
+
+# Advanced Contribution Guidelines
+
+## Prerequisites
+
+If you'd like to make significant contributions to Mesos, then you'll want to 
become familiar with the standard Mesos development workflow. In addition to 
the dependencies needed to build Mesos (detailed in [Getting 
Started](getting-started.md)), a couple other things are necessary:
+
+* Required account authorizations
+    + Apache Review Board Account
+    + Apache JIRA Account
+<br/><br/>
+* Required installations
+    + RBtools
+
+## Issue Tracking, Code Review, and Mailing Lists
+
+* We use [Apache Software Foundation 
JIRA](https://issues.apache.org/jira/browse/mesos/) to track and manage issues. 
If you don't already have an account, you'll need to create one.
+* We use [Apache Review Board](https://reviews.apache.org) for code reviews. 
If you don't already have an account, you'll need to create one (it's separate 
from your Apache JIRA account).
+  * A code review request should be created for every JIRA that involves a 
change to the codebase.
+* Once your JIRA and Review Board accounts are in place please go ahead and 
create a review or GitHub pull request with an entry for yourself in 
[contributors.yaml](https://github.com/apache/mesos/blob/master/docs/contributors.yaml)
 file.
+  * The file is used to map contributions to the JIRA and Review Board 
accounts of their respective authors. We also use this mapping to track 
contributions of various organizations to Apache Mesos.
+  * Feel free to omit the `affiliations` field out in case you do not want 
your contribution to be atributed to a particular organization.
+  * In the `email` field please specify the email that your local git client 
is setup with.
+* Joining the following mailing lists will help you stay up-to-date on Mesos 
development:
+  * Developer list: 
[dev-subscr...@mesos.apache.org](mailto:dev-subscr...@mesos.apache.org)
+  * Issue list: 
[issues-subscr...@mesos.apache.org](mailto:issues-subscr...@mesos.apache.org)
+  * Review list: 
[reviews-subscr...@mesos.apache.org](mailto:reviews-subscr...@mesos.apache.org)
+  * Build list: 
[builds-subscr...@mesos.apache.org](mailto:builds-subscr...@mesos.apache.org) 
respectively.
+
+## The Contribution Process
+
+Here is the standard procedure for proposing and making changes to Mesos:
+
+### Before Coding Starts
+
+1. Find a JIRA issue that is currently unassigned that you want to work on at 
[JIRA issue tracker](https://issues.apache.org/jira/browse/MESOS), or create 
your own (you'll need a JIRA account for this, see above)!
+  1. This could be a JIRA representing a bug (possibly a bug that you 
encountered and reported, e.g. when trying to build) or a new feature.
+  2. Prefer working on issues marked as 
"[Accepted](https://issues.apache.org/jira/browse/MESOS-1?jql=project%20%3D%20MESOS%20AND%20status%20%3D%20Accepted)",
 rather than merely "Open". If an issue has been accepted, it means at least 
one Mesos developer thought that the ideas proposed in the issue are worth 
pursuing further.
+  3. Issues marked with the 
"[newbie](https://issues.apache.org/jira/browse/MESOS-1?jql=project%20%3D%20MESOS%20AND%20status%20%3D%20Accepted%20AND%20labels%20%3D%20newbie)"
 label can be good candidates for "starter" projects. You can also look for the 
labels "newbie++", "beginner", and "beginners".
+  4. When identifying a JIRA issue to work on, it is recommended to work on 
items that are relevant to the next release. Selecting work items important for 
the next release increases the priority for reviewers during the contribution 
process. See the tracking ticket for the release to figure out the high 
priority projects or ask the release manager to guide you.
+
+2. Assign the JIRA to yourself.
+  1. You will be able to assign the JIRA to yourself as soon as your pull 
request with additions to the contributors.yaml file is merged.
+
+3. Formulate a plan for resolving the issue. Guidelines to consider when 
designing a solution can be found in the 
[effective-code-reviewing](effective-code-reviewing.md) document. It is 
important to discuss your proposed solution within the JIRA ticket early in the 
resolution process in order to get feedback from reviewers. Early discussions 
will help:
+  1. ensure the solution will be scoped in a consumable fashion;
+  2. eliminate duplicate work with other contributions; and
+  3. alert anyone interested in following the activity and progress of the 
ticket.
+
+4. Find a **shepherd** to collaborate on your patch. A shepherd is a Mesos 
committer that will work with you to give you feedback on your proposed design, 
and to eventually commit your change into the Mesos source tree. To find a 
shepherd, you can do one or more of the following:
+  1. Email the dev mailing list (include a link to your JIRA issue).
+  2. Add a comment to your JIRA issue, referencing by username one or more 
Mesos [committers](committers.md) whom you believe would be interested in 
shepherding. The listed maintainers of the portion of the codebase you're 
working on are good candidates to reach out to.
+  3. Email potential shepherds directly.
+  3. Ask the developers on Mesos Slack or on IRC (in the [mesos 
channel](irc://irc.freenode.net/mesos) on [Freenode](https://freenode.net)).
+
+### Create your patch
+
+1. Create one or more test cases to exercise the bug or the feature (the Mesos 
team uses [test-driven 
development](http://en.wikipedia.org/wiki/Test-driven_development)). Before you 
start coding, make sure these test cases all fail.
+    1. The [testing patterns](testing-patterns.md) page has some suggestions 
for writing test cases.
+
+2. Make your changes to the code (using whatever IDE/editor you choose) to 
actually fix the bug or implement the feature.
+    1. Before beginning, please read the [Mesos C++ Style 
Guide](c++-style-guide.md). It is recommended to use the git pre-commit hook 
(`support/hooks/pre-commit`) to automatically check for style errors. See the 
hook script for instructions to enable it.
+    2. Most of your changes will probably be to files inside of 
`BASE_MESOS_DIR`
+    3. From inside of the root Mesos directory: `./bootstrap` (Only required 
if building from git repository).
+    4. To build, we recommend that you don't build inside of the src 
directory. We recommend you do the following:
+        1. From inside of the root Mesos directory: `mkdir build && cd build`
+        2. `../configure`
+        3. `make`
+        4. Now all of the files generated by the build process will be 
contained in the build directory you created, instead of being spread 
throughout the src directory, which is a bit messier. This is both cleaner, and 
makes it easy to clean up if you want to get rid of the files generated by 
`configure` and `make`. I.e. You can reset your build process without risking 
changes you made in the src directory, by simply deleting the build directory, 
and creating a new one.
+
+3. Make sure that all of the unit tests pass, including the new test cases you 
have added: `make check`.
+    1. To build all tests without executing them, use something like: `make 
tests`.
+    2. To execute a single unit test (helpful when trying to debug a test case 
failure), use something like: `make check GTEST_FILTER="HTTPTest.Delete"`.
+    3. If you added new tests, make sure you run them repeatedly in order to 
catch inconsistent failures. A command like the following can be used to run an 
individual test 1000 times:
+
+    sudo GLOG_v=1 ./bin/mesos-tests.sh --verbose --gtest_filter="*DOCKER*" 
--gtest_break_on_failure --gtest_repeat=1000
+
+4. Divide your change into one or more Git commits. Each commit should 
represent a single logical (atomic) change to the Mesos source code: this makes 
your changes easier to review. For more information, see the [reviewer 
guidelines](effective-code-reviewing.md).
+    1. Try to avoid including other, unrelated cleanups (e.g., typo fixes or 
style nits) in the same commit that makes functional changes. While typo fixes 
are great, including them in the same commit as functional changes makes the 
commit history harder to read.
+    2. Developers often make incremental commits to save their progress when 
working on a change, and then "rewrite history" (e.g., using `git rebase -i`) 
to create a clean set of commits once the change is ready to be reviewed.
+    3. Commit messages should be in past tense. The first sentence should 
summarize the change; it should start with a capital letter, not exceed 72 
characters and end in a period.
+
+5. Make sure to pull in any changes that have been committed to master branch. 
Using Git, do this via something like:
+    1. `git checkout master`
+    2. `git pull`
+    3. `git checkout my_branch`
+    4. Check the output of `git diff master` and make sure it lists only your 
changes. If other changes you did not make are listed, try `git rebase master` 
to bring your branch up to date with master.
+
+### Submit your patch
+1. You're ready to submit your patch for review!
+    1. Log in or create an account at [Apache Review 
Board](http://reviews.apache.org).
+    2. The easiest (and recommended) way to submit reviews is through 
`post-reviews.py` a wrapper around post-review.
+    3. First, install RBTools. [See 
Instructions](https://www.reviewboard.org/docs/rbtools/dev/).
+    4. Configure post-review. The easiest method is to symlink to the sample 
config: `ln -s support/reviewboardrc .reviewboardrc`.
+    5. Log into Review Board from the command line: run `rbt status`.
+    6. From your local branch run `support/post-reviews.py`.
+    7. Note that `post-reviews.py` creates a new review for every commit on 
your branch that is different from the `master`.
+    8. Be sure to add your JIRA issue id (e.g. MESOS-1) to the field labeled 
"Bugs" (this will automatically link).
+    9. Add your shepherd under the "People" field, in the "Reviewers" section. 
You should also include other Mesos community members who have contributed to 
the discussion of your proposed change.
+    10. Under "Description" in addition to details about your changes, include 
a description of any documentation pages that need to be added, or are affected 
by your changes (e.g. did you change or add any configuration options/flags? 
Did you add a new binary?)
+    11. Under "Testing Done", explain what new tests you have created, what 
tests were modified, and what procedures you went through to test your changes.
+
+2. Wait for a code review from another Mesos developer via Review Board, 
address their feedback and upload updated patches until you receive a "Ship It" 
from a Mesos committer.
+    1. If you don't receive any feedback, contact your shepherd to remind 
them. While the committers try their best to provide prompt feedback on 
proposed changes, they are busy and sometimes a patch gets overlooked.
+    2. When addressing feedback, adjust your existing commit(s) instead of 
creating new commits, otherwise `post-reviews.py` will create a new review 
(`git rebase -i` is your friend).
+    3. Review Board comments should be used for code-specific discussions, and 
JIRA comments for bigger-picture design discussions.
+    4. Always respond to each RB comment that you address directly (i.e. each 
comment can be responded to directly) with either "Done." or a comment 
explaining how you addressed it.
+    5. If an issue has been raised in the review, please resolve the issue as 
"Fixed" or "Dropped". If "Dropped" please add a comment explaining the reason. 
Also, if your fix warrants a comment (e.g., fixed differently than suggested by 
the reviewer) please add a comment.
+
+3. After consensus is reached on your JIRA/patch, you're review request will 
receive a "Ship It!" from a committer, and then a committer will commit your 
patch to the git repository. Congratulations and thanks for participating in 
our community!
+
+4. The last step is to ensure that the necessary documentation gets created or 
updated so the whole world knows about your new feature or bug fix.
+
+## Advanced JIRA Tickets
+
+As you gain experience contributing to Mesos you may want to tackle more 
advanced JIRA tickets. These items may touch multiple components within Mesos 
and/or may have a significant impact on the developer or user community. In 
these cases, a working group of stakeholders is formed to develop a design 
document. The initial formation of this working group will be part of the 
community communication resources, e.g. the re-occurring developer sync 
meetings, the developer email list, the IRC channel, etc. For reference, a 
contributor new to an advanced level work item can refer to the work done for 
the [inverse offer](https://issues.apache.org/jira/browse/MESOS-1592) project.
+
+## Style Guides
+* For patches to the core, we ask that you follow the [Mesos C++ Style 
Guide](c++-style-guide.md).
+
+## Additional Guidance
+
+The following links provide additional guidance as you get started 
contributing to Apache Mesos.
+
+## Core Libraries
+
+There are two core libraries in Mesos: *stout* and *libprocess*. *stout* is 
the low level operating system abstraction tooling that should be used in place 
of writing your own low level tools. *libprocess* is a library used to support 
building compatible concurrent components (see 
[video](https://www.youtube.com/watch?v=5EIiU6R_6KE) for an introduction to the 
*libprocess* library). New contributors to Mesos should become familiar with 
these libraries and utilize them where appropriate. Additional documentation 
can be found in the following two README files: 
[3rdparty/libprocess/README.md](https://github.com/apache/mesos/blob/master/3rdparty/libprocess/README.md)
 and 
[3rdparty/stout/README.md](https://github.com/apache/mesos/blob/master/3rdparty/stout/README.md).

http://git-wip-us.apache.org/repos/asf/mesos/blob/3eed405d/docs/beginner-contribution.md
----------------------------------------------------------------------
diff --git a/docs/beginner-contribution.md b/docs/beginner-contribution.md
new file mode 100644
index 0000000..d820798
--- /dev/null
+++ b/docs/beginner-contribution.md
@@ -0,0 +1,65 @@
+---
+title: Apache Mesos - Beginner Contribution Guide
+layout: documentation
+---
+
+# Beginner Contributor Guide
+
+## Introduction
+
+The purpose of this document is to provide a first-time introduction to the 
process of contributing to Mesos. It focuses on submitting small 
documentation-only patches or trivial fixes via GitHub pull requests. If you'd 
like an introduction to the standard day-to-day workflow for advanced Mesos 
contributors, see our [advanced contribution guide](advanced-contribution.md).
+
+## Quick Summary
+To propose a small change to Mesos, simply open a PR against our public GitHub 
mirror at [https://github.com/apache/mesos](https://github.com/apache/mesos). 
Further instructions can be found below if needed.
+
+## Download the Mesos Repository
+
+First, download the latest development version of the Mesos codebase. In order 
to submit changes via GitHub pull requests, you need to fork the [Apache Mesos 
GitHub mirror](https://github.com/apache/mesos). Once you have your own fork, 
clone it to your local machine using Git.
+
+If you're proposing a documentation-only change, then you don't need to build 
Mesos to get started.
+
+If you're making a functional change to the code, then you should build Mesos 
first. Once you have the Mesos source code on your local machine, you can 
install the necessary dependencies and build it. Instructions for this process 
can be found in the [Getting Started](getting-started.md) page. Note that the 
`bootstrap` script in the repository's root directory will install git hooks 
which will help you adhere to Mesos style when committing.
+
+## Find a Problem to Solve
+
+If you already have a specific issue in mind which you want to address in the 
codebase, that's great! Reach out to some of the [committers](committers.md) on 
[Mesos Slack](/community) or on the developer mailing list to discuss the 
improvement you'd like to make. If you want to contribute but aren't sure what 
to work on, you can find open issues in 
[JIRA](http://issues.apache.org/jira/browse/MESOS), our issue tracker. Asking 
on [Mesos Slack](/community) or on the developer mailing list is a great way to 
find out what you might work on that could have a high impact on the community.
+
+From past experience, we have found that it's best if contributors talk to 
committers about their fix before writing code. This ensures that the 
contributor has the context necessary to make the change in a way consistent 
with the rest of the codebase, and helps avoid time spent on solutions which 
need major edits in order to get merged. Please chat with us before writing 
code, we'll help you design a solution!
+
+This GitHub workflow is most appropriate for documentation-only changes and 
small, trivial fixes. For more significant changes, please use the [advanced 
contribution workflow](advanced-contribution.md).
+
+## Make Modifications
+
+Once you know what you're going to change, you can make your intended 
modifications to the codebase and then commit the changes to your local build 
repository. When making changes, also consider the following:
+
+* Does documentation need to be updated to accommodate this change? (see the 
`docs/` folder in the repository)
+* Do tests need to be added or updated? (see the `src/tests/` folder in the 
repository)
+
+## Build and Test
+
+If your changes are documentation-only, then you should view them with a 
markdown viewer to verify their appearance when rendered.
+
+If you are changing any code in Mesos, then you should build and run the tests 
before opening a PR. You should run `make check` and ensure that all tests pass 
before opening a PR.
+
+## Open a PR
+
+Once changes are completed and tested, it's time to open a PR so that they can 
be reviewed. When your local branch is clean and ready to submit, push it to 
your Mesos fork. You can then open a PR against the Apache Mesos GitHub 
repository. Once your PR is open, you can notify the community on [Mesos 
Slack](/community) or on the developer mailing list.
+
+# Getting Started Guidance
+
+The following links provide additional guidance as you get started 
contributing to Apache Mesos.
+
+## JIRA
+
+[JIRA](http://issues.apache.org/jira/browse/MESOS) is the issue tracking 
system for all bug fixes and feature additions in Mesos. When contributing to 
Mesos, all assignments, discussions, and resolution proposals for a specific 
issue should be documented as comments within the JIRA item. If you contribute 
something which is more than a trivial fix, it should probably be tracked in 
JIRA.
+
+## Identifying a JIRA Issue
+
+If you'd like to find an existing issue to work on yourself, identify a Mesos 
JIRA ticket that is currently unassigned. It is highly recommended to start 
contributing to beginner-level issues and move to more advanced issues over 
time. The JIRA issue-tracking system can be filtered based on labels. The 
following labels can be used to identify beginner-level JIRA tickets:
+
+* newbie
+* newbie++
+* beginner
+* beginners
+
+If you'd like to work on existing issues in Mesos, this will likely require 
the submission of patches large enough that you should use the [advanced 
contribution workflow](advanced-contribution.md).

http://git-wip-us.apache.org/repos/asf/mesos/blob/3eed405d/docs/home.md
----------------------------------------------------------------------
diff --git a/docs/home.md b/docs/home.md
index 6a6bd73..657a41c 100644
--- a/docs/home.md
+++ b/docs/home.md
@@ -92,8 +92,9 @@ layout: documentation
 * [Working groups](working-groups.md) a listing of groups working on different 
components.
 
 ### Contributing
-* [Reporting an Issue, Improvement, or Feature](reporting-a-bug.md) for 
getting started with JIRA.
-* [Submitting a Patch](submitting-a-patch.md) for getting started with 
ReviewBoard and our tooling around it.
+* [Reporting an Issue, Improvement, or Feature](reporting-an-issue.md) for 
getting started with JIRA.
+* [Beginner Guide for Contributors](beginner-contribution.md) to get started 
contributing to Mesos for the first time.
+* [Advanced Contribution Guide](advanced-contribution.md) to learn the typical 
workflow used when contributing to Mesos.
 * [Engineering Principles and 
Practices](engineering-principles-and-practices.md) to serve as a shared set of 
project-level values for the community.
 * Style Guides:
   * [Documentation Style Guide](documentation-guide.md)

http://git-wip-us.apache.org/repos/asf/mesos/blob/3eed405d/docs/newbie-guide.md
----------------------------------------------------------------------
diff --git a/docs/newbie-guide.md b/docs/newbie-guide.md
deleted file mode 100644
index e9f2aaa..0000000
--- a/docs/newbie-guide.md
+++ /dev/null
@@ -1,131 +0,0 @@
----
-title: Apache Mesos - Newbie Guide
-layout: documentation
----
-
-
-# Newbie Guide
-
-## Introduction
-
-The purpose of this document is to give an introduction and overall 
description of the contribution process for contributors new to Mesos.  This 
document is intended to extend the existing documentation with a focus on 
on-boarding contributors to the community as quickly as possible.
-
-# Contribution Process Overview
-
-Details of the contribution process can be obtained from the 
[submitting-a-patch](submitting-a-patch.md) document of the Mesos distribution 
along with the Getting Started Guidance section of this document.
-
-## Preparation and Build Environment Setup
-
-In order to complete the contribution process you will need to obtain account 
authorizations and install additional tooling to build the Mesos binaries. 
These pre-requisites are listed below:
-
-* Required account authorizations
-    + Apache Review Board Account
-    + Apache JIRA Account
-<br/><br/>
-* Required installations
-    + Git
-    + RBtools
-    + GTest
-    + GLog
-
-## Download and Build Mesos
-
-In order to begin contributing you will need to download and build the latest 
stable release of the Mesos distribution. Documentation on the steps to 
complete this process is described in the Mesos document and link listed above.
-
-## Make Modifications
-
-Make your intended modifications to the source code and then commit the 
changes to your local build repository. Changes to the source should also 
include test cases to exercise the modification. Details about this process are 
found in the Mesos document listed above and Getting Started section below.
-
-## Submit Patch
-
-Once changes are completed and tested submit the patch for review. This 
process will take the modifications from review submission to committed changes 
in the Mesos distribution.
-
-# Getting Started Guidance
-
-The following information will help provide additional guidance to execute the 
steps summarized in Contribution Process Overview described above as well as 
provide helpful hints when following the 
[submitting-a-patch](submitting-a-patch.md) document of the Mesos distribution.
-
-## Apache JIRA Account Pre-Requisite
-
-Detailed steps are provided in the Mesos documentation to obtain a JIRA 
account. Once you have obtained a JIRA account, ensure the additional step to 
request addition to the list of "contributors" is completed.
-
-## Tooling Pre-Requisites
-
-There is a set of tooling listed below that is required to be installed for 
the contribution process. These tools will not be described in this document 
and it is assumed that the reader will seek alternative references to become 
familiar with each of these tools outside of this document.
-
-* [Git Client](https://git-scm.com/)
-* [RBTools](https://www.reviewboard.org/docs/rbtools/dev/)
-* [GTest](https://github.com/google/googletest)
-* [GLog](https://github.com/google/glog)
-
-## Core Libraries
-
-There are two core libraries in Mesos: *stout* and *libprocess*. *stout* is 
the low level operating system abstraction tooling that should be used in place 
of writing your own low level tools. *libprocess* is a library used to support 
building compatible concurrent components (see 
[video](https://www.youtube.com/watch?v=5EIiU6R_6KE) for an introduction to the 
*libprocess* library). New contributors to Mesos should become familiar with 
these libraries and utilize them where appropriate.  Additional documentation 
can be found in the following two README files: 3rdparty/libprocess/README.md 
and 3rdparty/stout/README.md.
-
-## Download and Build Mesos
-
-Detailed steps are provided in the [Mesos documentation](getting-started.md) 
to download and build Mesos. When downloading the Mesos distribution there are 
2 options to obtain the Mesos source code. For contributing, ensure that the 
Git option is used.
-
-## JIRA
-
-[JIRA](http://issues.apache.org/jira/browse/MESOS) is the issue tracking 
system for all bug fixes and feature additions in Mesos. When contributing to 
Mesos, all assignments, discussions, and resolution proposals for a specific 
issue should be documented as comments within the JIRA item.
-
-## Identifying a JIRA Issue
-
-To begin the contribution process, identify a Mesos JIRA issue that is 
currently unassigned. It is highly recommended to start contributing to 
beginner level issues and overtime move to advanced level issues. The JIRA 
issue-tracking system can be filtered based on labels. The following labels can 
be used to identify beginner level JIRA tickets:
-
-* newbie
-* newbie++
-* beginner
-* beginners
-
-When identifying a JIRA issue to work on, it is recommended to work on items 
that are relevant to the next release. Selecting work items important for the 
next release increases the priority for reviewers during the contribution 
process. See the tracking ticket for the release to figure out the high 
priority projects or ask the release manager to guide you.
-
-## Assign a JIRA Issue
-
-There are a couple options to assign a work item: 1) create a new JIRA issue 
to work on or 2) identify an existing JIRA issue item to work on as described 
above. Whichever option is chosen there are several steps that should be 
followed when assigning yourself a JIRA ticket.
-
-It is important to identify a shepherd before you assign a ticket to yourself. 
Working with a shepherd will reveal its priority at the current time. To 
identify a shepherd look at the [maintainers](committers.md) file to get an 
idea who to ask to shepherd your JIRA issue.
-
-
-## JIRA Issue Solution Proposals
-Once you have an assigned JIRA issue and you have identified a shepherd, it is 
important to discuss your proposed solution within the JIRA ticket early in the 
resolution process in order to get feedback from reviewers. Early discussions 
will help:
-
-1. ensure the solution will be scoped in a consumable fashion;
-
-2. eliminate duplicate work with other contributions; and
-
-3. alert anyone interested in following the activity and progress of the 
ticket.
-
-
-Guidelines to consider when designing a solution can be found in the 
[effective-code-reviewing](effective-code-reviewing.md) document.
-
-## Making Changes
-
-After completing the solution review make the source code changes, build and 
successfully run relevant test cases. Guidelines for these processes can be 
found in the [submitting-a-patch](submitting-a-patch.md) and 
[mesos-c++style-guide](c++-style-guide.md).
-
-When creating and running test cases pay particular attention to race 
conditions. One recommendation is to run system tests multiple times.  Below is 
a sample command to repeat the test 100 times.
-
-
-    sudo GLOG_v=1 ./bin/mesos-tests.sh --verbose --gtest_filter="*DOCKER*" 
--break-on-error --gtest_shuffle --gtest_repeat=100
-
-## Submit a Patch to the Review Board
-
-Submit your patch for review after you have come to an agreement with your 
shepherd on the proposed solution, made the modifications and successfully ran 
the test cases. Make sure your shepherd is added as a "reviewer" (among others) 
in the review. This will ensure that your reviews get processed.
-
-When submitting a patch for review, include all testing done in the submission 
documentation. Follow the detailed steps found in the 
[submitting-a-patch](submitting-a-patch.md) document to submit a patch for 
review.
-
-#Advanced Level JIRA Items
-
-As you gain experience contributing to Mesos you may want to tackle more 
advanced level JIRA items. These items may touch multiple components within 
Mesos and/or may have a significant impact on the developer or user community. 
In these cases, a working group of stakeholders is formed to develop a design 
document. The initial formation of this working group will be part of the 
community communication resources, e.g. the re-occurring developer sync 
meetings, the developer email list, the IRC channel, etc. For reference, a 
contributor new to an advanced level work item can refer to the work done for 
the [inverse offer](https://issues.apache.org/jira/browse/MESOS-1592) project.
-
------
-
-# FAQs
-
-Q: Where can I find documentation about Mesos?
-A: Mesos documentation is located in the 'docs' directory of the Mesos 
distribution. This documentation includes information about Mesos architecture 
and design, running Mesos, developing within the Mesos ecosystem and 
contributing to Mesos. Additionally, the latest documentation can be found here:
-[http://mesos.apache.org/documentation/latest/index.html](http://mesos.apache.org/documentation/latest/index.html)
-
-
-Q: What is a Shepherd?
-A: An identified PMC/committer that works with a contributor to help shepherd 
a JIRA item to completion.  Shepherds should be as identified at the beginning 
of the design/development phase.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3eed405d/docs/reopening-reviews.md
----------------------------------------------------------------------
diff --git a/docs/reopening-reviews.md b/docs/reopening-reviews.md
index fe50468..999680c 100644
--- a/docs/reopening-reviews.md
+++ b/docs/reopening-reviews.md
@@ -16,7 +16,7 @@ consider taking the following steps to avoid a repeat 
scenario:
 * Check in with the [community](/community) and see if there is interest.
   * For bug fixes or documentation updates, you should
     [contact the maintainer(s)](committers.md).
-  * For improvements or new features, you should [find a 
shepherd](submitting-a-patch.md)
+  * For improvements or new features, you should [find a 
shepherd](advanced-contribution.md)
     to collaborate on your design and review.
 * Update your review.  Chances are, the codebase has changed significantly
   since you last uploaded the review.  Also make sure your review's summary

http://git-wip-us.apache.org/repos/asf/mesos/blob/3eed405d/docs/reporting-a-bug.md
----------------------------------------------------------------------
diff --git a/docs/reporting-a-bug.md b/docs/reporting-a-bug.md
deleted file mode 100644
index a7e372c..0000000
--- a/docs/reporting-a-bug.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: Apache Mesos - Reporting An Issue
-layout: documentation
----
-
-# Reporting an Issue
-
-When reporting an issue (e.g. bug, improvement, feature request), please 
provide as much context as possible.
-
-* We track all issues via Apache's hosted [JIRA issue 
tracker](https://issues.apache.org/jira/browse/MESOS), so if you don't already 
have an account you'll need to register for one. It's quick and easy.
-* A JIRA should be created for every task, feature, bug-fix, etc. This makes 
it easy to track progress.
-* If you are planning to work on the ticket, please assign the JIRA issue to 
yourself before you start working on it. This helps to avoid duplication of 
work and alerts anyone who is following that issue. It is highly encouraged to 
start a discussion with others in the community about how to solve the issue. 
The [contribution guidelines](submitting-a-patch.md) discuss how to contribute 
to Mesos development in more detail.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3eed405d/docs/reporting-an-issue.md
----------------------------------------------------------------------
diff --git a/docs/reporting-an-issue.md b/docs/reporting-an-issue.md
new file mode 100644
index 0000000..2f82aa2
--- /dev/null
+++ b/docs/reporting-an-issue.md
@@ -0,0 +1,12 @@
+---
+title: Apache Mesos - Reporting An Issue
+layout: documentation
+---
+
+# Reporting an Issue
+
+When reporting an issue (e.g. bug, improvement, feature request), please 
provide as much context as possible.
+
+* We track all issues via Apache's hosted [JIRA issue 
tracker](https://issues.apache.org/jira/browse/MESOS), so if you don't already 
have an account you'll need to register for one. It's quick and easy.
+* A JIRA should be created for every task, feature, bug-fix, etc. This makes 
it easy to track progress.
+* If you are planning to work on the ticket, please assign the JIRA issue to 
yourself before you start working on it. This helps to avoid duplication of 
work and alerts anyone who is following that issue. It is highly encouraged to 
start a discussion with others in the community about how to solve the issue. 
The [Beginner Contribution Guide](beginner-contribution.md) and [Advanced 
Contribution Guide](advanced-contribution.md) discuss how to contribute to 
Mesos development in more detail.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3eed405d/docs/submitting-a-patch.md
----------------------------------------------------------------------
diff --git a/docs/submitting-a-patch.md b/docs/submitting-a-patch.md
deleted file mode 100644
index ffc6e56..0000000
--- a/docs/submitting-a-patch.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: Apache Mesos - Submitting a Patch
-layout: documentation
----
-
-# Submitting a Patch
-
-* You've fixed a bug or added a feature and want to contribute it. AWESOME!
-* We use [Apache Software Foundation 
JIRA](https://issues.apache.org/jira/browse/mesos/) to track and manage issues. 
If you don't already have an account, you'll need to create one.
-* We use [Apache Review Board](https://reviews.apache.org) for code reviews. 
If you don't already have an account, you'll need to create one (it's separate 
from your Apache JIRA account).
-* Once your JIRA and Review Board accounts are in place please go ahead and 
create a review or GitHub pull request with an entry for yourself in 
[contributors.yaml](https://github.com/apache/mesos/blob/master/docs/contributors.yaml)
 file.
-  * The file is used to map contributions to the JIRA and Review Board 
accounts of their respective authors. We also use this mapping to track 
contributions of various organizations to Apache Mesos.
-  * Feel free to omit the `affiliations` field out in case you do not want 
your contribution to be atributed to a particular organization.
-  * In the `email` field please specify the email that your local git client 
is setup with.
-* A code review request should be created for every JIRA that involves a 
change to the codebase.
-
-### Before you start writing code
-1. Check out the code from the Apache repository via Git. Instructions are on 
the [Getting Started](http://mesos.apache.org/gettingstarted/) page.
-
-2. Join the dev, issues, reviews and builds mailing lists by sending emails to 
[dev-subscr...@mesos.apache.org](mailto:dev-subscr...@mesos.apache.org), 
[issues-subscr...@mesos.apache.org](mailto:issues-subscr...@mesos.apache.org), 
[reviews-subscr...@mesos.apache.org](mailto:reviews-subscr...@mesos.apache.org) 
and 
[builds-subscr...@mesos.apache.org](mailto:builds-subscr...@mesos.apache.org) 
respectively.
-
-3. Find a JIRA issue that is currently unassigned that you want to work on at 
[JIRA issue tracker](https://issues.apache.org/jira/browse/MESOS), or create 
your own (you'll need a JIRA account for this, see below)!
-    1. This could be a JIRA representing a bug (possibly a bug that you 
encountered and reported, e.g. when trying to build) or a new feature.
-    2. Prefer working on issues marked as 
"[Accepted](https://issues.apache.org/jira/browse/MESOS-1?jql=project%20%3D%20MESOS%20AND%20status%20%3D%20Accepted)",
 rather than merely "Open". If an issue has been accepted, it means at least 
one Mesos developer thought that the ideas proposed in the issue are worth 
pursuing further.
-    3. Issues marked with the 
"[newbie](https://issues.apache.org/jira/browse/MESOS-1?jql=project%20%3D%20MESOS%20AND%20status%20%3D%20Accepted%20AND%20labels%20%3D%20newbie)"
 label can be good candidates for "starter" projects.
-
-4. Assign the JIRA to yourself.
-   1. You will be able to assign the JIRA to yourself as soon as your pull 
request with additions to the contributors.yaml file is merged.
-
-5. Formulate a plan for resolving the issue. Propose your plan via comments in 
the JIRA.
-
-6. Find a **shepherd** to collaborate on your patch. A shepherd is a Mesos 
committer that will work with you to give you feedback on your proposed design, 
and to eventually commit your change into the Mesos source tree.
-    1. To find a shepherd, email the dev mailing list (include a link to your 
JIRA issue). You can also try asking by adding a comment to your JIRA issue.
-    2. You can also find a shepherd by asking the developers on IRC (in the 
[mesos channel](irc://irc.freenode.net/mesos) on 
[Freenode](https://freenode.net)). You can find the current list of committers 
[here](committers.md): a developer that has previously worked on the component 
you are modifying might be a good candidate shepherd.
-
-### Create your patch
-1. Create one or more test cases to exercise the bug or the feature (the Mesos 
team uses [test-driven 
development](http://en.wikipedia.org/wiki/Test-driven_development)). Before you 
start coding, make sure these test cases all fail.
-    1. The [testing patterns](testing-patterns.md) page has some suggestions 
for writing test cases.
-
-2. Make your changes to the code (using whatever IDE/editor you choose) to 
actually fix the bug or implement the feature.
-    1. Before beginning, please read the [Mesos C++ Style 
Guide](c++-style-guide.md). It is recommended to use the git pre-commit hook 
(`support/hooks/pre-commit`) to automatically check for style errors. See the 
hook script for instructions to enable it.
-    2. Most of your changes will probably be to files inside of 
`BASE_MESOS_DIR`
-    3. From inside of the root Mesos directory: `./bootstrap` (Only required 
if building from git repository).
-    4. To build, we recommend that you don't build inside of the src 
directory. We recommend you do the following:
-        1. From inside of the root Mesos directory: `mkdir build && cd build`
-        2. `../configure`
-        3. `make`
-        4. Now all of the files generated by the build process will be 
contained in the build directory you created, instead of being spread 
throughout the src directory, which is a bit messier. This is both cleaner, and 
makes it easy to clean up if you want to get rid of the files generated by 
`configure` and `make`. I.e. You can reset your build process without risking 
changes you made in the src directory, by simply deleting the build directory, 
and creating a new one.
-
-3. Make sure that all of the unit tests pass, including the new test cases you 
have added: `make check`.
-    1. To build all tests without executing them, use something like: `make 
tests`.
-    2. To execute a single unit test (helpful when trying to debug a test case 
failure), use something like: `make check GTEST_FILTER="HTTPTest.Delete"`.
-
-4. Divide your change into one or more Git commits. Each commit should 
represent a single logical (atomic) change to the Mesos source code: this makes 
your changes easier to review. For more information, see the [reviewer 
guidelines](effective-code-reviewing.md).
-    1. Try to avoid including other, unrelated cleanups (e.g., typo fixes or 
style nits) in the same commit that makes functional changes. While typo fixes 
are great, including them in the same commit as functional changes makes the 
commit history harder to read.
-    2. Developers often make incremental commits to save their progress when 
working on a change, and then "rewrite history" (e.g., using `git rebase -i`) 
to create a clean set of commits once the change is ready to be reviewed.
-    3. Commit messages should be in past tense. The first sentence should 
summarize the change; it should start with a capital letter, not exceed 72 
characters and end in a period.
-
-5. Make sure to pull in any changes that have been committed to master branch. 
Using Git, do this via something like:
-    1. `git checkout master`
-    2. `git pull`
-    3. `git checkout my_branch`
-    4. Check the output of `git diff master` and make sure it lists only your 
changes. If other changes you did not make are listed, try `git rebase master` 
to bring your branch up to date with master.
-
-### Submit your patch
-1. You're ready to submit your patch for review!
-    1. Log in or create an account at [Apache Review 
Board](http://reviews.apache.org).
-    2. The easiest (and recommended) way to submit reviews is through 
`post-reviews.py` a wrapper around post-review.
-    3. First, install RBTools. [See 
Instructions](https://www.reviewboard.org/docs/rbtools/dev/).
-    4. Configure post-review. The easiest method is to symlink to the sample 
config: `ln -s support/reviewboardrc .reviewboardrc`.
-    5. Log into Review Board from the command line: run `rbt status`.
-    6. From your local branch run `support/post-reviews.py`.
-    7. Note that `post-reviews.py` creates a new review for every commit on 
your branch that is different from the `master`.
-    8. Be sure to add your JIRA issue id (e.g. MESOS-1) to the field labeled 
"Bugs" (this will automatically link).
-    9. Add your shepherd under the "People" field, in the "Reviewers" section. 
You should also include other Mesos community members who have contributed to 
the discussion of your proposed change.
-    10. Under "Description" in addition to details about your changes, include 
a description of any documentation pages that need to be added, or are affected 
by your changes (e.g. did you change or add any configuration options/flags? 
Did you add a new binary?)
-    11. Under "Testing Done", explain what new tests you have created, what 
tests were modified, and what procedures you went through to test your changes.
-
-2. Wait for a code review from another Mesos developer via Review Board, 
address their feedback and upload updated patches until you receive a "Ship It" 
from a Mesos committer.
-    1. If you don't receive any feedback, contact your shepherd to remind 
them. While the committers try their best to provide prompt feedback on 
proposed changes, they are busy and sometimes a patch gets overlooked.
-    2. When addressing feedback, adjust your existing commit(s) instead of 
creating new commits, otherwise `post-reviews.py` will create a new review 
(`git rebase -i` is your friend).
-    3. Review Board comments should be used for code-specific discussions, and 
JIRA comments for bigger-picture design discussions.
-    4. Always respond to each RB comment that you address directly (i.e. each 
comment can be responded to directly) with either "Done." or a comment 
explaining how you addressed it.
-    5. If an issue has been raised in the review, please resolve the issue as 
"Fixed" or "Dropped". If "Dropped" please add a comment explaining the reason. 
Also, if your fix warrants a comment (e.g., fixed differently than suggested by 
the reviewer) please add a comment.
-
-3. After consensus is reached on your JIRA/patch, you're review request will 
receive a "Ship It!" from a committer, and then a committer will commit your 
patch to the git repository. Congratulations and thanks for participating in 
our community!
-
-4. The last step is to ensure that the necessary documentation gets created or 
updated so the whole world knows about your new feature or bug fix.
-
-## Style Guides
-* For patches to the core, we ask that you follow the [Mesos C++ Style 
Guide](c++-style-guide.md).

http://git-wip-us.apache.org/repos/asf/mesos/blob/3eed405d/site/source/community.html.md
----------------------------------------------------------------------
diff --git a/site/source/community.html.md b/site/source/community.html.md
index f56131f..26a8f95 100755
--- a/site/source/community.html.md
+++ b/site/source/community.html.md
@@ -16,10 +16,12 @@ layout: community_section
 
     <h3>Contribute</h3>
     <h3 name="reportbugs">Report or track a bug</h3>
-    <p>New bugs can be reported on our <a 
href="http://issues.apache.org/jira/browse/MESOS";>issue tracker</a>. In order 
to create a new issue, you'll need to signup for an account. See the guidelines 
<a href="/documentation/latest/reporting-a-bug/">here</a>.</p>
+    <p>New bugs can be reported on our <a 
href="http://issues.apache.org/jira/browse/MESOS";>issue tracker</a>. In order 
to create a new issue, you'll need to signup for an account. See the guidelines 
<a href="/documentation/latest/reporting-an-issue/">here</a>.</p>
 
-    <h3 name="contribute">Contribute a core patch</h3>
-    <p>Follow our <a 
href="/documentation/latest/submitting-a-patch">contribution guidelines</a> 
when submitting a patch. We love patches. :)</p>
+    <h3 name="contribute">Contribute a patch</h3>
+    <p>Mesos relies on its community to test releases, find bugs, contribute 
fixes and features, and provide feedback on existing APIs. Your contributions 
are greatly appreciated! Since the infrastructure that the Mesos community uses 
day-to-day (ReviewBoard and JIRA) is unfamiliar to some, we also provide a 
beginner contribution guide which will help you get started using only 
GitHub.</p>
+    <p>Is this your first time contributing? See our <a 
href="/documentation/latest/beginner-contribution">beginner contribution 
guide</a>. Thanks! We love patches. :)</p>
+    <p>Looking to go deeper? Find out how to make larger contributions in the 
<a href="/documentation/latest/advanced-contribution">advanced contribution 
guidelines</a>.</p>
 
     <h3 name="workinggroups">Working Groups</h3>
 

Reply via email to