You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ka...@apache.org on 2016/02/01 03:49:28 UTC

svn commit: r1727886 [10/16] - in /mesos/site: ./ publish/ publish/assets/img/documentation/ publish/community/ publish/documentation/ publish/documentation/allocation-module/ publish/documentation/app-framework-development-guide/ publish/documentation...

Modified: mesos/site/publish/documentation/roles/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/roles/index.html?rev=1727886&r1=1727885&r2=1727886&view=diff
==============================================================================
--- mesos/site/publish/documentation/roles/index.html (original)
+++ mesos/site/publish/documentation/roles/index.html Mon Feb  1 02:49:25 2016
@@ -92,7 +92,7 @@ resources are offered to frameworks. Som
 <li>arranging for all the resources on a particular agent to only be offered to a
 particular framework.</li>
 <li>dividing a cluster between two organizations: resources assigned for use by
-organization <em>A</em> will only be offered to that frameworks that have registered
+organization <em>A</em> will only be offered to frameworks that have registered
 using organization <em>A</em>&rsquo;s role.</li>
 <li>ensuring that <a href="/documentation/latest/persistent-volume/">persistent volumes</a> created by one
 framework are not offered to frameworks registered with a different role.</li>
@@ -101,14 +101,28 @@ framework are not offered to frameworks
 </ul>
 
 
-<h2>Defining roles</h2>
+<h2>Roles and access control</h2>
 
-<p>The set of legal roles is configured statically, when the Mesos master is
-started. The <code>--roles</code> command-line argument specifies a comma-separated list of
-role names. To change the set of roles, the Mesos master must be restarted.</p>
-
-<p>Note that you should take care to ensure that all Mesos masters are configured
-to use the same set of roles.</p>
+<p>There are two ways to control which roles a framework is allowed to register
+as. First, ACLs can be used to specify which framework principals can register
+as which roles. For more information, see the <a href="/documentation/latest/authorization/">authorization</a>
+documentation.</p>
+
+<p>Second, a <em>role whitelist</em> can be configured by passing the <code>--roles</code> flag to
+the Mesos master at startup. This flag specifies a comma-separated list of role
+names. If the whitelist is specified, only roles that appear in the whitelist
+can be used. To change the whitelist, the Mesos master must be restarted. Note
+that in a high-availability deployment of Mesos, you should take care to ensure
+that all Mesos masters are configured with the same whitelist.</p>
+
+<p>In Mesos 0.26 and earlier, you should typically configure <em>both</em> ACLs and the
+whitelist, because in these versions of Mesos, any role that does not appear in
+the whitelist cannot be used.</p>
+
+<p>In Mesos 0.27, this behavior has changed: if <code>--roles</code> is not specified, the
+whitelist permits <em>any role name</em> to be used. Hence, in Mesos 0.27, the
+recommended practice is to only use ACLs to define which roles can be used; the
+<code>--roles</code> command-line flag is deprecated.</p>
 
 <h2>Associating frameworks with roles</h2>
 
@@ -123,9 +137,26 @@ start the framework. How to do this depe
 framework you&rsquo;re using; for example, Marathon takes a <code>--mesos_role</code>
 command-line flag.</p>
 
-<p>As an administrator, you can use ACLs to specify which framework principals can
-register as which roles. For more information, see the
-<a href="/documentation/latest/authorization/">authorization</a> documentation.</p>
+<p><a id="roles-multiple-frameworks"></a></p>
+
+<h3>Multiple frameworks in the same role</h3>
+
+<p>Multiple frameworks can use the same role. This can be useful: for example, one
+framework can create a persistent volume and write data to it. Once the task
+that writes data to the persistent volume has finished, the volume will be
+offered to other frameworks in the same role; this might give a second
+(&ldquo;consumer&rdquo;) framework the opportunity to launch a task that reads the data
+produced by the first (&ldquo;producer&rdquo;) framework.</p>
+
+<p>However, configuring multiple frameworks to use the same role should be done
+with caution, because all the frameworks will have access to any resources that
+have been reserved for that role. For example, if a framework stores sensitive
+information on a persistent volume, that volume might be offered to a different
+framework in the same role. Similarly, if one framework creates a persistent
+volume, another framework in the same role might &ldquo;steal&rdquo; the volume and use it
+to launch a task of its own. In general, multiple frameworks sharing the same
+role should be prepared to collaborate with one another to ensure that
+role-specific resources are used appropriately.</p>
 
 <h2>Associating resources with roles</h2>
 
@@ -150,6 +181,18 @@ unreserving the resource, e.g., using th
 endpoint). Similarly, persistent volumes cannot be created on unreserved
 resources.</p>
 
+<h2>Invalid role</h2>
+
+<p>A role name must be a valid directory name, so it cannot:</p>
+
+<ul>
+<li>Be an empty string</li>
+<li>Be <code>.</code> or <code>..</code></li>
+<li>Start with <code>-</code></li>
+<li>Contain any slash, backspace, or whitespace character</li>
+</ul>
+
+
 <h2>Roles and resource allocation</h2>
 
 <p>By default, the Mesos master uses Dominant Resource Fairness (DRF) to allocate

Modified: mesos/site/publish/documentation/sandbox/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/sandbox/index.html?rev=1727886&r1=1727885&r2=1727886&view=diff
==============================================================================
--- mesos/site/publish/documentation/sandbox/index.html (original)
+++ mesos/site/publish/documentation/sandbox/index.html Mon Feb  1 02:49:25 2016
@@ -257,7 +257,7 @@ After the delay, the files are deleted.<
 <p>Additionally, according to the <code>--disk_watch_interval</code> agent flag, files
 scheduled for garbage collection are pruned based on the available disk and
 the <code>--gc_disk_headroom</code> agent flag.
-See <a href="/documentation/latest/configuration/#gc_disk_headroom">the formula here</a>.</p>
+See <a href="configuration.md#gc_disk_headroom">the formula here</a>.</p>
 
 	</div>
 </div>

