You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by re...@apache.org on 2019/12/13 05:37:34 UTC

svn commit: r1871319 [1/5] - in /aurora/site: ./ publish/ publish/blog/ source/blog/ source/documentation/0.22.0/ source/documentation/0.22.0/additional-resources/ source/documentation/0.22.0/development/ source/documentation/0.22.0/development/design/...

Author: renan
Date: Fri Dec 13 05:37:33 2019
New Revision: 1871319

URL: http://svn.apache.org/viewvc?rev=1871319&view=rev
Log:
Release 0.22.0 attempt 2

Added:
    aurora/site/source/blog/2019-12-12-aurora-0-22-0-released.md
    aurora/site/source/documentation/0.22.0/
    aurora/site/source/documentation/0.22.0/additional-resources/
    aurora/site/source/documentation/0.22.0/additional-resources/presentations.md
    aurora/site/source/documentation/0.22.0/additional-resources/tools.md
    aurora/site/source/documentation/0.22.0/contributing.md
    aurora/site/source/documentation/0.22.0/development/
    aurora/site/source/documentation/0.22.0/development/client.md
    aurora/site/source/documentation/0.22.0/development/committers-guide.md
    aurora/site/source/documentation/0.22.0/development/db-migration.md
    aurora/site/source/documentation/0.22.0/development/design/
    aurora/site/source/documentation/0.22.0/development/design-documents.md
    aurora/site/source/documentation/0.22.0/development/design/command-hooks.md
    aurora/site/source/documentation/0.22.0/development/scheduler.md
    aurora/site/source/documentation/0.22.0/development/thermos.md
    aurora/site/source/documentation/0.22.0/development/thrift.md
    aurora/site/source/documentation/0.22.0/development/ui.md
    aurora/site/source/documentation/0.22.0/features/
    aurora/site/source/documentation/0.22.0/features/constraints.md
    aurora/site/source/documentation/0.22.0/features/containers.md
    aurora/site/source/documentation/0.22.0/features/cron-jobs.md
    aurora/site/source/documentation/0.22.0/features/custom-executors.md
    aurora/site/source/documentation/0.22.0/features/job-updates.md
    aurora/site/source/documentation/0.22.0/features/mesos-fetcher.md
    aurora/site/source/documentation/0.22.0/features/multitenancy.md
    aurora/site/source/documentation/0.22.0/features/resource-isolation.md
    aurora/site/source/documentation/0.22.0/features/service-discovery.md
    aurora/site/source/documentation/0.22.0/features/services.md
    aurora/site/source/documentation/0.22.0/features/sla-metrics.md
    aurora/site/source/documentation/0.22.0/features/sla-requirements.md
    aurora/site/source/documentation/0.22.0/features/webhooks.md
    aurora/site/source/documentation/0.22.0/getting-started/
    aurora/site/source/documentation/0.22.0/getting-started/overview.md
    aurora/site/source/documentation/0.22.0/getting-started/tutorial.md
    aurora/site/source/documentation/0.22.0/getting-started/vagrant.md
    aurora/site/source/documentation/0.22.0/images/
    aurora/site/source/documentation/0.22.0/images/CPUavailability.png   (with props)
    aurora/site/source/documentation/0.22.0/images/CompletedTasks.png   (with props)
    aurora/site/source/documentation/0.22.0/images/HelloWorldJob.png   (with props)
    aurora/site/source/documentation/0.22.0/images/RoleJobs.png   (with props)
    aurora/site/source/documentation/0.22.0/images/RunningJob.png   (with props)
    aurora/site/source/documentation/0.22.0/images/ScheduledJobs.png   (with props)
    aurora/site/source/documentation/0.22.0/images/TaskBreakdown.png   (with props)
    aurora/site/source/documentation/0.22.0/images/aurora_hierarchy.png   (with props)
    aurora/site/source/documentation/0.22.0/images/aurora_logo.png   (with props)
    aurora/site/source/documentation/0.22.0/images/components.odg   (with props)
    aurora/site/source/documentation/0.22.0/images/components.png   (with props)
    aurora/site/source/documentation/0.22.0/images/debug-client-test.png   (with props)
    aurora/site/source/documentation/0.22.0/images/debugging-client-test.png   (with props)
    aurora/site/source/documentation/0.22.0/images/killedtask.png   (with props)
    aurora/site/source/documentation/0.22.0/images/lifeofatask.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/
    aurora/site/source/documentation/0.22.0/images/presentations/02_19_2015_aurora_adopters_panel_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/02_19_2015_aurora_at_tellapart_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/02_19_2015_aurora_at_twitter_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/02_28_2015_apache_aurora_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/03_07_2015_aurora_mesos_in_practice_at_twitter_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/03_25_2014_introduction_to_aurora_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/04_30_2015_monolith_to_microservices_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/08_21_2014_past_present_future_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/09_20_2015_shipping_code_with_aurora_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/09_20_2015_twitter_production_scale_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/10_08_2015_mesos_aurora_on_a_small_scale_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/presentations/10_08_2015_sla_aware_maintenance_for_operators_thumb.png   (with props)
    aurora/site/source/documentation/0.22.0/images/runningtask.png   (with props)
    aurora/site/source/documentation/0.22.0/images/stderr.png   (with props)
    aurora/site/source/documentation/0.22.0/images/stdout.png   (with props)
    aurora/site/source/documentation/0.22.0/images/storage_hierarchy.png   (with props)
    aurora/site/source/documentation/0.22.0/index.html.md
    aurora/site/source/documentation/0.22.0/operations/
    aurora/site/source/documentation/0.22.0/operations/backup-restore.md
    aurora/site/source/documentation/0.22.0/operations/configuration.md
    aurora/site/source/documentation/0.22.0/operations/installation.md
    aurora/site/source/documentation/0.22.0/operations/monitoring.md
    aurora/site/source/documentation/0.22.0/operations/security.md
    aurora/site/source/documentation/0.22.0/operations/storage.md
    aurora/site/source/documentation/0.22.0/operations/troubleshooting.md
    aurora/site/source/documentation/0.22.0/operations/upgrades.md
    aurora/site/source/documentation/0.22.0/reference/
    aurora/site/source/documentation/0.22.0/reference/client-cluster-configuration.md
    aurora/site/source/documentation/0.22.0/reference/client-commands.md
    aurora/site/source/documentation/0.22.0/reference/client-hooks.md
    aurora/site/source/documentation/0.22.0/reference/configuration-best-practices.md
    aurora/site/source/documentation/0.22.0/reference/configuration-templating.md
    aurora/site/source/documentation/0.22.0/reference/configuration-tutorial.md
    aurora/site/source/documentation/0.22.0/reference/configuration.md
    aurora/site/source/documentation/0.22.0/reference/observer-configuration.md
    aurora/site/source/documentation/0.22.0/reference/scheduler-configuration.md
    aurora/site/source/documentation/0.22.0/reference/scheduler-endpoints.md
    aurora/site/source/documentation/0.22.0/reference/task-lifecycle.md
Modified:
    aurora/site/README.md
    aurora/site/Vagrantfile
    aurora/site/provision.sh
    aurora/site/publish/blog/feed.xml
    aurora/site/publish/sitemap.xml

Modified: aurora/site/README.md
URL: http://svn.apache.org/viewvc/aurora/site/README.md?rev=1871319&r1=1871318&r2=1871319&view=diff
==============================================================================
--- aurora/site/README.md (original)
+++ aurora/site/README.md Fri Dec 13 05:37:33 2019
@@ -22,7 +22,7 @@ The website has three sub-directories:
  * `source/`, which includes site templates and markdown files. This is the directory you will
    revise documents in 99% of the time.
  * `publish/`, where static-generated HTML files app live. Files in this directory are generated
-   when the `rake2.0 build` command is run, and these files are served via HTTP on the Aurora
+   when the `rake build` command is run, and these files are served via HTTP on the Aurora
    website.
  * `tmp/`, a directory used when cloning the remote project repository before processing
    documentation and other files.
@@ -43,20 +43,20 @@ virtual machine.
 **Note:** all rake commands must be run from `/vagrant`.
 
 ### Generating the site
-To generate the site one only needs to run `rake2.0` after performing the setup
+To generate the site one only needs to run `rake` after performing the setup
 tasks mentioned above. This will download the latest Apache Aurora documentation
 contained in the `docs` folder, integrate them into the site, and generate all
 other files within the source folder.
 
-    rake2.0
+    rake
 
 ### Other available tasks
 
-    rake2.0 build         # Build the website from source
-    rake2.0 clean         # Remove any temporary products
-    rake2.0 clobber       # Remove any generated file
-    rake2.0 dev           # Run the site in development mode
-    rake2.0 generate_docs # Fetch documentation from git for rendering.
+    rake build         # Build the website from source
+    rake clean         # Remove any temporary products
+    rake clobber       # Remove any generated file
+    rake dev           # Run the site in development mode
+    rake generate_docs # Fetch documentation from git for rendering.
 
 ### Generating documentation pages from git
 The majority of our documentation currently lives in git as markdown.  The `generate_docs`
@@ -80,10 +80,10 @@ Note: since documentation is associated
 misleading documentation for unreleased featuresl
 
     # This will fetch the docs and place them in `source/documentation/latest`.
-    rake2.0 generate_docs[latest,master]
+    rake generate_docs[latest,master]
 
     # Render the docs.
