You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by dl...@apache.org on 2015/10/09 15:36:38 UTC

svn commit: r1707725 [1/6] - in /mesos/site: ./ publish/ publish/documentation/ publish/documentation/architecture/ publish/documentation/c++-style-guide/ publish/documentation/clang-format/ publish/documentation/containerizer/ publish/documentation/do...

Author: dlester
Date: Fri Oct  9 13:33:18 2015
New Revision: 1707725

URL: http://svn.apache.org/viewvc?rev=1707725&view=rev
Log:
Updating website documentation to reflect new urls for many pages.

Added:
    mesos/site/publish/documentation/architecture/
    mesos/site/publish/documentation/architecture/index.html
    mesos/site/publish/documentation/c++-style-guide/
    mesos/site/publish/documentation/c++-style-guide/index.html
    mesos/site/publish/documentation/containerizer/
    mesos/site/publish/documentation/containerizer/index.html
    mesos/site/publish/documentation/documentation-guide/
    mesos/site/publish/documentation/documentation-guide/index.html
    mesos/site/publish/documentation/doxygen-style-guide/
    mesos/site/publish/documentation/doxygen-style-guide/index.html
    mesos/site/publish/documentation/frameworks/
    mesos/site/publish/documentation/frameworks/index.html
    mesos/site/publish/documentation/latest/architecture/
    mesos/site/publish/documentation/latest/architecture/index.html
    mesos/site/publish/documentation/latest/c++-style-guide/
    mesos/site/publish/documentation/latest/c++-style-guide/index.html
    mesos/site/publish/documentation/latest/containerizer/
    mesos/site/publish/documentation/latest/containerizer/index.html
    mesos/site/publish/documentation/latest/documentation-guide/
    mesos/site/publish/documentation/latest/documentation-guide/index.html
    mesos/site/publish/documentation/latest/doxygen-style-guide/
    mesos/site/publish/documentation/latest/doxygen-style-guide/index.html
    mesos/site/publish/documentation/latest/frameworks/
    mesos/site/publish/documentation/latest/frameworks/index.html
    mesos/site/publish/documentation/latest/images/
    mesos/site/publish/documentation/latest/images/architecture-example.jpg   (with props)
    mesos/site/publish/documentation/latest/images/architecture3.jpg   (with props)
    mesos/site/publish/documentation/latest/images/ec_kill_seqdiag.png   (with props)
    mesos/site/publish/documentation/latest/images/ec_launch_seqdiag.png   (with props)
    mesos/site/publish/documentation/latest/images/ec_lifecycle_seqdiag.png   (with props)
    mesos/site/publish/documentation/latest/images/ec_orphan_seqdiag.png   (with props)
    mesos/site/publish/documentation/latest/images/ec_recover_seqdiag.png   (with props)
    mesos/site/publish/documentation/latest/images/fetch_components.jpg   (with props)
    mesos/site/publish/documentation/latest/images/fetch_evict1.jpg   (with props)
    mesos/site/publish/documentation/latest/images/fetch_evict2.jpg   (with props)
    mesos/site/publish/documentation/latest/images/fetch_evict3.jpg   (with props)
    mesos/site/publish/documentation/latest/images/fetch_flow.jpg   (with props)
    mesos/site/publish/documentation/latest/images/fetch_state.jpg   (with props)
    mesos/site/publish/documentation/latest/images/maintenance-primitives-modes.png   (with props)
    mesos/site/publish/documentation/latest/images/networking-architecture.png   (with props)
    mesos/site/publish/documentation/latest/images/oversubscription-overview.jpg   (with props)
    mesos/site/publish/documentation/latest/markdown-style-guide/
    mesos/site/publish/documentation/latest/markdown-style-guide/index.html
    mesos/site/publish/documentation/latest/presentations/
    mesos/site/publish/documentation/latest/presentations/index.html
    mesos/site/publish/documentation/latest/roadmap/
    mesos/site/publish/documentation/latest/roadmap/index.html
    mesos/site/publish/documentation/latest/scheduler-http-api/
    mesos/site/publish/documentation/latest/scheduler-http-api/index.html
    mesos/site/publish/documentation/latest/ssl/
    mesos/site/publish/documentation/latest/ssl/index.html
    mesos/site/publish/documentation/latest/testing-patterns/
    mesos/site/publish/documentation/latest/testing-patterns/index.html
    mesos/site/publish/documentation/markdown-style-guide/
    mesos/site/publish/documentation/markdown-style-guide/index.html
    mesos/site/publish/documentation/presentations/
    mesos/site/publish/documentation/presentations/index.html
    mesos/site/publish/documentation/roadmap/
    mesos/site/publish/documentation/roadmap/index.html
    mesos/site/publish/documentation/scheduler-http-api/
    mesos/site/publish/documentation/scheduler-http-api/index.html
    mesos/site/publish/documentation/ssl/
    mesos/site/publish/documentation/ssl/index.html
    mesos/site/publish/documentation/testing-patterns/
    mesos/site/publish/documentation/testing-patterns/index.html
    mesos/site/source/documentation/latest/architecture.md
    mesos/site/source/documentation/latest/c++-style-guide.md
    mesos/site/source/documentation/latest/containerizer.md
    mesos/site/source/documentation/latest/documentation-guide.md
    mesos/site/source/documentation/latest/doxygen-style-guide.md
    mesos/site/source/documentation/latest/frameworks.md
    mesos/site/source/documentation/latest/images/
    mesos/site/source/documentation/latest/images/architecture-example.jpg   (with props)
    mesos/site/source/documentation/latest/images/architecture3.jpg   (with props)
    mesos/site/source/documentation/latest/images/ec_kill_seqdiag.png   (with props)
    mesos/site/source/documentation/latest/images/ec_launch_seqdiag.png   (with props)
    mesos/site/source/documentation/latest/images/ec_lifecycle_seqdiag.png   (with props)
    mesos/site/source/documentation/latest/images/ec_orphan_seqdiag.png   (with props)
    mesos/site/source/documentation/latest/images/ec_recover_seqdiag.png   (with props)
    mesos/site/source/documentation/latest/images/fetch_components.jpg   (with props)
    mesos/site/source/documentation/latest/images/fetch_evict1.jpg   (with props)
    mesos/site/source/documentation/latest/images/fetch_evict2.jpg   (with props)
    mesos/site/source/documentation/latest/images/fetch_evict3.jpg   (with props)
    mesos/site/source/documentation/latest/images/fetch_flow.jpg   (with props)
    mesos/site/source/documentation/latest/images/fetch_state.jpg   (with props)
    mesos/site/source/documentation/latest/images/maintenance-primitives-modes.png   (with props)
    mesos/site/source/documentation/latest/images/networking-architecture.png   (with props)
    mesos/site/source/documentation/latest/images/oversubscription-overview.jpg   (with props)
    mesos/site/source/documentation/latest/markdown-style-guide.md
    mesos/site/source/documentation/latest/presentations.md
    mesos/site/source/documentation/latest/roadmap.md
    mesos/site/source/documentation/latest/scheduler-http-api.md
    mesos/site/source/documentation/latest/ssl.md
    mesos/site/source/documentation/latest/testing-patterns.md
Removed:
    mesos/site/publish/documentation/latest/mesos-architecture/
    mesos/site/publish/documentation/latest/mesos-c++-style-guide/
    mesos/site/publish/documentation/latest/mesos-containerizer/
    mesos/site/publish/documentation/latest/mesos-doxygen-style-guide/
    mesos/site/publish/documentation/latest/mesos-frameworks/
    mesos/site/publish/documentation/latest/mesos-markdown-style-guide/
    mesos/site/publish/documentation/latest/mesos-presentations/
    mesos/site/publish/documentation/latest/mesos-roadmap/
    mesos/site/publish/documentation/latest/mesos-ssl/
    mesos/site/publish/documentation/latest/mesos-testing-patterns/
    mesos/site/publish/documentation/latest/scheduler_http_api/
    mesos/site/publish/documentation/mesos-architecture/
    mesos/site/publish/documentation/mesos-c++-style-guide/
    mesos/site/publish/documentation/mesos-containerizer/
    mesos/site/publish/documentation/mesos-doxygen-style-guide/
    mesos/site/publish/documentation/mesos-frameworks/
    mesos/site/publish/documentation/mesos-markdown-style-guide/
    mesos/site/publish/documentation/mesos-presentations/
    mesos/site/publish/documentation/mesos-roadmap/
    mesos/site/publish/documentation/mesos-ssl/
    mesos/site/publish/documentation/mesos-testing-patterns/
    mesos/site/publish/documentation/scheduler_http_api/
    mesos/site/source/documentation/latest/mesos-architecture.md
    mesos/site/source/documentation/latest/mesos-c++-style-guide.md
    mesos/site/source/documentation/latest/mesos-containerizer.md
    mesos/site/source/documentation/latest/mesos-doxygen-style-guide.md
    mesos/site/source/documentation/latest/mesos-frameworks.md
    mesos/site/source/documentation/latest/mesos-markdown-style-guide.md
    mesos/site/source/documentation/latest/mesos-presentations.md
    mesos/site/source/documentation/latest/mesos-roadmap.md
    mesos/site/source/documentation/latest/mesos-ssl.md
    mesos/site/source/documentation/latest/mesos-testing-patterns.md
    mesos/site/source/documentation/latest/scheduler_http_api.md