Modified: mesos/site/publish/documentation/scheduler-http-api/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/scheduler-http-api/index.html?rev=1727886&r1=1727885&r2=1727886&view=diff
==============================================================================
--- mesos/site/publish/documentation/scheduler-http-api/index.html (original)
+++ mesos/site/publish/documentation/scheduler-http-api/index.html Mon Feb  1 02:49:25 2016
@@ -100,6 +100,8 @@
 
 <p>The following calls are currently accepted by the master. The canonical source of this information is <a href="https://github.com/apache/mesos/blob/master/include/mesos/v1/scheduler/scheduler.proto">scheduler.proto</a> (NOTE: The protobuf definitions are subject to change before the beta API is finalized). Note that when sending JSON encoded Calls, schedulers should encode raw bytes in Base64 and strings in UTF-8.</p>
 
+<p><a id="recordio-response-format"></a></p>
+
 <h3>RecordIO response format</h3>
 
 <p>The response returned from the <code>SUBSCRIBE</code> call (see <a href="#subscribe">below</a> is encoded in RecordIO format, which essentially prepends to a single record (either JSON or serialized Protobuf) its length in bytes, followed by a newline and then the data:</p>
@@ -139,7 +141,9 @@
 
 <p>Network intermediaries e.g. proxies are free to change the chunk boundaries and this should not have any effect on the recipient application (scheduler layer). We wanted a way to delimit/encode two events for JSON/Protobuf responses consistently and RecordIO format allowed us to do that.</p>
 
-<h3><a id="subscribe"></a>SUBSCRIBE</h3>
+<p><a id="subscribe"></a></p>
+
+<h3>SUBSCRIBE</h3>
 
 <p>This is the first step in the communication process between the scheduler and the master. This is also to be considered as subscription to the &ldquo;/scheduler&rdquo; events stream.</p>
 
@@ -440,7 +444,7 @@ HTTP/1.1 202 Accepted
 
 <h3>OFFERS</h3>
 
-<p>Sent by the master whenever there are new resources that can be offered to the framework. Each offer corresponds to a set of resources on a agent. Until the scheduler &lsquo;Accept&rsquo;s or 'Decline&rsquo;s an offer the resources are considered allocated to the scheduler, unless the offer is otherwise rescinded, e.g. due to a lost agent or <code>--offer_timeout</code>.</p>
+<p>Sent by the master whenever there are new resources that can be offered to the framework. Each offer corresponds to a set of resources on an agent. Until the scheduler &lsquo;Accept&rsquo;s or 'Decline&rsquo;s an offer the resources are considered allocated to the scheduler, unless the offer is otherwise rescinded, e.g. due to a lost agent or <code>--offer_timeout</code>.</p>
 
 <pre><code>OFFERS Event (JSON)
 &lt;event-length&gt;
@@ -515,7 +519,7 @@ HTTP/1.1 202 Accepted
 
 <h3>FAILURE</h3>
 
-<p>Sent by the master when a agent is removed from the cluster (e.g., failed health checks) or when an executor is terminated. Note that, this event coincides with receipt of terminal <code>UPDATE</code> events for any active tasks belonging to the agent or executor and receipt of <code>RESCIND</code> events for any outstanding offers belonging to the agent. Note that there is no guaranteed order between the <code>FAILURE</code>, <code>UPDATE</code> and <code>RESCIND</code> events.</p>
+<p>Sent by the master when an agent is removed from the cluster (e.g., failed health checks) or when an executor is terminated. Note that, this event coincides with receipt of terminal <code>UPDATE</code> events for any active tasks belonging to the agent or executor and receipt of <code>RESCIND</code> events for any outstanding offers belonging to the agent. Note that there is no guaranteed order between the <code>FAILURE</code>, <code>UPDATE</code> and <code>RESCIND</code> events.</p>
 
 <pre><code>FAILURE Event (JSON)
 
@@ -576,7 +580,7 @@ HTTP/1.1 202 Accepted
 
 <h2>Master detection</h2>
 
-<p>Mesos has a high-availability mode that uses multiple Mesos masters; one active master (called the leader or leading master) and several standbys in case it fails. The masters elect the leader, with ZooKeeper coordinating the election. For more details please refer to the <a href="/documentation/latest//documentation/latest/high-availability/">documentation</a>.</p>
+<p>Mesos has a high-availability mode that uses multiple Mesos masters; one active master (/documentation/latest/called the leader or leading master) and several standbys in case it fails. The masters elect the leader, with ZooKeeper coordinating the election. For more details please refer to the <a href="high-availability/">documentation</a>.</p>
 
 <p>Schedulers are expected to make HTTP requests to the leading master. If requests are made to a non-leading master a &ldquo;HTTP 307 Temporary Redirect&rdquo; will be received with the &ldquo;Location&rdquo; header pointing to the leading master.</p>
 

Modified: mesos/site/publish/documentation/slave-recovery/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/slave-recovery/index.html?rev=1727886&r1=1727885&r2=1727886&view=diff
==============================================================================
--- mesos/site/publish/documentation/slave-recovery/index.html (original)
+++ mesos/site/publish/documentation/slave-recovery/index.html Mon Feb  1 02:49:25 2016
@@ -95,7 +95,7 @@
 
 <h2>How does it work?</h2>
 
-<p>Slave recovery works by having the slave checkpoint enough information (e.g., Task Info, Executor Info, Status Updates) about the running tasks and executors to local disk. Once the slave <strong><em>and</em></strong> the framework(s) enable checkpointing, any subsequent slave restarts would recover the checkpointed information and reconnect with the executors. Note that if the host running the slave process is rebooted all the executors/tasks are killed.</p>
+<p>Slave recovery works by having the slave checkpoint enough information (e.g., Task Info, Executor Info, Status Updates) about the running tasks and executors to local disk. Once a framework enables checkpointing, any subsequent slave restarts would recover the checkpointed information and reconnect with the executors. Note that if the host running the slave process is rebooted all the executors/tasks are killed.</p>
 
 <blockquote><p>NOTE: To enable recovery the framework should explicitly request checkpointing.
 Alternatively, a framework that doesn&rsquo;t want the disk i/o overhead of checkpointing can opt out of checkpointing.</p></blockquote>
@@ -161,9 +161,6 @@ Therefore, it is highly recommended to a
 
 <p>As part of this feature, <code>FrameworkInfo</code> has been updated to include an optional <code>checkpoint</code> field. A framework that would like to opt in to checkpointing should set <code>FrameworkInfo.checkpoint=True</code> before registering with the master.</p>
 
-<blockquote><p>NOTE: Frameworks that have enabled checkpointing will only get offers from checkpointing slaves. So, before setting <code>checkpoint=True</code> on FrameworkInfo, ensure that there are slaves in your cluster that have enabled checkpointing.
-Because, if there are no checkpointing slaves, the framework would not get any offers and hence cannot launch any tasks/executors!</p></blockquote>
-
 <h2>Known issues with <code>systemd</code> and POSIX isolation</h2>
 
 <p>There is a known issue when using <code>systemd</code> to launch the <code>mesos-slave</code> while also using only <code>posix</code> isolation mechanisms that prevents tasks from recovering. The problem is that the default <a href="http://www.freedesktop.org/software/systemd/man/systemd.kill.html">KillMode</a> for systemd processes is <code>cgroup</code> and hence all child processes are killed when the slave stops. Explicitly setting <code>KillMode</code> to <code>process</code> allows the executors to survive and reconnect.</p>

Modified: mesos/site/publish/documentation/submitting-a-patch/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/submitting-a-patch/index.html?rev=1727886&r1=1727885&r2=1727886&view=diff
==============================================================================
--- mesos/site/publish/documentation/submitting-a-patch/index.html (original)
+++ mesos/site/publish/documentation/submitting-a-patch/index.html Mon Feb  1 02:49:25 2016
@@ -115,7 +115,7 @@
 
 <ol>
 <li>To find a shepherd, email the dev mailing list (include a link to your JIRA issue). You can also try asking by adding a comment to your JIRA issue.</li>
-<li>You can also find a shepherd by asking the developers on IRC (in the <a href="irc://irc.freenode.net/mesos">mesos channel</a> on <a href="https://freenode.net">Freenode</a>). You can find the current list of committers <a href="/documentation/latest/committers/">here</a>: a developer that has previously worked on the component you are modifying might be a good candidate shepherd.</li>
+<li>You can also find a shepherd by asking the developers on IRC (/documentation/latest/in the <a href="irc://irc.freenode.net/mesos">mesos channel</a> on <a href="https://freenode.net">Freenode</a>). You can find the current list of committers <a href="committers/">here</a>: a developer that has previously worked on the component you are modifying might be a good candidate shepherd.</li>
 </ol>
 </li>
 </ol>
@@ -154,11 +154,12 @@
 <li>To execute a single unit test (helpful when trying to debug a test case failure), use something like: <code>make check GTEST_FILTER="HTTPTest.Delete"</code>.</li>
 </ol>
 </li>
-<li><p>Divide your change into one or more Git commits. Each commit should represent a single logical (atomic) change to the Mesos source code: this makes your changes easier to review. For more information, see the <a href="/documentation/latest/effective-code-reviewing/">reviewer guidelines</a>.</p>
+<li><p>Divide your change into one or more Git commits. Each commit should represent a single logical (/documentation/latest/atomic) change to the Mesos source code: this makes your changes easier to review. For more information, see the <a href="effective-code-reviewing/">reviewer guidelines</a>.</p>
 
 <ol>
 <li>Try to avoid including other, unrelated cleanups (e.g., typo fixes or style nits) in the same commit that makes functional changes. While typo fixes are great, including them in the same commit as functional changes makes the commit history harder to read.</li>
 <li>Developers often make incremental commits to save their progress when working on a change, and then &ldquo;rewrite history&rdquo; (e.g., using <code>git rebase -i</code>) to create a clean set of commits once the change is ready to be reviewed.</li>
+<li>Commit messages should be in past tense. The first sentence should summarize the change; it should start with a capital letter, not exceed 72 characters and end in a period.</li>
 </ol>
 </li>
 <li><p>Make sure to pull in any changes that have been committed to master branch. Using Git, do this via something like:</p>

Modified: mesos/site/publish/documentation/tools/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/tools/index.html?rev=1727886&r1=1727885&r2=1727886&view=diff
==============================================================================
--- mesos/site/publish/documentation/tools/index.html (original)
+++ mesos/site/publish/documentation/tools/index.html Mon Feb  1 02:49:25 2016
@@ -103,7 +103,7 @@
 <p>If you want to hack on Mesos or write a new framework, these tools will help.</p>
 
 <ul>
-<li><a href="/documentation/latest/clang-format/">clang-format</a> to automatically apply some of the style rules dictated by the <a href="/documentation/latest/c++-style-guide/">Mesos C++ Style Guide</a>.</li>
+<li><a href="/documentation/latest/clang-format.md">clang-format</a> to automatically apply some of the style rules dictated by the <a href="c++-style-guide/">Mesos C++ Style Guide</a>.</li>
 <li><a href="https://github.com/mesosphere/mesos-go">Go Bindings and Examples</a> Write a Mesos framework in Go! Comes with an example scheduler and executor.</li>
 <li><a href="https://github.com/mesosphere/scala-sbt-mesos-framework.g8">Mesos Framework giter8 Template</a> This is a giter8 template. The result of applying this template is a bare-bones Apache Mesos framework in Scala using SBT for builds and Vagrant for testing on a singleton cluster.</li>
 <li><a href="https://gist.github.com/guenter/7471695">Scala Hello World</a> A simple Mesos &ldquo;Hello World&rdquo;: downloads and starts a web server on every node in the cluster.</li>

Modified: mesos/site/publish/documentation/upgrades/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/upgrades/index.html?rev=1727886&r1=1727885&r2=1727886&view=diff
==============================================================================
--- mesos/site/publish/documentation/upgrades/index.html (original)
+++ mesos/site/publish/documentation/upgrades/index.html Mon Feb  1 02:49:25 2016
@@ -83,7 +83,19 @@
 	<div class="col-md-8">
 		<h1>Upgrading Mesos</h1>
 
-<p>This document serves as a guide for users who wish to upgrade an existing mesos cluster. Some versions require particular upgrade techniques when upgrading a running cluster. Some upgrades will have incompatible changes.</p>
+<p>This document serves as a guide for users who wish to upgrade an existing Mesos cluster. Some versions require particular upgrade techniques when upgrading a running cluster. Some upgrades will have incompatible changes.</p>
+
+<h2>Upgrading from 0.26.x to 0.27.x</h2>
+
+<ul>
+<li><p>Mesos 0.27 introduces the concept of <em>implicit roles</em>. In previous releases, configuring roles required specifying a static whitelist of valid role names on master startup (/documentation/latest/via the <code>--roles</code> flag). In Mesos 0.27, if <code>--roles</code> is omitted, <em>any</em> role name can be used; controlling which principals are allowed to register as which roles should be done using <a href="authorization/">ACLs</a>. The role whitelist functionality is still supported but is deprecated.</p></li>
+<li><p>The Allocator API has changed due to the introduction of implicit roles. Custom allocator implementations will need to be updated. See <a href="https://issues.apache.org/jira/browse/MESOS-4000">MESOS-4000</a> for more information.</p></li>
+<li><p>The <code>executorLost</code> callback in the Scheduler interface will now be called whenever the slave detects termination of a custom executor. This callback was never called in previous versions, so please make sure any framework schedulers can now safely handle this callback. Note that this callback may not be reliably delivered.</p></li>
+<li><p>The isolator <code>prepare</code> interface has been changed slightly. Instead of keeping adding parameters to the <code>prepare</code> interface, we decide to use a protobuf (<code>ContainerConfig</code>). Also, we renamed <code>ContainerPrepareInfo</code> to <code>ContainerLaunchInfo</code> to better capture the purpose of this struct. See <a href="https://issues.apache.org/jira/browse/MESOS-4240">MESOS-4240</a> and <a href="https://issues.apache.org/jira/browse/MESOS-4282">MESOS-4282</a> for more information. If you are an isolator module writer, you will have to adjust your isolator module according to the new interface and re-compile with 0.27.</p></li>
+<li><p>ACLs.shutdown_frameworks has been deprecated in favor of the new ACLs.teardown_frameworks. This affects the <code>--acls</code> master flag for the local authorizer.</p></li>
+<li><p>Reserved resources are now accounted for in the DRF role sorter. Previously unaccounted reservations will influence the weighted DRF sorter. If role weights were explicitly set, they may need to be adjusted in order to account for the reserved resources in the cluster.</p></li>
+</ul>
+
 
 <h2>Upgrading from 0.25.x to 0.26.x</h2>
 
@@ -210,7 +222,7 @@ Please refer to the metrics/snapshot end
 }
 </code></pre>
 