-    rake2.0
+    rake
 
 #### Updating the documentation for a release.
 After completing an official Aurora release, you should add the new version of documentation and
@@ -92,19 +92,19 @@ advertise the release on the website.
 First, add the new release to the top of `data/downloads.yml`.
  
     # Add documentation for the new release
-    rake2.0 generate_docs[$RELEASE,$RELEASE]
+    rake generate_docs[$RELEASE,$RELEASE]
 
     # Update the `latest` release docs
-    rake2.0 generate_docs[latest,$RELEASE]
+    rake generate_docs[latest,$RELEASE]
 
     # Render the docs.
-    rake2.0
+    rake
 
 ### Development 
-To live edit the site run `rake2.0 dev` and then open a browser window to 
+To live edit the site run `rake dev` and then open a browser window to 
 `http://192.168.33.10:4567`. Any change you make to the sources dir will 
 be shown on the local dev site immediately. Errors will be shown in the 
-console you launched `rake2.0 dev` within.
+console you launched `rake dev` within.
 
 ## Contributing Website Changes
 Have you made local changes that you would like to contribute to the website?

Modified: aurora/site/Vagrantfile
URL: http://svn.apache.org/viewvc/aurora/site/Vagrantfile?rev=1871319&r1=1871318&r2=1871319&view=diff
==============================================================================
--- aurora/site/Vagrantfile (original)
+++ aurora/site/Vagrantfile Fri Dec 13 05:37:33 2019
@@ -17,10 +17,10 @@
 # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
 VAGRANTFILE_API_VERSION = "2"
 
-Vagrant.require_version ">= 1.5.0"
+Vagrant.require_version ">= 2.2.5"
 
 Vagrant.configure(2) do |config|
-  config.vm.box = "ubuntu/trusty64"
+  config.vm.box = "bento/ubuntu-18.04"
 
   config.vm.network :private_network, ip: "192.168.33.10"
   config.vm.provider :virtualbox do |vb|

Modified: aurora/site/provision.sh
URL: http://svn.apache.org/viewvc/aurora/site/provision.sh?rev=1871319&r1=1871318&r2=1871319&view=diff
==============================================================================
--- aurora/site/provision.sh (original)
+++ aurora/site/provision.sh Fri Dec 13 05:37:33 2019
@@ -5,13 +5,14 @@ apt-get update
 apt-get install -y \
     build-essential \
     git \
-    ruby2.0 \
-    ruby2.0-dev \
+    ruby2.5 \
+    ruby2.5-dev \
     subversion \
+    tzdata \
     zlib1g-dev \
     unzip
 
-gem2.0 install bundler
+gem install bundler
 cd /vagrant
 bundle install
-rake2.0
+rake

Modified: aurora/site/publish/blog/feed.xml
URL: http://svn.apache.org/viewvc/aurora/site/publish/blog/feed.xml?rev=1871319&r1=1871318&r2=1871319&view=diff
==============================================================================
--- aurora/site/publish/blog/feed.xml (original)
+++ aurora/site/publish/blog/feed.xml Fri Dec 13 05:37:33 2019
@@ -4,14 +4,14 @@
   <id>http://aurora.apache.org/blog</id>
   <link href="http://aurora.apache.org/blog" />
   <link href="http://aurora.apache.org/blog/feed.xml" rel="self"/>
-  <updated>2019-12-12T00:00:00+00:00</updated>
+  <updated>2019-12-11T16:00:00-08:00</updated>
   <entry>
     <id>http://aurora.apache.org/blog/aurora-0-22-0-released</id>
     <link href="/blog/aurora-0-22-0-released" />
     <title>
       0.22.0 Released
     </title>
-    <updated>2019-12-12T00:00:00+00:00</updated>
+    <updated>2019-12-11T16:00:00-08:00</updated>
     <author>
       <name>Renan DelValle</name>
     </author>
@@ -89,7 +89,7 @@ when a Job is received by the scheduler.
     <title>
       0.21.0 Released
     </title>
-    <updated>2018-09-10T00:00:00+00:00</updated>
+    <updated>2018-09-09T17:00:00-07:00</updated>
     <author>
       <name>Renan DelValle</name>
     </author>
@@ -174,7 +174,7 @@ to skip the SLA computations on the admi
     <title>
       0.20.0 Released
     </title>
-    <updated>2018-04-03T00:00:00+00:00</updated>
+    <updated>2018-04-02T17:00:00-07:00</updated>
     <author>
       <name>Renan DelValle</name>
     </author>
@@ -246,7 +246,7 @@ since this will now be subsumed under cu
     <title>
       0.19.1 Released
     </title>
-    <updated>2018-02-11T00:00:00+00:00</updated>
+    <updated>2018-02-10T16:00:00-08:00</updated>
     <author>
       <name>Renan DelValle</name>
     </author>
@@ -265,7 +265,7 @@ since this will now be subsumed under cu
     <title>
       0.19.0 Released
     </title>
-    <updated>2017-11-10T00:00:00+00:00</updated>
+    <updated>2017-11-09T16:00:00-08:00</updated>
     <author>
       <name>Bill Farner</name>
     </author>
@@ -355,7 +355,7 @@ used:
     <title>
       0.18.1 Released
     </title>
-    <updated>2017-11-01T00:00:00+00:00</updated>
+    <updated>2017-10-31T17:00:00-07:00</updated>
     <author>
       <name>Bill Farner</name>
     </author>
@@ -375,7 +375,7 @@ update the Shiro library to version 1.2.
     <title>
       0.18.0 Released
     </title>
-    <updated>2017-06-20T00:00:00+00:00</updated>
+    <updated>2017-06-19T17:00:00-07:00</updated>
     <author>
       <name>Santhosh Kumar Shanmugham</name>
     </author>
@@ -469,7 +469,7 @@ please let us know on the &lt;a href=&qu
     <title>
       0.17.0 Released
     </title>
-    <updated>2017-02-06T00:00:00+00:00</updated>
+    <updated>2017-02-05T16:00:00-08:00</updated>
     <author>
       <name>Stephan Erb</name>
     </author>
@@ -574,7 +574,7 @@ please let us know on the &lt;a href=&qu
     <title>
       0.16.0 Released
     </title>
-    <updated>2016-09-28T00:00:00+00:00</updated>
+    <updated>2016-09-27T17:00:00-07:00</updated>
     <author>
       <name>Joshua Cohen</name>
     </author>
@@ -681,7 +681,7 @@ please let us know on the &lt;a href=&qu
     <title>
       0.15.0 Released
     </title>
-    <updated>2016-07-06T00:00:00+00:00</updated>
+    <updated>2016-07-05T17:00:00-07:00</updated>
     <author>
       <name>Maxim Khutornenko</name>
     </author>
@@ -730,7 +730,7 @@ please let us know on the &lt;a href=&qu
     <title>
       0.14.0 Released
     </title>
-    <updated>2016-06-14T00:00:00+00:00</updated>
+    <updated>2016-06-13T17:00:00-07:00</updated>
     <author>
       <name>Stephan Erb</name>
     </author>
@@ -828,7 +828,7 @@ community also holds weekly IRC meetings
     <title>
       0.13.0 Released
     </title>
-    <updated>2016-04-14T00:00:00+00:00</updated>
+    <updated>2016-04-13T17:00:00-07:00</updated>
     <author>
       <name>Jake Farrell</name>
     </author>
@@ -953,7 +953,7 @@ community also holds weekly IRC meetings
     <title>
       0.12.0 Released
     </title>
-    <updated>2016-03-03T00:00:00+00:00</updated>
+    <updated>2016-03-02T16:00:00-08:00</updated>
     <author>
       <name>Bill Farner</name>
     </author>
@@ -1063,7 +1063,7 @@ community also holds weekly IRC meetings
     <title>
       0.11.0 Released
     </title>
-    <updated>2015-12-23T00:00:00+00:00</updated>
+    <updated>2015-12-22T16:00:00-08:00</updated>
     <author>
       <name>Bill Farner</name>
     </author>
@@ -1139,7 +1139,7 @@ community also holds weekly IRC meetings
     <title>
       0.10.0 Released
     </title>
-    <updated>2015-12-12T00:00:00+00:00</updated>
+    <updated>2015-12-11T16:00:00-08:00</updated>
     <author>
       <name>Bill Farner</name>
     </author>
@@ -1201,7 +1201,7 @@ replaced by &lt;a href=&quot;/documentat
     <title>
       Recap: Aurora at MesosCon Seattle
     </title>
-    <updated>2015-08-26T00:00:00+00:00</updated>
+    <updated>2015-08-25T17:00:00-07:00</updated>
     <author>
       <name>Dave Lester</name>
     </author>
@@ -1232,7 +1232,7 @@ replaced by &lt;a href=&quot;/documentat
     <title>
       0.9.0 Released
     </title>
-    <updated>2015-07-24T00:00:00+00:00</updated>
+    <updated>2015-07-23T17:00:00-07:00</updated>
     <author>
       <name>Jake Farrell</name>
     </author>
@@ -1298,7 +1298,7 @@ be enabled via the scheduler command lin
     <title>
       0.8.0 Released
     </title>
-    <updated>2015-05-14T00:00:00+00:00</updated>
+    <updated>2015-05-13T17:00:00-07:00</updated>
     <author>
       <name>Jake Farrell</name>
     </author>
