You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by to...@apache.org on 2016/03/15 19:55:48 UTC

[1/2] incubator-kudu git commit: Improve site build, add a blog

Repository: incubator-kudu
Updated Branches:
  refs/heads/gh-pages 625f766ff -> a4432a879


Improve site build, add a blog

Since we plan to move off of github pages towards the ASF site publishing, we
now need to start worrying about running Jekyll ourselves. This adds a new
script to this repository that acts as a wrapper which installs bundler uses
that to install a locked version of Jekyll. This slightly duplicates some
scripting which is in the main Kudu repository, but that scripting is more
focused around building documentation (eg installing the asciidoctor gem)
whereas this one is focused on the site build.

This also updates Jekyll to a newer version which has better support for
blogging. This still isn't the newest version, because the newest requires ruby
2.0, which apparently is not installed by default on a lot of systems. If we
end up needing some feature that is missing from Jekyll 2.5, we can update at
that ponit.

In terms of actual site content, this adds a basic blog, and two simple
back-dated posts for our two most recent releases. I used these as initial
filler content so that we don't have an empty blog.

In order to make room on the top nav for the blog, I merged the 'Contributing'
section into the 'Community' section. Longer term I think we probably need to
add some dropdown menus from the top nav or something, but I didn't want to
figure out the HTML for that quite yet. I think putting 'contributing' under
'community' makes reasonable sense.

Change-Id: Ib9afca4e9b22923b96fd4ec9f5bfafd3e6ddd796
Reviewed-on: http://gerrit.cloudera.org:8080/2542
Reviewed-by: Mike Percy <mp...@apache.org>
Tested-by: Todd Lipcon <to...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/8e304f77
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/8e304f77
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/8e304f77

Branch: refs/heads/gh-pages
Commit: 8e304f77bb24775bb5bb36807d080e21ff6148ac
Parents: 625f766
Author: Todd Lipcon <to...@cloudera.com>
Authored: Fri Mar 11 16:49:49 2016 -0800
Committer: Todd Lipcon <to...@apache.org>
Committed: Tue Mar 15 18:54:02 2016 +0000

----------------------------------------------------------------------
 Gemfile                                         |  33 +++++-
 Gemfile.lock                                    | 114 ++++++-------------
 README.adoc                                     |  33 ++----
 _config.yml                                     |  20 ++++
 _includes/top_common.html                       |   5 +-
 _layouts/blog_layout.html                       |  24 ++++
 _layouts/post.html                              |  13 +++
 _posts/2016-02-26-apache-kudu-0-7-0-released.md |  23 ++++
 _posts/2016-03-10-apache-kudu-0-7-1-released.md |  21 ++++
 blog/index.html                                 |  39 +++++++
 community.md                                    |  65 ++++++++++-
 contributing.html                               |  89 ---------------
 css/kudu.css                                    |  46 ++++++++
 overview.html                                   |   2 +-
 site_tool                                       |  91 +++++++++++++++
 15 files changed, 416 insertions(+), 202 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/Gemfile
----------------------------------------------------------------------
diff --git a/Gemfile b/Gemfile
index 538e1d2..37b1fd2 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,3 +1,34 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
 source 'https://rubygems.org'
-gem 'github-pages'
 
+# Explicitly use the 'kramdown' markdown variant. Otherwise
+# the TOC generation for the FAQ doesn't work.
+gem 'kramdown'
+
+# We pin a slightly older version of jekyll which only requires
+# Ruby 1.9. Jekyll 3.0 requires Ruby 2.0 which is more painful to
+# install on some hosts.
+gem 'jekyll', '~> 2.5.3'
+
+# Jekyll requires a Javascript runtime:
+# https://github.com/jekyll/jekyll/issues/2327
+gem 'therubyracer' # V8 runtime installer for Jekyll
+
+# Produce /feed.xml for the Jekyll blog.
+gem 'jekyll-feed'

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/Gemfile.lock
----------------------------------------------------------------------
diff --git a/Gemfile.lock b/Gemfile.lock
index 0794a6e..301ebf0 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,14 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    RedCloth (4.2.9)
-    activesupport (4.2.5)
-      i18n (~> 0.7)
-      json (~> 1.7, >= 1.7.7)
-      minitest (~> 5.1)
-      thread_safe (~> 0.3, >= 0.3.4)
-      tzinfo (~> 1.1)
-    addressable (2.3.8)
+    addressable (2.4.0)
     blankslate (2.1.2.4)
     classifier-reborn (2.0.4)
       fast-stemmer (~> 1.0)
@@ -17,41 +10,12 @@ GEM
       execjs
     coffee-script-source (1.10.0)
     colorator (0.1)
-    ethon (0.8.0)
-      ffi (>= 1.3.0)
     execjs (2.6.0)
+    faraday (0.9.2)
+      multipart-post (>= 1.2, < 3)
     fast-stemmer (1.0.2)
     ffi (1.9.10)