-<p><strong>NOTE</strong> All Mesos arguments can now be passed using file:// to read them out of a file (either an absolute or relative path). The &ndash;credentials, &ndash;whitelist, and any flags that expect JSON backed arguments (such as &ndash;modules) behave as before, although support for just passing a absolute path for any JSON flags rather than file:// has been deprecated and will produce a warning (and the absolute path behavior will be removed in a future release).</p>
+<p><strong>NOTE</strong> All Mesos arguments can now be passed using file:// to read them out of a file (either an absolute or relative path). The &ndash;credentials, &ndash;whitelist, and any flags that expect JSON backed arguments (such as &ndash;modules) behave as before, although support for just passing an absolute path for any JSON flags rather than file:// has been deprecated and will produce a warning (and the absolute path behavior will be removed in a future release).</p>
 
 <p>In order to upgrade a running cluster:</p>
 

Added: mesos/site/publish/documentation/versioning/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/versioning/index.html?rev=1727886&view=auto
==============================================================================
--- mesos/site/publish/documentation/versioning/index.html (added)
+++ mesos/site/publish/documentation/versioning/index.html Mon Feb  1 02:49:25 2016
@@ -0,0 +1,222 @@
+<!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 Versioning</h1>
+
+<p>The Mesos API and release versioning policy gives operators and developers clear guidelines on:</p>
+
+<ul>
+<li>Making modifications to the existing APIs without affecting backward compatibility.</li>
+<li>How long a Mesos API will be supported.</li>
+<li>Upgrading the Mesos installation across release versions.</li>
+</ul>
+
+
+<p>API versioning was introduced in Mesos 0.24.0 and this scheme only applies to Mesos 1.0.0 and higher.</p>
+
+<h2>Terminology</h2>
+
+<ul>
+<li><strong>Release Versioning</strong>: This refers to the version of Mesos that is being released. It is of the form <strong>Mesos X.Y.Z</strong> (X is the major version, Y is the minor version, and Z is the patch version).</li>
+<li><strong>API Versioning</strong>: This refers to the version of the Mesos API. It is of the form <strong>vX</strong> (X is the major version).</li>
+</ul>
+
+
+<h2>How does it work?</h2>
+
+<p>The Mesos APIs (constituting Scheduler, Executor, Internal, Operator/Admin APIs) will have a version in the URL. The versioned URL will have a prefix of <strong><code>/api/vN</code></strong> where &ldquo;N&rdquo; is the version of the API. The &ldquo;/api&rdquo; prefix is chosen to distinguish API resources from Web UI paths.</p>
+
+<p>Examples:</p>
+
+<ul>
+<li>http://localhost:5050/api/v1/scheduler :  Scheduler HTTP API hosted by the master.</li>
+<li>http://localhost:5051/api/v1/executor  :  Executor HTTP API hosted by the agent.</li>
+</ul>
+
+
+<p>A given Mesos installation might host multiple versions of the same API i.e., Scheduler API v1 and/or v2 etc.</p>
+
+<h3>API version vs Release version</h3>
+
+<ul>
+<li>To keep things simple, the stable version of the API will correspond to the major release version of Mesos.
+
+<ul>
+<li>For example, v1 of the API will be supported by Mesos release versions 1.0.0, 1.4.0, 1.20.0 etc.</li>
+</ul>
+</li>
+<li>vN version of the API might also be supported by release versions of N-1 series but the vN API is not considered stable until the last release version of N-1 series.</li>
+<li>For example, v2 of the API might be introduced in Mesos 1.12.0 release but it is only considered stable in Mesos 1.21.0 release if it is the last release of “1” series. Note that all Mesos 1.x.y versions will still support v1 of the API.</li>
+<li>The API version is only bumped if we need to make a backwards <a href="#api-compatibility">incompatible</a> API change. We will strive to support a given API version for at least a year.</li>
+<li>The deprecation clock for vN-1 API will start as soon as we release “N.0.0” version of Mesos. We will strive to give enough time (e.g., 6 months) for frameworks/operators to upgrade to vN API before we stop supporting vN-1 API.</li>
+<li>Minor release version is bumped roughly on a monthly cycle to give a cadence of new features to users.</li>
+</ul>
+
+
+<p>NOTE: Presently, for &ldquo;0.X.Y&rdquo; releases i.e. till we reach &ldquo;1.0.0&rdquo;, we wait for at least 6 monthly releases before deprecating functionality. So, functionality that has been deprecated in 0.26.0 can be safely removed in 0.32.0.</p>
+
+<h3>API Compatibility</h3>
+
+<p>The API compatibility is determined by the corresponding protobuf guarantees.</p>
+
+<p>As an example, the following are considered &ldquo;backwards compatible&rdquo; changes for Scheduler API:</p>
+
+<ul>
+<li>Adding new types of Calls i.e., new types of HTTP requests to &ldquo;/scheduler&rdquo;.</li>
+<li>Adding new optional fields to existing requests to &ldquo;/scheduler&rdquo;.</li>
+<li>Adding new types of Events i.e., new types of chunks streamed on &ldquo;/scheduler&rdquo;.</li>
+<li>Adding new header fields to chunked response streamed on &ldquo;/scheduler&rdquo;.</li>
+<li>Adding new fields (or changing the order of fields) to chunks’ body streamed on &ldquo;/scheduler&rdquo;.</li>
+<li>Adding new API resources (e.g., &ldquo;/foobar&rdquo;).</li>
+</ul>
+
+
+<p>The following are considered backwards incompatible changes for Scheduler API:</p>
+
+<ul>
+<li>Adding new required fields to existing requests to &ldquo;/scheduler&rdquo;.</li>
+<li>Renaming/removing fields from existing requests to &ldquo;/scheduler&rdquo;.</li>
+<li>Renaming/removing fields from chunks streamed on &ldquo;/scheduler&rdquo;.</li>
+<li>Renaming/removing existing Calls.</li>
+</ul>
+
+
+<h2>Upgrades</h2>
+
+<ul>
+<li>The master and agent are typically compatible as long as they are running the same major version.</li>
+<li>For example, 1.3.0 master is compatible with 1.13.0 agent.</li>
+<li>In rare cases, we might require the master and agent to go through a specific minor version for upgrades.</li>
+<li>For example, we might require that a 1.1.0 master (and/or agent) be upgraded to 1.8.0 before it can be upgraded to 1.9.0 or later versions.</li>
+</ul>
+
+
+<p>The detailed information about upgrading to a particular Mesos version would be posted <a href="/documentation/latest/upgrades/">here</a>.</p>
+
+<h3>Implementation Details</h3>
+
+<p>Most APIs in Mesos accept protobuf messages with a corresponding JSON field mapping. To support multiple versions of the API, we decoupled the versioned protobufs backing the API from the “internal” protobufs used by the Mesos code.</p>
+
+<p>For example, the protobufs for the v1 Scheduler API are located at:</p>
+
+<pre><code>include/mesos/v1/scheduler/scheduler.proto
+
+package mesos.v1.scheduler;
+option java_package = "org.apache.mesos.v1.scheduler";
+option java_outer_classname = "Protos";
+…
+</code></pre>
+
+<p>The corresponding internal protobufs for the Scheduler API are located at:</p>
+
+<pre><code>include/mesos/scheduler/scheduler.proto
+
+package mesos.scheduler;
+option java_package = "org.apache.mesos.scheduler";
+option java_outer_classname = "Protos";
+…
+</code></pre>
+
+<p>The users of the API send requests (and receive responses) based on the versioned protobufs. We implemented <a href="https://github.com/apache/mesos/blob/master/src/internal/evolve.hpp">evolve</a>/<a href="https://github.com/apache/mesos/blob/master/src/internal/devolve.hpp">devolve</a> converters that can convert protobufs from any supported version to the internal protobuf and vice versa.</p>
+
+<p>Internally, message passing between various Mesos components would use the internal unversioned protobufs. When sending response (if any) back to the user of the API, the unversioned protobuf would be converted back to a versioned protobuf.</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/downloads/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/downloads/index.html?rev=1727886&r1=1727885&r2=1727886&view=diff
==============================================================================
--- mesos/site/publish/downloads/index.html (original)
+++ mesos/site/publish/downloads/index.html Mon Feb  1 02:49:25 2016
@@ -73,6 +73,8 @@
     <h4>Previous Releases</h4>
 
     <ul>