@@ -1382,7 +1382,7 @@ be enabled via the scheduler command lin
     <title>
       Upcoming Apache Aurora Meetups in NYC and the Bay Area
     </title>
-    <updated>2015-03-18T00:00:00+00:00</updated>
+    <updated>2015-03-17T17:00:00-07:00</updated>
     <author>
       <name>Dave Lester</name>
     </author>
@@ -1424,7 +1424,7 @@ be enabled via the scheduler command lin
     <title>
       0.7.0-incubating Released, Adding Support for Docker Containers
     </title>
-    <updated>2015-02-12T00:00:00+00:00</updated>
+    <updated>2015-02-11T16:00:00-08:00</updated>
     <author>
       <name>Maxim Khutornenko</name>
     </author>
@@ -1492,7 +1492,7 @@ be enabled via the scheduler command lin
     <title>
       0.6.0-incubating Released
     </title>
-    <updated>2014-12-08T00:00:00+00:00</updated>
+    <updated>2014-12-07T16:00:00-08:00</updated>
     <author>
       <name>Bill Farner</name>
     </author>

Modified: aurora/site/publish/sitemap.xml
URL: http://svn.apache.org/viewvc/aurora/site/publish/sitemap.xml?rev=1871319&r1=1871318&r2=1871319&view=diff
==============================================================================
--- aurora/site/publish/sitemap.xml (original)
+++ aurora/site/publish/sitemap.xml Fri Dec 13 05:37:33 2019
@@ -2,106 +2,106 @@
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
     <loc>http://aurora.apache.org/community/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/downloads/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.20.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.6.0-incubating/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.7.0-incubating/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.7.0-incubating/index2/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.9.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.11.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.15.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.18.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.12.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.18.1/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.16.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.22.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.13.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.19.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.19.1/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.17.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.5.0-incubating/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.21.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.8.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.10.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/0.14.0/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/blog/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/</loc>
-    <lastmod>2019-12-13T00:00:00+00:00</lastmod>
+    <lastmod>2019-12-12T00:00:00-08:00</lastmod>
   </url>
 </urlset>
\ No newline at end of file