-    gemoji (2.1.0)
-    github-pages (39)
-      RedCloth (= 4.2.9)
-      github-pages-health-check (~> 0.2)
-      jekyll (= 2.4.0)
-      jekyll-coffeescript (= 1.0.1)
-      jekyll-feed (= 0.3.1)
-      jekyll-mentions (= 0.2.1)
-      jekyll-redirect-from (= 0.8.0)
-      jekyll-sass-converter (= 1.3.0)
-      jekyll-sitemap (= 0.8.1)
-      jemoji (= 0.5.0)
-      kramdown (= 1.5.0)
-      liquid (= 2.6.2)
-      maruku (= 0.7.0)
-      mercenary (~> 0.3)
-      pygments.rb (= 0.6.3)
-      rdiscount (= 2.1.7)
-      redcarpet (= 3.3.2)
-      terminal-table (~> 1.4)
-    github-pages-health-check (0.5.3)
-      addressable (~> 2.3)
-      net-dns (~> 0.8)
-      public_suffix (~> 1.4)
-      typhoeus (~> 0.7)
-    html-pipeline (1.9.0)
-      activesupport (>= 2)
-      nokogiri (~> 1.4)
-    i18n (0.7.0)
-    jekyll (2.4.0)
+    jekyll (2.5.3)
       classifier-reborn (~> 2.0)
       colorator (~> 0.1)
       jekyll-coffeescript (~> 1.0)
@@ -68,65 +32,55 @@ GEM
       toml (~> 0.1.0)
     jekyll-coffeescript (1.0.1)
       coffee-script (~> 2.2)
-    jekyll-feed (0.3.1)
-    jekyll-gist (1.3.5)
-    jekyll-mentions (0.2.1)
-      html-pipeline (~> 1.9.0)
-      jekyll (~> 2.0)
+    jekyll-feed (0.4.0)
+    jekyll-gist (1.4.0)
+      octokit (~> 4.2)
     jekyll-paginate (1.1.0)
-    jekyll-redirect-from (0.8.0)
-      jekyll (>= 2.0)
-    jekyll-sass-converter (1.3.0)
-      sass (~> 3.2)
-    jekyll-sitemap (0.8.1)
-    jekyll-watch (1.3.0)
+    jekyll-sass-converter (1.4.0)
+      sass (~> 3.4)
+    jekyll-watch (1.3.1)
       listen (~> 3.0)
-    jemoji (0.5.0)
-      gemoji (~> 2.0)
-      html-pipeline (~> 1.9)
-      jekyll (>= 2.0)
-    json (1.8.3)
-    kramdown (1.5.0)
-    liquid (2.6.2)
-    listen (3.0.5)
+    kramdown (1.10.0)
+    libv8 (3.16.14.13)
+    liquid (2.6.3)
+    listen (3.0.6)
       rb-fsevent (>= 0.9.3)
-      rb-inotify (>= 0.9)
-    maruku (0.7.0)
+      rb-inotify (>= 0.9.7)
     mercenary (0.3.5)
-    mini_portile (0.6.2)
-    minitest (5.8.3)
-    net-dns (0.8.0)
-    nokogiri (1.6.6.4)
-      mini_portile (~> 0.6.0)
+    multipart-post (2.0.0)
+    octokit (4.3.0)
+      sawyer (~> 0.7.0, >= 0.5.3)
     parslet (1.5.0)
       blankslate (~> 2.0)
     posix-spawn (0.3.11)
-    public_suffix (1.5.2)
     pygments.rb (0.6.3)
       posix-spawn (~> 0.3.6)
       yajl-ruby (~> 1.2.0)
-    rb-fsevent (0.9.6)
-    rb-inotify (0.9.5)
+    rb-fsevent (0.9.7)
+    rb-inotify (0.9.7)
       ffi (>= 0.5.0)
-    rdiscount (2.1.7)
-    redcarpet (3.3.2)
+    redcarpet (3.3.4)
+    ref (2.0.0)
     safe_yaml (1.0.4)
-    sass (3.4.19)
-    terminal-table (1.5.2)
-    thread_safe (0.3.5)
+    sass (3.4.21)
+    sawyer (0.7.0)
+      addressable (>= 2.3.5, < 2.5)
+      faraday (~> 0.8, < 0.10)
+    therubyracer (0.12.2)
+      libv8 (~> 3.16.14.0)
+      ref
     toml (0.1.2)
       parslet (~> 1.5.0)
-    typhoeus (0.8.0)
-      ethon (>= 0.8.0)
-    tzinfo (1.2.2)
-      thread_safe (~> 0.1)
     yajl-ruby (1.2.1)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  github-pages
+  jekyll (~> 2.5.3)
+  jekyll-feed
+  kramdown
+  therubyracer
 
 BUNDLED WITH
-   1.10.6
+   1.11.2

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/README.adoc
----------------------------------------------------------------------
diff --git a/README.adoc b/README.adoc
index 62d2d8a..77bd617 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1,38 +1,19 @@
 = Viewing the Kudu web site locally
 
-To serve the Kudu web site locally, install and run
-https://help.github.com/articles/using-jekyll-with-pages/[Jekyll] via
-http://bundler.io/[Bundler]:
+This repository contains a handy wrapper tool called 'site_tool'
+which takes care of installing and running the correct version of
+jekyll.
 
 [source,bash]
 ----