+      <li><a href="http://archive.apache.org/dist/mesos/0.26.0/">0.26.0</a>
+           (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12333528">Release Notes</a>)</li>
       <li><a href="http://archive.apache.org/dist/mesos/0.25.0/">0.25.0</a>
            (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12329852">Release Notes</a>)</li>
       <li><a href="http://archive.apache.org/dist/mesos/0.24.1/">0.24.1</a>
@@ -137,8 +139,8 @@
   <div class="col-md-8">
     <h1>Download Mesos</h1>
       <p>Download the most recent stable release:
-          <a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/mesos/0.26.0/">0.26.0</a>
-        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12333528">Release Notes</a>)
+          <a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/mesos/0.27.0/">0.27.0</a>
+        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12334043">Release Notes</a>)
       </p>
 
       <h4>Getting the code via source control</h4>

Modified: mesos/site/publish/gettingstarted/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/gettingstarted/index.html?rev=1727886&r1=1727885&r2=1727886&view=diff
==============================================================================
--- mesos/site/publish/gettingstarted/index.html (original)
+++ mesos/site/publish/gettingstarted/index.html Mon Feb  1 02:49:25 2016
@@ -87,22 +87,22 @@
 
 <p>There are different ways you can get Mesos:</p>
 
-<ol>
-<li><p>Download the latest stable release from <a href="http://mesos.apache.org/downloads/">Apache</a> (<strong><em>Recommended</em></strong>)</p>
+<p>1. Download the latest stable release from <a href="http://mesos.apache.org/downloads/">Apache</a> (<strong><em>Recommended</em></strong>)</p>
 
-<pre><code> $ wget http://www.apache.org/dist/mesos/0.26.0/mesos-0.26.0.tar.gz
- $ tar -zxf mesos-0.26.0.tar.gz
-</code></pre></li>
-<li><p>Clone the Mesos git <a href="https://git-wip-us.apache.org/repos/asf/mesos.git">repository</a> (<strong><em>Advanced Users Only</em></strong>)</p>
-
-<pre><code> $ git clone https://git-wip-us.apache.org/repos/asf/mesos.git
-</code></pre></li>
-</ol>
+<pre><code>$ wget http://www.apache.org/dist/mesos/0.27.0/mesos-0.27.0.tar.gz
+$ tar -zxf mesos-0.27.0.tar.gz
+</code></pre>
+
+<p>2. Clone the Mesos git <a href="https://git-wip-us.apache.org/repos/asf/mesos.git">repository</a> (<strong><em>Advanced Users Only</em></strong>)</p>
+
+<pre><code>$ git clone https://git-wip-us.apache.org/repos/asf/mesos.git
+</code></pre>
 
+<p><em>NOTE: If you have problems running the above commands, you may need to first run through the </em><strong>System Requirements</strong><em> section below to install the <code>wget</code>, <code>tar</code>, and <code>git</code> utilities for your system.</em></p>
 
 <h2>System Requirements</h2>
 
-<p>Mesos runs on Linux (64 Bit) and Mac OS X (64 Bit).</p>
+<p>Mesos runs on Linux (64 Bit) and Mac OS X (64 Bit). To build Mesos from source, GCC 4.8.1+ or Clang 3.5+ is required.</p>
 
 <p>For full support of process isolation under Linux a recent kernel >=3.10 is required.</p>
 
@@ -112,165 +112,200 @@
 
 <p>Following are the instructions for stock Ubuntu 14.04. If you are using a different OS, please install the packages accordingly.</p>
 
-<pre><code>    # Update the packages.
-    $ sudo apt-get update
+<pre><code># Update the packages.
+$ sudo apt-get update
 
-    # Install the latest OpenJDK.
-    $ sudo apt-get install -y openjdk-7-jdk
+# Install a few utility tools.
+$ sudo apt-get install -y tar wget git
 
-    # Install autotools (Only necessary if building from git repository).
-    $ sudo apt-get install -y autoconf libtool
+# Install the latest OpenJDK.
+$ sudo apt-get install -y openjdk-7-jdk
 
-    # Install other Mesos dependencies.
-    $ sudo apt-get -y install build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev
+# Install autotools (Only necessary if building from git repository).
+$ sudo apt-get install -y autoconf libtool
+
+# Install other Mesos dependencies.
+$ sudo apt-get -y install build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev
 </code></pre>
 
-<h3>Mac OS X Yosemite</h3>
+<h3>Mac OS X Yosemite &amp; El Capitan</h3>
+
+<p>Following are the instructions for stock Mac OS X Yosemite and El Capitan. If you are using a different OS, please install the packages accordingly.</p>
 
-<p>Following are the instructions for stock Mac OS X Yosemite. If you are using a different OS, please install the packages accordingly.</p>
+<pre><code># Install Command Line Tools.
+$ xcode-select --install
 
-<pre><code>    # Install Command Line Tools.
-    $ xcode-select --install
+# Install Homebrew.
+$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
 
-    # Install Homebrew.
-    $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+# Install Java.
+$ brew install Caskroom/cask/java
 
-    # Install libraries.
-    $ brew install autoconf automake libtool subversion maven
+# Install libraries.
+$ brew install wget git autoconf automake libtool subversion maven
 </code></pre>
 
+<p><em>NOTE: When upgrading from Yosemite to El Capitan, make sure to rerun <code>xcode-select --install</code> after the upgrade.</em></p>
+
 <h3>CentOS 6.6</h3>
 
 <p>Following are the instructions for stock CentOS 6.6. If you are using a different OS, please install the packages accordingly.</p>
 
-<pre><code>    # Install a recent kernel for full support of process isolation.
-    $ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
-    $ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
-    $ sudo yum --enablerepo=elrepo-kernel install -y kernel-lt
-
-    # Make the just installed kernel the one booted by default, and reboot.
-    $ sudo sed -i 's/default=1/default=0/g' /boot/grub/grub.conf
-    $ sudo reboot
-
-    # Install a few utility tools. This also forces an update of `nss`,
-    # which is necessary for the Java bindings to build properly.
-    $ sudo yum install -y tar wget which nss
-
-    # 'Mesos &gt; 0.21.0' requires a C++ compiler with full C++11 support,
-    # (e.g. GCC &gt; 4.8) which is available via 'devtoolset-2'.
-    # Fetch the Scientific Linux CERN devtoolset repo file.
-    $ sudo wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
-
-    # Import the CERN GPG key.
-    $ sudo rpm --import http://linuxsoft.cern.ch/cern/centos/7/os/x86_64/RPM-GPG-KEY-cern
-
-    # Fetch the Apache Maven repo file.
-    $ sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
-
-    # 'Mesos &gt; 0.21.0' requires 'subversion &gt; 1.8' devel package, which is
-    # not available in the default repositories.
-    # Add the WANdisco SVN repo file: '/etc/yum.repos.d/wandisco-svn.repo' with content:
-
-      [WANdiscoSVN]
-      name=WANdisco SVN Repo 1.8
-      enabled=1
-      baseurl=http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/$basearch/
-      gpgcheck=1
-      gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
-
-    # Install essential development tools.
-    $ sudo yum groupinstall -y "Development Tools"
-
-    # Install 'devtoolset-2-toolchain' which includes GCC 4.8.2 and related packages.
-    $ sudo yum install -y devtoolset-2-toolchain
-
-    # Install other Mesos dependencies.
-    $ sudo yum install -y apache-maven python-devel java-1.7.0-openjdk-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel
-
-    # Enter a shell with 'devtoolset-2' enabled.
-    $ scl enable devtoolset-2 bash
-    $ g++ --version  # Make sure you've got GCC &gt; 4.8!
+<pre><code># Install a recent kernel for full support of process isolation.
+$ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
+$ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
+$ sudo yum --enablerepo=elrepo-kernel install -y kernel-lt
+
+# Make the just installed kernel the one booted by default, and reboot.
+$ sudo sed -i 's/default=1/default=0/g' /boot/grub/grub.conf
+$ sudo reboot
+
+# Install a few utility tools. This also forces an update of `nss`,
+# which is necessary for the Java bindings to build properly.
+$ sudo yum install -y tar wget git which nss
+
+# 'Mesos &gt; 0.21.0' requires a C++ compiler with full C++11 support,
+# (e.g. GCC &gt; 4.8) which is available via 'devtoolset-2'.
+# Fetch the Scientific Linux CERN devtoolset repo file.
+$ sudo wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
+
+# Import the CERN GPG key.
+$ sudo rpm --import http://linuxsoft.cern.ch/cern/centos/7/os/x86_64/RPM-GPG-KEY-cern
+
+# Fetch the Apache Maven repo file.
+$ sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
+
+# 'Mesos &gt; 0.21.0' requires 'subversion &gt; 1.8' devel package, which is
+# not available in the default repositories.
+# Create a WANdisco SVN repo file to install the correct version:
+$ sudo cat &gt; /etc/yum.repos.d/wandisco-svn.repo &lt;&lt;EOF
+[WANdiscoSVN]
+name=WANdisco SVN Repo 1.8
+enabled=1
+baseurl=http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/$basearch/
+gpgcheck=1
+gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
+EOF
+
+# Install essential development tools.
+$ sudo yum groupinstall -y "Development Tools"
+
+# Install 'devtoolset-2-toolchain' which includes GCC 4.8.2 and related packages.
+$ sudo yum install -y devtoolset-2-toolchain
+
+# Install other Mesos dependencies.
+$ sudo yum install -y apache-maven python-devel java-1.7.0-openjdk-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel
+
+# Enter a shell with 'devtoolset-2' enabled.
+$ scl enable devtoolset-2 bash
+$ g++ --version  # Make sure you've got GCC &gt; 4.8!
+
+# Process isolation is using cgroups that are managed by 'cgconfig'.
+# The 'cgconfig' service is not started by default on CentOS 6.6.
+# Also the default configuration does not attach the 'perf_event' subsystem.
+# To do this, add 'perf_event = /cgroup/perf_event;' to the entries in '/etc/cgconfig.conf'.
+$ sudo yum install -y libcgroup
+$ sudo service cgconfig start
 </code></pre>
 
 <h3>CentOS 7.1</h3>
 
 <p>Following are the instructions for stock CentOS 7.1. If you are using a different OS, please install the packages accordingly.</p>
 
-<pre><code>    # Install a few utility tools
-    $ sudo yum install -y tar wget
+<pre><code># Install a few utility tools
+$ sudo yum install -y tar wget git
 
-    # Fetch the Apache Maven repo file.
-    $ sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
+# Fetch the Apache Maven repo file.
+$ sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
 
-    # 'Mesos &gt; 0.21.0' requires 'subversion &gt; 1.8' devel package, which is
-    # not available in the default repositories.
-    # Add the WANdisco SVN repo file: '/etc/yum.repos.d/wandisco-svn.repo' with content:
-
-      [WANdiscoSVN]
-      name=WANdisco SVN Repo 1.9
-      enabled=1
-      baseurl=http://opensource.wandisco.com/centos/7/svn-1.9/RPMS/$basearch/
-      gpgcheck=1
-      gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
+# Install the EPEL repo so that we can pull in 'libserf-1' as part of our
+# subversion install below.
+$ sudo yum install -y epel-release
+
+# 'Mesos &gt; 0.21.0' requires 'subversion &gt; 1.8' devel package,
+# which is not available in the default repositories.
+# Create a WANdisco SVN repo file to install the correct version:
+$ sudo cat &gt; /etc/yum.repos.d/wandisco-svn.repo &lt;&lt;EOF
+[WANdiscoSVN]
+name=WANdisco SVN Repo 1.9
+enabled=1
+baseurl=http://opensource.wandisco.com/centos/7/svn-1.9/RPMS/$basearch/
+gpgcheck=1
+gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
+EOF
+
+# Parts of Mesos require systemd in order to operate. However, Mesos
+# only supports versions of systemd that contain the 'Delegate' flag.
+# This flag was first introduced in 'systemd version 218', which is
+# lower than the default version installed by centos. Luckily, centos
+# 7.1 has a patched 'systemd &lt; 218' that contains the 'Delegate' flag.
+# Explicity update systemd to this patched version.
+$ sudo yum update systemd
 
-    # Install essential development tools.
-    $ sudo yum groupinstall -y "Development Tools"
+# Install essential development tools.
+$ sudo yum groupinstall -y "Development Tools"
 
-    # Install other Mesos dependencies.
-    $ sudo yum install -y apache-maven python-devel java-1.7.0-openjdk-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel
+# Install other Mesos dependencies.
+$ sudo yum install -y apache-maven python-devel java-1.8.0-openjdk-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel
 </code></pre>
 
 <h2>Building Mesos</h2>
 
-<pre><code>    # Change working directory.
-    $ cd mesos
+<pre><code># Change working directory.
+$ cd mesos
 
-    # Bootstrap (Only required if building from git repository).
-    $ ./bootstrap
+# Bootstrap (Only required if building from git repository).
+$ ./bootstrap
 
-    # Configure and build.
-    $ mkdir build
-    $ cd build
-    $ ../configure
-    $ make
+# Configure and build.
+$ mkdir build
+$ cd build
+$ ../configure
+$ make
 </code></pre>
 
 <p>In order to speed up the build and reduce verbosity of the logs, you can append <code>-j &lt;number of cores&gt; V=0</code> to <code>make</code>.</p>
 
-<pre><code>    # Run test suite.
-    $ make check
+<pre><code># Run test suite.
+$ make check
 
-    # Install (Optional).
-    $ make install
+# Install (Optional).
+$ make install
 </code></pre>
 
 <h2>Examples</h2>
 
-<p>Mesos comes bundled with example frameworks written in C++, Java and Python.</p>
+<p>Mesos comes bundled with example frameworks written in C++, Java and Python.
+The framework binaries will only be available after running <code>make check</code>, as
+described in the <strong><em>Building Mesos</em></strong> section above.</p>
 
-<pre><code>    # Change into build directory.
-    $ cd build
+<pre><code># Change into build directory.
+$ cd build
 
-    # Start mesos master (Ensure work directory exists and has proper permissions).
-    $ ./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos
+# Start mesos master (Ensure work directory exists and has proper permissions).
+$ ./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos
 
-    # Start mesos slave.
-    $ ./bin/mesos-slave.sh --master=127.0.0.1:5050
+# Start mesos slave.
+$ ./bin/mesos-slave.sh --master=127.0.0.1:5050
 
-    # Visit the mesos web page.
-    $ http://127.0.0.1:5050
+# Visit the mesos web page.
+$ http://127.0.0.1:5050
 
-    # Run C++ framework (Exits after successfully running some tasks.).
-    $ ./src/test-framework --master=127.0.0.1:5050
+# Run C++ framework (Exits after successfully running some tasks.).
+$ ./src/test-framework --master=127.0.0.1:5050
 
-    # Run Java framework (Exits after successfully running some tasks.).
-    $ ./src/examples/java/test-framework 127.0.0.1:5050
+# Run Java framework (Exits after successfully running some tasks.).
+$ ./src/examples/java/test-framework 127.0.0.1:5050
 
-    # Run Python framework (Exits after successfully running some tasks.).
-    $ ./src/examples/python/test-framework 127.0.0.1:5050
+# Run Python framework (Exits after successfully running some tasks.).
+$ ./src/examples/python/test-framework 127.0.0.1:5050
 </code></pre>
 
-<p><em>NOTE: To build the example frameworks, make sure you build the test suite by doing <code>make check</code>.</em></p>
+<p><em>Note: These examples assume you are running Mesos on your local machine.
+Following them will not allow you to access the Mesos web page in a production
+environment (e.g. on AWS). For that you will need to specify the actual IP of
+your host when launching the Mesos master and ensure your firewall settings
+allow access to port 5050 from the outside world.</em></p>
 
 	</div>
 </div>

Modified: mesos/site/publish/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/index.html?rev=1727886&r1=1727885&r2=1727886&view=diff
==============================================================================
--- mesos/site/publish/index.html (original)
+++ mesos/site/publish/index.html Mon Feb  1 02:49:25 2016
@@ -71,7 +71,7 @@
     <h1>Program against your datacenter like it’s a single pool of resources</h1>
     <p class="lead">Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.</p>
 
-        <p> <a href="downloads/"><span class="glyphicon glyphicon-download"></span> Download Mesos 0.26.0</a> or learn how to <a href="gettingstarted/">get started</a></p>
+        <p> <a href="downloads/"><span class="glyphicon glyphicon-download"></span> Download Mesos 0.27.0</a> or learn how to <a href="gettingstarted/">get started</a></p>
     </div>
 </div>
 
@@ -101,6 +101,7 @@
   <div class="col-md-5">
     <h3>News</h3>
       <ul>
+      <li><em>January 31, 2016</em> - Mesos 0.27.0 is released! See the <a href="https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb=0.27.0">CHANGELOG</a> for details.</li>
       <li><em>December 16, 2015</em> - Mesos 0.26.0 is released! See the <a href="https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb=0.26.0">CHANGELOG</a> and <a href="/blog/mesos-0-26-0-released/">blog post</a> for details.</li>
       <li><em>October 10, 2015</em> - Mesos 0.25.0 is released! See the <a href="https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb=0.25.0">CHANGELOG</a> and <a href="/blog/mesos-0-25-0-released/">blog post</a> for details.</li>
             <li><em>September 30, 2015</em> - Announcing the #MesosCon Europe Hackathon! See the <a href="/blog/announcing-mesoscon-eu-2015-hackathon/">blog post</a> for details.</li>