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, …)
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’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’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’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’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>© 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& _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’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& pid)
+{
+ ...
+ update.mutable_status()->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 <typename T></code> rather than <code>template<typename
T></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’s style of wrapping on the open parenthesis,
the general goal is to reduce visual “jaggedness” in the code.
Prefer (1), (4), (5), sometimes (3), never (2):</li>
+</ul>
+
+
+<pre><code class="{.cpp}">// 1: OK.
+allocator->resourcesRecovered(frameworkId, slaveId, resources, filters);
+
+// 2: Don't use.
+allocator->resourcesRecovered(frameworkId, slaveId,
+ resources, filters);
+
+// 3: Don't use in this case due to "jaggedness".
+allocator->resourcesRecovered(frameworkId,
+ slaveId,
+ resources,
+ filters);
+
+// 3: In this case, 3 is OK.
+foobar(someArgument,
+ someOtherArgument,
+ theLastArgument);
+
+// 4: OK.
+allocator->resourcesRecovered(
+ frameworkId,
+ slaveId,
+ resources,
+ filters);
+
+// 5: OK.
+allocator->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<Duration> 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<Nothing> f() { return Nothing(); }
+Future<bool> g() { return false; }
+
+struct T
+{
+ T(const char* data) : data(data) {}
+ const T& member() const { return *this; }
+ const char* data;
+};
+
+// 1: Don't use.
+const Future<Nothing>& future = f();
+
+// 1: Instead use.
+const Future<Nothing> future = f();
+
+// 2: Don't use.
+const Future<Nothing>& future = Future<Nothing>(Nothing());
+
+// 2: Instead use.
+const Future<Nothing> future = Future<Nothing>(Nothing());
+
+// 3: Don't use.
+const Future<bool>& future = f().then(lambda::bind(g));
+
+// 3: Instead use.
+const Future<bool> future = f().then(lambda::bind(g));
+
+// 4: Don't use (since the T that got constructed is a temporary!).
+const T& t = T("Hello").member();
+
+// 4: Preferred alias pattern (see below).
+const T t("Hello");
+const T& 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<string, hashset<int>> index;
+
+// 1: Ok.
+const hashset<int>& values = index[2];
+
+// 2: Ok.
+for (auto iterator = index.begin(); iterator != index.end(); ++iterator) {
+ const hashset<int>& values = iterator->second;
+}
+
+// 3: Ok.
+foreachpair (const string& key, const hashset<int>& values,
index) {}
+foreachvalue (const hashset<int>& values, index) {}
+foreachkey (const string& key, index) {}
+
+// 4: Avoid aliases in most circumstances as they can be dangerous.
+// This is an example of a dangling alias!
+vector<string> strings{"hello"};
+
+string& 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 “ASF” 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 “Apache
License Version 2.0” 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<list<string>>(new list<string>());
+// Compare with
+shared_ptr<list<string>> names =
shared_ptr<list<string>>(new list<string>());
+
+// 3: Don't use.
+auto authorizer = LocalAuthorizer::create(acls);
+// Compare with
+Try<Owned<LocalAuthorizer>> 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<std::mutex></code></li>
+<li><code>std::unique_lock<std::mutex></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<T></code>. When a typedef is available, it should be
preferred over explicit template specialization of
<code>std::atomic<T></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’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<T></code></li>
+<li><code>shared_from_this()</code></li>
+</ul>
+</li>
+<li>Lambdas!
+
+<ul>
+<li>Don’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.
+[&n]() { ... }; // Explicit capture by reference.
+[=, &n]() { ... }; // Default capture by value, explicit capture by
reference.
+
+// 2: Don't use.
+[&]() { ... }; // 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; };
+[]() -> 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([&capture1, &capture2, &capture3](
+ const T1& p1, const T2& p2, const T3& p3) {
+ ...;
+});
+
+function(
+ [&capture1, &capture2, &capture3](
+ const T1& p1, const T2& p2, const T3& p3) {
+ ...;
+});
+
+auto lambda = [&capture1, &capture2, &capture3](
+ const T1& p1, const T2& p2, const T3& p3) {
+ ...;
+};
+
+auto lambda =
+ [&capture1, &capture2, &capture3](
+ const T1& p1, const T2& p2, const T3& p3) {
+ ...;
+};
+
+// 2: OK (when capture list is longer than 80 characters).
+function([
+ &capture1,
+ &capture2,
+ &capture3,
+ &capture4](
+ const T1& p1, const T2& p2) {
+ ...;
+});
+
+auto lambda = [
+ &capture1,
+ &capture2,
+ &capture3,
+ &capture4](
+ const T1& p1, const T2& p2) {
+ ...;
+};
+
+// 3: OK (but prefer 2).
+function([
+ &capture1,
+ &capture2,
+ &capture3,
+ &capture4](const T1& p1, const T2& t2) {
+ ...;
+});
+
+auto lambda = [
+ &capture1,
+ &capture2,
+ &capture3,
+ &capture4](const T1& p1, const T2& p2) {
+ ...;
+};
+
+// 3: Don't use.
+function([&capture1,
+ &capture2,
+ &capture3,
+ &capture4](const T1& p1, const T2& p2) {
+ ...;
+});
+
+auto lambda = [&capture1,
+ &capture2,
+ &capture3,
+ &capture4](const T1& p1, const T2& p2) {
+ ...;
+ };
+
+// 4: Don't use.
+function([&capture1,
+ &capture2,
+ &capture3,
+ &capture4](
+ const T1& p1, const T2& p2, const T3& p3) {
+ ...;
+});
+
+auto lambda = [&capture1,
+ &capture2,
+ &capture3,
+ &capture4](
+ const T1& p1, const T2& p2, const T3& p3) {
+ ...;
+};
+
+// 5: Don't use.
+function([&capture1,
+ &capture2,
+ &capture3,
+ &capture4](
+ const T1& p1,
+ const T2& p2,
+ const T3& p3) {
+ ...;
+ });
+
+auto lambda = [&capture1,
+ &capture2,
+ &capture3,
+ &capture4](
+ const T1& p1,
+ const T2& p2,
+ const T3& p3) {
+ ...;
+};
+
+// 6: OK (parameter list longer than 80 characters).
+function([&capture1, &capture2, &capture3](
+ const T1& p1,
+ const T2& p2,
+ const T3& p3,
+ const T4& p4) {
+ ...;
+});
+
+auto lambda = [&capture1, &capture2, &capture3](
+ const T1& p1,
+ const T2& p2,
+ const T3& p3,
+ const T4& p4) {
+ ...;
+};
+
+// 7: OK (capture and parameter lists longer than 80 characters).
+function([
+ &capture1,
+ &capture2,
+ &capture3,
+ &capture4](
+ const T1& p1,
+ const T2& p2,
+ const T3& p3,
+ const T4& p4) {
+ ...;
+});
+
+auto lambda = [
+ &capture1,
+ &capture2,
+ &capture3,
+ &capture4](
+ const T1& p1,
+ const T2& p2,
+ const T3& p3,
+ const T4& 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 “container” 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 (&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& 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’s Error() class.</p>
+
+ </div>
+</div>
+
+
+ <hr>
+
+ <!-- footer -->
+ <div class="footer">
+ <p>© 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’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
+–default_container_info slave flag.</p>
+
+<p>ContainerInfo specifies Volumes which map parts of the shared
+filesystem (host_path) into the container’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’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 “/tmp” directory can be achieved with
host_path=“tmp” and
+container_path=“/tmp” which will create a directory
“tmp” inside the
+executor’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’s
+/tmp or any other container’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 ‘ps’ 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>© 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 “must”, “should”,
“can”,
+and other requirement-related notions.</p>
+
+ </div>
+</div>
+
+
+ <hr>
+
+ <!-- footer -->
+ <div class="footer">
+ <p>© 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 <name> 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& 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<int> 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<Subprocess> subprocess(
+ const std::string& path,
+ std::vector<std::string> argv,
+ const Subprocess::IO& in = Subprocess::FD(STDIN_FILENO),
+ const Subprocess::IO& out = Subprocess::FD(STDOUT_FILENO),
+ const Subprocess::IO& err = Subprocess::FD(STDERR_FILENO),
+ const Option<flags::FlagsBase>& flags = None(),
+ const Option<std::map<std::string, std::string>>&
environment = None(),
+ const Option<lambda::function<int()>>& setup = None(),
+ const Option<lambda::function<
+ pid_t(const lambda::function<int()>&)>>& 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 “README.md”.</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: “# Libprocess Developer Guide”</p>
+
+<h3>Example Code</h3>
+
+<p>C++ code examples should be enclosed by ‘~~~{.cpp}’.</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’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>© 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 “always on”.</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 “Megaupload” 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>© 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’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>