-bundle install --path .gem/ # download jekyll dependencies to .gem/
-bundle exec jekyll serve
+./site_tool jekyll serve
 ----
 
 This will start a local web server on http://localhost:4000/ where you can view
-the site just like it renders on GitHub Pages.
+the site just like it renders on the site.
 
-In addition to serving static content, GitHub Pages is also able to render
-https://help.github.com/articles/github-flavored-markdown/[GitHub Flavored
-Markdown]. It does not support AsciiDoc yet.
-
-If the `bundle` command is not available, install it like so:
-
-[source,bash]
-----
-gem install --user-install bundler
-----
-
-In order to add the `bundle` command to your path, add this to your
-`~/.bash_profile`:
-
-[source,bash]
-----
-if which ruby >/dev/null && which gem >/dev/null; then
-  PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH"
-fi
-----
+In addition to serving static content, jekyll will render Markdown (the kramdown
+flavor) and also supports templating using Liquid templates.
 
 = Updating the Kudu Website
 

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/_config.yml
----------------------------------------------------------------------
diff --git a/_config.yml b/_config.yml
new file mode 100644
index 0000000..ce6f9a0
--- /dev/null
+++ b/_config.yml
@@ -0,0 +1,20 @@
+gems:
+  - jekyll-feed
+  - jekyll-paginate
+exclude:
+  - site_tool
+  - README.adoc
+  - Gemfile*
+
+# When writing a blog post, you can use this special HTML comment to
+# designate where the post should be chopped in order to generate the
+# excerpt on the main blog page.
+excerpt_separator: "<!--more-->"
+
+# Force using kramdown as the markdown generator, since it supports the
+# TOC function we use on the FAQ page.
+markdown: kramdown
+
+# Pagination settings for the blog.
+paginate: 5
+paginate_path: "/blog/page/:num"

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/_includes/top_common.html
----------------------------------------------------------------------
diff --git a/_includes/top_common.html b/_includes/top_common.html
index fae7970..470f726 100644
--- a/_includes/top_common.html
+++ b/_includes/top_common.html
@@ -30,7 +30,6 @@
     <a class="fork-me-on-github" href="https://github.com/apache/incubator-kudu"><img src="//aral.github.io/fork-me-on-github-retina-ribbons/right-cerulean@2x.png" alt="Fork me on GitHub" /></a>
 
     <div class="kudu-site container-fluid">
-
       <!-- Static navbar -->
         <nav class="container-fluid navbar-default">
           <div class="navbar-header">
@@ -58,8 +57,8 @@
               <li {% if page.active_nav == 'download' %}class="active"{% endif %}>
                 <a href="{{site.github.url}}/releases/">Download</a>
               </li>