Modified:
    mesos/site/Rakefile
    mesos/site/publish/documentation/clang-format/index.html
    mesos/site/publish/documentation/effective-code-reviewing/index.html
    mesos/site/publish/documentation/index.html
    mesos/site/publish/documentation/latest/clang-format/index.html
    mesos/site/publish/documentation/latest/effective-code-reviewing/index.html
    mesos/site/publish/documentation/latest/index.html
    mesos/site/publish/documentation/latest/mesos-documentation-guide/index.html
    mesos/site/publish/documentation/latest/powered-by-mesos/index.html
    mesos/site/publish/documentation/latest/submitting-a-patch/index.html
    mesos/site/publish/documentation/latest/tools/index.html
    mesos/site/publish/documentation/mesos-documentation-guide/index.html
    mesos/site/publish/documentation/powered-by-mesos/index.html
    mesos/site/publish/documentation/submitting-a-patch/index.html
    mesos/site/publish/documentation/tools/index.html
    mesos/site/publish/sitemap.xml
    mesos/site/source/documentation/latest.html.md
    mesos/site/source/documentation/latest/clang-format.md
    mesos/site/source/documentation/latest/effective-code-reviewing.md
    mesos/site/source/documentation/latest/mesos-documentation-guide.md
    mesos/site/source/documentation/latest/powered-by-mesos.md
    mesos/site/source/documentation/latest/submitting-a-patch.md
    mesos/site/source/documentation/latest/tools.md

Modified: mesos/site/Rakefile
URL: http://svn.apache.org/viewvc/mesos/site/Rakefile?rev=1707725&r1=1707724&r2=1707725&view=diff
==============================================================================
--- mesos/site/Rakefile (original)
+++ mesos/site/Rakefile Fri Oct  9 13:33:18 2015
@@ -38,9 +38,16 @@ task :update_docs => :clone_mesos do
 
   docs_dir = File.join(File.dirname(__FILE__), "source/documentation")
 
-  puts "Updating docs to the latest version"
+  puts "Cleaning up docs directories"
   FileUtils.rm_f(Dir.glob("source/documentation/latest/*.md"))
+  FileUtils.rm_f(Dir.glob("source/documentation/latest/images/*"))
+  if !File.exists?(File.expand_path("source/documentation/latest/images/"))
+    FileUtils.mkdir_p(File.expand_path("source/documentation/latest/images/"))
+  end
+
+  puts "Updating docs to the latest version"
   FileUtils.cp_r(Dir.glob("#{mesos_dir}/docs/*.md"), File.expand_path("source/documentation/latest/"))