Added: aurora/site/source/blog/2019-12-12-aurora-0-22-0-released.md
URL: http://svn.apache.org/viewvc/aurora/site/source/blog/2019-12-12-aurora-0-22-0-released.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/blog/2019-12-12-aurora-0-22-0-released.md (added)
+++ aurora/site/source/blog/2019-12-12-aurora-0-22-0-released.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,69 @@
+---
+layout: post
+title: 0.22.0 Released
+permalink: /blog/aurora-0-22-0-released/
+published: true
+post_author:
+  display_name: Renan DelValle
+tags: Release
+---
+
+The latest Apache Aurora release, 0.22.0, is now available for
+[download](http://aurora.apache.org/downloads/). Here are some highlights in this release:
+
+- Updated to Mesos 1.6.1.
+- New update strategy added: Variable Batch Update. With this strategy, a job may be updated in
+  in batches of different sizes. For example, an update which modifies a total of 10 instances may
+  be done in batch sizes of 2, 3, and 5. The number of updated instances must equal the size of the
+  current group size in order to move to the next group size. If the number of updated instances is
+  greater to the sum of all group sizes, the last group size will be used in perpetuity until all
+  instances are updated.
+  A new field has been added to `UpdateConfig` called `update_strategy`.
+  Update strategy may take a `QueueUpdateStrategy`, `BatchUpdateStrategy`,
+  or a `VariableBatchUpdateStrategy` object. `QueueUpdateStrategy` and `BatchUpdateStrategy` take
+  a single integer argument while `VariableBatchUpdateStrategy` takes a list of positive integers
+  as an argument.
+- Users may now set a value for the URI fetcher to rename a downloaded artifact to after it
+  has been downloaded.
+- Auto pause feature added to VariableBatch strategy and Batch strategy. With this feature enabled,
+  when an update is `ROLLING_FORWARD`, the update will automatically pause itself right before
+  a new batch is started. (This feature is being released as tested but in beta state. We are
+  looking to collect feedback before we consider it fully stable.)
+- `loader.load()` now uses memoization on the config file path so that we only load and process
+  each config file once.
+- Instances run with custom executors will no longer show links to thermos observer.
+- Add observer command line option `--disable_task_resource_collection` to disable the collection of
+  CPU, memory, and disk metrics for observed tasks. This is useful in setups where metrics cannot be
+  gathered reliable (e.g. when using PID namespaces) or when it is expensive due to hundreds of
+  active tasks per host.
+- Added flag `-sla_aware_kill_non_prod` which allows operators to enable SLA aware killing
+  for non-production jobs. Jobs are considered non-production when they are preemptable and/or
+  revocable.
+
+Deprecations and removals:
+
+- Deprecated use of Thrift fields `JobUpdateSettings.waitForBatchCompletion` and
+  `JobUpdateSettings.updateGroupSize`. Please set the proper `JobUpdateSettings.updateStrategy`
+  instead. Note that these same constructs, as represented in the Aurora DSL, are still valid
+  as they will be converted to the new field automatically by the client
+  for backwards compatibility.
+- Backfill code for finding a matching tier to for a Job has been removed. Tier will now be set
+  when a Job is received by the scheduler. If no tier is provided, the default tier defined in
+  `-tier_config`.
+
+Full release notes are available in the release
+[CHANGELOG](https://github.com/apache/aurora/milestone/2?closed=1).
+
+## Thanks
+
+Thanks to the 8 contributors who made Apache Aurora 0.22.0 possible:
+
+* Se Choi
+* Raúl Cuza
+* Renan DelValle
+* Stephan Erb
+* Mauricio Garavaglia
+* Daniel Knightly
+* Philipp Sontag
+* Justin Venus
+

Added: aurora/site/source/documentation/0.22.0/additional-resources/presentations.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/additional-resources/presentations.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/additional-resources/presentations.md (added)
+++ aurora/site/source/documentation/0.22.0/additional-resources/presentations.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,80 @@
+# Apache Aurora Presentations
+Video and slides from presentations and panel discussions about Apache Aurora.
+
+_(Listed in date descending order)_
+
+<table>
+
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/10_08_2015_mesos_aurora_on_a_small_scale_thumb.png" alt="Mesos and Aurora on a Small Scale Thumbnail" /></td>
+		<td><strong><a href="https://www.youtube.com/watch?v=q5iIqhaCJ_o">Mesos &amp; Aurora on a Small Scale (Video)</a></strong>
+		<p>Presented by Florian Pfeiffer</p>
+		<p>October 8, 2015 at <a href="http://events.linuxfoundation.org/events/archive/2015/mesoscon-europe">#MesosCon Europe 2015</a></p></td>
+	</tr>
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/10_08_2015_sla_aware_maintenance_for_operators_thumb.png" alt="SLA Aware Maintenance for Operators Thumbnail" /></td>
+		<td><strong><a href="https://www.youtube.com/watch?v=tZ0-SISvCis">SLA Aware Maintenance for Operators (Video)</a></strong>
+		<p>Presented by Joe Smith</p>
+		<p>October 8, 2015 at <a href="http://events.linuxfoundation.org/events/archive/2015/mesoscon-europe">#MesosCon Europe 2015</a></p></td>
+	</tr>
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/09_20_2015_shipping_code_with_aurora_thumb.png" alt="Shipping Code with Aurora Thumbnail" /></td>
+		<td><strong><a href="https://www.youtube.com/watch?v=y1hi7K1lPkk">Shipping Code with Aurora (Video)</a></strong>
+		<p>Presented by Bill Farner</p>
+		<p>August 20, 2015 at <a href="http://events.linuxfoundation.org/events/archive/2015/mesoscon">#MesosCon 2015</a></p></td>
+	</tr>
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/09_20_2015_twitter_production_scale_thumb.png" alt="Twitter Production Scale Thumbnail" /></td>
+		<td><strong><a href="https://www.youtube.com/watch?v=nNrh-gdu9m4">Twitter’s Production Scale: Mesos and Aurora Operations (Video)</a></strong>
+		<p>Presented by Joe Smith</p>
+		<p>August 20, 2015 at <a href="http://events.linuxfoundation.org/events/archive/2015/mesoscon">#MesosCon 2015</a></p></td>
+	</tr>
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/04_30_2015_monolith_to_microservices_thumb.png" alt="From Monolith to Microservices with Aurora Video Thumbnail" /></td>
+		<td><strong><a href="https://www.youtube.com/watch?v=yXkOgnyK4Hw">From Monolith to Microservices w/ Aurora (Video)</a></strong>
+		<p>Presented by Thanos Baskous, Tony Dong, Dobromir Montauk</p>
+		<p>April 30, 2015 at <a href="http://www.meetup.com/Bay-Area-Apache-Aurora-Users-Group/events/221219480/">Bay Area Apache Aurora Users Group</a></p></td>
+	</tr>
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/03_07_2015_aurora_mesos_in_practice_at_twitter_thumb.png" alt="Aurora + Mesos in Practice at Twitter Thumbnail" /></td>
+		<td><strong><a href="https://www.youtube.com/watch?v=1XYJGX_qZVU">Aurora + Mesos in Practice at Twitter (Video)</a></strong>
+		<p>Presented by Bill Farner</p>
+		<p>March 07, 2015 at <a href="http://www.bigeng.io/aurora-mesos-in-practice-at-twitter">Bigcommerce TechTalk</a></p></td>
+	</tr>
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/02_28_2015_apache_aurora_thumb.png" alt="Apache Auroraの始めかた Slideshow Thumbnail" /></td>
+		<td><strong><a href="http://www.slideshare.net/zembutsu/apache-aurora-introduction-and-tutorial-osc15tk">Apache Auroraの始めかた (Slides)</a></strong>
+		<p>Presented by Masahito Zembutsu</p>
+		<p>February 28, 2015 at <a href="http://www.ospn.jp/osc2015-spring/">Open Source Conference 2015 Tokyo Spring</a></p></td>
+	</tr>
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/02_19_2015_aurora_adopters_panel_thumb.png" alt="Apache Aurora Adopters Panel Video Thumbnail" /></td>
+		<td><strong><a href="https://www.youtube.com/watch?v=2Jsj0zFdRlg">Apache Aurora Adopters Panel (Video)</a></strong>
+		<p>Panelists Ben Staffin, Josh Adams, Bill Farner, Berk Demir</p>
+		<p>February 19, 2015 at <a href="http://www.meetup.com/Bay-Area-Mesos-User-Group/events/220279080/">Bay Area Mesos Users Group</a></p></td>
+	</tr>
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/02_19_2015_aurora_at_twitter_thumb.png" alt="Operating Apache Aurora and Mesos at Twitter Video Thumbnail" /></td>
+		<td><strong><a href="https://www.youtube.com/watch?v=E4lxX6epM_U">Operating Apache Aurora and Mesos at Twitter (Video)</a></strong>
+		<p>Presented by Joe Smith</p>
+		<p>February 19, 2015 at <a href="http://www.meetup.com/Bay-Area-Mesos-User-Group/events/220279080/">Bay Area Mesos Users Group</a></p></td>
+	</tr>
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/02_19_2015_aurora_at_tellapart_thumb.png" alt="Apache Aurora and Mesos at TellApart" /></td>
+		<td><strong><a href="https://www.youtube.com/watch?v=ZZXtXLvTXAE">Apache Aurora and Mesos at TellApart (Video)</a></strong>
+		<p>Presented by Steve Niemitz</p>
+		<p>February 19, 2015 at <a href="http://www.meetup.com/Bay-Area-Mesos-User-Group/events/220279080/">Bay Area Mesos Users Group</a></p></td>
+	</tr>
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/08_21_2014_past_present_future_thumb.png" alt="Past, Present, and Future of the Aurora Scheduler Video Thumbnail" /></td>
+		<td><strong><a href="https://www.youtube.com/watch?v=Dsc5CPhKs4o">Past, Present, and Future of the Aurora Scheduler (Video)</a></strong>
+		<p>Presented by Bill Farner</p>
+		<p>August 21, 2014 at <a href="http://events.linuxfoundation.org/events/archive/2014/mesoscon">#MesosCon 2014</a></p></td>
+	</tr>
+	<tr>
+		<td><img src="/documentation/0.22.0/images/presentations/03_25_2014_introduction_to_aurora_thumb.png" alt="Introduction to Apache Aurora Video Thumbnail" /></td>
+		<td><strong><a href="https://www.youtube.com/watch?v=asd_h6VzaJc">Introduction to Apache Aurora (Video)</a></strong>
+		<p>Presented by Bill Farner</p>
+		<p>March 25, 2014 at <a href="https://www.eventbrite.com/e/aurora-and-mesosframeworksmeetup-tickets-10850994617">Aurora and Mesos Frameworks Meetup</a></p></td>
+	</tr>
+</table>

Added: aurora/site/source/documentation/0.22.0/additional-resources/tools.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/additional-resources/tools.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/additional-resources/tools.md (added)
+++ aurora/site/source/documentation/0.22.0/additional-resources/tools.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,24 @@
+# Tools
+
+Various tools integrate with Aurora. Is there a tool missing? Let us know, or submit a patch to add it!
+
+* Load-balancing technology used to direct traffic to services running on Aurora:
+  - [synapse](https://github.com/airbnb/synapse) based on HAProxy
+  - [aurproxy](https://github.com/tellapart/aurproxy) based on nginx
+  - [jobhopper](https://github.com/benley/aurora-jobhopper) performs HTTP redirects for easy developer and administrator access
+
+* RPC libraries that integrate with the Aurora's [service discovery mechanism](../../features/service-discovery/):
+  - [linkerd](https://linkerd.io/) RPC proxy
+  - [finagle](https://twitter.github.io/finagle) (Scala)
+  - [scales](https://github.com/steveniemitz/scales) (Python)
+
+* Monitoring:
+  - [collectd-aurora](https://github.com/zircote/collectd-aurora) for cluster monitoring using collectd
+  - [Prometheus Aurora exporter](https://github.com/tommyulfsparre/aurora_exporter) for cluster monitoring using Prometheus
+  - [Prometheus service discovery integration](http://prometheus.io/docs/operating/configuration/#zookeeper-serverset-sd-configurations-serverset_sd_config) for discovering and monitoring services running on Aurora
+
+* Packaging and deployment:
+  - [aurora-packaging](https://github.com/apache/aurora-packaging), the source of the official Aurora packages
+
+* Thrift Clients:
+  - [gorealis](https://github.com/paypal/gorealis) for communicating with the scheduler using Go

Added: aurora/site/source/documentation/0.22.0/contributing.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/contributing.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/contributing.md (added)
+++ aurora/site/source/documentation/0.22.0/contributing.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,93 @@
+## Get the Source Code
+
+First things first, you'll need the source! The Aurora source is available from Apache git:
+
+    git clone https://gitbox.apache.org/repos/asf/aurora
+
+Read the Style Guides
+---------------------
+Aurora's codebase is primarily Java and Python and conforms to the Twitter Commons styleguides for
+both languages.
+
+- [Java Style Guide](https://github.com/twitter/commons/blob/master/src/java/com/twitter/common/styleguide.md)
+- [Python Style Guide](https://github.com/twitter/commons/blob/master/src/python/twitter/common/styleguide.md)
+
+## Find Something to Do
+
+There are issues in [Jira](https://issues.apache.org/jira/browse/AURORA) with the
+["newbie" label](https://issues.apache.org/jira/issues/?jql=project%20%3D%20AURORA%20AND%20labels%20%3D%20newbie%20and%20resolution%3Dunresolved)
+that are good starting places for new Aurora contributors; pick one of these and dive in! To assign
+a task to yourself, first ask for your JIRA id to be whitelisted by either asking in IRC/Slack or by
+emailing dev@apache.aurora.org. Once your JIRA account has been whitelisted you can assign tickets
+to yourself. The next step is to prepare your patch and finally post it for review.
+
+## Getting your ReviewBoard Account
+
+Go to https://reviews.apache.org and create an account.
+
+## Setting up your ReviewBoard Environment
+
+Run `./rbt status`. The first time this runs it will bootstrap and you will be asked to login.
+Subsequent runs will cache your login credentials.
+
+## Submitting a Patch for Review
+
+Post a review with `rbt`, fill out the fields in your browser and hit Publish.
+
+    ./rbt post -o
+
+If you're unsure about who to add as a reviewer, you can default to adding Stephan Erb (StephanErb) and
+Renan DelValle (rdelvalle). They will take care of finding an appropriate reviewer for the patch.
+
+Once you've done this, you probably want to mark the associated Jira issue as Reviewable.
+
+## Updating an Existing Review
+
+Incorporate review feedback, make some more commits, update your existing review, fill out the
+fields in your browser and hit Publish.
+
+    ./rbt post -o -r <RB_ID>
+
+## Getting Your Review Merged
+
+If you're not an Aurora committer, one of the committers will merge your change in as described
+below. Generally, the last reviewer to give the review a 'Ship It!' will be responsible.
+
+### Merging Your Own Review (Committers)
+
+Once you have shipits from the right committers, merge your changes in a single commit and mark
+the review as submitted. The typical workflow is:
+
+    git checkout master
+    git pull origin master
+    ./rbt patch -c <RB_ID>  # Verify the automatically-generated commit message looks sane,
+                            # editing if necessary.
+    git show master         # Verify everything looks sane
+    git push origin master
+    ./rbt close <RB_ID>
+
+Note that even if you're developing using feature branches you will not use `git merge` - each
+commit will be an atomic change accompanied by a ReviewBoard entry.
+
+### Merging Someone Else's Review
+
+Sometimes you'll need to merge someone else's RB. The typical workflow for this is
+
+    git checkout master
+    git pull origin master
+    ./rbt patch -c <RB_ID>
+    git show master  # Verify everything looks sane, author is correct
+    git push origin master
+
+Note for committers: while we generally use the commit message generated by `./rbt patch` some
+changes are often required:
+
+1. Ensure the the commit message does not exceed 100 characters per line.
+2. Remove the "Testing Done" section. It's generally redundant (can be seen by checking the linked
+  review) or entirely irrelevant to the commit itself.
+
+## Cleaning Up
+
+Your patch has landed, congratulations! The last thing you'll want to do before moving on to your
+next fix is to clean up your Jira and Reviewboard. The former of which should be marked as
+"Resolved" while the latter should be marked as "Submitted".

Added: aurora/site/source/documentation/0.22.0/development/client.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/development/client.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/development/client.md (added)
+++ aurora/site/source/documentation/0.22.0/development/client.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,148 @@
+Developing the Aurora Client
+============================
+
+The client is written in Python, and uses the
+[Pants](http://pantsbuild.github.io/python-readme.html) build tool.
+
+
+Building and Testing
+--------------------
+
+Building and testing the client code are both done using Pants. The relevant targets to know about
+are:
+
+   * Build a client executable: `./pants binary src/main/python/apache/aurora/client:aurora`
+   * Test client code: `./pants test src/test/python/apache/aurora/client/cli:cli`
+
+If you want to build a source distribution of the client, you need to run `./build-support/release/make-python-sdists`.
+
+
+Creating Custom Builds
+----------------------
+
+There are situations where you may want to plug in custom logic to the Client that may not be
+applicable to the open source codebase. Rather than create a whole CLI from scratch, you can
+easily create your own custom, drop-in replacement aurora.pex using the pants build tool.
+
+First, create an AuroraCommandLine implementation as an entry-point for registering customizations:
+
+    from apache.aurora.client.cli.client import AuroraCommandLine
+
+    class CustomAuroraCommandLine(AuroraCommandLine):
+    """Custom AuroraCommandLine for your needs"""
+
+    @property
+    def name(self):
+      return "your-company-aurora"
+
+    @classmethod
+    def get_description(cls):
+      return 'Your Company internal Aurora client command line'
+
+    def __init__(self):
+      super(CustomAuroraCommandLine, self).__init__()
+      # Add custom plugins..
+      self.register_plugin(YourCustomPlugin())
+
+    def register_nouns(self):
+      super(CustomAuroraCommandLine, self).register_nouns()
+      # You can even add new commands / sub-commands!
+      self.register_noun(YourStartUpdateProxy())
+      self.register_noun(YourDeployWorkflowCommand())
+
+Secondly, create a main entry point:
+
+    def proxy_main():
+      client = CustomAuroraCommandLine()
+      if len(sys.argv) == 1:
+        sys.argv.append("-h")
+      sys.exit(client.execute(sys.argv[1:]))
+
+Finally, you can wire everything up with a pants BUILD file in your project directory:
+
+    python_binary(
+      name='aurora',
+      entry_point='your_company.aurora.client:proxy_main',
+      dependencies=[
+        ':client_lib'
+      ]
+    )
+
+    python_library(
+      name='client_lib',
+      sources = [
+        'client.py',
+        'custom_plugin.py',
+        'custom_command.py',
+      ],
+      dependencies = [
+        # The Apache Aurora client
+        # Any other dependencies for your custom code
+      ],
+    )
+
+Using the same commands to build the client as above (but obviously pointing to this BUILD file
+instead), you will have a drop-in replacement aurora.pex file with your customizations.
+
+Running/Debugging
+------------------
+
+For manually testing client changes against a cluster, we use [Vagrant](https://www.vagrantup.com/).
+To start a virtual cluster, you need to install Vagrant, and then run `vagrant up` for the root of
+the aurora workspace. This will create a vagrant host named "devcluster", with a Mesos master, a set
+of Mesos agents, and an Aurora scheduler.
+
+If you have a change you would like to test in your local cluster, you'll rebuild the client:
+
+    vagrant ssh -c 'aurorabuild client'
+
+Once this completes, the `aurora` command will reflect your changes.
+
+
+Running/Debugging in PyCharm
+-----------------------------
+
+It's possible to use PyCharm to run and debug both the client and client tests in an IDE. In order
+to do this, first run:
+
+    build-support/python/make-pycharm-virtualenv
+
+This script will configure a virtualenv with all of our Python requirements. Once the script
+completes it will emit instructions for configuring PyCharm:
+
+    Your PyCharm environment is now set up.  You can open the project root
+    directory with PyCharm.
+
+    Once the project is loaded:
+      - open project settings
+      - click 'Project Interpreter'
+      - click the cog in the upper-right corner
+      - click 'Add Local'
+      - select 'build-support/python/pycharm.venv/bin/python'
+      - click 'OK'
+
+### Running/Debugging Tests
+After following these instructions, you should now be able to run/debug tests directly from the IDE
+by right-clicking on a test (or test class) and choosing to run or debug:
+
+[![Debug Client Test](../images/debug-client-test.png)](../images/debug-client-test.png)
+
+If you've set a breakpoint, you can see the run will now stop and let you debug:
+
+[![Debugging Client Test](../images/debugging-client-test.png)](../images/debugging-client-test.png)
+
+### Running/Debugging the Client
+Actually running and debugging the client is unfortunately a bit more complex. You'll need to create
+a Run configuration:
+
+* Go to Run → Edit Configurations
+* Click the + icon to add a new configuration.
+* Choose python and name the configuration 'client'.
+* Set the script path to `/your/path/to/aurora/src/main/python/apache/aurora/client/cli/client.py`
+* Set the script parameters to the command you want to run (e.g. `job status <job key>`)
+* Expand the Environment section and click the ellipsis to add a new environment variable
+* Click the + at the bottom to add a new variable named AURORA_CONFIG_ROOT whose value is the
+  path where the your cluster configuration can be found. For example, to talk to the scheduler
+  running in the vagrant image, it would be set to `/your/path/to/aurora/examples/vagrant` (this
+  is the directory where our example clusters.json is found).
+* You should now be able to run and debug this configuration!

Added: aurora/site/source/documentation/0.22.0/development/committers-guide.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/development/committers-guide.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/development/committers-guide.md (added)
+++ aurora/site/source/documentation/0.22.0/development/committers-guide.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,105 @@
+Committer's Guide
+=================
+
+Information for official Apache Aurora committers.
+
+Setting up your email account
+-----------------------------
+Once your Apache ID has been set up you can configure your account and add ssh keys and setup an
+email forwarding address at
+
+    http://id.apache.org
+
+Additional instructions for setting up your new committer email can be found at
+
+    http://www.apache.org/dev/user-email.html
+
+The recommended setup is to configure all services (mailing lists, JIRA, ReviewBoard) to send
+emails to your @apache.org email address.
+
+
+Creating a gpg key for releases
+-------------------------------
+In order to create a release candidate you will need a gpg key published to an external key server
+and that key will need to be added to our KEYS file as well.
+
+1. Create a key:
+
+               gpg --gen-key
+
+2. Add your gpg key to the Apache Aurora KEYS file:
+
+               git clone https://gitbox.apache.org/repos/asf/aurora
+               (gpg --list-sigs <KEY ID> && gpg --armor --export <KEY ID>) >> KEYS
+               git add KEYS && git commit -m "Adding gpg key for <APACHE ID>"
+               ./rbt post -o -g
+
+3. Publish the key to an external key server:
+
+               gpg --keyserver pgp.mit.edu --send-keys <KEY ID>
+
+4. Update the changes to the KEYS file to the Apache Aurora svn dist locations listed below:
+
+               https://dist.apache.org/repos/dist/dev/aurora/KEYS
+               https://dist.apache.org/repos/dist/release/aurora/KEYS
+
+5. Add your key to git config for use with the release scripts:
+
+               git config --global user.signingkey <KEY ID>
+
+
+Creating a release
+------------------
+The following will guide you through the steps to create a release candidate, vote, and finally an
+official Apache Aurora release. Before starting your gpg key should be in the KEYS file and you
+must have access to commit to the dist.a.o repositories.
+
+1. Ensure that all issues resolved for this release candidate are tagged with the correct Fix
+Version in JIRA, the changelog script will use this to generate the CHANGELOG in step #2.
+To assign the fix version:
+
+    * Look up the [previous release date](https://issues.apache.org/jira/browse/aurora/?selectedTab=com.atlassian.jira.jira-projects-plugin:versions-panel).
+    * Query all issues resolved after that release date: `project = AURORA AND status in (resolved, Closed) and fixVersion is empty and resolutiondate >= "YYYY/MM/DD"`
+    * In the upper right corner of the query result, select Tools > Bulk Edit.
+    * Select all issues > edit issue > set 'Change Fix Version/s' to the release version.
+    * Make sure to uncheck 'Send mail for this update' at the bottom.
+
+2. Prepare RELEASE-NOTES.md for the release. This just boils down to removing the "(Not yet
+released)" suffix from the impending release.
+
+2. Create a release candidate. This will automatically update the CHANGELOG and commit it, create a
+branch and update the current version within the trunk. To create a minor version update and publish
+it run
+
+               ./build-support/release/release-candidate -l m -p
+
+3. Update, if necessary, the draft email created from the `release-candidate` script in step #2 and
+send the [VOTE] email to the dev@ mailing list. You can verify the release signature and checksums
+by running
+
+               ./build-support/release/verify-release-candidate
+
+4. Wait for the vote to complete. If the vote fails close the vote by replying to the initial [VOTE]
+email sent in step #3 by editing the subject to [RESULT][VOTE] ... and noting the failure reason
+(example [here](http://markmail.org/message/d4d6xtvj7vgwi76f)). You'll also need to manually revert
+the commits generated by the release candidate script that incremented the snapshot version and
+updated the changelog. Once that is done, now address any issues and go back to step #1 and run
+again, this time you will use the -r flag to increment the release candidate version. This will
+automatically clean up the release candidate rc0 branch and source distribution.
+
+               ./build-support/release/release-candidate -l m -r 1 -p
+
+5. Once the vote has successfully passed create the release
+
+**IMPORTANT: make sure to use the correct release at this final step (e.g.: `-r 1` if rc1 candidate
+has been voted for). Once the release tag is pushed it will be very hard to undo due to remote
+git pre-receive hook explicitly forbidding release tag manipulations.**
+
+               ./build-support/release/release
+
+6. Update the draft email created fom the `release` script in step #5 to include the Apache ID's for
+all binding votes and send the [RESULT][VOTE] email to the dev@ mailing list.
+
+7. Update the [Aurora Website](http://aurora.apache.org/) by following the
+[instructions](https://svn.apache.org/repos/asf/aurora/site/README.md) on the ASF Aurora SVN repo.
+Remember to add a blog post under source/blog and regenerate the site before committing.

Added: aurora/site/source/documentation/0.22.0/development/db-migration.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/development/db-migration.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/development/db-migration.md (added)
+++ aurora/site/source/documentation/0.22.0/development/db-migration.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,34 @@
+DB Migrations
+=============
+
+Changes to the DB schema should be made in the form of migrations. This ensures that all changes
+are applied correctly after a DB dump from a previous version is restored.
+
+DB migrations are managed through a system built on top of
+[MyBatis Migrations](http://www.mybatis.org/migrations/). The migrations are run automatically when
+a snapshot is restored, no manual interaction is required by cluster operators.
+
+Upgrades
+--------
+When adding or altering tables or changing data, in addition to making to change in
+[schema.sql](../../src/main/resources/org/apache/aurora/scheduler/storage/db/schema.sql), a new
+migration class should be created under the org.apache.aurora.scheduler.storage.db.migration
+package. The class should implement the [MigrationScript](https://github.com/mybatis/migrations/blob/master/src/main/java/org/apache/ibatis/migration/MigrationScript.java)
+interface (see [V001_TestMigration](https://github.com/apache/aurora/blob/rel/0.22.0/src/test/java/org/apache/aurora/scheduler/storage/db/testmigration/V001_TestMigration.java)
+as an example). The upgrade and downgrade scripts are defined in this class. When restoring a
+snapshot the list of migrations on the classpath is compared to the list of applied changes in the
+DB. Any changes that have not yet been applied are executed and their downgrade script is stored
+alongside the changelog entry in the database to faciliate downgrades in the event of a rollback.
+
+Downgrades
+----------
+If, while running migrations, a rollback is detected, i.e. a change exists in the DB changelog that
+does not exist on the classpath, the downgrade script associated with each affected change is
+applied.
+
+Baselines
+---------
+After enough time has passed (at least 1 official release), it should be safe to baseline migrations
+if desired. This can be accomplished by ensuring the changes from migrations have been applied to
+[schema.sql](../../src/main/resources/org/apache/aurora/scheduler/storage/db/schema.sql) and then
+removing the corresponding migration classes and adding a migration to remove the changelog entries.
\ No newline at end of file

Added: aurora/site/source/documentation/0.22.0/development/design-documents.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/development/design-documents.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/development/design-documents.md (added)
+++ aurora/site/source/documentation/0.22.0/development/design-documents.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,23 @@
+Design Documents
+================
+
+Since its inception as an Apache project, larger feature additions to the
+Aurora code base are discussed in form of design documents. Design documents
+are living documents until a consensus has been reached to implement a feature
+in the proposed form.
+
+Current and past documents:
+
+* [Command Hooks for the Aurora Client](../design/command-hooks/)
+* [Dynamic Reservations](https://docs.google.com/document/d/19gV8Po6DIHO14tOC7Qouk8RnboY8UCfRTninwn_5-7c/edit)
+* [GPU Resources in Aurora](https://docs.google.com/document/d/1J9SIswRMpVKQpnlvJAMAJtKfPP7ZARFknuyXl-2aZ-M/edit)
+* [Health Checks for Updates](https://docs.google.com/document/d/1KOO0LC046k75TqQqJ4c0FQcVGbxvrn71E10wAjMorVY/edit)
+* [JobUpdateDiff thrift API](https://docs.google.com/document/d/1Fc_YhhV7fc4D9Xv6gJzpfooxbK4YWZcvzw6Bd3qVTL8/edit)
+* [REST API RFC](https://docs.google.com/document/d/11_lAsYIRlD5ETRzF2eSd3oa8LXAHYFD8rSetspYXaf4/edit)
+* [Revocable Mesos offers in Aurora](https://docs.google.com/document/d/1r1WCHgmPJp5wbrqSZLsgtxPNj3sULfHrSFmxp2GyPTo/edit)
+* [Supporting the Mesos Universal Containerizer](https://docs.google.com/document/d/111T09NBF2zjjl7HE95xglsDpRdKoZqhCRM5hHmOfTLA/edit?usp=sharing)
+* [Tier Management In Apache Aurora](https://docs.google.com/document/d/1erszT-HsWf1zCIfhbqHlsotHxWUvDyI2xUwNQQQxLgs/edit?usp=sharing)
+* [Ubiquitous Jobs](https://docs.google.com/document/d/12hr6GnUZU3mc7xsWRzMi3nQILGB-3vyUxvbG-6YmvdE/edit)
+* [Pluggable Scheduling](https://docs.google.com/document/d/1fVHLt9AF-YbOCVCDMQmi5DATVusn-tqY8DldKbjVEm0/edit)
+
+Design documents can be found in the Aurora issue tracker via the query [`project = AURORA AND text ~ "docs.google.com" ORDER BY created`](https://issues.apache.org/jira/browse/AURORA-1528?jql=project%20%3D%20AURORA%20AND%20text%20~%20%22docs.google.com%22%20ORDER%20BY%20created).

Added: aurora/site/source/documentation/0.22.0/development/design/command-hooks.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/development/design/command-hooks.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/development/design/command-hooks.md (added)
+++ aurora/site/source/documentation/0.22.0/development/design/command-hooks.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,102 @@
+# Command Hooks for the Aurora Client
+
+## Introduction/Motivation
+
+We've got hooks in the client that surround API calls. These are
+pretty awkward, because they don't correlate with user actions. For
+example, suppose we wanted a policy that said users weren't allowed to
+kill all instances of a production job at once.
+
+Right now, all that we could hook would be the "killJob" api call. But
+kill (at least in newer versions of the client) normally runs in
+batches. If a user called killall, what we would see on the API level
+is a series of "killJob" calls, each of which specified a batch of
+instances. We woudn't be able to distinguish between really killing
+all instances of a job (which is forbidden under this policy), and
+carefully killing in batches (which is permitted.) In each case, the
+hook would just see a series of API calls, and couldn't find out what
+the actual command being executed was!
+
+For most policy enforcement, what we really want to be able to do is
+look at and vet the commands that a user is performing, not the API
+calls that the client uses to implement those commands.
+
+So I propose that we add a new kind of hooks, which surround noun/verb
+commands. A hook will register itself to handle a collection of (noun,
+verb) pairs. Whenever any of those noun/verb commands are invoked, the
+hooks methods will be called around the execution of the verb. A
+pre-hook will have the ability to reject a command, preventing the
+verb from being executed.
+
+## Registering Hooks
+
+These hooks will be registered via configuration plugins. A configuration plugin
+can register hooks using an API. Hooks registered this way are, effectively,
+hardwired into the client executable.
+
+The order of execution of hooks is unspecified: they may be called in
+any order. There is no way to guarantee that one hook will execute
+before some other hook.
+
+
+### Global Hooks
+
+Commands registered by the python call are called _global_ hooks,
+because they will run for all configurations, whether or not they
+specify any hooks in the configuration file.
+
+In the implementation, hooks are registered in the module
+`apache.aurora.client.cli.command_hooks`, using the class
+`GlobalCommandHookRegistry`. A global hook can be registered by calling
+`GlobalCommandHookRegistry.register_command_hook` in a configuration plugin.
+
+### The API
+
+    class CommandHook(object)
+      @property
+      def name(self):
+        """Returns a name for the hook."
+
+      def get_nouns(self):
+        """Return the nouns that have verbs that should invoke this hook."""
+
+      def get_verbs(self, noun):
+        """Return the verbs for a particular noun that should invoke his hook."""
+
+      @abstractmethod
+      def pre_command(self, noun, verb, context, commandline):
+        """Execute a hook before invoking a verb.
+        * noun: the noun being invoked.
+        * verb: the verb being invoked.
+        * context: the context object that will be used to invoke the verb.
+          The options object will be initialized before calling the hook
+        * commandline: the original argv collection used to invoke the client.
+        Returns: True if the command should be allowed to proceed; False if the command
+        should be rejected.
+        """
+
+      def post_command(self, noun, verb, context, commandline, result):
+        """Execute a hook after invoking a verb.
+        * noun: the noun being invoked.
+        * verb: the verb being invoked.
+        * context: the context object that will be used to invoke the verb.
+          The options object will be initialized before calling the hook
+        * commandline: the original argv collection used to invoke the client.
+        * result: the result code returned by the verb.
+        Returns: nothing
+        """
+
+    class GlobalCommandHookRegistry(object):
+      @classmethod
+      def register_command_hook(self, hook):
+        pass
+
+### Skipping Hooks
+
+To skip a hook, a user uses a command-line option, `--skip-hooks`. The option can either
+specify specific hooks to skip, or "all":
+
+* `aurora --skip-hooks=all job create east/bozo/devel/myjob` will create a job
+  without running any hooks.
+* `aurora --skip-hooks=test,iq create east/bozo/devel/myjob` will create a job,
+  and will skip only the hooks named "test" and "iq".

Added: aurora/site/source/documentation/0.22.0/development/scheduler.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/development/scheduler.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/development/scheduler.md (added)
+++ aurora/site/source/documentation/0.22.0/development/scheduler.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,118 @@
+Developing the Aurora Scheduler
+===============================
+
+The Aurora scheduler is written in Java code and built with [Gradle](http://gradle.org).
+
+
+Prerequisite
+============
+
+When using Apache Aurora checked out from the source repository or the binary
+distribution, the Gradle wrapper and JavaScript dependencies are provided.
+However, you need to manually install them when using the source release
+downloads:
+
+1. Install Gradle following the instructions on the [Gradle web site](http://gradle.org)
+2. From the root directory of the Apache Aurora project generate the Gradle
+wrapper by running:
+
+    gradle wrapper
+
+
+Getting Started
+===============
+
+You will need Java 8 installed and on your `PATH` or unzipped somewhere with `JAVA_HOME` set. Then
+
+    ./gradlew tasks
+
+will bootstrap the build system and show available tasks. This can take a while the first time you
+run it but subsequent runs will be much faster due to cached artifacts.
+
+Running the Tests
+-----------------
+Aurora has a comprehensive unit test suite. To run the tests use
+
+    ./gradlew build
+
+Gradle will only re-run tests when dependencies of them have changed. To force a re-run of all
+tests use
+
+    ./gradlew clean build
+
+Running the build with code quality checks
+------------------------------------------
+To speed up development iteration, the plain gradle commands will not run static analysis tools.
+However, you should run these before posting a review diff, and **always** run this before pushing a
+commit to origin/master.
+
+    ./gradlew build -Pq
+
+Running integration tests
+-------------------------
+To run the same tests that are run in the Apache Aurora continuous integration
+environment:
+
+    ./build-support/jenkins/build.sh
+
+In addition, there is an end-to-end test that runs a suite of aurora commands
+using a virtual cluster:
+
+    ./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
+
+Creating a bundle for deployment
+--------------------------------
+Gradle can create a zip file containing Aurora, all of its dependencies, and a launch script with
+
+    ./gradlew distZip
+
+or a tar file containing the same files with
+
+    ./gradlew distTar
+
+The output file will be written to `dist/distributions/aurora-scheduler.zip` or
+`dist/distributions/aurora-scheduler.tar`.
+
+
+
+Developing Aurora Java code
+===========================
+
+Setting up an IDE
+-----------------
+Gradle can generate project files for your IDE. To generate an IntelliJ IDEA project run
+
+    ./gradlew idea
+
+and import the generated `aurora.ipr` file.
+
+Adding or Upgrading a Dependency
+--------------------------------
+New dependencies can be added from Maven central by adding a `compile` dependency to `build.gradle`.
+For example, to add a dependency on `com.example`'s `example-lib` 1.0 add this block:
+
+    compile 'com.example:example-lib:1.0'
+
+NOTE: Anyone thinking about adding a new dependency should first familiarize themselves with the
+Apache Foundation's third-party licensing
+[policy](http://www.apache.org/legal/resolved.html#category-x).
+
+
+
+Developing the Aurora Build System
+==================================
+
+Bootstrapping Gradle
+--------------------
+The following files were autogenerated by `gradle wrapper` using gradle's
+[Wrapper](http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.wrapper.Wrapper.html) plugin and
+should not be modified directly:
+
+    ./gradlew
+    ./gradlew.bat
+    ./gradle/wrapper/gradle-wrapper.jar
+    ./gradle/wrapper/gradle-wrapper.properties
+
+To upgrade Gradle unpack the new version somewhere, run `/path/to/new/gradle wrapper` in the
+repository root and commit the changed files.
+

Added: aurora/site/source/documentation/0.22.0/development/thermos.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/development/thermos.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/development/thermos.md (added)
+++ aurora/site/source/documentation/0.22.0/development/thermos.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,126 @@
+The Python components of Aurora are built using [Pants](https://pantsbuild.github.io).
+
+
+Python Build Conventions
+========================
+The Python code is laid out according to the following conventions:
+
+1. 1 `BUILD` per 3rd level directory. For a list of current top-level packages run:
+
+        % find src/main/python -maxdepth 3 -mindepth 3 -type d |\
+        while read dname; do echo $dname |\
+            sed 's@src/main/python/\(.*\)/\(.*\)/\(.*\).*@\1.\2.\3@'; done
+
+2.  Each `BUILD` file exports 1
+    [`python_library`](https://pantsbuild.github.io/build_dictionary.html#bdict_python_library)
+    that provides a
+    [`setup_py`](https://pantsbuild.github.io/build_dictionary.html#setup_py)
+    containing each
+    [`python_binary`](https://pantsbuild.github.io/build_dictionary.html#python_binary)
+    in the `BUILD` file, named the same as the directory it's in so that it can be referenced
+    without a ':' character. The `sources` field in the `python_library` will almost always be
+    `rglobs('*.py')`.
+
+3.  Other BUILD files may only depend on this single public `python_library`
+    target. Any other target is considered a private implementation detail and
+    should be prefixed with an `_`.
+
+4.  `python_binary` targets are always named the same as the exported console script.
+
+5.  `python_binary` targets must have identical `dependencies` to the `python_library` exported
+    by the package and must use `entry_point`.
+
+    The means a PEX file generated by pants will contain exactly the same files that will be
+    available on the `PYTHONPATH` in the case of `pip install` of the corresponding library
+    target. This will help our migration off of Pants in the future.
+
+Annotated example - apache.thermos.runner
+-----------------------------------------
+
+    % find src/main/python/apache/thermos/runner
+    src/main/python/apache/thermos/runner
+    src/main/python/apache/thermos/runner/__init__.py
+    src/main/python/apache/thermos/runner/thermos_runner.py
+    src/main/python/apache/thermos/runner/BUILD
+    % cat src/main/python/apache/thermos/runner/BUILD
+    # License boilerplate omitted
+    import os
+
+
+    # Private target so that a setup_py can exist without a circular dependency. Only targets within
+    # this file should depend on this.
+    python_library(
+      name = '_runner',
+      # The target covers every python file under this directory and subdirectories.
+      sources = rglobs('*.py'),
+      dependencies = [
+        '3rdparty/python:twitter.common.app',
+        '3rdparty/python:twitter.common.log',
+        # Source dependencies are always referenced without a ':'.
+        'src/main/python/apache/thermos/common',
+        'src/main/python/apache/thermos/config',
+        'src/main/python/apache/thermos/core',
+      ],
+    )
+
+    # Binary target for thermos_runner.pex. Nothing should depend on this - it's only used as an
+    # argument to ./pants binary.
+    python_binary(
+      name = 'thermos_runner',
+      # Use entry_point, not source so the files used here are the same ones tests see.
+      entry_point = 'apache.thermos.bin.thermos_runner',
+      dependencies = [
+        # Notice that we depend only on the single private target from this BUILD file here.
+        ':_runner',
+      ],
+    )
+
+    # The public library that everyone importing the runner symbols uses.
+    # The test targets and any other dependent source code should depend on this.
+    python_library(
+      name = 'runner',
+      dependencies = [
+        # Again, notice that we depend only on the single private target from this BUILD file here.
+        ':_runner',
+      ],
+      # We always provide a setup_py. This will cause any dependee libraries to automatically
+      # reference this library in their requirements.txt rather than copy the source files into their
+      # sdist.
+      provides = setup_py(
+        # Conventionally named and versioned.
+        name = 'apache.thermos.runner',
+        version = open(os.path.join(get_buildroot(), '.auroraversion')).read().strip().upper(),
+      ).with_binaries({
+        # Every binary in this file should also be repeated here.
+        # Always use the dict-form of .with_binaries so that commands with dashes in their names are
+        # supported.
+        # The console script name is always the same as the PEX with .pex stripped.
+        'thermos_runner': ':thermos_runner',
+      }),
+    )
+
+
+
+Thermos Test resources
+======================
+
+The Aurora source repository and distributions contain several
+[binary files](../../src/test/resources/org/apache/thermos/root/checkpoints) to
+qualify the backwards-compatibility of thermos with checkpoint data. Since
+thermos persists state to disk, to be read by the thermos observer), it is important that we have
+tests that prevent regressions affecting the ability to parse previously-written data.
+
+The files included represent persisted checkpoints that exercise different
+features of thermos. The existing files should not be modified unless
+we are accepting backwards incompatibility, such as with a major release.
+
+It is not practical to write source code to generate these files on the fly,
+as source would be vulnerable to drift (e.g. due to refactoring) in ways
+that would undermine the goal of ensuring backwards compatibility.
+
+The most common reason to add a new checkpoint file would be to provide
+coverage for new thermos features that alter the data format. This is
+accomplished by writing and running a
+[job configuration](../../reference/configuration/) that exercises the feature, and
+copying the checkpoint file from the sandbox directory, by default this is
+`/var/run/thermos/checkpoints/<aurora task id>`.

Added: aurora/site/source/documentation/0.22.0/development/thrift.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/development/thrift.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/development/thrift.md (added)
+++ aurora/site/source/documentation/0.22.0/development/thrift.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,54 @@
+Thrift
+======
+
+Aurora uses [Apache Thrift](https://thrift.apache.org/) for representing structured data in
+client/server RPC protocol as well as for internal data storage. While Thrift is capable of
+correctly handling additions and renames of the existing members, field removals must be done
+carefully to ensure backwards compatibility and provide predictable deprecation cycle. This
+document describes general guidelines for making Thrift schema changes to the existing fields in
+[api.thrift](https://github.com/apache/aurora/blob/rel/0.22.0/api/src/main/thrift/org/apache/aurora/gen/api.thrift).
+
+It is highly recommended to go through the
+[Thrift: The Missing Guide](http://diwakergupta.github.io/thrift-missing-guide/) first to refresh on
+basic Thrift schema concepts.
+
+Checklist
+---------
+Every existing Thrift schema modification is unique in its requirements and must be analyzed
+carefully to identify its scope and expected consequences. The following checklist may help in that
+analysis:
+* Is this a new field/struct? If yes, go ahead
+* Is this a pure field/struct rename without any type/structure change? If yes, go ahead and rename
+* Anything else, read further to make sure your change is properly planned
+
+Deprecation cycle
+-----------------
+Any time a breaking change (e.g.: field replacement or removal) is required, the following cycle
+must be followed:
+
+### vCurrent
+Change is applied in a way that does not break scheduler/client with this version to
+communicate with scheduler/client from vCurrent-1.
+* Do not remove or rename the old field
+* Add a new field as an eventual replacement of the old one and implement a dual read/write
+anywhere the old field is used. If a thrift struct is mapped in the DB store make sure both columns
+are marked as `NOT NULL`
+* Check [storage.thrift](https://github.com/apache/aurora/blob/rel/0.22.0/api/src/main/thrift/org/apache/aurora/gen/storage.thrift) to see if
+the affected struct is stored in Aurora scheduler storage. If so, it's almost certainly also
+necessary to perform a [DB migration](../db-migration/).
+* Add a deprecation jira ticket into the vCurrent+1 release candidate
+* Add a TODO for the deprecated field mentioning the jira ticket
+
+### vCurrent+1
+Finalize the change by removing the deprecated fields from the Thrift schema.
+* Drop any dual read/write routines added in the previous version
+* Remove thrift backfilling in scheduler
+* Remove the deprecated Thrift field
+
+Testing
+-------
+It's always advisable to test your changes in the local vagrant environment to build more
+confidence that you change is backwards compatible. It's easy to simulate different
+client/scheduler versions by playing with `aurorabuild` command. See [this document](../../getting-started/vagrant/)
+for more.
+

Added: aurora/site/source/documentation/0.22.0/development/ui.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/development/ui.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/development/ui.md (added)
+++ aurora/site/source/documentation/0.22.0/development/ui.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,46 @@
+Developing the Aurora Scheduler UI
+==================================
+
+Installing bower (optional)
+----------------------------
+Third party JS libraries used in Aurora (located at 3rdparty/javascript/bower_components) are
+managed by bower, a JS dependency manager. Bower is only required if you plan to add, remove or
+update JS libraries. Bower can be installed using the following command:
+
+    npm install -g bower
+
+Bower depends on node.js and npm. The easiest way to install node on a mac is via brew:
+
+    brew install node
+
+For more node.js installation options refer to https://github.com/joyent/node/wiki/Installation.
+
+More info on installing and using bower can be found at: http://bower.io/. Once installed, you can
+use the following commands to view and modify the bower repo at
+3rdparty/javascript/bower_components
+
+    bower list
+    bower install <library name>
+    bower remove <library name>
+    bower update <library name>
+    bower help
+
+
+Faster Iteration in Vagrant
+---------------------------
+The scheduler serves UI assets from the classpath. For production deployments this means the assets
+are served from within a jar. However, for faster development iteration, the vagrant image is
+configured to add the `scheduler` subtree of `/vagrant/dist/resources/main` to the head of
+`CLASSPATH`. This path is configured as a shared filesystem to the path on the host system where
+your Aurora repository lives. This means that any updates under `dist/resources/main/scheduler` in
+your checkout will be reflected immediately in the UI served from within the vagrant image.
+
+The one caveat to this is that this path is under `dist` not `src`. This is because the assets must
+be processed by gradle before they can be served. So, unfortunately, you cannot just save your local
+changes and see them reflected in the UI, you must first run `./gradlew processResources`. This is
+less than ideal, but better than having to restart the scheduler after every change. Additionally,
+gradle makes this process somewhat easier with the use of the `--continuous` flag. If you run:
+`./gradlew processResources --continuous` gradle will monitor the filesystem for changes and run the
+task automatically as necessary. This doesn't quite provide hot-reload capabilities, but it does
+allow for <5s from save to changes being visibile in the UI with no further action required on the
+part of the developer.

Added: aurora/site/source/documentation/0.22.0/features/constraints.md
URL: http://svn.apache.org/viewvc/aurora/site/source/documentation/0.22.0/features/constraints.md?rev=1871319&view=auto
==============================================================================
--- aurora/site/source/documentation/0.22.0/features/constraints.md (added)
+++ aurora/site/source/documentation/0.22.0/features/constraints.md Fri Dec 13 05:37:33 2019
@@ -0,0 +1,126 @@
+Scheduling Constraints
+======================
+
+By default, Aurora will pick any random agent with sufficient resources
+in order to schedule a task. This scheduling choice can be further
+restricted with the help of constraints.
+
+
+Mesos Attributes
+----------------
+
+Data centers are often organized with hierarchical failure domains.  Common failure domains
+include hosts, racks, rows, and PDUs.  If you have this information available, it is wise to tag
+the Mesos agent with them as
+[attributes](https://mesos.apache.org/documentation/attributes-resources/).
+
+The Mesos agent `--attributes` command line argument can be used to mark agents with
+static key/value pairs, so called attributes (not to be confused with `--resources`, which are
+dynamic and accounted).
+
+For example, consider the host `cluster1-aaa-03-sr2` and its following attributes (given in
+key:value format): `host:cluster1-aaa-03-sr2` and `rack:aaa`.
+
+Aurora makes these attributes available for matching with scheduling constraints.
+
+
+Limit Constraints
+-----------------
+
+Limit constraints allow to control machine diversity using constraints. The below
+constraint ensures that no more than two instances of your job may run on a single host.
+Think of this as a "group by" limit.
+
+    Service(
+      name = 'webservice',
+      role = 'www-data',
+      constraints = {
+        'host': 'limit:2',
+      }
+      ...
+    )
+
+
+Likewise, you can use constraints to control rack diversity, e.g. at
+most one task per rack:
+
+    constraints = {
+      'rack': 'limit:1',
+    }
+
+Use these constraints sparingly as they can dramatically reduce Tasks' schedulability.
+Further details are available in the reference documentation on
+[Scheduling Constraints](../../reference/configuration/#specifying-scheduling-constraints).
+
+
+
+Value Constraints
+-----------------
+
+Value constraints can be used to express that a certain attribute with a certain value
+should be present on a Mesos agent. For example, the following job would only be
+scheduled on nodes that claim to have an `SSD` as their disk.
+
+    Service(
+      name = 'webservice',
+      role = 'www-data',
+      constraints = {
+        'disk': 'SSD',
+      }
+      ...
+    )
+
+
+Further details are available in the reference documentation on
+[Scheduling Constraints](../../reference/configuration/#specifying-scheduling-constraints).
+
+
+Running stateful services
+-------------------------
+
+Aurora is best suited to run stateless applications, but it also accommodates for stateful services
+like databases, or services that otherwise need to always run on the same machines.
+
+### Dedicated attribute
+
+Most of the Mesos attributes arbitrary and available for custom use.  There is one exception,
+though: the `dedicated` attribute.  Aurora treats this specially, and only allows matching jobs to
+run on these machines, and will only schedule matching jobs on these machines.
+
+
+#### Syntax
+The dedicated attribute has semantic meaning. The format is `$role(/.*)?`. When a job is created,
+the scheduler requires that the `$role` component matches the `role` field in the job
+configuration, and will reject the job creation otherwise.  The remainder of the attribute is
+free-form. We've developed the idiom of formatting this attribute as `$role/$job`, but do not
+enforce this. For example: a job `devcluster/www-data/prod/hello` with a dedicated constraint set as
+`www-data/web.multi` will have its tasks scheduled only on Mesos agents configured with:
+`--attributes=dedicated:www-data/web.multi`.
+
+A wildcard (`*`) may be used for the role portion of the dedicated attribute, which will allow any
+owner to elect for a job to run on the host(s). For example: tasks from both
+`devcluster/www-data/prod/hello` and `devcluster/vagrant/test/hello` with a dedicated constraint
+formatted as `*/web.multi` will be scheduled only on Mesos agents configured with
+`--attributes=dedicated:*/web.multi`. This may be useful when assembling a virtual cluster of
+machines sharing the same set of traits or requirements.
+
+##### Example
+Consider the following agent command line:
+
+    mesos-slave --attributes="dedicated:db_team/redis" ...
+
+And this job configuration:
+
+    Service(
+      name = 'redis',
+      role = 'db_team',
+      constraints = {
+        'dedicated': 'db_team/redis'
+      }
+      ...
+    )
+
+The job configuration is indicating that it should only be scheduled on agents with the attribute
+`dedicated:db_team/redis`.  Additionally, Aurora will prevent any tasks that do _not_ have that
+constraint from running on those agents.
+