-              <li {% if page.active_nav == 'contributing' %}class="active"{% endif %}>
-                <a href="{{site.github.url}}/contributing.html">Contributing</a>
+              <li {% if page.active_nav == 'blog' %}class="active"{% endif %}>
+                <a href="{{site.github.url}}/blog/">Blog</a>
               </li>
               <li {% if page.active_nav == 'community' %}class="active"{% endif %}>
                 <a href="{{site.github.url}}/community.html">Community</a>

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/_layouts/blog_layout.html
----------------------------------------------------------------------
diff --git a/_layouts/blog_layout.html b/_layouts/blog_layout.html
new file mode 100644
index 0000000..3a5f081
--- /dev/null
+++ b/_layouts/blog_layout.html
@@ -0,0 +1,24 @@
+---
+layout: default
+active_nav: blog
+---
+
+<div class="row header">
+  <div class="col-lg-12">
+    <h2><a href="{{ site.github.url }}/blog">Apache Kudu (incubating) Blog</a></h2>
+  </div>
+</div>
+
+<div class="row-fluid">
+  <div class="col-lg-9">
+    {{content}}
+  </div>
+  <div class="col-lg-3 recent-posts">
+    <h3>Recent posts</h3>
+    <ul>
+    {% for post in site.posts offset: 0 limit: 15 %}
+      <li> <a href="{{ site.github.url }}{{ post.url }}">{{ post.title }}</a> </li>
+    {% endfor %}
+    </ul>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/_layouts/post.html
----------------------------------------------------------------------
diff --git a/_layouts/post.html b/_layouts/post.html
new file mode 100644
index 0000000..abcfc84
--- /dev/null
+++ b/_layouts/post.html
@@ -0,0 +1,13 @@
+---
+layout: blog_layout
+---
+<article>
+  <header>
+    <h1 class="entry-title">{{ page.title }}</h1>
+    <p class="meta">Posted {{ page.date | date_to_string }} by {{ page.author }}</p>
+  </header>
+  <div class="entry-content">
+    {{ content }}
+  </div>
+</article>
+

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/_posts/2016-02-26-apache-kudu-0-7-0-released.md
----------------------------------------------------------------------
diff --git a/_posts/2016-02-26-apache-kudu-0-7-0-released.md b/_posts/2016-02-26-apache-kudu-0-7-0-released.md
new file mode 100644
index 0000000..1730f13
--- /dev/null
+++ b/_posts/2016-02-26-apache-kudu-0-7-0-released.md
@@ -0,0 +1,23 @@
+---
+layout: post
+title: Apache Kudu (incubating) 0.7.0 released
+author: Todd Lipcon
+---
+
+The Apache Kudu (incubating) team is happy to announce its first release as
+part of the ASF Incubator, version 0.7.0!
+
+This latest version has a number of improvements since 0.6.0:
+
+<!--more-->
+
+* Kudu now has limited support for Apache Spark, through a simple `kuduRDD` API
+* Several improvements to the Java client including better error handling support and fixes for a potential client hang.
+* Better platform support, including support for building on RHEL 7, CentOS 7, and SLES 12.
+* The Kudu Python client has been completely revamped and is now considered a supported feature.
+* Numerous bug fixes and small improvements for better stability, performance, and usability.
+
+Thanks to Jean-Daniel Cryans for managing this release, as well as to all those who contributed or provided feedback and bug reports.
+
+* Read the detailed [Kudu 0.7.0 release notes](http://getkudu.io/releases/0.7.0/docs/release_notes.html)
+* Download the [Kudu 0.7.0 source release](http://getkudu.io/releases/0.7.0/)

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/_posts/2016-03-10-apache-kudu-0-7-1-released.md
----------------------------------------------------------------------
diff --git a/_posts/2016-03-10-apache-kudu-0-7-1-released.md b/_posts/2016-03-10-apache-kudu-0-7-1-released.md
new file mode 100644
index 0000000..fdd0453
--- /dev/null
+++ b/_posts/2016-03-10-apache-kudu-0-7-1-released.md
@@ -0,0 +1,21 @@
+---
+layout: post
+title: Apache Kudu (incubating) 0.7.1 released
+author: Jean-Daniel Cryans
+---
+The Apache Kudu (incubating) team is happy to announce the release of Kudu
+0.7.1!
+
+This latest release fixes several bugs found during and after the release
+of 0.7.0. Special thanks are due to several community users who reported
+bugs fixed in this release:
+<!--more-->
+
+* Chris George, for reporting a critical bug in the Java client preventing it from scanning large partitioned tables with single scanner object instances. (KUDU-1325)
+* Bruce Song Zhang, for running cluster stress tests which identified a potential data corruption in certain random access write workloads involving frequent row deletions (KUDU-1341)
+* Nick Wolf, for reporting a bug where Kudu's internal clock could jump backwards causing a server to crash and fail to restart. (KUDU-1345)
+
+Thanks again to Jean-Daniel Cryans for managing this release!
+
+* Read the detailed [Kudu 0.7.1 release notes](http://getkudu.io/releases/0.7.1/docs/release_notes.html)
+* Download the [Kudu 0.7.1 source release](http://getkudu.io/releases/0.7.1/)

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/blog/index.html
----------------------------------------------------------------------
diff --git a/blog/index.html b/blog/index.html
new file mode 100644
index 0000000..9b681b8
--- /dev/null
+++ b/blog/index.html
@@ -0,0 +1,39 @@
+---
+layout: blog_layout
+title: Blog
+---
+
+{% for post in paginator.posts %}
+
+<!-- Articles -->
+<article>
+  <header>
+    <h1 class="entry-title"><a href="{{site.github.url }}{{ post.url }}">{{ post.title }}</a></h1>
+    <p class="meta">Posted {{ post.date | date_to_string }} by {{ post.author }}</p>
+  </header>
+  <div class="entry-content">
+    {% unless post.no_excerpt %}
+    {{ post.excerpt }}
+    {% endunless %}
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="{{site.github.url }}{{ post.url }}">Read full post...</a>
+  </div>
+</article>
+
+{% endfor %}
+
+<!-- Pagination links -->
+{% if paginator.previous_page or paginator.next_page %}
+<nav>
+  <hr/>
+  <ul class="pager">
+  {% if paginator.previous_page %}
+    <li class="previous"><a href="{{ site.github.url }}{{ paginator.previous_page_path |replace: 'index.html', '' }}"><span aria-hidden="true">&larr;</span> Newer posts</a></li>
+  {% endif %}
+  {% if paginator.next_page %}
+    <li class="next"><a href="{{ site.github.url }}{{ paginator.next_page_path }}">Older posts <span aria-hidden="true">&rarr;</span></a></li>
+  {% endif %}
+  </ul>
+</nav>
+{% endif %}

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/community.md
----------------------------------------------------------------------
diff --git a/community.md b/community.md
index a73233b..fa3c192 100644
--- a/community.md
+++ b/community.md
@@ -29,8 +29,69 @@ Get help using Kudu or contribute to the project on our mailing lists or our cha
 
 ### Contributions
 
-The Kudu project is dedicated to building a community not just of users, but
-also of developers around the world. [Learn more about how to contribute to Kudu](contributing.html).
+There are lots of ways to get involved with the Kudu project. Some of them are
+listed below. You don't have to be a developer; there are lots of valuable and
+important ways to get involved that suit any skill set and level.
+
+If you want to do something not listed here, or you see a gap that needs to be
+filled, [let us know](mailto:dev@kudu.incubator.apache.org).
+
+#### Participate in the community.
+
+Community is the core of any open source project, and Kudu is no exception.
+Participate in the mailing lists, requests for comment, chat sessions, and bug
+reports.
+
+#### Talk about how you use Kudu.
+
+Let us know what you think of Kudu and how you are using it. Send links to
+blogs or presentations you've given to the [kudu-user mailing
+list](mailto:user@kudu.incubator.apache.org) so that we can feature them.
+
+#### File bugs and enhancement requests.
+
+If you see problems in Kudu or if a missing feature would make Kudu more useful
+to you, let us know by filing a bug or request for enhancement on the [Kudu
+JIRA issue tracker](https://issues.apache.org/jira/browse/KUDU). The more
+information you can provide about how to reproduce an issue or how you'd like a
+new feature to work, the better.
+
+#### Write code and submit patches.
+
+You can submit patches to the core Kudu project or extend your existing
+codebase and APIs to work with Kudu. The Kudu project uses
+[Gerrit](http://gerrit.cloudera.org:8080/#/q/status:open+project:kudu) for code
+reviews. Please read the details of [how to submit
+patches](docs/contributing.html#_contributing_patches_using_gerrit) and what
+the project [coding guidelines](docs/contributing.html#_code_style) are before
+your submit your patch, so that your contribution will be easy for others to
+review and integrate.
+
+#### Review patches and test new code.
+
+In order for patches to be integrated into Kudu as quickly as possible, they
+must be reviewed and tested. The more eyes, the better. Even if you are not a
+committer your review input is extremely valuable. Keep an eye on the [Kudu
+gerrit instance](http://gerrit.cloudera.org:8080/#/q/status:open+project:kudu)
+for patches that need review or testing.
+
+#### Write and review documentation or a blog post.
+
+Making good documentation is critical to making great, usable software. If you
+see gaps in the documentation, please submit suggestions or corrections to the
+mailing list or submit documentation patches through Gerrit. You can also
+correct or improve error messages, log messages, or API docs.
+
+If you'd like to translate the Kudu documentation into a different language or
+you'd like to help in some other way, please [let us know](mailto:dev@kudu.incubator.apache.org).
+It's best to review the [documentation guidelines](docs/style_guide.html)
+before you get started.
+
+#### Request and review examples.
+
+The [kudu-examples](https://github.com/cloudera/kudu-examples) repository
+includes working code examples. As more examples are requested and added, they
+will need review and clean-up. This is another way you can get involved.
 
 ### Meetups, User Groups, and Conference Presentations
 

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/contributing.html
----------------------------------------------------------------------
diff --git a/contributing.html b/contributing.html
deleted file mode 100644
index 4bc85cc..0000000
--- a/contributing.html
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: Contributing
-layout: default
-active_nav: contributing
----
-
-<div class="contributing">
-<div class="row">
-  <div class="col-lg-12">
-
-    <h2>Contributing to Apache Kudu (incubating)</h2>
-    <p>
-      There are lots of ways to get involved with the Kudu project. Some of
-      them are listed below. You don't have to be a developer; there are lots of
-      valuable and important ways to get involved that suit any skill set and level.
-    </p>
-    <p>
-      If you want to do something not listed here, or you see a gap that needs to be filled,
-      <a href="mailto:dev@kudu.incubator.apache.org">let us know</a>.
-    </p>
-
-    <h3>Participate in the community.</h3>
-    <p>
-      Community is the core of any open source project, and Kudu is no exception. Participate in the
-      mailing lists, requests for comment, chat sessions, and bug reports.
-      See <a href="community.html">Community</a> to get started.
-    </p>
-
-    <h3>Talk about how you use Kudu.</h3>
-    <p>
-      Let us know what you think of Kudu and how you are using it. Send blogs or presentation links
-      to the <a href="mailto:user@kudu.incubator.apache.org">kudu-user mailing list</a>
-      so that we can feature them.
-    </p>
-
-    <h3>File bugs and enhancement requests.</h3>
-    <p>
-      If you see problems in Kudu or if a missing feature would make Kudu more useful to you,
-      let us know by filing a bug or request for enhancement on the
-      <a href="https://issues.apache.org/jira/browse/KUDU">Kudu JIRA issue tracker</a>. The more
-      information you can provide about how to reproduce an issue or
-      how you'd like a new feature to work, the better.
-    </p>
-
-    <h3>Write code and submit patches.</h3>
-    <p>
-      You can submit patches to the core Kudu project or extend your existing codebase and APIs
-      to work with Kudu. The Kudu project uses
-      <a href="http://gerrit.cloudera.org:8080/#/q/status:open+project:kudu">Gerrit</a>
-      for code reviews.
-
-      Please read the details of
-      <a href="docs/contributing.html#_contributing_patches_using_gerrit">how to use submit patches</a>
-      and what the project <a href="docs/contributing.html#_code_style">coding guidelines</a>
-      are before your submit your patch, so that your contribution will be easy for others to
-      review and integrate.
-    </p>
-
-    <h3>Review patches and test new code.</h3>
-    <p>
-      In order for patches to be integrated into Kudu as quickly as possible, they must be reviewed
-      and tested. The more eyes, the better. Even if you are not a committer your review input is extremely
-      valuable. Keep an eye on the
-      <a href="http://gerrit.cloudera.org:8080/#/q/status:open+project:kudu">Kudu gerrit instance</a>
-      for patches that need review or testing.
-    </p>
-
-    <h3>Write and review documentation.</h3>
-    <p>
-      Making good documentation is critical to making great, usable software. If you see gaps in
-      the documentation, please submit suggestions or corrections to the mailing list
-      or submit documentation patches through Gerrit.
-      You can also correct or improve error messages, log messages, or API docs.
-    </p>
-    <p>
-      If you'd like to translate the Kudu documentation into a different
-      language or you'd like to help in some other way, please <a href="community.html">let us know</a>.
-      It's best to review the <a href="docs/style_guide.html">documentation guidelines</a> before you get started.
-    </p>
-
-    <h3>Request and review examples.</h3>
-    <p>
-      The <a href="https://github.com/cloudera/kudu-examples">kudu-examples</a> repository includes
-      working code examples. As more examples are requested and added, they will need review and clean-up.
-      This is another way you can get involved.
-    </p>
-  </div>
-</div>
-</div> <!-- .contributing -->

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/css/kudu.css
----------------------------------------------------------------------
diff --git a/css/kudu.css b/css/kudu.css
index 02e05cc..f304dc3 100644
--- a/css/kudu.css
+++ b/css/kudu.css
@@ -176,3 +176,49 @@ footer {
       padding: 13px;
   }
 }
+
+/* ------------------------------------------
+   BLOG
+   ------------------------------------- */
+article header p.meta {
+  font-style: italic;
+  color: #666;
+  margin-bottom: 5px;
+}
+
+article header a {
+  color: #000;
+}
+
+article header {
+  border-bottom: 1px solid #ddd;
+  margin-bottom: 20px;
+}
+
+article .entry-content {
+  font-size: 125%;
+}
+
+article .entry-content p {
+  margin-bottom: 1.5em;
+}
+
+article .read-full {
+  text-align: right;
+}
+
+.recent-posts {
+  background: #f6f6f6;
+}
+
+.recent-posts h3 {
+  font-weight: bold;
+  font-size: 140%;
+}
+
+.recent-posts ul {
+  list-style: none;
+  padding: 0.5em 0;
+  margin: 0;
+  border-bottom: 1px solid #eee;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/overview.html
----------------------------------------------------------------------
diff --git a/overview.html b/overview.html
index 1187792..e32653b 100644
--- a/overview.html
+++ b/overview.html
@@ -145,7 +145,7 @@ TODO: attributions for CC-A
       project to the ASF.
     </p>
     <ul>
-      <li><a href="{{site.github.url}}/contributing.html">Learn more about how to contribute</a></li>
+      <li><a href="{{site.github.url}}/community.html">Learn more about how to contribute</a></li>
       <li><a href="https://github.com/apache/incubator-kudu">View the Kudu github repository</a></li>
     </ul>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/8e304f77/site_tool
----------------------------------------------------------------------
diff --git a/site_tool b/site_tool
new file mode 100755
index 0000000..8509953
--- /dev/null
+++ b/site_tool
@@ -0,0 +1,91 @@
+#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Simple script to set up jekyll for building the site.
+# This may evolve to have other handy tools.
+
+import os
+import logging
+import subprocess
+import sys
+
+SITE_ROOT = os.path.abspath(os.path.dirname(__file__))
+GEM_PATH = os.path.join(SITE_ROOT, ".gem")
+BUNDLE_PATH = os.path.join(GEM_PATH, "bin", "bundle")
+
+def usage_and_die():
+  usage = """
+usage: %(prog)s <tool> ..."
+
+  %(prog)s jekyll ...
+
+    Runs jekyll with the given arguments. For example:
+
+    %(prog)s jekyll serve
+    %(prog)s jekyll build
+""" % dict(prog=sys.argv[0])
+  usage = usage.strip()
+  print >>sys.stderr, usage
+  sys.exit(1)
+
+
+def setup_bundle():
+  """
+  Installs bundler in the local .gem directory, and uses it to
+  install the necessary gems.
+
+  Sets the $GEM_PATH environment variable so that subsequent
+  subprocess calls can find our gems.
+  """
+  if not os.path.exists(BUNDLE_PATH):
+    try:
+      subprocess.check_call(
+        ["gem", "install", "--no-ri", "--no-rdoc", "-q",
+         "--install-dir", GEM_PATH, "bundler"])
+    except Exception, e:
+      logging.fatal("Could not install 'bundler' gem: " + str(e) + "\n" +
+          "Is the 'gem' tool installed?")
+      sys.exit(1)
+  os.environ['GEM_PATH'] = GEM_PATH
+  if subprocess.call([BUNDLE_PATH, "check"]) != 0:
+    logging.info("Installing gems locally...")
+    subprocess.check_call([BUNDLE_PATH, "install", "--path", GEM_PATH])
+
+
+def run_jekyll(args):
+  setup_bundle()
+  return subprocess.call(
+    [os.path.join(GEM_PATH, "bin", "bundle"), "exec", "jekyll"] + args,
+    cwd=SITE_ROOT)
+
+
+def main(argv):
+  logging.basicConfig(level=logging.INFO)
+  if len(argv) == 0:
+    usage_and_die()
+
+  if argv[0] == 'jekyll':
+    sys.exit(run_jekyll(argv[1:]))
+  else:
+    print >>sys.stderr, "Unknown tool: %s" % argv[0]
+    usage_and_die()
+
+
+if __name__ == "__main__":
+  main(sys.argv[1:])


[2/2] incubator-kudu git commit: Add a 'site_tool proof' command which runs htmlproof

Posted by to...@apache.org.
Add a 'site_tool proof' command which runs htmlproof

This adds a checker script for broken links, and also fixes one. There are a
few more broken links in the docs.

Change-Id: I7f70080d06fdf2cbe9148522e17cba8733958da9
Reviewed-on: http://gerrit.cloudera.org:8080/2544
Reviewed-by: Mike Percy <mp...@apache.org>
Tested-by: Todd Lipcon <to...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/a4432a87
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/a4432a87
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/a4432a87

Branch: refs/heads/gh-pages
Commit: a4432a879acaeb7d18eaa5b3398516df1709793a
Parents: 8e304f7
Author: Todd Lipcon <to...@cloudera.com>
Authored: Mon Mar 14 19:12:16 2016 -0700
Committer: Todd Lipcon <to...@apache.org>
Committed: Tue Mar 15 18:54:44 2016 +0000

----------------------------------------------------------------------
 .gitignore    |  3 +++
 Gemfile       |  4 ++++
 Gemfile.lock  | 32 ++++++++++++++++++++++++++++++++
 README.adoc   | 13 +++++++++++++
 _config.yml   |  1 +
 overview.html |  2 +-
 site_tool     | 24 ++++++++++++++++++++++++
 7 files changed, 78 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/a4432a87/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index e606e7f..696f750 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,6 @@ _site
 
 .bundle/
 .gem/
+
+# htmlproof creates this tmp dir
+tmp

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/a4432a87/Gemfile
----------------------------------------------------------------------
diff --git a/Gemfile b/Gemfile
index 37b1fd2..21860e4 100644
--- a/Gemfile
+++ b/Gemfile
@@ -32,3 +32,7 @@ gem 'therubyracer' # V8 runtime installer for Jekyll
 
 # Produce /feed.xml for the Jekyll blog.
 gem 'jekyll-feed'
+
+# Used for 'site_tool proof'.
+# Pin to an old version which doesn't require ruby 2.0.
+gem 'html-proofer', '~> 2.6.4'

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/a4432a87/Gemfile.lock
----------------------------------------------------------------------
diff --git a/Gemfile.lock b/Gemfile.lock
index 301ebf0..fa63e46 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,6 +1,12 @@
 GEM
   remote: https://rubygems.org/
   specs:
+    activesupport (4.2.6)
+      i18n (~> 0.7)
+      json (~> 1.7, >= 1.7.7)
+      minitest (~> 5.1)
+      thread_safe (~> 0.3, >= 0.3.4)
+      tzinfo (~> 1.1)
     addressable (2.4.0)
     blankslate (2.1.2.4)
     classifier-reborn (2.0.4)
@@ -10,11 +16,24 @@ GEM
       execjs
     coffee-script-source (1.10.0)
     colorator (0.1)
+    colored (1.2)
+    ethon (0.8.1)
+      ffi (>= 1.3.0)
     execjs (2.6.0)
     faraday (0.9.2)
       multipart-post (>= 1.2, < 3)
     fast-stemmer (1.0.2)
     ffi (1.9.10)
+    html-proofer (2.6.4)
+      activesupport (~> 4.2)
+      addressable (~> 2.3)
+      colored (~> 1.2)
+      mercenary (~> 0.3.2)
+      nokogiri (~> 1.5)
+      parallel (~> 1.3)
+      typhoeus (~> 0.7)
+      yell (~> 2.0)
+    i18n (0.7.0)
     jekyll (2.5.3)
       classifier-reborn (~> 2.0)
       colorator (~> 0.1)
@@ -40,6 +59,7 @@ GEM
       sass (~> 3.4)
     jekyll-watch (1.3.1)
       listen (~> 3.0)
+    json (1.8.3)
     kramdown (1.10.0)
     libv8 (3.16.14.13)
     liquid (2.6.3)
@@ -47,9 +67,14 @@ GEM
       rb-fsevent (>= 0.9.3)
       rb-inotify (>= 0.9.7)
     mercenary (0.3.5)
+    mini_portile2 (2.0.0)
+    minitest (5.8.4)
     multipart-post (2.0.0)
+    nokogiri (1.6.7.2)
+      mini_portile2 (~> 2.0.0.rc2)
     octokit (4.3.0)
       sawyer (~> 0.7.0, >= 0.5.3)
+    parallel (1.6.2)
     parslet (1.5.0)
       blankslate (~> 2.0)
     posix-spawn (0.3.11)
@@ -69,14 +94,21 @@ GEM
     therubyracer (0.12.2)
       libv8 (~> 3.16.14.0)
       ref
+    thread_safe (0.3.5)
     toml (0.1.2)
       parslet (~> 1.5.0)
+    typhoeus (0.8.0)
+      ethon (>= 0.8.0)
+    tzinfo (1.2.2)
+      thread_safe (~> 0.1)
     yajl-ruby (1.2.1)
+    yell (2.0.5)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
+  html-proofer (~> 2.6.4)
   jekyll (~> 2.5.3)
   jekyll-feed
   kramdown

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/a4432a87/README.adoc
----------------------------------------------------------------------
diff --git a/README.adoc b/README.adoc
index 77bd617..0a58e9a 100644
--- a/README.adoc
+++ b/README.adoc
@@ -4,6 +4,9 @@ This repository contains a handy wrapper tool called 'site_tool'
 which takes care of installing and running the correct version of
 jekyll.
 
+NOTE:  this tool requires that libxslt and libxml2 development headers are
+installed. On Ubuntu, these are `libxslt-dev` and `libxml2-dev` packages.
+
 [source,bash]
 ----
 ./site_tool jekyll serve
@@ -15,6 +18,16 @@ the site just like it renders on the site.
 In addition to serving static content, jekyll will render Markdown (the kramdown
 flavor) and also supports templating using Liquid templates.
 
+= Checking for broken links or syntax errors
+
+Use the following command to verify that you didn't introduce any broken links
+or HTML errors:
+
+[source,bash]
+----
+./site_tool proof
+----
+
 = Updating the Kudu Website
 
 To update HTML or MarkDown pages in this directory, edit them and git commit, then

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/a4432a87/_config.yml
----------------------------------------------------------------------
diff --git a/_config.yml b/_config.yml
index ce6f9a0..318a8b0 100644
--- a/_config.yml
+++ b/_config.yml
@@ -5,6 +5,7 @@ exclude:
   - site_tool
   - README.adoc
   - Gemfile*
+  - tmp
 
 # When writing a blog post, you can use this special HTML comment to
 # designate where the post should be chopped in order to generate the

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/a4432a87/overview.html
----------------------------------------------------------------------
diff --git a/overview.html b/overview.html
index e32653b..0941f78 100644
--- a/overview.html
+++ b/overview.html
@@ -8,7 +8,7 @@ TODO: attributions for CC-A
 <!------------------------------------------------------------->
 <div class="row header">
   <div class="col-lg-12">
-    <h2><a>Apache Kudu (incubating) Overview</a></h2>
+    <h2>Apache Kudu (incubating) Overview</h2>
   </div>
 </div>
 

http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/a4432a87/site_tool
----------------------------------------------------------------------
diff --git a/site_tool b/site_tool
index 8509953..6e96857 100755
--- a/site_tool
+++ b/site_tool
@@ -39,6 +39,10 @@ usage: %(prog)s <tool> ..."
 
     %(prog)s jekyll serve
     %(prog)s jekyll build
+
+  %(prog)s proof
+
+    Runs htmlproof to check for broken links, etc.
 """ % dict(prog=sys.argv[0])
   usage = usage.strip()
   print >>sys.stderr, usage
@@ -74,6 +78,24 @@ def run_jekyll(args):
     [os.path.join(GEM_PATH, "bin", "bundle"), "exec", "jekyll"] + args,
     cwd=SITE_ROOT)
 
+def proof(args):
+  """ Run htmlproof to check for broken links or HTML. """
+  if len(args) != 0:
+    usage_and_die()
+  if run_jekyll(['build']) != 0:
+    print >>sys.stderr, "Could not build site!"
+    return 1
+  return subprocess.call(
+    [BUNDLE_PATH, "exec", 'htmlproof',
+     '--verbose',
+     # Dont check the javadocs, old doc versions, or the configuration
+     # reference files which are extremely large.
+     '--file-ignore', '/apidocs|releases|configuration_ref/',
+     # Don't check external links (too slow!)
+     '--disable-external',
+     # Don't be pedantic about having an alt tag on every image
+     '--alt-ignore', '/./',
+     '_site/'])
 
 def main(argv):
   logging.basicConfig(level=logging.INFO)
@@ -82,6 +104,8 @@ def main(argv):
 
   if argv[0] == 'jekyll':
     sys.exit(run_jekyll(argv[1:]))
+  elif argv[0] == 'proof':
+    proof(argv[1:])
   else:
     print >>sys.stderr, "Unknown tool: %s" % argv[0]
     usage_and_die()