+  FileUtils.cp_r(Dir.glob("#{mesos_dir}/docs/images/*"), File.expand_path("source/documentation/latest/images/"))
   puts "Parse documentation files to removing md extension in any links"
   Dir.chdir("#{docs_dir}/latest/") {
     Dir.glob('*.md').each { |doc|

Added: mesos/site/publish/documentation/architecture/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/architecture/index.html?rev=1707725&view=auto
==============================================================================
--- mesos/site/publish/documentation/architecture/index.html (added)
+++ mesos/site/publish/documentation/architecture/index.html Fri Oct  9 13:33:18 2015
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Mesos Architecture</h1>
+
+<p><img src="http://mesos.apache.org/assets/img/documentation/architecture3.jpg" alt="Mesos Architecture" /></p>
+
+<p>The above figure shows the main components of Mesos.  Mesos consists of a <em>master</em> daemon that manages <em>slave</em> daemons running on each cluster node, and <em>mesos applications</em> (also called <em>frameworks</em>) that run <em>tasks</em> on these slaves.</p>
+
+<p>The master enables fine-grained sharing of resources (cpu, ram, &hellip;) across applications by making them <em>resource offers</em>. Each resource offer contains a list of <slave ID, resource1: amount1, resource2, amount2, ...>.  The master decides <em>how many</em> resources to offer to each framework according to a given organizational policy, such as fair sharing, or strict priority. To support a diverse set of policies, the master employs a modular architecture that makes it easy to add new allocation modules via a plugin mechanism.</p>
+
+<p>A framework running on top of Mesos consists of two components: a <em>scheduler</em> that registers with the master to be offered resources, and an <em>executor</em> process that is launched on slave nodes to run the framework&rsquo;s tasks (/documentation/latest/see the <a href="app-framework-development-guide/">App/Framework development guide</a> for more details about application schedulers and executors). While the master determines <strong>how many</strong> resources are offered to each framework, the frameworks' schedulers select <strong>which</strong> of the offered resources to use. When a frameworks accepts offered resources, it passes to Mesos a description of the tasks it wants to run on them. In turn, Mesos launches the tasks on the corresponding slaves.</p>
+
+<h2>Example of resource offer</h2>
+
+<p>The figure below shows an example of how a framework gets scheduled to run a task.</p>
+
+<p><img src="http://mesos.apache.org/assets/img/documentation/architecture-example.jpg" alt="Mesos Architecture" /></p>
+
+<p>Let&rsquo;s walk through the events in the figure.</p>
+
+<ol>
+<li>Slave 1 reports to the master that it has 4 CPUs and 4 GB of memory free. The master then invokes the allocation policy module, which tells it that framework 1 should be offered all available resources.</li>
+<li>The master sends a resource offer describing what is available on slave 1 to framework 1.</li>
+<li>The framework&rsquo;s scheduler replies to the master with information about two tasks to run on the slave, using <2 CPUs, 1 GB RAM> for the first task, and <1 CPUs, 2 GB RAM> for the second task.</li>
+<li>Finally, the master sends the tasks to the slave, which allocates appropriate resources to the framework&rsquo;s executor, which in turn launches the two tasks (depicted with dotted-line borders in the figure). Because 1 CPU and 1 GB of RAM are still unallocated, the allocation module may now offer them to framework 2.</li>
+</ol>
+
+
+<p>In addition, this resource offer process repeats when tasks finish and new resources become free.</p>
+
+<p>While the thin interface provided by Mesos allows it to scale and allows the frameworks to evolve independently, one question remains: how can the constraints of a framework be satisfied without Mesos knowing about these constraints? For example, how can a framework achieve data locality without Mesos knowing which nodes store the data required by the framework? Mesos answers these questions by simply giving frameworks the ability to <strong>reject</strong> offers. A framework will reject the offers that do not satisfy its constraints and accept the ones that do.  In particular, we have found that a simple policy called delay scheduling, in which frameworks wait for a limited time to acquire nodes storing the input data, yields nearly optimal data locality.</p>
+
+<p>You can also read much more about the Mesos architecture in this <a href="http://mesos.berkeley.edu/mesos_tech_report.pdf">technical paper</a>.</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Added: mesos/site/publish/documentation/c++-style-guide/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/c%2B%2B-style-guide/index.html?rev=1707725&view=auto
==============================================================================
--- mesos/site/publish/documentation/c++-style-guide/index.html (added)
+++ mesos/site/publish/documentation/c++-style-guide/index.html Fri Oct  9 13:33:18 2015
@@ -0,0 +1,763 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Mesos C++ Style Guide</h1>
+
+<p>The Mesos codebase follows the <a href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml">Google C++ Style Guide</a> with some notable differences, as described below. Note that the <a href="/documentation/latest/clang-format/">clang-format</a> tool can be helpful to ensure that some of the mechanical style rules are obeyed.</p>
+
+<h2>Scoping</h2>
+
+<h3>Namespaces</h3>
+
+<ul>
+<li>We avoid <code>using namespace foo</code> statements as it is not explicit about which symbols are pulled in, and it can often pull in a lot of symbols, which sometimes lead to conflicts.</li>
+<li>It is OK to use namespace aliases to help pull in sub-namespaces, such as <code>namespace http = process::http;</code>. These should only be present at the top of the .cpp file.</li>
+</ul>
+
+
+<h2>Naming</h2>
+
+<h3>Variable Names</h3>
+
+<ul>
+<li>We use <a href="http://en.wikipedia.org/wiki/CamelCase#Variations_and_synonyms">lowerCamelCase</a> for variable names (Google uses snake_case, and their class member variables have trailing underscores).</li>
+<li>We prepend constructor and function arguments with a leading underscore to avoid ambiguity and / or shadowing:</li>
+</ul>
+
+
+<pre><code class="{.cpp}">Try(State _state, T* _t = NULL, const std::string&amp; _message = "")
+  : state(_state), t(_t), message(_message) {}
+</code></pre>
+
+<ul>
+<li><p>Prefer trailing underscores for use as member fields (but not required). Some trailing underscores are used to distinguish between similar variables in the same scope (think prime symbols), <em>but this should be avoided as much as possible, including removing existing instances in the code base.</em></p></li>
+<li><p>If you find yourself creating a copy of an argument passed by const reference, consider passing it by value instead (if you don&rsquo;t want to use a leading underscore and copy in the body of the function):</p></li>
+</ul>
+
+
+<pre><code class="{.cpp}">// You can pass-by-value in ProtobufProcess::install() handlers.
+void Slave::statusUpdate(StatusUpdate update, const UPID&amp; pid)
+{
+  ...
+  update.mutable_status()-&gt;set_source(
+      pid == UPID() ? TaskStatus::SOURCE_SLAVE : TaskStatus::SOURCE_EXECUTOR);
+  ...
+}
+</code></pre>
+
+<h3>Constant Names</h3>
+
+<ul>
+<li>We use <a href="http://en.wikipedia.org/wiki/Letter_case#Special_case_styles">SCREAMING_SNAKE_CASE</a> for constant names (Google uses a <code>k</code> followed by mixed case, e.g. <code>kDaysInAWeek</code>).</li>
+</ul>
+
+
+<h3>Function Names</h3>
+
+<ul>
+<li>We use <a href="http://en.wikipedia.org/wiki/CamelCase#Variations_and_synonyms">lowerCamelCase</a> for function names (Google uses mixed case for regular functions; and their accessors and mutators match the name of the variable).</li>
+</ul>
+
+
+<h2>Strings</h2>
+
+<ul>
+<li>Strings used in log and error messages should end without a period.</li>
+</ul>
+
+
+<h2>Comments</h2>
+
+<ul>
+<li>End each sentence within a comment with a punctuation mark (please note that we generally prefer periods); this applies to incomplete sentences as well.</li>
+<li>For trailing comments, leave one space.</li>
+</ul>
+
+
+<h2>Breaks</h2>
+
+<ul>
+<li>Break before braces on enum, function, and record (i.e. struct, class, union) definitions.</li>
+</ul>
+
+
+<h2>Indentation</h2>
+
+<h3>Class Format</h3>
+
+<ul>
+<li>Access modifiers are not indented (Google uses one space indentation).</li>
+<li>Constructor initializers are indented by 2 spaces (Google indents by 4).</li>
+</ul>
+
+
+<h3>Templates</h3>
+
+<ul>
+<li>Leave one space after the <code>template</code> keyword, e.g. <code>template &lt;typename T&gt;</code> rather than <code>template&lt;typename T&gt;</code>.</li>
+</ul>
+
+
+<h3>Function Definition/Invocation</h3>
+
+<ul>
+<li>Newline when calling or defining a function: indent with 4 spaces.</li>
+<li>We do not follow Google&rsquo;s style of wrapping on the open parenthesis, the general goal is to reduce visual &ldquo;jaggedness&rdquo; in the code. Prefer (1), (4), (5), sometimes (3), never (2):</li>
+</ul>
+
+
+<pre><code class="{.cpp}">// 1: OK.
+allocator-&gt;resourcesRecovered(frameworkId, slaveId, resources, filters);
+
+// 2: Don't use.
+allocator-&gt;resourcesRecovered(frameworkId, slaveId,
+                              resources, filters);
+
+// 3: Don't use in this case due to "jaggedness".
+allocator-&gt;resourcesRecovered(frameworkId,
+                              slaveId,
+                              resources,
+                              filters);
+
+// 3: In this case, 3 is OK.
+foobar(someArgument,
+       someOtherArgument,
+       theLastArgument);
+
+// 4: OK.
+allocator-&gt;resourcesRecovered(
+    frameworkId,
+    slaveId,
+    resources,
+    filters);
+
+// 5: OK.
+allocator-&gt;resourcesRecovered(
+    frameworkId, slaveId, resources, filters);
+</code></pre>
+
+<h3>Continuation</h3>
+
+<ul>
+<li>Newline for an assignment statement: indent with 2 spaces.</li>
+</ul>
+
+
+<pre><code class="{.cpp}">Try&lt;Duration&gt; failoverTimeout =
+  Duration::create(FrameworkInfo().failover_timeout());
+</code></pre>
+
+<h2>Empty Lines</h2>
+
+<ul>
+<li>1 blank line at the end of the file.</li>
+<li>Elements outside classes (classes, structs, global functions, etc.) should be spaced apart by 2 blank lines.</li>
+<li>Elements inside classes (member variables and functions) should not be spaced apart by more than 1 blank line.</li>
+</ul>
+
+
+<h2>Capture by Reference</h2>
+
+<p>We disallow capturing <strong>temporaries</strong> by reference. See <a href="https://issues.apache.org/jira/browse/MESOS-2629">MESOS-2629</a> for the rationale.</p>
+
+<pre><code class="{.cpp}">Future&lt;Nothing&gt; f() { return Nothing(); }
+Future&lt;bool&gt; g() { return false; }
+
+struct T
+{
+  T(const char* data) : data(data) {}
+  const T&amp; member() const { return *this; }
+  const char* data;
+};
+
+// 1: Don't use.
+const Future&lt;Nothing&gt;&amp; future = f();
+
+// 1: Instead use.
+const Future&lt;Nothing&gt; future = f();
+
+// 2: Don't use.
+const Future&lt;Nothing&gt;&amp; future = Future&lt;Nothing&gt;(Nothing());
+
+// 2: Instead use.
+const Future&lt;Nothing&gt; future = Future&lt;Nothing&gt;(Nothing());
+
+// 3: Don't use.
+const Future&lt;bool&gt;&amp; future = f().then(lambda::bind(g));
+
+// 3: Instead use.
+const Future&lt;bool&gt; future = f().then(lambda::bind(g));
+
+// 4: Don't use (since the T that got constructed is a temporary!).
+const T&amp; t = T("Hello").member();
+
+// 4: Preferred alias pattern (see below).
+const T t("Hello");
+const T&amp; t_ = t.member();
+
+// 4: Can also use.
+const T t = T("Hello").member();
+</code></pre>
+
+<p>We allow capturing non-temporaries by <em>constant reference</em> when the intent is to <strong>alias</strong>.</p>
+
+<p>The goal is to make code more concise and improve readability. Use this if an expression referencing a field by <code>const</code> is:</p>
+
+<ul>
+<li>Used repeatedly.</li>
+<li>Would benefit from a concise name to provide context for readability.</li>
+<li>Will <strong>not</strong> be invalidated during the lifetime of the alias. Otherwise document this explicitly.</li>
+</ul>
+
+
+<pre><code class="{.cpp}">hashmap&lt;string, hashset&lt;int&gt;&gt; index;
+
+// 1: Ok.
+const hashset&lt;int&gt;&amp; values = index[2];
+
+// 2: Ok.
+for (auto iterator = index.begin(); iterator != index.end(); ++iterator) {
+  const hashset&lt;int&gt;&amp; values = iterator-&gt;second;
+}
+
+// 3: Ok.
+foreachpair (const string&amp; key, const hashset&lt;int&gt;&amp; values, index) {}
+foreachvalue (const hashset&lt;int&gt;&amp; values, index) {}
+foreachkey (const string&amp; key, index) {}
+
+// 4: Avoid aliases in most circumstances as they can be dangerous.
+//    This is an example of a dangling alias!
+vector&lt;string&gt; strings{"hello"};
+
+string&amp; s = strings[0];
+
+strings.erase(strings.begin());
+
+s += "world"; // THIS IS A DANGLING REFERENCE!
+</code></pre>
+
+<h2>File Headers</h2>
+
+<ul>
+<li><p>Mesos source files must contain the &ldquo;ASF&rdquo; header:</p>
+
+<pre><code>  /**
+   * 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.
+   */
+</code></pre></li>
+<li><p>Stout and libprocess source files must contain the &ldquo;Apache License Version 2.0&rdquo; header:</p>
+
+<pre><code>  /**
+   * Licensed under the Apache License, Version 2.0 (the "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *     http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License
+   */
+</code></pre></li>
+</ul>
+
+
+<h2>C++11</h2>
+
+<p>We support C++11 and require GCC 4.8+ or Clang 3.5+ compilers. The whitelist of supported C++11 features is:</p>
+
+<ul>
+<li>Static assertions.</li>
+<li>Multiple right angle brackets.</li>
+<li>Type inference (<code>auto</code> and <code>decltype</code>). The main goal is to increase code readability. This is safely the case if the exact same type omitted on the left is already fully stated on the right. Here are several examples:</li>
+</ul>
+
+
+<pre><code class="{.cpp}">// 1: OK.
+const auto i = values.find(keys.front());
+// Compare with
+const typename map::iterator i = values.find(keys.front());
+
+// 2: OK.
+auto names = shared_ptr&lt;list&lt;string&gt;&gt;(new list&lt;string&gt;());
+// Compare with
+shared_ptr&lt;list&lt;string&gt;&gt; names = shared_ptr&lt;list&lt;string&gt;&gt;(new list&lt;string&gt;());
+
+// 3: Don't use.
+auto authorizer = LocalAuthorizer::create(acls);
+// Compare with
+Try&lt;Owned&lt;LocalAuthorizer&gt;&gt; authorizer = LocalAuthorizer::create();
+</code></pre>
+
+<ul>
+<li>Rvalue references.</li>
+<li>Explicitly-defaulted functions.</li>
+<li>Variadic templates.</li>
+<li>Delegating constructors.</li>
+<li>Mutexes.
+
+<ul>
+<li><code>std::mutex</code></li>
+<li><code>std::lock_guard&lt;std::mutex&gt;</code></li>
+<li><code>std::unique_lock&lt;std::mutex&gt;</code></li>
+</ul>
+</li>
+<li>Atomics (<code>std::atomic</code>)
+
+<ul>
+<li>The standard defines a number of predefined typedefs for atomic types (e.g., <code>std::atomic_int</code>), in addition to <code>std::atomic&lt;T&gt;</code>. When a typedef is available, it should be preferred over explicit template specialization of <code>std::atomic&lt;T&gt;</code>.</li>
+<li>When reading from and writing to atomic values, the <code>load</code> and <code>store</code> member functions should be used instead of the overloads of <code>operator T()</code> and <code>operator=</code>. Being explicit helps to draw the reader&rsquo;s attention to the fact that atomic values are being manipulated.</li>
+</ul>
+</li>
+<li>Shared from this.
+
+<ul>
+<li><code>class T : public std::enable_shared_from_this&lt;T&gt;</code></li>
+<li><code>shared_from_this()</code></li>
+</ul>
+</li>
+<li>Lambdas!
+
+<ul>
+<li>Don&rsquo;t put a space between the capture list and the parameter list:</li>
+</ul>
+</li>
+</ul>
+
+
+<pre><code class="{.cpp}">// 1: OK.
+[]() { ...; };
+
+// 2: Don't use.
+[] () { ...; };
+</code></pre>
+
+<ul>
+<li>Prefer default capture by value, explicit capture by value, then capture by reference. To avoid dangling-pointer bugs, <em>never</em> use default capture by reference:</li>
+</ul>
+
+
+<pre><code class="{.cpp}">// 1: OK.
+[=]() { ... }; // Default capture by value.
+[n]() { ... }; // Explicit capture by value.
+[&amp;n]() { ... }; // Explicit capture by reference.
+[=, &amp;n]() { ... }; // Default capture by value, explicit capture by reference.
+
+// 2: Don't use.
+[&amp;]() { ... }; // Default capture by reference.
+</code></pre>
+
+<ul>
+<li>Use <code>mutable</code> only when absolutely necessary.</li>
+</ul>
+
+
+<pre><code class="{.cpp}">// 1: OK.
+[]() mutable { ...; };
+</code></pre>
+
+<ul>
+<li>Feel free to ignore the return type by default, adding it as necessary to appease the compiler or be more explicit for the reader.</li>
+</ul>
+
+
+<pre><code class="{.cpp}">// 1: OK.
+[]() { return true; };
+[]() -&gt; bool { return ambiguous(); };
+</code></pre>
+
+<ul>
+<li>Feel free to use <code>auto</code> when naming a lambda expression:</li>
+</ul>
+
+
+<pre><code class="{.cpp}">// 1: OK.
+auto lambda = []() { ...; };
+</code></pre>
+
+<ul>
+<li>Format lambdas similar to how we format functions and methods. Feel free to let lambdas be one-liners:</li>
+</ul>
+
+
+<pre><code class="{.cpp}">// 1: OK.
+auto lambda = []() {
+  ...;
+};
+
+// 2: OK.
+auto lambda = []() { ...; };
+</code></pre>
+
+<ul>
+<li>Feel free to inline lambdas within function arguments:</li>
+</ul>
+
+
+<pre><code class="{.cpp}">instance.method([]() {
+  ...;
+});
+</code></pre>
+
+<ul>
+<li>Chain function calls on a newline after the closing brace of the lambda and the closing parenthesis of function call:</li>
+</ul>
+
+
+<pre><code class="{.cpp}">// 1: OK.
+instance
+  .method([]() {
+    ...;
+  })
+  .then([]() { ...; })
+  .then([]() {
+    ...;
+  });
+
+// 2: OK (when no chaining, compare to 1).
+instance.method([]() {
+  ...;
+});
+
+// 3: OK (if no 'instance.method').
+function([]() {
+  ...;
+})
+.then([]() { ...; })
+.then([]() {
+  ...;
+});
+
+// 3: OK (but prefer 1).
+instance.method([]() {
+  ...;
+})
+.then([]() { ...; })
+.then([]() {
+  ...;
+});
+</code></pre>
+
+<ul>
+<li>Wrap capture lists independently of parameters, <em>use the same formatting as if the capture list were template parameters</em>:</li>
+</ul>
+
+
+<pre><code class="{.cpp}">// 1: OK.
+function([&amp;capture1, &amp;capture2, &amp;capture3](
+    const T1&amp; p1, const T2&amp; p2, const T3&amp; p3) {
+  ...;
+});
+
+function(
+    [&amp;capture1, &amp;capture2, &amp;capture3](
+        const T1&amp; p1, const T2&amp; p2, const T3&amp; p3) {
+  ...;
+});
+
+auto lambda = [&amp;capture1, &amp;capture2, &amp;capture3](
+    const T1&amp; p1, const T2&amp; p2, const T3&amp; p3) {
+  ...;
+};
+
+auto lambda =
+  [&amp;capture1, &amp;capture2, &amp;capture3](
+      const T1&amp; p1, const T2&amp; p2, const T3&amp; p3) {
+  ...;
+};
+
+// 2: OK (when capture list is longer than 80 characters).
+function([
+    &amp;capture1,
+    &amp;capture2,
+    &amp;capture3,
+    &amp;capture4](
+        const T1&amp; p1, const T2&amp; p2) {
+  ...;
+});
+
+auto lambda = [
+    &amp;capture1,
+    &amp;capture2,
+    &amp;capture3,
+    &amp;capture4](
+        const T1&amp; p1, const T2&amp; p2) {
+  ...;
+};
+
+// 3: OK (but prefer 2).
+function([
+    &amp;capture1,
+    &amp;capture2,
+    &amp;capture3,
+    &amp;capture4](const T1&amp; p1, const T2&amp; t2) {
+  ...;
+});
+
+auto lambda = [
+    &amp;capture1,
+    &amp;capture2,
+    &amp;capture3,
+    &amp;capture4](const T1&amp; p1, const T2&amp; p2) {
+  ...;
+};
+
+// 3: Don't use.
+function([&amp;capture1,
+          &amp;capture2,
+          &amp;capture3,
+          &amp;capture4](const T1&amp; p1, const T2&amp; p2) {
+  ...;
+});
+
+auto lambda = [&amp;capture1,
+               &amp;capture2,
+               &amp;capture3,
+               &amp;capture4](const T1&amp; p1, const T2&amp; p2) {
+  ...;
+  };
+
+// 4: Don't use.
+function([&amp;capture1,
+           &amp;capture2,
+           &amp;capture3,
+           &amp;capture4](
+    const T1&amp; p1, const T2&amp; p2, const T3&amp; p3) {
+  ...;
+});
+
+auto lambda = [&amp;capture1,
+               &amp;capture2,
+               &amp;capture3,
+               &amp;capture4](
+    const T1&amp; p1, const T2&amp; p2, const T3&amp; p3) {
+  ...;
+};
+
+// 5: Don't use.
+function([&amp;capture1,
+          &amp;capture2,
+          &amp;capture3,
+          &amp;capture4](
+    const T1&amp; p1,
+    const T2&amp; p2,
+    const T3&amp; p3) {
+  ...;
+  });
+
+auto lambda = [&amp;capture1,
+               &amp;capture2,
+               &amp;capture3,
+               &amp;capture4](
+    const T1&amp; p1,
+    const T2&amp; p2,
+    const T3&amp; p3) {
+  ...;
+};
+
+// 6: OK (parameter list longer than 80 characters).
+function([&amp;capture1, &amp;capture2, &amp;capture3](
+    const T1&amp; p1,
+    const T2&amp; p2,
+    const T3&amp; p3,
+    const T4&amp; p4) {
+  ...;
+});
+
+auto lambda = [&amp;capture1, &amp;capture2, &amp;capture3](
+    const T1&amp; p1,
+    const T2&amp; p2,
+    const T3&amp; p3,
+    const T4&amp; p4) {
+  ...;
+};
+
+// 7: OK (capture and parameter lists longer than 80 characters).
+function([
+    &amp;capture1,
+    &amp;capture2,
+    &amp;capture3,
+    &amp;capture4](
+        const T1&amp; p1,
+        const T2&amp; p2,
+        const T3&amp; p3,
+        const T4&amp; p4) {
+  ...;
+});
+
+auto lambda = [
+    &amp;capture1,
+    &amp;capture2,
+    &amp;capture3,
+    &amp;capture4](
+        const T1&amp; p1,
+        const T2&amp; p2,
+        const T3&amp; p3,
+        const T4&amp; p4) {
+  ...;
+};
+</code></pre>
+
+<ul>
+<li><p>Unrestricted Union.</p>
+
+<p>Like the pre-existing <code>union</code>, we can overlap storage allocation for objects that never exist simultaneously. However, with C++11 we are no longer <em>restricted to having only non-POD types in unions</em>. Adding non-POD types to unions complicates things, however, because we need to make sure to properly call constructors and destructors. Therefore, only use unrestricted unions (i.e., unions with non-POD types) when the union has only a single field. What does this buy us? Now we can avoid dynamic memory allocations for &ldquo;container&rdquo; like types, e.g., <code>Option</code>, <code>Try</code>, <code>Result</code>, etc. In effect, we treat the union like a dynamic allocation, calling <em>placement new</em>, <code>new (&amp;t) T(...)</code> anyplace we would have just called <code>new T(...)</code> and the destructor <code>t.~T()</code> anyplace we would have called <code>delete t</code>.</p></li>
+<li><p>Constant expressions.</p>
+
+<p>Constant expressions allow the declaration of static non-POD objects while eliminating the unpredictable runtime initialization and destruction issues normally encountered, helping eliminate macros and hard-coded literals without sacrificing performance and type safety.  Changes which require converting from <code>constexpr</code> to <code>const</code> can propagate through the dependency tree requiring that dependent <code>constexpr</code> uses also be converted to <code>const</code>, hence we avoid using <code>constexpr</code> in complex functions.</p>
+
+<p><code>constexpr</code> behaves as a combination of <code>inline</code> and <code>const</code> and hence must be defined before use in another <code>constexpr</code>.</p>
+
+<p>Prefer <code>constexpr</code> to <code>const</code> for all constant POD declarations, <code>constexpr</code> <code>char</code> arrays are preferred to <code>const</code> <code>string</code> literals.</p></li>
+</ul>
+
+
+<pre><code class="{.cpp}">  // OK
+  constexpr char LITERAL[] = "value";
+
+  // Not OK - not available at compile time for optimization and
+  // definition required in a separate compilation module.
+  const char LITERAL[];
+
+  // Not OK - uncertain initialization order, cannot be used in other
+  // constexpr statements.
+  const string LITERAL("value");
+</code></pre>
+
+<p>  <code>constexpr</code> functions are evaluated at compile time if all their arguments are constant expressions. Otherwise they default to initialization at runtime. However <code>constexpr</code> functions are limited in that they cannot perform dynamic casts, memory allocation or calls to non-constexpr functions.  Prefer <code>constexpr</code> over const inline functions.</p>
+
+<pre><code class="{.cpp}">  constexpr size_t MIN = 200;
+  constexpr size_t MAX = 1000;
+  constexpr size_t SPAN() { return MAX-MIN; }
+  int array[SPAN()];
+</code></pre>
+
+<p>Const expression constructors allow object initialization at compile time provided that all the constructor arguments are <code>constexpr</code> and the constructor body is empty, i.e. all initialization is performed in the initialization list.  Classes which provide <code>constexpr</code> constructors should normally also provide <code>constexpr</code> copy constructors to allow the class to be used in the return value from a <code>constexpr</code> function.</p>
+
+<pre><code class="{.cpp}">  class C
+  {
+  public:
+    constexpr C(int _i) : i(_i) {};
+    constexpr C(const C&amp; c) : i(c.i) {}
+  private:
+    const int i;
+  };
+</code></pre>
+
+<p>  C++11 does not provide <code>constexpr string</code> or <code>constexpr</code> containers in the STL and hence <code>constexpr</code> cannot be used for any class using stout&rsquo;s Error() class.</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Modified: mesos/site/publish/documentation/clang-format/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/clang-format/index.html?rev=1707725&r1=1707724&r2=1707725&view=diff
==============================================================================
--- mesos/site/publish/documentation/clang-format/index.html (original)
+++ mesos/site/publish/documentation/clang-format/index.html Fri Oct  9 13:33:18 2015
@@ -85,7 +85,7 @@
 
 <p><a href="http://llvm.org/releases/3.5.1/tools/clang/docs/ClangFormat.html">ClangFormat</a> is an automatic source code formatting tool which helps us focus on the code rather than the formatting.</p>
 
-<blockquote><p>The provided configurations try to honor the <a href="http://mesos.apache.org/documentation/latest/mesos-c++-style-guide/">Mesos C++ Style Guide</a> as much as possible, but there are some limitations which require manual attention. Even with these limitations however, ClangFormat will be extremely useful for your workflow!</p></blockquote>
+<blockquote><p>The provided configurations try to honor the <a href="http://mesos.apache.org/documentation/latest/c++-style-guide/">Mesos C++ Style Guide</a> as much as possible, but there are some limitations which require manual attention. Even with these limitations however, ClangFormat will be extremely useful for your workflow!</p></blockquote>
 
 <h2>Setup</h2>
 

Added: mesos/site/publish/documentation/containerizer/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/containerizer/index.html?rev=1707725&view=auto
==============================================================================
--- mesos/site/publish/documentation/containerizer/index.html (added)
+++ mesos/site/publish/documentation/containerizer/index.html Fri Oct  9 13:33:18 2015
@@ -0,0 +1,180 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Mesos Containerizer</h1>
+
+<p>The MesosContainerizer provides lightweight containerization and
+resource isolation of executors using Linux-specific functionality
+such as control cgroups and namespaces. It is composable so operators
+can selectively enable different isolators.</p>
+
+<p>It also provides basic support for POSIX systems (e.g., OSX) but
+without any actual isolation, only resource usage reporting.</p>
+
+<h3>Shared Filesystem</h3>
+
+<p>The SharedFilesystem isolator can optionally be used on Linux hosts to
+enable modifications to each container&rsquo;s view of the shared
+filesystem.</p>
+
+<p>The modifications are specified in the ContainerInfo included in the
+ExecutorInfo, either by a framework or by using the
+&ndash;default_container_info slave flag.</p>
+
+<p>ContainerInfo specifies Volumes which map parts of the shared
+filesystem (host_path) into the container&rsquo;s view of the filesystem
+(container_path), as read-write or read-only. The host_path can be
+absolute, in which case it will make the filesystem subtree rooted at
+host_path also accessible under container_path for each container.
+If host_path is relative then it is considered as a directory
+relative to the executor&rsquo;s work directory. The directory will be
+created and permissions copied from the corresponding directory (which
+must exist) in the shared filesystem.</p>
+
+<p>The primary use-case for this isolator is to selectively make parts of
+the shared filesystem private to each container. For example, a
+private &ldquo;/tmp&rdquo; directory can be achieved with host_path=&ldquo;tmp&rdquo; and
+container_path=&ldquo;/tmp&rdquo; which will create a directory &ldquo;tmp&rdquo; inside the
+executor&rsquo;s work directory (mode 1777) and simultaneously mount it as
+/tmp inside the container. This is transparent to processes running
+inside the container. Containers will not be able to see the host&rsquo;s
+/tmp or any other container&rsquo;s /tmp.</p>
+
+<h3>Pid Namespace</h3>
+
+<p>The Pid Namespace isolator can be used to isolate each container in
+a separate pid namespace with two main benefits:
+1. Visibility: Processes running in the container (executor and
+   descendants) are unable to see or signal processes outside the
+   namespace.
+2. Clean termination: Termination of the leading process in a pid
+   namespace will result in the kernel terminating all other processes
+   in the namespace.</p>
+
+<p>The Launcher will use (2) during destruction of a container in
+preference to the freezer cgroup, avoiding known kernel issues related
+to freezing cgroups under OOM conditions.</p>
+
+<p>/proc will be mounted for containers so tools such as &lsquo;ps&rsquo; will work
+correctly.</p>
+
+<h3>Posix Disk Isolator</h3>
+
+<p>The Posix Disk isolator provides basic disk isolation. It is able to
+report the disk usage for each sandbox and optionally enforce the disk
+quota. It can be used on both Linux and OS X.</p>
+
+<p>To enable the Posix Disk isolator, append <code>posix/disk</code> to the
+<code>--isolation</code> flag when starting the slave.</p>
+
+<p>By default, the disk quota enforcement is disabled. To enable it,
+specify <code>--enforce_container_disk_quota</code> when starting the slave.</p>
+
+<p>The Posix Disk isolator reports disk usage for each sandbox by
+periodically running the <code>du</code> command. The disk usage can be retrieved
+from the resource statistics endpoint (<code>/monitor/statistics.json</code>).</p>
+
+<p>The interval between two <code>du</code>s can be controlled by the slave flag
+<code>--container_disk_watch_interval</code>. For example,
+<code>--container_disk_watch_interval=1mins</code> sets the interval to be 1
+minute. The default interval is 15 seconds.</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Added: mesos/site/publish/documentation/documentation-guide/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/documentation-guide/index.html?rev=1707725&view=auto
==============================================================================
--- mesos/site/publish/documentation/documentation-guide/index.html (added)
+++ mesos/site/publish/documentation/documentation-guide/index.html Fri Oct  9 13:33:18 2015
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Mesos Documentation  Guide</h1>
+
+<p>Documentation is an integral part of every good feature. It describes the intended usage and enables new users to start using and understanding the feature.</p>
+
+<p>We have three different kinds of documentation:</p>
+
+<ol>
+<li><a href="/documentation/latest/markdown-style-guide/">MarkDown User Guides</a></li>
+</ol>
+
+
+<p>  User guides and non-code technical documentation are stored in markdown files in the <code>docs/</code> folder. These files get rendered for the <a href="http://mesos.apache.org/documentation/latest/">online documentation</a>.</p>
+
+<p>  We will accept small documentation changes on <a href="https://github.com/apache/mesos">Github via a pull request</a>, larger documentation changes should go through the (reviewboard)[https://reviews.apache.org/groups/mesos/]</p>
+
+<ol>
+<li><a href="/documentation/latest/doxygen-style-guide/">Doxygen API Documentation and Developer Guides as part of source code</a></li>
+</ol>
+
+
+<p>  Doxygen API documentation needs only to be applied to source code parts that
+  constitute an interface for which we want to generate Mesos API documentation
+  files. Implementation code that does not participate in this should still be
+  enhanced by source code comments as appropriate, but these comments should not follow the doxygen style.</p>
+
+<p>  Substantial libraries, components, and subcomponents of the Mesos system such as
+  stout, libprocess, master, slave, containerizer, allocator, and others
+  should have an overview page in markdown format that explains their
+  purpose, overall structure, and general use. This can even be a complete developer guide.</p>
+
+<ol>
+<li>Regular source code documentation</li>
+</ol>
+
+
+<p>  All other source code comments must follow the <a href="https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Comments">Google Style Guide</a>.</p>
+
+<h2>Conventions</h2>
+
+<p>We follow the <a href="https://www.ietf.org/rfc/rfc2119.txt">IETF RFC 2119</a>
+on how to use words such as &ldquo;must&rdquo;, &ldquo;should&rdquo;, &ldquo;can&rdquo;,
+and other requirement-related notions.</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Added: mesos/site/publish/documentation/doxygen-style-guide/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/doxygen-style-guide/index.html?rev=1707725&view=auto
==============================================================================
--- mesos/site/publish/documentation/doxygen-style-guide/index.html (added)
+++ mesos/site/publish/documentation/doxygen-style-guide/index.html Fri Oct  9 13:33:18 2015
@@ -0,0 +1,301 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Apache Mesos Doxygen Style Guide</h1>
+
+<p>This guide introduces a consistent style
+for <a href="http://mesos.apache.org/api/latest/c++">documenting Mesos source code</a>
+using <a href="http://www.doxygen.org">Doxygen</a>.
+There is an ongoing, incremental effort with the goal to document all public Mesos, libprocess, and stout APIs this way.
+For now, existing code may not follow these guidelines, but new code should.</p>
+
+<h2>Source Code Documentation Syntax</h2>
+
+<p>Doxygen documentation needs only to be applied to source code parts that
+constitute an interface for which we want to generate Mesos API documentation
+files. Implementation code that does not participate in this should still be
+enhanced by source code comments as appropriate, but these comments should not follow the doxygen style.</p>
+
+<p>We follow the <a href="http://en.wikipedia.org/wiki/Javadoc">Javadoc syntax</a> to mark comment blocks.
+These have the general form:</p>
+
+<!-- NOTE: In order to show the comments as part of the code blocks in
+this we must use indentation instead of fenced code blocks (i.e.,
+~~~{.cpp}) because doxygen will remove all of the comments and just
+render the code. -->
+
+
+<pre><code>/**
+ * Brief summary.
+ *
+ * Detailed description. More detail.
+ * @see Some reference
+ *
+ * @param &lt;name&gt; Parameter description.
+ * @return Return value description.
+ */
+</code></pre>
+
+<p>Example:</p>
+
+<pre><code>/**
+ * Returns a compressed version of a string.
+ *
+ * Compresses an input string using the foobar algorithm.
+ *
+ * @param uncompressed The input string.
+ * @return A compressed version of the input string.
+ */
+ std::string compress(const std::string&amp; uncompressed);
+</code></pre>
+
+<h3>Doxygen Tags</h3>
+
+<p>This is the allowed set of doxygen tags that can be used.</p>
+
+<ul>
+<li><a href="http://doxygen.org/manual/commands.html#cmdparam">\@param</a> Describes function parameters.</li>
+<li><a href="http://doxygen.org/manual/commands.html#cmdreturn">\@return</a> Describes return values.</li>
+<li><a href="http://doxygen.org/manual/commands.html#cmdsa">\@see</a> Describes a cross-reference to classes, functions, methods, variables, files or URL.</li>
+</ul>
+
+
+<p>Example:</p>
+
+<pre><code>/**
+ * Available kinds of implementations.
+ *
+ * @see process::network::PollSocketImpl
+ */
+</code></pre>
+
+<ul>
+<li><a href="http://doxygen.org/manual/commands.html#cmdfile">\@file</a> Describes a refence to a file. It is required when documenting global functions, variables, typedefs, or enums in separate files.</li>
+<li><a href="http://doxygen.org/manual/commands.html#cmdlink">\@link</a> and <a href="http://doxygen.org/manual/commands.html#cmdendlink">\@endlink</a> Describes a link to a file, class, or member.</li>
+<li><a href="http://doxygen.org/manual/commands.html#cmdexample">\@example</a> Describes source code examples.</li>
+<li><p><a href="http://doxygen.org/manual/commands.html#cmdimage">\@image</a> Describes an image.</p></li>
+<li><p>When following these links be aware that the doxygen documentation is using another syntax in that \@param is explained as \param.</p></li>
+</ul>
+
+
+<h3>Wrapping</h3>
+
+<p>We wrap long descriptions using four spaces on the next line.</p>
+
+<pre><code>@param uncompressed The input string that requires
+    a very long description and an even longer
+    description on this line as well.
+</code></pre>
+
+<h3>Constants and Variables</h3>
+
+<p>Example:</p>
+
+<pre><code>/**
+ * Prefix used to name Docker containers in order to distinguish
+ * those created by Mesos from those created manually.
+ */
+extern const std::string DOCKER_NAME_PREFIX;
+</code></pre>
+
+<h4>Fields</h4>
+
+<p>Example:</p>
+
+<pre><code>/**
+ * The parent side of the pipe for stdin.
+ * If the mode is not PIPE, None will be stored.
+ * **NOTE**: stdin is a macro on some systems, hence this name instead.
+ */
+Option&lt;int&gt; in;
+</code></pre>
+
+<h3>Functions and Methods</h3>
+
+<p>Example:</p>
+
+<pre><code>/**
+ * Forks a subprocess and execs the specified 'path' with the
+ * specified 'argv', redirecting stdin, stdout, and stderr as
+ * specified by 'in', 'out', and 'err' respectively.
+ *
+ * If 'setup' is not None, runs the specified function after forking
+ * but before exec'ing. If the return value of 'setup' is non-zero
+ * then that gets returned in 'status()' and we will not exec.
+ *
+ * @param path Relative or absolute path in the filesytem to the
+ *     executable.
+ * @param argv Argument vector to pass to exec.
+ * @param in Redirection specification for stdin.
+ * @param out Redirection specification for stdout.
+ * @param err Redirection specification for stderr.
+ * @param flags Flags to be stringified and appended to 'argv'.
+ * @param environment Environment variables to use for the new
+ *     subprocess or if None (the default) then the new subprocess
+ *     will inherit the environment of the current process.
+ * @param setup Function to be invoked after forking but before
+ *     exec'ing. NOTE: Take extra care not to invoke any
+ *     async unsafe code in the body of this function.
+ * @param clone Function to be invoked in order to fork/clone the
+ *     subprocess.
+ * @return The subprocess or an error if one occurred.
+ */
+Try&lt;Subprocess&gt; subprocess(
+    const std::string&amp; path,
+    std::vector&lt;std::string&gt; argv,
+    const Subprocess::IO&amp; in = Subprocess::FD(STDIN_FILENO),
+    const Subprocess::IO&amp; out = Subprocess::FD(STDOUT_FILENO),
+    const Subprocess::IO&amp; err = Subprocess::FD(STDERR_FILENO),
+    const Option&lt;flags::FlagsBase&gt;&amp; flags = None(),
+    const Option&lt;std::map&lt;std::string, std::string&gt;&gt;&amp; environment = None(),
+    const Option&lt;lambda::function&lt;int()&gt;&gt;&amp; setup = None(),
+    const Option&lt;lambda::function&lt;
+        pid_t(const lambda::function&lt;int()&gt;&amp;)&gt;&gt;&amp; clone = None());
+</code></pre>
+
+<h3>Classes and Structs</h3>
+
+<p>Example:</p>
+
+<pre><code>/**
+ * Represents a fork() exec()ed subprocess. Access is provided to the
+ * input / output of the process, as well as the exit status. The
+ * input / output file descriptors are only closed after:
+ *   1. The subprocess has terminated.
+ *   2. There are no longer any references to the associated
+ *      Subprocess object.
+ */
+class Subprocess
+{
+public:
+</code></pre>
+
+<h2>Library and Component Overview Pages and Developer Guides</h2>
+
+<p>Substantial libraries, components, and subcomponents of the Mesos system such as
+stout, libprocess, master, slave, containerizer, allocator, and others
+should have an overview page in markdown format that explains their
+purpose, overall structure, and general use. This can even be a complete developer guide.</p>
+
+<p>This page must be located in the top directory of the library/component and named &ldquo;README.md&rdquo;.</p>
+
+<p>The first line in such a document must be a section heading bearing the title which will appear in the generated Doxygen index.
+Example: &ldquo;# Libprocess Developer Guide&rdquo;</p>
+
+<h3>Example Code</h3>
+
+<p>C++ code examples should be enclosed by &lsquo;~~~{.cpp}&rsquo;.</p>
+
+<p>Example:</p>
+
+<pre><code class="{.cpp}">int main(int argc, char** argv)
+{
+  ...
+}
+</code></pre>
+
+<p><strong>NOTE</strong>: Because of shortcomings of Doxygen&rsquo;s markdown parser we currently use indentation for wrapping all non C++ code blocks.</p>
+
+<h2>Building Doxygen Documentation</h2>
+
+<p>As of right now, the Doxygen documentation should be built from the <em>build</em> subdirectory using <em>doxygen ../Doxyfile</em> . The documentation will then be generated into the <em>./doxygen</em> subdirectory.</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Modified: mesos/site/publish/documentation/effective-code-reviewing/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/effective-code-reviewing/index.html?rev=1707725&r1=1707724&r2=1707725&view=diff
==============================================================================
--- mesos/site/publish/documentation/effective-code-reviewing/index.html (original)
+++ mesos/site/publish/documentation/effective-code-reviewing/index.html Fri Oct  9 13:33:18 2015
@@ -102,7 +102,7 @@ reviews based on commits. Become familia
 change clear in the review request, so the reviewer is not left
 guessing. It is highly recommended to attach a JIRA issue with your
 review for additional context.</li>
-<li><strong>Follow the <a href="http://mesos.apache.org/documentation/latest/mesos-c++-style-guide/">style guide</a>
+<li><strong>Follow the <a href="http://mesos.apache.org/documentation/latest/c++-style-guide/">style guide</a>
 and the style of code around you</strong>.</li>
 <li><strong>Do a self-review of your changes before publishing</strong>: Approach it
 from the perspective of a reviewer with no context. Is it easy to figure

Added: mesos/site/publish/documentation/frameworks/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/frameworks/index.html?rev=1707725&view=auto
==============================================================================
--- mesos/site/publish/documentation/frameworks/index.html (added)
+++ mesos/site/publish/documentation/frameworks/index.html Fri Oct  9 13:33:18 2015
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Software projects built on Mesos</h1>
+
+<h2>Long Running Services</h2>
+
+<ul>
+<li><a href="http://aurora.incubator.apache.org">Aurora</a> is a service scheduler that runs on top of Mesos, enabling you to run long-running services that take advantage of Mesos' scalability, fault-tolerance, and resource isolation.</li>
+<li><a href="https://github.com/mesosphere/marathon">Marathon</a> is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is &ldquo;always on&rdquo;.</li>
+<li><a href="https://github.com/HubSpot/Singularity">Singularity</a> is a scheduler (HTTP API and web interface) for running Mesos tasks: long running processes, one-off tasks, and scheduled jobs.</li>
+<li><a href="https://github.com/mesosphere/sssp">SSSP</a> is a simple web application that provides a white-label &ldquo;Megaupload&rdquo; for storing and sharing files in S3.</li>
+</ul>
+
+
+<h2>Big Data Processing</h2>
+
+<ul>
+<li><a href="https://github.com/nqn/mesos-chapel">Cray Chapel</a> is a productive parallel programming language. The Chapel Mesos scheduler lets you run Chapel programs on Mesos.</li>
+<li><a href="https://github.com/douban/dpark">Dpark</a> is a Python clone of Spark, a MapReduce-like framework written in Python, running on Mesos.</li>
+<li><a href="https://github.com/mesosphere/exelixi">Exelixi</a> is a distributed framework for running genetic algorithms at scale.</li>
+<li><a href="https://github.com/mesos/hadoop">Hadoop</a> Running Hadoop on Mesos distributes MapReduce jobs efficiently across an entire cluster.</li>
+<li><a href="http://wiki.apache.org/hama/GettingStartedMesos">Hama</a> is a distributed computing framework based on Bulk Synchronous Parallel computing techniques for massive scientific computations e.g., matrix, graph and network algorithms.</li>
+<li><a href="https://github.com/mesosphere/mesos-hydra">MPI</a> is a message-passing system designed to function on a wide variety of parallel computers.</li>
+<li><a href="http://spark.incubator.apache.org/">Spark</a> is a fast and general-purpose cluster computing system which makes parallel jobs easy to write.</li>
+<li><a href="https://github.com/mesosphere/storm-mesos">Storm</a> is a distributed realtime computation system. Storm makes it easy to reliably process unbounded streams of data, doing for realtime processing what Hadoop did for batch processing.</li>
+</ul>
+
+
+<h2>Batch Scheduling</h2>
+
+<ul>
+<li><a href="https://github.com/airbnb/chronos">Chronos</a> is a distributed job scheduler that supports complex job topologies. It can be used as a more fault-tolerant replacement for Cron.</li>
+<li><a href="https://github.com/jenkinsci/mesos-plugin">Jenkins</a> is a continuous integration server. The mesos-jenkins plugin allows it to dynamically launch workers on a Mesos cluster depending on the workload.</li>
+<li><a href="http://www.grandlogic.com/content/html_docs/jobserver.html">JobServer</a> is a distributed job scheduler and processor  which allows developers to build custom batch processing Tasklets using point and click web UI.</li>
+</ul>
+
+
+<h2>Data Storage</h2>
+
+<ul>
+<li><a href="https://github.com/mesosphere/cassandra-mesos">Cassandra</a> is a performant and highly available distributed database. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data.</li>
+<li><a href="https://github.com/mesosphere/elasticsearch-mesos">ElasticSearch</a> is a distributed search engine. Mesos makes it easy to run and scale.</li>
+<li><a href="https://code.google.com/p/hypertable/wiki/Mesos">Hypertable</a> is a high performance, scalable, distributed storage and processing system for structured and unstructured data.</li>
+</ul>
+
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Modified: mesos/site/publish/documentation/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/index.html?rev=1707725&r1=1707724&r2=1707725&view=diff
==============================================================================
--- mesos/site/publish/documentation/index.html (original)
+++ mesos/site/publish/documentation/index.html Fri Oct  9 13:33:18 2015
@@ -86,8 +86,8 @@
 <h2>Mesos Fundamentals</h2>
 
 <ul>
-<li><a href="/documentation/latest/mesos-architecture/">Mesos Architecture</a> providing an overview of Mesos concepts.</li>
-<li><a href="/documentation/latest/mesos-presentations/">Video and Slides of Mesos Presentations</a></li>
+<li><a href="/documentation/latest/architecture/">Mesos Architecture</a> providing an overview of Mesos concepts.</li>
+<li><a href="/documentation/latest/presentations/">Video and Slides of Mesos Presentations</a></li>
 </ul>
 
 
@@ -96,7 +96,7 @@
 <ul>
 <li><a href="/documentation/latest/getting-started/">Getting Started</a> for basic instructions on compiling and installing Mesos.</li>
 <li><a href="/documentation/latest/configuration/">Configuration</a> for command-line arguments.</li>
-<li><a href="/documentation/latest/mesos-containerizer/">Mesos Containerizer</a> default containerizer, supports both Linux and POSIX systems.</li>
+<li><a href="/documentation/latest/containerizer/">Mesos Containerizer</a> default containerizer, supports both Linux and POSIX systems.</li>
 <li><a href="/documentation/latest/docker-containerizer/">Docker Containerizer</a> for launching a Docker image as a Task, or as an Executor.</li>
 <li><a href="/documentation/latest/external-containerizer/">External Containerizer</a> for custom containerization implementations.</li>
 <li><a href="/documentation/latest/authentication/">Framework Authentication</a></li>
@@ -110,7 +110,7 @@
 <li><a href="/documentation/latest/slave-recovery/">Slave Recovery</a> for doing seamless upgrades.</li>
 <li><a href="/documentation/latest/maintenance/">Maintenance</a> for performing maintenance on a Mesos cluster.</li>
 <li><a href="/documentation/latest/tools/">Tools</a> for setting up and running a Mesos cluster.</li>
-<li><a href="/documentation/latest/mesos-ssl/">SSL</a> for enabling and enforcing SSL communication.</li>
+<li><a href="/documentation/latest/ssl/">SSL</a> for enabling and enforcing SSL communication.</li>
 </ul>
 
 
@@ -129,7 +129,7 @@
 <h2>Running Mesos Frameworks</h2>
 
 <ul>
-<li><a href="/documentation/latest/mesos-frameworks/">Mesos frameworks</a> for a list of apps built on top of Mesos and instructions on how to run them.</li>
+<li><a href="/documentation/latest/frameworks/">Mesos frameworks</a> for a list of apps built on top of Mesos and instructions on how to run them.</li>
 </ul>
 
 
@@ -138,7 +138,7 @@
 <ul>
 <li><a href="/documentation/latest/app-framework-development-guide/">Framework Development Guide</a> describes how to build applications on top of Mesos.</li>
 <li><a href="/documentation/latest/reconciliation/">Reconciliation</a> for ensuring a framework&rsquo;s state remains eventually consistent in the face of failures.</li>
-<li><a href="/documentation/latest/scheduler_http_api/">Scheduler HTTP API</a> describes the new HTTP API for communication between schedulers and the Mesos master.</li>
+<li><a href="/documentation/latest/scheduler-http-api/">Scheduler HTTP API</a> describes the new HTTP API for communication between schedulers and the Mesos master.</li>
 <li><a href="/api/latest/java/">Javadoc</a> documents the Mesos Java API.</li>
 <li><a href="/api/latest/c++/namespacemesos.html">Doxygen</a> documents the Mesos C++ API.</li>
 <li><a href="/documentation/latest/tools/">Developer Tools</a> for hacking on Mesos or writing frameworks.</li>
@@ -158,21 +158,21 @@
 <ul>
 <li><a href="/documentation/latest/reporting-a-bug/">Reporting an Issue, Improvement, or Feature</a> for getting started with JIRA.</li>
 <li><a href="/documentation/latest/submitting-a-patch/">Submitting a Patch</a> for getting started with ReviewBoard and our tooling around it.</li>
-<li><a href="/documentation/latest/mesos-testing-patterns/">Testing Patterns</a> for tips and tricks used in Mesos tests.</li>
+<li><a href="/documentation/latest/testing-patterns/">Testing Patterns</a> for tips and tricks used in Mesos tests.</li>
 <li><a href="/documentation/latest/effective-code-reviewing/">Effective Code Reviewing</a> guidelines, tips, and learnings for how to do effective code reviews.</li>
 <li><a href="/documentation/latest/engineering-principles-and-practices/">Engineering Principles and Practices</a> to serve as a shared set of project-level values for the community.</li>
 <li><a href="/documentation/latest/committing/">Committing</a> guidelines for committing changes.</li>
 <li><a href="/documentation/latest/committers/">Committers and Maintainers</a> a listing of project committers and component maintainers; useful when seeking feedback.</li>
 <li><a href="/api/latest/c++/">Doxygen</a> documents the internal Mesos APIs.</li>
-<li><a href="/documentation/latest/mesos-documentation-guide/">Documentation Guide</a>
+<li><a href="/documentation/latest/documentation-guide/">Documentation Guide</a>
 
 <ul>
-<li><a href="/documentation/latest/mesos-c++-style-guide/">C++ Style Guide</a></li>
-<li><a href="/documentation/latest/mesos-doxygen-style-guide/">Doxygen Style Guide</a></li>
-<li><a href="/documentation/latest/mesos-markdown-style-guide/">Markdown Style Guide</a></li>
+<li><a href="/documentation/latest/c++-style-guide/">C++ Style Guide</a></li>
+<li><a href="/documentation/latest/doxygen-style-guide/">Doxygen Style Guide</a></li>
+<li><a href="/documentation/latest/markdown-style-guide/">Markdown Style Guide</a></li>
 </ul>
 </li>
-<li><a href="/documentation/latest/mesos-roadmap/">Development Roadmap</a></li>
+<li><a href="/documentation/latest/roadmap/">Development Roadmap</a></li>
 <li><a href="/documentation/latest/release-guide/">Release Guide</a></li>
 </ul>